From 0cb161cfb3b626defdd00e98d91a8cad8748d68a Mon Sep 17 00:00:00 2001 From: "DESKTOP-E401PHE\\Administrator" Date: Wed, 30 Apr 2025 23:58:03 +0800 Subject: [PATCH] ~ --- .gitignore | 16 + 报关管理(BaoGuan.dll)/AES.pas | 317 + 报关管理(BaoGuan.dll)/BaoGuan.cfg | 42 + 报关管理(BaoGuan.dll)/BaoGuan.dof | 138 + 报关管理(BaoGuan.dll)/BaoGuan.dpr | 47 + 报关管理(BaoGuan.dll)/BaoGuan.res | Bin 0 -> 876 bytes 报关管理(BaoGuan.dll)/Desktop.ini | 3 + 报关管理(BaoGuan.dll)/ElAES.pas | 2488 +++ 报关管理(BaoGuan.dll)/FileHelp.ini | 7 + 报关管理(BaoGuan.dll)/ProjectGroup1.bpg | 23 + 报关管理(BaoGuan.dll)/SYSTEMSET.ini | 3 + 报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.dfm | 429 + 报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.pas | 245 + 报关管理(BaoGuan.dll)/U_BaoGuanInPut.dfm | 1321 ++ 报关管理(BaoGuan.dll)/U_BaoGuanInPut.pas | 862 + 报关管理(BaoGuan.dll)/U_BaoGuanList.dfm | 1213 ++ 报关管理(BaoGuan.dll)/U_BaoGuanList.pas | 1269 ++ 报关管理(BaoGuan.dll)/U_BaoGuanListBGD.dfm | 985 + 报关管理(BaoGuan.dll)/U_BaoGuanListBGD.pas | 684 + 报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.dfm | 979 + 报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.pas | 700 + 报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.dfm | 985 + 报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.pas | 684 + 报关管理(BaoGuan.dll)/U_BaoGuanListFP.dfm | 985 + 报关管理(BaoGuan.dll)/U_BaoGuanListFP.pas | 692 + 报关管理(BaoGuan.dll)/U_BaoGuanListHT.dfm | 985 + 报关管理(BaoGuan.dll)/U_BaoGuanListHT.pas | 684 + 报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.dfm | 985 + 报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.pas | 684 + 报关管理(BaoGuan.dll)/U_BaoGuanListZXD.dfm | 985 + 报关管理(BaoGuan.dll)/U_BaoGuanListZXD.pas | 692 + 报关管理(BaoGuan.dll)/U_BaoGuanXSList.dfm | 519 + 报关管理(BaoGuan.dll)/U_BaoGuanXSList.pas | 328 + 报关管理(BaoGuan.dll)/U_DataLink.dfm | 17985 +++++++++++++++ 报关管理(BaoGuan.dll)/U_DataLink.pas | 85 + 报关管理(BaoGuan.dll)/U_FileUp.dfm | 188 + 报关管理(BaoGuan.dll)/U_FileUp.pas | 357 + 报关管理(BaoGuan.dll)/U_FjList.dfm | 172 + 报关管理(BaoGuan.dll)/U_FjList.pas | 436 + 报关管理(BaoGuan.dll)/U_FjList_BG.dfm | 183 + 报关管理(BaoGuan.dll)/U_FjList_BG.pas | 404 + 报关管理(BaoGuan.dll)/U_FjList_RZ.dfm | 183 + 报关管理(BaoGuan.dll)/U_FjList_RZ.pas | 400 + 报关管理(BaoGuan.dll)/U_GYSList.dfm | 536 + 报关管理(BaoGuan.dll)/U_GYSList.pas | 619 + 报关管理(BaoGuan.dll)/U_GYSSelList.dfm | 304 + 报关管理(BaoGuan.dll)/U_GYSSelList.pas | 221 + 报关管理(BaoGuan.dll)/U_GetDllForm.pas | 377 + 报关管理(BaoGuan.dll)/U_RTZDYHelp.dfm | 239 + 报关管理(BaoGuan.dll)/U_RTZDYHelp.pas | 685 + 报关管理(BaoGuan.dll)/U_ZDYHelp.dfm | 320 + 报关管理(BaoGuan.dll)/U_ZDYHelp.pas | 729 + 报关管理(BaoGuan.dll)/U_ZDYHelpSel.dfm | 224 + 报关管理(BaoGuan.dll)/U_ZDYHelpSel.pas | 465 + 报关管理(BaoGuan.dll)/U_iniParam.pas | 64 + 报关管理(BaoGuan.dll)/U_testdll.dfm | 221 + 报关管理(BaoGuan.dll)/U_testdll.pas | 106 + 报关管理(BaoGuan.dll)/consvr.ini | 2 + 报关管理(BaoGuan.dll)/testDll.cfg | 38 + 报关管理(BaoGuan.dll)/testDll.dof | 136 + 报关管理(BaoGuan.dll)/testDll.dpr | 14 + 报关管理(BaoGuan.dll)/testDll.res | Bin 0 -> 876 bytes 报关管理(BaoGuan.dll)/testDllDJ.cfg | 38 + 报关管理(BaoGuan.dll)/testDllDJ.dof | 136 + 报关管理(BaoGuan.dll)/testDllDJ.res | Bin 0 -> 876 bytes 盛纺贸易管理/2323 | 12 + 盛纺贸易管理/AES.pas | 317 + 盛纺贸易管理/ElAES.pas | 2488 +++ 盛纺贸易管理/FX16082.XLS | Bin 0 -> 144 bytes 盛纺贸易管理/FieldExportSet/.INI | 2 + 盛纺贸易管理/FieldExportSet/检验分析订单.INI | 2 + 盛纺贸易管理/FieldExportSet/检验报告.INI | 2 + .../FieldExportSet/生产指示单明细列表.INI | 2 + 盛纺贸易管理/FieldExportSet/采购单列表.INI | 2 + 盛纺贸易管理/File.INI | 7 + 盛纺贸易管理/JZCRS232U.INI | 7 + 盛纺贸易管理/OrderManage.dof | 138 + 盛纺贸易管理/ProjectGroup1.bpg | 23 + 盛纺贸易管理/RCInspection.cfg | 38 + 盛纺贸易管理/RCInspection.dof | 141 + 盛纺贸易管理/RCInspection.res | Bin 0 -> 876 bytes 盛纺贸易管理/SYSTEMSET.ini | 3 + 盛纺贸易管理/TradeManage.cfg | 38 + 盛纺贸易管理/TradeManage.dof | 138 + 盛纺贸易管理/TradeManage.dpr | 101 + 盛纺贸易管理/TradeManage.rar | Bin 0 -> 2184268 bytes 盛纺贸易管理/TradeManage.res | Bin 0 -> 876 bytes 盛纺贸易管理/U.dfm | 202 + 盛纺贸易管理/U.pas | 48 + 盛纺贸易管理/U_BanCpCkSaoM.dfm | 201 + 盛纺贸易管理/U_BanCpCkSaoM.pas | 253 + 盛纺贸易管理/U_BanCpHCSaoM.dfm | 212 + 盛纺贸易管理/U_BanCpHCSaoM.pas | 264 + 盛纺贸易管理/U_BangAdd.dfm | 255 + 盛纺贸易管理/U_BangAdd.pas | 308 + 盛纺贸易管理/U_BefChkHX.dfm | 335 + 盛纺贸易管理/U_BefChkHX.pas | 256 + 盛纺贸易管理/U_CKJYList.dfm | 612 + 盛纺贸易管理/U_CKJYList.pas | 289 + 盛纺贸易管理/U_CKProductBCPHCList.dfm | 390 + 盛纺贸易管理/U_CKProductBCPHCList.pas | 182 + 盛纺贸易管理/U_CKProductBCPInList.dfm | 1036 + 盛纺贸易管理/U_CKProductBCPInList.pas | 2088 ++ 盛纺贸易管理/U_CKProductBCPKC.dfm | 330 + 盛纺贸易管理/U_CKProductBCPKC.pas | 207 + 盛纺贸易管理/U_CKProductBCPKCHZList.dfm | 499 + 盛纺贸易管理/U_CKProductBCPKCHZList.pas | 261 + 盛纺贸易管理/U_CKProductBCPKCList.dfm | 934 + 盛纺贸易管理/U_CKProductBCPKCList.pas | 652 + 盛纺贸易管理/U_CKProductBCPOutList.dfm | 1455 ++ 盛纺贸易管理/U_CKProductBCPOutList.pas | 1943 ++ 盛纺贸易管理/U_CKProductCKHZList.dfm | 620 + 盛纺贸易管理/U_CKProductCKHZList.pas | 290 + 盛纺贸易管理/U_CKProductRKHZList.dfm | 622 + 盛纺贸易管理/U_CKProductRKHZList.pas | 292 + 盛纺贸易管理/U_CKYCLKC.dfm | 345 + 盛纺贸易管理/U_CKYCLKC.pas | 241 + 盛纺贸易管理/U_CPDBAO.dfm | 1696 ++ 盛纺贸易管理/U_CPDBAO.pas | 1232 ++ 盛纺贸易管理/U_CPGangNo.dfm | 1131 + 盛纺贸易管理/U_CPGangNo.pas | 746 + 盛纺贸易管理/U_CPManageFMSel.dfm | 871 + 盛纺贸易管理/U_CPManageFMSel.pas | 634 + 盛纺贸易管理/U_CPManageSel.dfm | 703 + 盛纺贸易管理/U_CPManageSel.pas | 482 + 盛纺贸易管理/U_ClothContractInPut.dfm | 653 + 盛纺贸易管理/U_ClothContractInPut.pas | 760 + 盛纺贸易管理/U_ClothContractInPutHZ.dfm | 645 + 盛纺贸易管理/U_ClothContractInPutHZ.pas | 878 + 盛纺贸易管理/U_ClothContractInPutPB.dfm | 768 + 盛纺贸易管理/U_ClothContractInPutPB.pas | 1031 + 盛纺贸易管理/U_ClothContractInPutSX.dfm | 633 + 盛纺贸易管理/U_ClothContractInPutSX.pas | 854 + 盛纺贸易管理/U_ClothContractInPutSXMX.dfm | 647 + 盛纺贸易管理/U_ClothContractInPutSXMX.pas | 931 + 盛纺贸易管理/U_ClothContractKCList.dfm | 635 + 盛纺贸易管理/U_ClothContractKCList.pas | 202 + 盛纺贸易管理/U_ClothContractList.dfm | 952 + 盛纺贸易管理/U_ClothContractList.pas | 1036 + 盛纺贸易管理/U_ClothContractListDH.dfm | 707 + 盛纺贸易管理/U_ClothContractListDH.pas | 1119 + 盛纺贸易管理/U_ClothContractListDHSX.dfm | 595 + 盛纺贸易管理/U_ClothContractListDHSX.pas | 1022 + 盛纺贸易管理/U_ClothContractListDHSXQJG.dfm | 596 + 盛纺贸易管理/U_ClothContractListDHSXQJG.pas | 1057 + 盛纺贸易管理/U_ClothContractListHZ.dfm | 1137 + 盛纺贸易管理/U_ClothContractListHZ.pas | 1250 ++ 盛纺贸易管理/U_ClothContractListLL.dfm | 771 + 盛纺贸易管理/U_ClothContractListLL.pas | 1214 ++ 盛纺贸易管理/U_ClothContractListLLSX.dfm | 712 + 盛纺贸易管理/U_ClothContractListLLSX.pas | 1045 + 盛纺贸易管理/U_ClothContractListLLSXQJG.dfm | 712 + 盛纺贸易管理/U_ClothContractListLLSXQJG.pas | 1030 + 盛纺贸易管理/U_ClothContractListSX.dfm | 436 + 盛纺贸易管理/U_ClothContractListSX.pas | 375 + 盛纺贸易管理/U_ClothContractListWJG.dfm | 820 + 盛纺贸易管理/U_ClothContractListWJG.pas | 1238 ++ 盛纺贸易管理/U_ClothHCList.dfm | 598 + 盛纺贸易管理/U_ClothHCList.pas | 220 + 盛纺贸易管理/U_ClothPDInfoList.dfm | 363 + 盛纺贸易管理/U_ClothPDInfoList.pas | 169 + 盛纺贸易管理/U_ClothSCListZDSel.dfm | 804 + 盛纺贸易管理/U_ClothSCListZDSel.pas | 880 + 盛纺贸易管理/U_ConInPut.dfm | 1354 ++ 盛纺贸易管理/U_ConInPut.pas | 1696 ++ 盛纺贸易管理/U_ConInPutNX.dfm | 1161 + 盛纺贸易管理/U_ConInPutNX.pas | 1303 ++ 盛纺贸易管理/U_ContractList.dfm | 1463 ++ 盛纺贸易管理/U_ContractList.pas | 1468 ++ 盛纺贸易管理/U_ContractListNX.dfm | 1335 ++ 盛纺贸易管理/U_ContractListNX.pas | 1521 ++ 盛纺贸易管理/U_ContractList_CS.dfm | 466 + 盛纺贸易管理/U_ContractList_CS.pas | 294 + 盛纺贸易管理/U_ContractList_NX.dfm | 1129 + 盛纺贸易管理/U_ContractList_NX.pas | 1021 + 盛纺贸易管理/U_ContractSelList.dfm | 450 + 盛纺贸易管理/U_ContractSelList.pas | 228 + 盛纺贸易管理/U_Contract_Main.dfm | 546 + 盛纺贸易管理/U_Contract_Main.pas | 530 + 盛纺贸易管理/U_Contract_Sub.dfm | 595 + 盛纺贸易管理/U_Contract_Sub.pas | 922 + 盛纺贸易管理/U_CpCkSaoMNew.dfm | 460 + 盛纺贸易管理/U_CpCkSaoMNew.pas | 450 + 盛纺贸易管理/U_CpCkSaoMNewSel.dfm | 843 + 盛纺贸易管理/U_CpCkSaoMNewSel.pas | 1810 ++ 盛纺贸易管理/U_CpRkSaoMNew.dfm | 1127 + 盛纺贸易管理/U_CpRkSaoMNew.pas | 2092 ++ 盛纺贸易管理/U_CpRkSaoMNewCS.dfm | 1114 + 盛纺贸易管理/U_CpRkSaoMNewCS.pas | 2137 ++ 盛纺贸易管理/U_CpRkSaoMNewDB.dfm | 710 + 盛纺贸易管理/U_CpRkSaoMNewDB.pas | 940 + 盛纺贸易管理/U_CustModelLabel.dfm | 264 + 盛纺贸易管理/U_CustModelLabel.pas | 245 + 盛纺贸易管理/U_DJBCKKCList_HTSH.dfm | 528 + 盛纺贸易管理/U_DJBCKKCList_HTSH.pas | 229 + 盛纺贸易管理/U_DJBRKList_CX.dfm | 590 + 盛纺贸易管理/U_DJBRKList_CX.pas | 229 + 盛纺贸易管理/U_DataLink.dfm | 17988 +++++++++++++++ 盛纺贸易管理/U_DataLink.pas | 89 + 盛纺贸易管理/U_FZCInPut.dfm | 318 + 盛纺贸易管理/U_FZCInPut.pas | 312 + 盛纺贸易管理/U_FZCMain.dfm | 531 + 盛纺贸易管理/U_FZCMain.pas | 281 + 盛纺贸易管理/U_FZCMain_cx.dfm | 542 + 盛纺贸易管理/U_FZCMain_cx.pas | 265 + 盛纺贸易管理/U_FanYangList.dfm | 899 + 盛纺贸易管理/U_FanYangList.pas | 447 + 盛纺贸易管理/U_FanYangListHZ.dfm | 920 + 盛纺贸易管理/U_FanYangListHZ.pas | 399 + 盛纺贸易管理/U_FanYangList_Sub.dfm | 1119 + 盛纺贸易管理/U_FanYangList_Sub.pas | 887 + 盛纺贸易管理/U_FileUp.dfm | 188 + 盛纺贸易管理/U_FileUp.pas | 344 + 盛纺贸易管理/U_FjList_RZ.dfm | 183 + 盛纺贸易管理/U_FjList_RZ.pas | 380 + 盛纺贸易管理/U_FrmProduct_CX.dfm | 539 + 盛纺贸易管理/U_FrmProduct_CX.pas | 272 + 盛纺贸易管理/U_GYSList.dfm | 347 + 盛纺贸易管理/U_GYSList.pas | 159 + 盛纺贸易管理/U_GYSOrderCX.dfm | 512 + 盛纺贸易管理/U_GYSOrderCX.pas | 304 + 盛纺贸易管理/U_GetDllForm.pas | 683 + 盛纺贸易管理/U_GetPGJBInList.dfm | 400 + 盛纺贸易管理/U_GetPGJBInList.pas | 268 + 盛纺贸易管理/U_GetPGJBOneTwoInList.dfm | 412 + 盛纺贸易管理/U_GetPGJBOneTwoInList.pas | 270 + 盛纺贸易管理/U_HCList.dfm | 724 + 盛纺贸易管理/U_HCList.pas | 279 + 盛纺贸易管理/U_HuiruhGPIjiluCX.dfm | 464 + 盛纺贸易管理/U_HuiruhGPIjiluCX.pas | 332 + 盛纺贸易管理/U_HuiruhuikuanCX.dfm | 458 + 盛纺贸易管理/U_HuiruhuikuanCX.pas | 251 + 盛纺贸易管理/U_JBData.dfm | 265 + 盛纺贸易管理/U_JBData.pas | 260 + 盛纺贸易管理/U_JYMJIDPRINT.dfm | 135 + 盛纺贸易管理/U_JYMJIDPRINT.pas | 339 + 盛纺贸易管理/U_JYOrderCDMore.dfm | 612 + 盛纺贸易管理/U_JYOrderCDMore.pas | 362 + 盛纺贸易管理/U_JYOrderCDOne.dfm | 1880 ++ 盛纺贸易管理/U_JYOrderCDOne.pas | 3439 +++ 盛纺贸易管理/U_JYOrderCDOne_GDYJCX.dfm | 800 + 盛纺贸易管理/U_JYOrderCDOne_GDYJCX.pas | 919 + 盛纺贸易管理/U_JYOrderCDOne_HZCX.dfm | 1378 ++ 盛纺贸易管理/U_JYOrderCDOne_HZCX.pas | 1321 ++ 盛纺贸易管理/U_JYOrderCDOne_LR.dfm | 245 + 盛纺贸易管理/U_JYOrderCDOne_LR.pas | 356 + 盛纺贸易管理/U_JYOrderZJList.dfm | 516 + 盛纺贸易管理/U_JYOrderZJList.pas | 548 + 盛纺贸易管理/U_JYResult.dfm | 527 + 盛纺贸易管理/U_JYResult.pas | 480 + 盛纺贸易管理/U_JiangLiaoSet.dfm | 968 + 盛纺贸易管理/U_JiangLiaoSet.pas | 1182 + 盛纺贸易管理/U_KHDYInPut.dfm | 528 + 盛纺贸易管理/U_KHDYInPut.pas | 439 + 盛纺贸易管理/U_KHDYList.dfm | 670 + 盛纺贸易管理/U_KHDYList.pas | 532 + 盛纺贸易管理/U_KHTopList.dfm | 604 + 盛纺贸易管理/U_KHTopList.pas | 255 + 盛纺贸易管理/U_LabelAdd.dfm | 284 + 盛纺贸易管理/U_LabelAdd.pas | 458 + 盛纺贸易管理/U_LabelPrint.dfm | 122 + 盛纺贸易管理/U_LabelPrint.pas | 143 + 盛纺贸易管理/U_MJEdit.dfm | 511 + 盛纺贸易管理/U_MJEdit.pas | 814 + 盛纺贸易管理/U_MJManage.dfm | 1192 + 盛纺贸易管理/U_MJManage.pas | 1086 + 盛纺贸易管理/U_MJManageNew.dfm | 1922 ++ 盛纺贸易管理/U_MJManageNew.pas | 1621 ++ 盛纺贸易管理/U_MJManageNewFD1.dfm | 2054 ++ 盛纺贸易管理/U_MJManageNewFD1.pas | 1450 ++ 盛纺贸易管理/U_MJManageNewFDNew.dfm | 3020 +++ 盛纺贸易管理/U_MJManageNewFDNew.pas | 3135 +++ 盛纺贸易管理/U_MJManageNewFDNew1.dfm | 1967 ++ 盛纺贸易管理/U_MJManageNewFDNew1.pas | 1532 ++ 盛纺贸易管理/U_ModulePromptList.dfm | 179 + 盛纺贸易管理/U_ModulePromptList.pas | 223 + 盛纺贸易管理/U_OrderAttachment.dfm | 666 + 盛纺贸易管理/U_OrderAttachment.pas | 543 + 盛纺贸易管理/U_OrderInPut.dfm | 1589 ++ 盛纺贸易管理/U_OrderInPut.pas | 1290 ++ 盛纺贸易管理/U_OrderInPutJZC.dfm | 727 + 盛纺贸易管理/U_OrderInPutJZC.pas | 1090 + 盛纺贸易管理/U_OrderInPutNew.dfm | 2155 ++ 盛纺贸易管理/U_OrderInPutNew.pas | 2945 +++ 盛纺贸易管理/U_OrderInPutPrice.dfm | 1473 ++ 盛纺贸易管理/U_OrderInPutPrice.pas | 1800 ++ 盛纺贸易管理/U_OrderInPutZP.dfm | 1788 ++ 盛纺贸易管理/U_OrderInPutZP.pas | 1849 ++ 盛纺贸易管理/U_OrderInPutZPLNew.dfm | 2224 ++ 盛纺贸易管理/U_OrderInPutZPLNew.pas | 3706 ++++ 盛纺贸易管理/U_OrderInPutZPNew.dfm | 1711 ++ 盛纺贸易管理/U_OrderInPutZPNew.pas | 1984 ++ 盛纺贸易管理/U_OrderInPut_CY.dfm | 1004 + 盛纺贸易管理/U_OrderInPut_CY.pas | 1143 + 盛纺贸易管理/U_OrderInPut_FB.dfm | 1093 + 盛纺贸易管理/U_OrderInPut_FB.pas | 1445 ++ 盛纺贸易管理/U_OrderInPut_HYWT.dfm | 533 + 盛纺贸易管理/U_OrderInPut_HYWT.pas | 363 + 盛纺贸易管理/U_OrderJD.dfm | 636 + 盛纺贸易管理/U_OrderJD.pas | 172 + 盛纺贸易管理/U_OrderJDList.dfm | 562 + 盛纺贸易管理/U_OrderJDList.pas | 446 + 盛纺贸易管理/U_OrderSel.dfm | 369 + 盛纺贸易管理/U_OrderSel.pas | 263 + 盛纺贸易管理/U_OrderSelRK.dfm | 374 + 盛纺贸易管理/U_OrderSelRK.pas | 250 + 盛纺贸易管理/U_OrderStatus.dfm | 593 + 盛纺贸易管理/U_OrderStatus.pas | 306 + 盛纺贸易管理/U_OrderSubFH.dfm | 496 + 盛纺贸易管理/U_OrderSubFH.pas | 516 + 盛纺贸易管理/U_OrderSubKC.dfm | 377 + 盛纺贸易管理/U_OrderSubKC.pas | 245 + 盛纺贸易管理/U_OrderSubSel.dfm | 510 + 盛纺贸易管理/U_OrderSubSel.pas | 307 + 盛纺贸易管理/U_ProductOrderAnPai.dfm | 956 + 盛纺贸易管理/U_ProductOrderAnPai.pas | 2355 ++ 盛纺贸易管理/U_ProductOrderAnPaiGQX.dfm | 970 + 盛纺贸易管理/U_ProductOrderAnPaiGQX.pas | 2138 ++ 盛纺贸易管理/U_ProductOrderLBNameSet.dfm | 699 + 盛纺贸易管理/U_ProductOrderLBNameSet.pas | 927 + 盛纺贸易管理/U_ProductOrderLBNameSet11.dfm | 579 + 盛纺贸易管理/U_ProductOrderLBNameSet11.pas | 865 + 盛纺贸易管理/U_ProductOrderLBNameSetFZ.dfm | 671 + 盛纺贸易管理/U_ProductOrderLBNameSetFZ.pas | 679 + 盛纺贸易管理/U_ProductOrderList.dfm | 745 + 盛纺贸易管理/U_ProductOrderList.pas | 657 + 盛纺贸易管理/U_ProductOrderListNew.dfm | 1344 ++ 盛纺贸易管理/U_ProductOrderListNew.pas | 1041 + 盛纺贸易管理/U_ProductOrderListNewCK.dfm | 1300 ++ 盛纺贸易管理/U_ProductOrderListNewCK.pas | 1012 + 盛纺贸易管理/U_ProductOrderListNewCKMX.dfm | 938 + 盛纺贸易管理/U_ProductOrderListNewCKMX.pas | 314 + 盛纺贸易管理/U_ProductOrderListSel.dfm | 338 + 盛纺贸易管理/U_ProductOrderListSel.pas | 177 + 盛纺贸易管理/U_ProductOrderListSel_cx.dfm | 345 + 盛纺贸易管理/U_ProductOrderListSel_cx.pas | 178 + 盛纺贸易管理/U_ProductOrderNewList.dfm | 912 + 盛纺贸易管理/U_ProductOrderNewList.pas | 964 + 盛纺贸易管理/U_ProductOrderNewListSubZD.dfm | 677 + 盛纺贸易管理/U_ProductOrderNewListSubZD.pas | 681 + 盛纺贸易管理/U_ProductOrderNewList_CY.dfm | 981 + 盛纺贸易管理/U_ProductOrderNewList_CY.pas | 846 + 盛纺贸易管理/U_ProductOrderNewList_CY_Sel.dfm | 987 + 盛纺贸易管理/U_ProductOrderNewList_CY_Sel.pas | 846 + 盛纺贸易管理/U_ProductOrderNewList_FB.dfm | 1030 + 盛纺贸易管理/U_ProductOrderNewList_FB.pas | 1022 + 盛纺贸易管理/U_ProductOrderNewList_JD.dfm | 1369 ++ 盛纺贸易管理/U_ProductOrderNewList_JD.pas | 423 + 盛纺贸易管理/U_ProductOrderSel.dfm | 350 + 盛纺贸易管理/U_ProductOrderSel.pas | 494 + 盛纺贸易管理/U_ProductOrder_CX.dfm | 517 + 盛纺贸易管理/U_ProductOrder_CX.pas | 212 + 盛纺贸易管理/U_ProductionAnPai.dfm | 656 + 盛纺贸易管理/U_ProductionAnPai.pas | 666 + 盛纺贸易管理/U_ProductionAnPaiNew.dfm | 934 + 盛纺贸易管理/U_ProductionAnPaiNew.pas | 1006 + 盛纺贸易管理/U_SCGYSet.dfm | 1297 ++ 盛纺贸易管理/U_SCGYSet.pas | 1014 + 盛纺贸易管理/U_SKCR_CX.dfm | 553 + 盛纺贸易管理/U_SKCR_CX.pas | 1045 + 盛纺贸易管理/U_SLT.dfm | 36 + 盛纺贸易管理/U_SLT.pas | 84 + 盛纺贸易管理/U_SMLB.dfm | 1423 ++ 盛纺贸易管理/U_SMLB.pas | 1025 + 盛纺贸易管理/U_SXCKNewList_CX.dfm | 555 + 盛纺贸易管理/U_SXCKNewList_CX.pas | 224 + 盛纺贸易管理/U_SXCKOutList_CX.dfm | 694 + 盛纺贸易管理/U_SXCKOutList_CX.pas | 242 + 盛纺贸易管理/U_SetBanZu.dfm | 221 + 盛纺贸易管理/U_SetBanZu.pas | 265 + 盛纺贸易管理/U_StopWorkInPut.dfm | 282 + 盛纺贸易管理/U_StopWorkInPut.pas | 498 + 盛纺贸易管理/U_StopWorkList.dfm | 439 + 盛纺贸易管理/U_StopWorkList.pas | 291 + 盛纺贸易管理/U_XHInPut.dfm | 346 + 盛纺贸易管理/U_XHInPut.pas | 403 + 盛纺贸易管理/U_XHList.dfm | 841 + 盛纺贸易管理/U_XHList.pas | 655 + 盛纺贸易管理/U_XHList_ceshi1.dfm | 742 + 盛纺贸易管理/U_XHList_ceshi1.pas | 263 + 盛纺贸易管理/U_ZDYHelp_XMZDY.dfm | 18097 ++++++++++++++++ 盛纺贸易管理/U_ZJInPut.dfm | 311 + 盛纺贸易管理/U_ZJInPut.pas | 245 + 盛纺贸易管理/U_ZJManage.dfm | 2093 ++ 盛纺贸易管理/U_ZJManage.pas | 391 + 盛纺贸易管理/U_ZJManageNew.dfm | 2690 +++ 盛纺贸易管理/U_ZJManageNew.pas | 1525 ++ 盛纺贸易管理/U_ZJManageNewFD.dfm | 2690 +++ 盛纺贸易管理/U_ZJManageNewFD.pas | 1530 ++ 盛纺贸易管理/U_ZJManageNewFDMORE.dfm | 2804 +++ 盛纺贸易管理/U_ZJManageNewFDMORE.pas | 2026 ++ 盛纺贸易管理/U_ZdyAttachGYS.dfm | 380 + 盛纺贸易管理/U_ZdyAttachGYS.pas | 222 + 盛纺贸易管理/U_ZdyAttachment.dfm | 359 + 盛纺贸易管理/U_ZdyAttachment.pas | 180 + 盛纺贸易管理/U_iniParam.pas | 73 + 盛纺贸易管理/U_orderInPut_HYWT_Sub.dfm | 906 + 盛纺贸易管理/U_orderInPut_HYWT_Sub.pas | 714 + 盛纺贸易管理/U_testdll.dfm | 221 + 盛纺贸易管理/U_testdll.pas | 106 + 盛纺贸易管理/WFBOrder.cfg | 42 + 盛纺贸易管理/WFBOrder.dof | 138 + 盛纺贸易管理/WFBOrder.res | Bin 0 -> 876 bytes 盛纺贸易管理/WFBProduction.cfg | 38 + 盛纺贸易管理/WFBProduction.dof | 141 + 盛纺贸易管理/WFBProduction.res | Bin 0 -> 876 bytes 盛纺贸易管理/superobject.pas | 7502 +++++++ 盛纺贸易管理/testDll.cfg | 38 + 盛纺贸易管理/testDll.dof | 136 + 盛纺贸易管理/testDll.dpr | 14 + 盛纺贸易管理/testDll.res | Bin 0 -> 876 bytes 盛纺贸易管理/uJSONDB.pas | 236 + 412 files changed, 341838 insertions(+) create mode 100644 .gitignore create mode 100644 报关管理(BaoGuan.dll)/AES.pas create mode 100644 报关管理(BaoGuan.dll)/BaoGuan.cfg create mode 100644 报关管理(BaoGuan.dll)/BaoGuan.dof create mode 100644 报关管理(BaoGuan.dll)/BaoGuan.dpr create mode 100644 报关管理(BaoGuan.dll)/BaoGuan.res create mode 100644 报关管理(BaoGuan.dll)/Desktop.ini create mode 100644 报关管理(BaoGuan.dll)/ElAES.pas create mode 100644 报关管理(BaoGuan.dll)/FileHelp.ini create mode 100644 报关管理(BaoGuan.dll)/ProjectGroup1.bpg create mode 100644 报关管理(BaoGuan.dll)/SYSTEMSET.ini create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanInPut.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanInPut.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanList.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanList.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListBGD.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListBGD.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListFP.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListFP.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListHT.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListHT.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListZXD.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanListZXD.pas create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanXSList.dfm create mode 100644 报关管理(BaoGuan.dll)/U_BaoGuanXSList.pas create mode 100644 报关管理(BaoGuan.dll)/U_DataLink.dfm create mode 100644 报关管理(BaoGuan.dll)/U_DataLink.pas create mode 100644 报关管理(BaoGuan.dll)/U_FileUp.dfm create mode 100644 报关管理(BaoGuan.dll)/U_FileUp.pas create mode 100644 报关管理(BaoGuan.dll)/U_FjList.dfm create mode 100644 报关管理(BaoGuan.dll)/U_FjList.pas create mode 100644 报关管理(BaoGuan.dll)/U_FjList_BG.dfm create mode 100644 报关管理(BaoGuan.dll)/U_FjList_BG.pas create mode 100644 报关管理(BaoGuan.dll)/U_FjList_RZ.dfm create mode 100644 报关管理(BaoGuan.dll)/U_FjList_RZ.pas create mode 100644 报关管理(BaoGuan.dll)/U_GYSList.dfm create mode 100644 报关管理(BaoGuan.dll)/U_GYSList.pas create mode 100644 报关管理(BaoGuan.dll)/U_GYSSelList.dfm create mode 100644 报关管理(BaoGuan.dll)/U_GYSSelList.pas create mode 100644 报关管理(BaoGuan.dll)/U_GetDllForm.pas create mode 100644 报关管理(BaoGuan.dll)/U_RTZDYHelp.dfm create mode 100644 报关管理(BaoGuan.dll)/U_RTZDYHelp.pas create mode 100644 报关管理(BaoGuan.dll)/U_ZDYHelp.dfm create mode 100644 报关管理(BaoGuan.dll)/U_ZDYHelp.pas create mode 100644 报关管理(BaoGuan.dll)/U_ZDYHelpSel.dfm create mode 100644 报关管理(BaoGuan.dll)/U_ZDYHelpSel.pas create mode 100644 报关管理(BaoGuan.dll)/U_iniParam.pas create mode 100644 报关管理(BaoGuan.dll)/U_testdll.dfm create mode 100644 报关管理(BaoGuan.dll)/U_testdll.pas create mode 100644 报关管理(BaoGuan.dll)/consvr.ini create mode 100644 报关管理(BaoGuan.dll)/testDll.cfg create mode 100644 报关管理(BaoGuan.dll)/testDll.dof create mode 100644 报关管理(BaoGuan.dll)/testDll.dpr create mode 100644 报关管理(BaoGuan.dll)/testDll.res create mode 100644 报关管理(BaoGuan.dll)/testDllDJ.cfg create mode 100644 报关管理(BaoGuan.dll)/testDllDJ.dof create mode 100644 报关管理(BaoGuan.dll)/testDllDJ.res create mode 100644 盛纺贸易管理/2323 create mode 100644 盛纺贸易管理/AES.pas create mode 100644 盛纺贸易管理/ElAES.pas create mode 100644 盛纺贸易管理/FX16082.XLS create mode 100644 盛纺贸易管理/FieldExportSet/.INI create mode 100644 盛纺贸易管理/FieldExportSet/检验分析订单.INI create mode 100644 盛纺贸易管理/FieldExportSet/检验报告.INI create mode 100644 盛纺贸易管理/FieldExportSet/生产指示单明细列表.INI create mode 100644 盛纺贸易管理/FieldExportSet/采购单列表.INI create mode 100644 盛纺贸易管理/File.INI create mode 100644 盛纺贸易管理/JZCRS232U.INI create mode 100644 盛纺贸易管理/OrderManage.dof create mode 100644 盛纺贸易管理/ProjectGroup1.bpg create mode 100644 盛纺贸易管理/RCInspection.cfg create mode 100644 盛纺贸易管理/RCInspection.dof create mode 100644 盛纺贸易管理/RCInspection.res create mode 100644 盛纺贸易管理/SYSTEMSET.ini create mode 100644 盛纺贸易管理/TradeManage.cfg create mode 100644 盛纺贸易管理/TradeManage.dof create mode 100644 盛纺贸易管理/TradeManage.dpr create mode 100644 盛纺贸易管理/TradeManage.rar create mode 100644 盛纺贸易管理/TradeManage.res create mode 100644 盛纺贸易管理/U.dfm create mode 100644 盛纺贸易管理/U.pas create mode 100644 盛纺贸易管理/U_BanCpCkSaoM.dfm create mode 100644 盛纺贸易管理/U_BanCpCkSaoM.pas create mode 100644 盛纺贸易管理/U_BanCpHCSaoM.dfm create mode 100644 盛纺贸易管理/U_BanCpHCSaoM.pas create mode 100644 盛纺贸易管理/U_BangAdd.dfm create mode 100644 盛纺贸易管理/U_BangAdd.pas create mode 100644 盛纺贸易管理/U_BefChkHX.dfm create mode 100644 盛纺贸易管理/U_BefChkHX.pas create mode 100644 盛纺贸易管理/U_CKJYList.dfm create mode 100644 盛纺贸易管理/U_CKJYList.pas create mode 100644 盛纺贸易管理/U_CKProductBCPHCList.dfm create mode 100644 盛纺贸易管理/U_CKProductBCPHCList.pas create mode 100644 盛纺贸易管理/U_CKProductBCPInList.dfm create mode 100644 盛纺贸易管理/U_CKProductBCPInList.pas create mode 100644 盛纺贸易管理/U_CKProductBCPKC.dfm create mode 100644 盛纺贸易管理/U_CKProductBCPKC.pas create mode 100644 盛纺贸易管理/U_CKProductBCPKCHZList.dfm create mode 100644 盛纺贸易管理/U_CKProductBCPKCHZList.pas create mode 100644 盛纺贸易管理/U_CKProductBCPKCList.dfm create mode 100644 盛纺贸易管理/U_CKProductBCPKCList.pas create mode 100644 盛纺贸易管理/U_CKProductBCPOutList.dfm create mode 100644 盛纺贸易管理/U_CKProductBCPOutList.pas create mode 100644 盛纺贸易管理/U_CKProductCKHZList.dfm create mode 100644 盛纺贸易管理/U_CKProductCKHZList.pas create mode 100644 盛纺贸易管理/U_CKProductRKHZList.dfm create mode 100644 盛纺贸易管理/U_CKProductRKHZList.pas create mode 100644 盛纺贸易管理/U_CKYCLKC.dfm create mode 100644 盛纺贸易管理/U_CKYCLKC.pas create mode 100644 盛纺贸易管理/U_CPDBAO.dfm create mode 100644 盛纺贸易管理/U_CPDBAO.pas create mode 100644 盛纺贸易管理/U_CPGangNo.dfm create mode 100644 盛纺贸易管理/U_CPGangNo.pas create mode 100644 盛纺贸易管理/U_CPManageFMSel.dfm create mode 100644 盛纺贸易管理/U_CPManageFMSel.pas create mode 100644 盛纺贸易管理/U_CPManageSel.dfm create mode 100644 盛纺贸易管理/U_CPManageSel.pas create mode 100644 盛纺贸易管理/U_ClothContractInPut.dfm create mode 100644 盛纺贸易管理/U_ClothContractInPut.pas create mode 100644 盛纺贸易管理/U_ClothContractInPutHZ.dfm create mode 100644 盛纺贸易管理/U_ClothContractInPutHZ.pas create mode 100644 盛纺贸易管理/U_ClothContractInPutPB.dfm create mode 100644 盛纺贸易管理/U_ClothContractInPutPB.pas create mode 100644 盛纺贸易管理/U_ClothContractInPutSX.dfm create mode 100644 盛纺贸易管理/U_ClothContractInPutSX.pas create mode 100644 盛纺贸易管理/U_ClothContractInPutSXMX.dfm create mode 100644 盛纺贸易管理/U_ClothContractInPutSXMX.pas create mode 100644 盛纺贸易管理/U_ClothContractKCList.dfm create mode 100644 盛纺贸易管理/U_ClothContractKCList.pas create mode 100644 盛纺贸易管理/U_ClothContractList.dfm create mode 100644 盛纺贸易管理/U_ClothContractList.pas create mode 100644 盛纺贸易管理/U_ClothContractListDH.dfm create mode 100644 盛纺贸易管理/U_ClothContractListDH.pas create mode 100644 盛纺贸易管理/U_ClothContractListDHSX.dfm create mode 100644 盛纺贸易管理/U_ClothContractListDHSX.pas create mode 100644 盛纺贸易管理/U_ClothContractListDHSXQJG.dfm create mode 100644 盛纺贸易管理/U_ClothContractListDHSXQJG.pas create mode 100644 盛纺贸易管理/U_ClothContractListHZ.dfm create mode 100644 盛纺贸易管理/U_ClothContractListHZ.pas create mode 100644 盛纺贸易管理/U_ClothContractListLL.dfm create mode 100644 盛纺贸易管理/U_ClothContractListLL.pas create mode 100644 盛纺贸易管理/U_ClothContractListLLSX.dfm create mode 100644 盛纺贸易管理/U_ClothContractListLLSX.pas create mode 100644 盛纺贸易管理/U_ClothContractListLLSXQJG.dfm create mode 100644 盛纺贸易管理/U_ClothContractListLLSXQJG.pas create mode 100644 盛纺贸易管理/U_ClothContractListSX.dfm create mode 100644 盛纺贸易管理/U_ClothContractListSX.pas create mode 100644 盛纺贸易管理/U_ClothContractListWJG.dfm create mode 100644 盛纺贸易管理/U_ClothContractListWJG.pas create mode 100644 盛纺贸易管理/U_ClothHCList.dfm create mode 100644 盛纺贸易管理/U_ClothHCList.pas create mode 100644 盛纺贸易管理/U_ClothPDInfoList.dfm create mode 100644 盛纺贸易管理/U_ClothPDInfoList.pas create mode 100644 盛纺贸易管理/U_ClothSCListZDSel.dfm create mode 100644 盛纺贸易管理/U_ClothSCListZDSel.pas create mode 100644 盛纺贸易管理/U_ConInPut.dfm create mode 100644 盛纺贸易管理/U_ConInPut.pas create mode 100644 盛纺贸易管理/U_ConInPutNX.dfm create mode 100644 盛纺贸易管理/U_ConInPutNX.pas create mode 100644 盛纺贸易管理/U_ContractList.dfm create mode 100644 盛纺贸易管理/U_ContractList.pas create mode 100644 盛纺贸易管理/U_ContractListNX.dfm create mode 100644 盛纺贸易管理/U_ContractListNX.pas create mode 100644 盛纺贸易管理/U_ContractList_CS.dfm create mode 100644 盛纺贸易管理/U_ContractList_CS.pas create mode 100644 盛纺贸易管理/U_ContractList_NX.dfm create mode 100644 盛纺贸易管理/U_ContractList_NX.pas create mode 100644 盛纺贸易管理/U_ContractSelList.dfm create mode 100644 盛纺贸易管理/U_ContractSelList.pas create mode 100644 盛纺贸易管理/U_Contract_Main.dfm create mode 100644 盛纺贸易管理/U_Contract_Main.pas create mode 100644 盛纺贸易管理/U_Contract_Sub.dfm create mode 100644 盛纺贸易管理/U_Contract_Sub.pas create mode 100644 盛纺贸易管理/U_CpCkSaoMNew.dfm create mode 100644 盛纺贸易管理/U_CpCkSaoMNew.pas create mode 100644 盛纺贸易管理/U_CpCkSaoMNewSel.dfm create mode 100644 盛纺贸易管理/U_CpCkSaoMNewSel.pas create mode 100644 盛纺贸易管理/U_CpRkSaoMNew.dfm create mode 100644 盛纺贸易管理/U_CpRkSaoMNew.pas create mode 100644 盛纺贸易管理/U_CpRkSaoMNewCS.dfm create mode 100644 盛纺贸易管理/U_CpRkSaoMNewCS.pas create mode 100644 盛纺贸易管理/U_CpRkSaoMNewDB.dfm create mode 100644 盛纺贸易管理/U_CpRkSaoMNewDB.pas create mode 100644 盛纺贸易管理/U_CustModelLabel.dfm create mode 100644 盛纺贸易管理/U_CustModelLabel.pas create mode 100644 盛纺贸易管理/U_DJBCKKCList_HTSH.dfm create mode 100644 盛纺贸易管理/U_DJBCKKCList_HTSH.pas create mode 100644 盛纺贸易管理/U_DJBRKList_CX.dfm create mode 100644 盛纺贸易管理/U_DJBRKList_CX.pas create mode 100644 盛纺贸易管理/U_DataLink.dfm create mode 100644 盛纺贸易管理/U_DataLink.pas create mode 100644 盛纺贸易管理/U_FZCInPut.dfm create mode 100644 盛纺贸易管理/U_FZCInPut.pas create mode 100644 盛纺贸易管理/U_FZCMain.dfm create mode 100644 盛纺贸易管理/U_FZCMain.pas create mode 100644 盛纺贸易管理/U_FZCMain_cx.dfm create mode 100644 盛纺贸易管理/U_FZCMain_cx.pas create mode 100644 盛纺贸易管理/U_FanYangList.dfm create mode 100644 盛纺贸易管理/U_FanYangList.pas create mode 100644 盛纺贸易管理/U_FanYangListHZ.dfm create mode 100644 盛纺贸易管理/U_FanYangListHZ.pas create mode 100644 盛纺贸易管理/U_FanYangList_Sub.dfm create mode 100644 盛纺贸易管理/U_FanYangList_Sub.pas create mode 100644 盛纺贸易管理/U_FileUp.dfm create mode 100644 盛纺贸易管理/U_FileUp.pas create mode 100644 盛纺贸易管理/U_FjList_RZ.dfm create mode 100644 盛纺贸易管理/U_FjList_RZ.pas create mode 100644 盛纺贸易管理/U_FrmProduct_CX.dfm create mode 100644 盛纺贸易管理/U_FrmProduct_CX.pas create mode 100644 盛纺贸易管理/U_GYSList.dfm create mode 100644 盛纺贸易管理/U_GYSList.pas create mode 100644 盛纺贸易管理/U_GYSOrderCX.dfm create mode 100644 盛纺贸易管理/U_GYSOrderCX.pas create mode 100644 盛纺贸易管理/U_GetDllForm.pas create mode 100644 盛纺贸易管理/U_GetPGJBInList.dfm create mode 100644 盛纺贸易管理/U_GetPGJBInList.pas create mode 100644 盛纺贸易管理/U_GetPGJBOneTwoInList.dfm create mode 100644 盛纺贸易管理/U_GetPGJBOneTwoInList.pas create mode 100644 盛纺贸易管理/U_HCList.dfm create mode 100644 盛纺贸易管理/U_HCList.pas create mode 100644 盛纺贸易管理/U_HuiruhGPIjiluCX.dfm create mode 100644 盛纺贸易管理/U_HuiruhGPIjiluCX.pas create mode 100644 盛纺贸易管理/U_HuiruhuikuanCX.dfm create mode 100644 盛纺贸易管理/U_HuiruhuikuanCX.pas create mode 100644 盛纺贸易管理/U_JBData.dfm create mode 100644 盛纺贸易管理/U_JBData.pas create mode 100644 盛纺贸易管理/U_JYMJIDPRINT.dfm create mode 100644 盛纺贸易管理/U_JYMJIDPRINT.pas create mode 100644 盛纺贸易管理/U_JYOrderCDMore.dfm create mode 100644 盛纺贸易管理/U_JYOrderCDMore.pas create mode 100644 盛纺贸易管理/U_JYOrderCDOne.dfm create mode 100644 盛纺贸易管理/U_JYOrderCDOne.pas create mode 100644 盛纺贸易管理/U_JYOrderCDOne_GDYJCX.dfm create mode 100644 盛纺贸易管理/U_JYOrderCDOne_GDYJCX.pas create mode 100644 盛纺贸易管理/U_JYOrderCDOne_HZCX.dfm create mode 100644 盛纺贸易管理/U_JYOrderCDOne_HZCX.pas create mode 100644 盛纺贸易管理/U_JYOrderCDOne_LR.dfm create mode 100644 盛纺贸易管理/U_JYOrderCDOne_LR.pas create mode 100644 盛纺贸易管理/U_JYOrderZJList.dfm create mode 100644 盛纺贸易管理/U_JYOrderZJList.pas create mode 100644 盛纺贸易管理/U_JYResult.dfm create mode 100644 盛纺贸易管理/U_JYResult.pas create mode 100644 盛纺贸易管理/U_JiangLiaoSet.dfm create mode 100644 盛纺贸易管理/U_JiangLiaoSet.pas create mode 100644 盛纺贸易管理/U_KHDYInPut.dfm create mode 100644 盛纺贸易管理/U_KHDYInPut.pas create mode 100644 盛纺贸易管理/U_KHDYList.dfm create mode 100644 盛纺贸易管理/U_KHDYList.pas create mode 100644 盛纺贸易管理/U_KHTopList.dfm create mode 100644 盛纺贸易管理/U_KHTopList.pas create mode 100644 盛纺贸易管理/U_LabelAdd.dfm create mode 100644 盛纺贸易管理/U_LabelAdd.pas create mode 100644 盛纺贸易管理/U_LabelPrint.dfm create mode 100644 盛纺贸易管理/U_LabelPrint.pas create mode 100644 盛纺贸易管理/U_MJEdit.dfm create mode 100644 盛纺贸易管理/U_MJEdit.pas create mode 100644 盛纺贸易管理/U_MJManage.dfm create mode 100644 盛纺贸易管理/U_MJManage.pas create mode 100644 盛纺贸易管理/U_MJManageNew.dfm create mode 100644 盛纺贸易管理/U_MJManageNew.pas create mode 100644 盛纺贸易管理/U_MJManageNewFD1.dfm create mode 100644 盛纺贸易管理/U_MJManageNewFD1.pas create mode 100644 盛纺贸易管理/U_MJManageNewFDNew.dfm create mode 100644 盛纺贸易管理/U_MJManageNewFDNew.pas create mode 100644 盛纺贸易管理/U_MJManageNewFDNew1.dfm create mode 100644 盛纺贸易管理/U_MJManageNewFDNew1.pas create mode 100644 盛纺贸易管理/U_ModulePromptList.dfm create mode 100644 盛纺贸易管理/U_ModulePromptList.pas create mode 100644 盛纺贸易管理/U_OrderAttachment.dfm create mode 100644 盛纺贸易管理/U_OrderAttachment.pas create mode 100644 盛纺贸易管理/U_OrderInPut.dfm create mode 100644 盛纺贸易管理/U_OrderInPut.pas create mode 100644 盛纺贸易管理/U_OrderInPutJZC.dfm create mode 100644 盛纺贸易管理/U_OrderInPutJZC.pas create mode 100644 盛纺贸易管理/U_OrderInPutNew.dfm create mode 100644 盛纺贸易管理/U_OrderInPutNew.pas create mode 100644 盛纺贸易管理/U_OrderInPutPrice.dfm create mode 100644 盛纺贸易管理/U_OrderInPutPrice.pas create mode 100644 盛纺贸易管理/U_OrderInPutZP.dfm create mode 100644 盛纺贸易管理/U_OrderInPutZP.pas create mode 100644 盛纺贸易管理/U_OrderInPutZPLNew.dfm create mode 100644 盛纺贸易管理/U_OrderInPutZPLNew.pas create mode 100644 盛纺贸易管理/U_OrderInPutZPNew.dfm create mode 100644 盛纺贸易管理/U_OrderInPutZPNew.pas create mode 100644 盛纺贸易管理/U_OrderInPut_CY.dfm create mode 100644 盛纺贸易管理/U_OrderInPut_CY.pas create mode 100644 盛纺贸易管理/U_OrderInPut_FB.dfm create mode 100644 盛纺贸易管理/U_OrderInPut_FB.pas create mode 100644 盛纺贸易管理/U_OrderInPut_HYWT.dfm create mode 100644 盛纺贸易管理/U_OrderInPut_HYWT.pas create mode 100644 盛纺贸易管理/U_OrderJD.dfm create mode 100644 盛纺贸易管理/U_OrderJD.pas create mode 100644 盛纺贸易管理/U_OrderJDList.dfm create mode 100644 盛纺贸易管理/U_OrderJDList.pas create mode 100644 盛纺贸易管理/U_OrderSel.dfm create mode 100644 盛纺贸易管理/U_OrderSel.pas create mode 100644 盛纺贸易管理/U_OrderSelRK.dfm create mode 100644 盛纺贸易管理/U_OrderSelRK.pas create mode 100644 盛纺贸易管理/U_OrderStatus.dfm create mode 100644 盛纺贸易管理/U_OrderStatus.pas create mode 100644 盛纺贸易管理/U_OrderSubFH.dfm create mode 100644 盛纺贸易管理/U_OrderSubFH.pas create mode 100644 盛纺贸易管理/U_OrderSubKC.dfm create mode 100644 盛纺贸易管理/U_OrderSubKC.pas create mode 100644 盛纺贸易管理/U_OrderSubSel.dfm create mode 100644 盛纺贸易管理/U_OrderSubSel.pas create mode 100644 盛纺贸易管理/U_ProductOrderAnPai.dfm create mode 100644 盛纺贸易管理/U_ProductOrderAnPai.pas create mode 100644 盛纺贸易管理/U_ProductOrderAnPaiGQX.dfm create mode 100644 盛纺贸易管理/U_ProductOrderAnPaiGQX.pas create mode 100644 盛纺贸易管理/U_ProductOrderLBNameSet.dfm create mode 100644 盛纺贸易管理/U_ProductOrderLBNameSet.pas create mode 100644 盛纺贸易管理/U_ProductOrderLBNameSet11.dfm create mode 100644 盛纺贸易管理/U_ProductOrderLBNameSet11.pas create mode 100644 盛纺贸易管理/U_ProductOrderLBNameSetFZ.dfm create mode 100644 盛纺贸易管理/U_ProductOrderLBNameSetFZ.pas create mode 100644 盛纺贸易管理/U_ProductOrderList.dfm create mode 100644 盛纺贸易管理/U_ProductOrderList.pas create mode 100644 盛纺贸易管理/U_ProductOrderListNew.dfm create mode 100644 盛纺贸易管理/U_ProductOrderListNew.pas create mode 100644 盛纺贸易管理/U_ProductOrderListNewCK.dfm create mode 100644 盛纺贸易管理/U_ProductOrderListNewCK.pas create mode 100644 盛纺贸易管理/U_ProductOrderListNewCKMX.dfm create mode 100644 盛纺贸易管理/U_ProductOrderListNewCKMX.pas create mode 100644 盛纺贸易管理/U_ProductOrderListSel.dfm create mode 100644 盛纺贸易管理/U_ProductOrderListSel.pas create mode 100644 盛纺贸易管理/U_ProductOrderListSel_cx.dfm create mode 100644 盛纺贸易管理/U_ProductOrderListSel_cx.pas create mode 100644 盛纺贸易管理/U_ProductOrderNewList.dfm create mode 100644 盛纺贸易管理/U_ProductOrderNewList.pas create mode 100644 盛纺贸易管理/U_ProductOrderNewListSubZD.dfm create mode 100644 盛纺贸易管理/U_ProductOrderNewListSubZD.pas create mode 100644 盛纺贸易管理/U_ProductOrderNewList_CY.dfm create mode 100644 盛纺贸易管理/U_ProductOrderNewList_CY.pas create mode 100644 盛纺贸易管理/U_ProductOrderNewList_CY_Sel.dfm create mode 100644 盛纺贸易管理/U_ProductOrderNewList_CY_Sel.pas create mode 100644 盛纺贸易管理/U_ProductOrderNewList_FB.dfm create mode 100644 盛纺贸易管理/U_ProductOrderNewList_FB.pas create mode 100644 盛纺贸易管理/U_ProductOrderNewList_JD.dfm create mode 100644 盛纺贸易管理/U_ProductOrderNewList_JD.pas create mode 100644 盛纺贸易管理/U_ProductOrderSel.dfm create mode 100644 盛纺贸易管理/U_ProductOrderSel.pas create mode 100644 盛纺贸易管理/U_ProductOrder_CX.dfm create mode 100644 盛纺贸易管理/U_ProductOrder_CX.pas create mode 100644 盛纺贸易管理/U_ProductionAnPai.dfm create mode 100644 盛纺贸易管理/U_ProductionAnPai.pas create mode 100644 盛纺贸易管理/U_ProductionAnPaiNew.dfm create mode 100644 盛纺贸易管理/U_ProductionAnPaiNew.pas create mode 100644 盛纺贸易管理/U_SCGYSet.dfm create mode 100644 盛纺贸易管理/U_SCGYSet.pas create mode 100644 盛纺贸易管理/U_SKCR_CX.dfm create mode 100644 盛纺贸易管理/U_SKCR_CX.pas create mode 100644 盛纺贸易管理/U_SLT.dfm create mode 100644 盛纺贸易管理/U_SLT.pas create mode 100644 盛纺贸易管理/U_SMLB.dfm create mode 100644 盛纺贸易管理/U_SMLB.pas create mode 100644 盛纺贸易管理/U_SXCKNewList_CX.dfm create mode 100644 盛纺贸易管理/U_SXCKNewList_CX.pas create mode 100644 盛纺贸易管理/U_SXCKOutList_CX.dfm create mode 100644 盛纺贸易管理/U_SXCKOutList_CX.pas create mode 100644 盛纺贸易管理/U_SetBanZu.dfm create mode 100644 盛纺贸易管理/U_SetBanZu.pas create mode 100644 盛纺贸易管理/U_StopWorkInPut.dfm create mode 100644 盛纺贸易管理/U_StopWorkInPut.pas create mode 100644 盛纺贸易管理/U_StopWorkList.dfm create mode 100644 盛纺贸易管理/U_StopWorkList.pas create mode 100644 盛纺贸易管理/U_XHInPut.dfm create mode 100644 盛纺贸易管理/U_XHInPut.pas create mode 100644 盛纺贸易管理/U_XHList.dfm create mode 100644 盛纺贸易管理/U_XHList.pas create mode 100644 盛纺贸易管理/U_XHList_ceshi1.dfm create mode 100644 盛纺贸易管理/U_XHList_ceshi1.pas create mode 100644 盛纺贸易管理/U_ZDYHelp_XMZDY.dfm create mode 100644 盛纺贸易管理/U_ZJInPut.dfm create mode 100644 盛纺贸易管理/U_ZJInPut.pas create mode 100644 盛纺贸易管理/U_ZJManage.dfm create mode 100644 盛纺贸易管理/U_ZJManage.pas create mode 100644 盛纺贸易管理/U_ZJManageNew.dfm create mode 100644 盛纺贸易管理/U_ZJManageNew.pas create mode 100644 盛纺贸易管理/U_ZJManageNewFD.dfm create mode 100644 盛纺贸易管理/U_ZJManageNewFD.pas create mode 100644 盛纺贸易管理/U_ZJManageNewFDMORE.dfm create mode 100644 盛纺贸易管理/U_ZJManageNewFDMORE.pas create mode 100644 盛纺贸易管理/U_ZdyAttachGYS.dfm create mode 100644 盛纺贸易管理/U_ZdyAttachGYS.pas create mode 100644 盛纺贸易管理/U_ZdyAttachment.dfm create mode 100644 盛纺贸易管理/U_ZdyAttachment.pas create mode 100644 盛纺贸易管理/U_iniParam.pas create mode 100644 盛纺贸易管理/U_orderInPut_HYWT_Sub.dfm create mode 100644 盛纺贸易管理/U_orderInPut_HYWT_Sub.pas create mode 100644 盛纺贸易管理/U_testdll.dfm create mode 100644 盛纺贸易管理/U_testdll.pas create mode 100644 盛纺贸易管理/WFBOrder.cfg create mode 100644 盛纺贸易管理/WFBOrder.dof create mode 100644 盛纺贸易管理/WFBOrder.res create mode 100644 盛纺贸易管理/WFBProduction.cfg create mode 100644 盛纺贸易管理/WFBProduction.dof create mode 100644 盛纺贸易管理/WFBProduction.res create mode 100644 盛纺贸易管理/superobject.pas create mode 100644 盛纺贸易管理/testDll.cfg create mode 100644 盛纺贸易管理/testDll.dof create mode 100644 盛纺贸易管理/testDll.dpr create mode 100644 盛纺贸易管理/testDll.res create mode 100644 盛纺贸易管理/uJSONDB.pas diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbd176d --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +**/layout +**/report +**/实施文件 +**/image +**/doc +**/wav +**/__history +**/__recovery +*.dll +*.exe +*.ddp +*.dcu +*.~pas +*.~dfm +*.~ddp +*.~dpr \ No newline at end of file diff --git a/报关管理(BaoGuan.dll)/AES.pas b/报关管理(BaoGuan.dll)/AES.pas new file mode 100644 index 0000000..3b8432d --- /dev/null +++ b/报关管理(BaoGuan.dll)/AES.pas @@ -0,0 +1,317 @@ +(**************************************************) + +unit AES; + +interface + +uses + SysUtils, Classes, Math, ElAES; + +type + TKeyBit = (kb128, kb192, kb256); + +function StrToHex(Value: string): string; +function HexToStr(Value: string): string; +function EncryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +function DecryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +function EncryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +function DecryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +procedure EncryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +procedure DecryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); + +implementation + +function StrToHex(Value: string): string; +var + I: Integer; +begin + Result := ''; + for I := 1 to Length(Value) do + Result := Result + IntToHex(Ord(Value[I]), 2); +end; + +function HexToStr(Value: string): string; +var + I: Integer; +begin + Result := ''; + for I := 1 to Length(Value) do + begin + if ((I mod 2) = 1) then + Result := Result + Chr(StrToInt('0x'+ Copy(Value, I, 2))); + end; +end; + +{ -- ַܺ Ĭϰ 128 λܳ׼ -- } +function EncryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +var + SS, DS: TStringStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + Result := ''; + SS := TStringStream.Create(Value); + DS := TStringStream.Create(''); + try + Size := SS.Size; + DS.WriteBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey128, DS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey192, DS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey256, DS); + end; + Result := StrToHex(DS.DataString); + finally + SS.Free; + DS.Free; + end; +end; + +{ -- ַܺ Ĭϰ 128 λܳ׽ -- } +function DecryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +var + SS, DS: TStringStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + Result := ''; + SS := TStringStream.Create(HexToStr(Value)); + DS := TStringStream.Create(''); + try + Size := SS.Size; + SS.ReadBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey128, DS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey192, DS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey256, DS); + end; + Result := DS.DataString; + finally + SS.Free; + DS.Free; + end; +end; + +{ -- ܺ Ĭϰ 128 λܳ׽ -- } +function EncryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +var + Count: Int64; + OutStrm: TStream; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + OutStrm := TStream.Create; + Stream.Position := 0; + Count := Stream.Size; + OutStrm.Write(Count, SizeOf(Count)); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey128, OutStrm); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey192, OutStrm); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey256, OutStrm); + end; + Result := OutStrm; + finally + OutStrm.Free; + end; +end; + +{ -- ܺ Ĭϰ 128 λܳ׽ -- } +function DecryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +var + Count, OutPos: Int64; + OutStrm: TStream; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + OutStrm := TStream.Create; + Stream.Position := 0; + OutPos :=OutStrm.Position; + Stream.ReadBuffer(Count, SizeOf(Count)); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey128, OutStrm); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey192, OutStrm); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey256, OutStrm); + end; + OutStrm.Size := OutPos + Count; + OutStrm.Position := OutPos; + Result := OutStrm; + finally + OutStrm.Free; + end; +end; + +{ -- ļܺ Ĭϰ 128 λܳ׽ -- } +procedure EncryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +var + SFS, DFS: TFileStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + SFS := TFileStream.Create(SourceFile, fmOpenRead); + try + DFS := TFileStream.Create(DestFile, fmCreate); + try + Size := SFS.Size; + DFS.WriteBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey128, DFS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey192, DFS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey256, DFS); + end; + finally + DFS.Free; + end; + finally + SFS.Free; + end; +end; + +{ -- ļܺ Ĭϰ 128 λܳ׽ -- } +procedure DecryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +var + SFS, DFS: TFileStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + SFS := TFileStream.Create(SourceFile, fmOpenRead); + try + SFS.ReadBuffer(Size, SizeOf(Size)); + DFS := TFileStream.Create(DestFile, fmCreate); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey128, DFS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey192, DFS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey256, DFS); + end; + DFS.Size := Size; + finally + DFS.Free; + end; + finally + SFS.Free; + end; +end; +end. diff --git a/报关管理(BaoGuan.dll)/BaoGuan.cfg b/报关管理(BaoGuan.dll)/BaoGuan.cfg new file mode 100644 index 0000000..7876259 --- /dev/null +++ b/报关管理(BaoGuan.dll)/BaoGuan.cfg @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-U"D:\ͨERP" +-O"D:\ͨERP" +-I"D:\ͨERP" +-R"D:\ͨERP" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/报关管理(BaoGuan.dll)/BaoGuan.dof b/报关管理(BaoGuan.dll)/BaoGuan.dof new file mode 100644 index 0000000..a127b62 --- /dev/null +++ b/报关管理(BaoGuan.dll)/BaoGuan.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=D:\ͨERP +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\Ŀ\Ŀ\ʢ\ع(BaoGuan.dll)\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/报关管理(BaoGuan.dll)/BaoGuan.dpr b/报关管理(BaoGuan.dll)/BaoGuan.dpr new file mode 100644 index 0000000..ef9270a --- /dev/null +++ b/报关管理(BaoGuan.dll)/BaoGuan.dpr @@ -0,0 +1,47 @@ +library BaoGuan; + +uses + SysUtils, + classes, + forms, + WinTypes, + WinProcs, + U_GetDllForm in 'U_GetDllForm.pas', + U_DataLink in 'U_DataLink.pas' {DataLink_DDMD: TDataModule}, + U_FjList in 'U_FjList.pas' {frmFjList}, + U_ZDYHelp in 'U_ZDYHelp.pas' {frmZDYHelp}, + U_FjList_RZ in 'U_FjList_RZ.pas' {frmFjList_RZ}, + U_CompressionFun in '..\..\..\ThreeFun\Fun\U_CompressionFun.pas', + U_BaoGuanInPut in 'U_BaoGuanInPut.pas' {frmBaoGuanInPut}, + U_BaoGuanCRKCX in 'U_BaoGuanCRKCX.pas' {frmBaoGuanCRKCX}, + U_Fun10 in '..\..\..\ThreeFun\Fun\U_Fun10.pas', + U_RTFun in '..\..\..\ThreeFun\Fun\U_RTFun.pas'; + + + +{$R *.res} + +procedure DllEnterPoint(dwReason: DWORD); far; stdcall; +begin + DLLProc := @DLLEnterPoint; + DllEnterPoint(DLL_PROCESS_ATTACH); +end; + +procedure DLLUnloadProc(Reason: Integer); register; +begin + {if (Reason = DLL_PROCESS_DETACH) or (Reason=DLL_THREAD_DETACH) then + Application:=NewDllApp; } +end; + +exports + GetDllForm; + +begin + try + NewDllApp := Application; + DLLProc := @DLLUnloadProc; + except + + end; +end. + diff --git a/报关管理(BaoGuan.dll)/BaoGuan.res b/报关管理(BaoGuan.dll)/BaoGuan.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/报关管理(BaoGuan.dll)/Desktop.ini b/报关管理(BaoGuan.dll)/Desktop.ini new file mode 100644 index 0000000..7e19762 --- /dev/null +++ b/报关管理(BaoGuan.dll)/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=C:\Program Files (x86)\360\360WangPan\new_desktop_win7.ico +IconIndex=0 diff --git a/报关管理(BaoGuan.dll)/ElAES.pas b/报关管理(BaoGuan.dll)/ElAES.pas new file mode 100644 index 0000000..7a3e6c8 --- /dev/null +++ b/报关管理(BaoGuan.dll)/ElAES.pas @@ -0,0 +1,2488 @@ +(**************************************************) +(* *) +(* Advanced Encryption Standard (AES) *) +(* *) +(* Copyright (c) 1998-2001 *) +(* EldoS, Alexander Ionov *) +(* *) +(**************************************************) + +unit ElAES; + +interface + +uses + Classes, SysUtils; + +type + EAESError = class(Exception); + + PInteger = ^Integer; + + TAESBuffer = array [0..15] of byte; + TAESKey128 = array [0..15] of byte; + TAESKey192 = array [0..23] of byte; + TAESKey256 = array [0..31] of byte; + TAESExpandedKey128 = array [0..43] of longword; + TAESExpandedKey192 = array [0..53] of longword; + TAESExpandedKey256 = array [0..63] of longword; + + PAESBuffer =^TAESBuffer; + PAESKey128 =^TAESKey128; + PAESKey192 =^TAESKey192; + PAESKey256 =^TAESKey256; + PAESExpandedKey128 =^TAESExpandedKey128; + PAESExpandedKey192 =^TAESExpandedKey192; + PAESExpandedKey256 =^TAESExpandedKey256; + +// Key expansion routines for encryption + +procedure ExpandAESKeyForEncryption(const Key: TAESKey128; + var ExpandedKey: TAESExpandedKey128); overload; +procedure ExpandAESKeyForEncryption(const Key: TAESKey192; + var ExpandedKey: TAESExpandedKey192); overload; +procedure ExpandAESKeyForEncryption(const Key: TAESKey256; + var ExpandedKey: TAESExpandedKey256); overload; + +// Block encryption routines + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); overload; +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); overload; +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); overload; + +// Stream encryption routines (ECB mode) + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); overload; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); overload; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); overload; + +// Stream encryption routines (CBC mode) + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); overload; + +// Key transformation routines for decryption + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey128); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey128; + var ExpandedKey: TAESExpandedKey128); overload; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey192); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey192; + var ExpandedKey: TAESExpandedKey192); overload; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey256); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey256; + var ExpandedKey: TAESExpandedKey256); overload; + +// Block decryption routines + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); overload; +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); overload; +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); overload; + +// Stream decryption routines (ECB mode) + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); overload; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); overload; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); overload; + +// Stream decryption routines (CBC mode) + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); overload; + +resourcestring + SInvalidInBufSize = 'Invalid buffer size for decryption'; + SReadError = 'Stream read error'; + SWriteError = 'Stream write error'; + +implementation + +type + PLongWord = ^LongWord; + +function Min(A, B: integer): integer; +begin + if A < B then + Result := A + else + Result := B; +end; + +const + Rcon: array [1..30] of longword = ( + $00000001, $00000002, $00000004, $00000008, $00000010, $00000020, + $00000040, $00000080, $0000001B, $00000036, $0000006C, $000000D8, + $000000AB, $0000004D, $0000009A, $0000002F, $0000005E, $000000BC, + $00000063, $000000C6, $00000097, $00000035, $0000006A, $000000D4, + $000000B3, $0000007D, $000000FA, $000000EF, $000000C5, $00000091 + ); + + ForwardTable: array [0..255] of longword = ( + $A56363C6, $847C7CF8, $997777EE, $8D7B7BF6, $0DF2F2FF, $BD6B6BD6, $B16F6FDE, $54C5C591, + $50303060, $03010102, $A96767CE, $7D2B2B56, $19FEFEE7, $62D7D7B5, $E6ABAB4D, $9A7676EC, + $45CACA8F, $9D82821F, $40C9C989, $877D7DFA, $15FAFAEF, $EB5959B2, $C947478E, $0BF0F0FB, + $ECADAD41, $67D4D4B3, $FDA2A25F, $EAAFAF45, $BF9C9C23, $F7A4A453, $967272E4, $5BC0C09B, + $C2B7B775, $1CFDFDE1, $AE93933D, $6A26264C, $5A36366C, $413F3F7E, $02F7F7F5, $4FCCCC83, + $5C343468, $F4A5A551, $34E5E5D1, $08F1F1F9, $937171E2, $73D8D8AB, $53313162, $3F15152A, + $0C040408, $52C7C795, $65232346, $5EC3C39D, $28181830, $A1969637, $0F05050A, $B59A9A2F, + $0907070E, $36121224, $9B80801B, $3DE2E2DF, $26EBEBCD, $6927274E, $CDB2B27F, $9F7575EA, + $1B090912, $9E83831D, $742C2C58, $2E1A1A34, $2D1B1B36, $B26E6EDC, $EE5A5AB4, $FBA0A05B, + $F65252A4, $4D3B3B76, $61D6D6B7, $CEB3B37D, $7B292952, $3EE3E3DD, $712F2F5E, $97848413, + $F55353A6, $68D1D1B9, $00000000, $2CEDEDC1, $60202040, $1FFCFCE3, $C8B1B179, $ED5B5BB6, + $BE6A6AD4, $46CBCB8D, $D9BEBE67, $4B393972, $DE4A4A94, $D44C4C98, $E85858B0, $4ACFCF85, + $6BD0D0BB, $2AEFEFC5, $E5AAAA4F, $16FBFBED, $C5434386, $D74D4D9A, $55333366, $94858511, + $CF45458A, $10F9F9E9, $06020204, $817F7FFE, $F05050A0, $443C3C78, $BA9F9F25, $E3A8A84B, + $F35151A2, $FEA3A35D, $C0404080, $8A8F8F05, $AD92923F, $BC9D9D21, $48383870, $04F5F5F1, + $DFBCBC63, $C1B6B677, $75DADAAF, $63212142, $30101020, $1AFFFFE5, $0EF3F3FD, $6DD2D2BF, + $4CCDCD81, $140C0C18, $35131326, $2FECECC3, $E15F5FBE, $A2979735, $CC444488, $3917172E, + $57C4C493, $F2A7A755, $827E7EFC, $473D3D7A, $AC6464C8, $E75D5DBA, $2B191932, $957373E6, + $A06060C0, $98818119, $D14F4F9E, $7FDCDCA3, $66222244, $7E2A2A54, $AB90903B, $8388880B, + $CA46468C, $29EEEEC7, $D3B8B86B, $3C141428, $79DEDEA7, $E25E5EBC, $1D0B0B16, $76DBDBAD, + $3BE0E0DB, $56323264, $4E3A3A74, $1E0A0A14, $DB494992, $0A06060C, $6C242448, $E45C5CB8, + $5DC2C29F, $6ED3D3BD, $EFACAC43, $A66262C4, $A8919139, $A4959531, $37E4E4D3, $8B7979F2, + $32E7E7D5, $43C8C88B, $5937376E, $B76D6DDA, $8C8D8D01, $64D5D5B1, $D24E4E9C, $E0A9A949, + $B46C6CD8, $FA5656AC, $07F4F4F3, $25EAEACF, $AF6565CA, $8E7A7AF4, $E9AEAE47, $18080810, + $D5BABA6F, $887878F0, $6F25254A, $722E2E5C, $241C1C38, $F1A6A657, $C7B4B473, $51C6C697, + $23E8E8CB, $7CDDDDA1, $9C7474E8, $211F1F3E, $DD4B4B96, $DCBDBD61, $868B8B0D, $858A8A0F, + $907070E0, $423E3E7C, $C4B5B571, $AA6666CC, $D8484890, $05030306, $01F6F6F7, $120E0E1C, + $A36161C2, $5F35356A, $F95757AE, $D0B9B969, $91868617, $58C1C199, $271D1D3A, $B99E9E27, + $38E1E1D9, $13F8F8EB, $B398982B, $33111122, $BB6969D2, $70D9D9A9, $898E8E07, $A7949433, + $B69B9B2D, $221E1E3C, $92878715, $20E9E9C9, $49CECE87, $FF5555AA, $78282850, $7ADFDFA5, + $8F8C8C03, $F8A1A159, $80898909, $170D0D1A, $DABFBF65, $31E6E6D7, $C6424284, $B86868D0, + $C3414182, $B0999929, $772D2D5A, $110F0F1E, $CBB0B07B, $FC5454A8, $D6BBBB6D, $3A16162C + ); + + LastForwardTable: array [0..255] of longword = ( + $00000063, $0000007C, $00000077, $0000007B, $000000F2, $0000006B, $0000006F, $000000C5, + $00000030, $00000001, $00000067, $0000002B, $000000FE, $000000D7, $000000AB, $00000076, + $000000CA, $00000082, $000000C9, $0000007D, $000000FA, $00000059, $00000047, $000000F0, + $000000AD, $000000D4, $000000A2, $000000AF, $0000009C, $000000A4, $00000072, $000000C0, + $000000B7, $000000FD, $00000093, $00000026, $00000036, $0000003F, $000000F7, $000000CC, + $00000034, $000000A5, $000000E5, $000000F1, $00000071, $000000D8, $00000031, $00000015, + $00000004, $000000C7, $00000023, $000000C3, $00000018, $00000096, $00000005, $0000009A, + $00000007, $00000012, $00000080, $000000E2, $000000EB, $00000027, $000000B2, $00000075, + $00000009, $00000083, $0000002C, $0000001A, $0000001B, $0000006E, $0000005A, $000000A0, + $00000052, $0000003B, $000000D6, $000000B3, $00000029, $000000E3, $0000002F, $00000084, + $00000053, $000000D1, $00000000, $000000ED, $00000020, $000000FC, $000000B1, $0000005B, + $0000006A, $000000CB, $000000BE, $00000039, $0000004A, $0000004C, $00000058, $000000CF, + $000000D0, $000000EF, $000000AA, $000000FB, $00000043, $0000004D, $00000033, $00000085, + $00000045, $000000F9, $00000002, $0000007F, $00000050, $0000003C, $0000009F, $000000A8, + $00000051, $000000A3, $00000040, $0000008F, $00000092, $0000009D, $00000038, $000000F5, + $000000BC, $000000B6, $000000DA, $00000021, $00000010, $000000FF, $000000F3, $000000D2, + $000000CD, $0000000C, $00000013, $000000EC, $0000005F, $00000097, $00000044, $00000017, + $000000C4, $000000A7, $0000007E, $0000003D, $00000064, $0000005D, $00000019, $00000073, + $00000060, $00000081, $0000004F, $000000DC, $00000022, $0000002A, $00000090, $00000088, + $00000046, $000000EE, $000000B8, $00000014, $000000DE, $0000005E, $0000000B, $000000DB, + $000000E0, $00000032, $0000003A, $0000000A, $00000049, $00000006, $00000024, $0000005C, + $000000C2, $000000D3, $000000AC, $00000062, $00000091, $00000095, $000000E4, $00000079, + $000000E7, $000000C8, $00000037, $0000006D, $0000008D, $000000D5, $0000004E, $000000A9, + $0000006C, $00000056, $000000F4, $000000EA, $00000065, $0000007A, $000000AE, $00000008, + $000000BA, $00000078, $00000025, $0000002E, $0000001C, $000000A6, $000000B4, $000000C6, + $000000E8, $000000DD, $00000074, $0000001F, $0000004B, $000000BD, $0000008B, $0000008A, + $00000070, $0000003E, $000000B5, $00000066, $00000048, $00000003, $000000F6, $0000000E, + $00000061, $00000035, $00000057, $000000B9, $00000086, $000000C1, $0000001D, $0000009E, + $000000E1, $000000F8, $00000098, $00000011, $00000069, $000000D9, $0000008E, $00000094, + $0000009B, $0000001E, $00000087, $000000E9, $000000CE, $00000055, $00000028, $000000DF, + $0000008C, $000000A1, $00000089, $0000000D, $000000BF, $000000E6, $00000042, $00000068, + $00000041, $00000099, $0000002D, $0000000F, $000000B0, $00000054, $000000BB, $00000016 + ); + + InverseTable: array [0..255] of longword = ( + $50A7F451, $5365417E, $C3A4171A, $965E273A, $CB6BAB3B, $F1459D1F, $AB58FAAC, $9303E34B, + $55FA3020, $F66D76AD, $9176CC88, $254C02F5, $FCD7E54F, $D7CB2AC5, $80443526, $8FA362B5, + $495AB1DE, $671BBA25, $980EEA45, $E1C0FE5D, $02752FC3, $12F04C81, $A397468D, $C6F9D36B, + $E75F8F03, $959C9215, $EB7A6DBF, $DA595295, $2D83BED4, $D3217458, $2969E049, $44C8C98E, + $6A89C275, $78798EF4, $6B3E5899, $DD71B927, $B64FE1BE, $17AD88F0, $66AC20C9, $B43ACE7D, + $184ADF63, $82311AE5, $60335197, $457F5362, $E07764B1, $84AE6BBB, $1CA081FE, $942B08F9, + $58684870, $19FD458F, $876CDE94, $B7F87B52, $23D373AB, $E2024B72, $578F1FE3, $2AAB5566, + $0728EBB2, $03C2B52F, $9A7BC586, $A50837D3, $F2872830, $B2A5BF23, $BA6A0302, $5C8216ED, + $2B1CCF8A, $92B479A7, $F0F207F3, $A1E2694E, $CDF4DA65, $D5BE0506, $1F6234D1, $8AFEA6C4, + $9D532E34, $A055F3A2, $32E18A05, $75EBF6A4, $39EC830B, $AAEF6040, $069F715E, $51106EBD, + $F98A213E, $3D06DD96, $AE053EDD, $46BDE64D, $B58D5491, $055DC471, $6FD40604, $FF155060, + $24FB9819, $97E9BDD6, $CC434089, $779ED967, $BD42E8B0, $888B8907, $385B19E7, $DBEEC879, + $470A7CA1, $E90F427C, $C91E84F8, $00000000, $83868009, $48ED2B32, $AC70111E, $4E725A6C, + $FBFF0EFD, $5638850F, $1ED5AE3D, $27392D36, $64D90F0A, $21A65C68, $D1545B9B, $3A2E3624, + $B1670A0C, $0FE75793, $D296EEB4, $9E919B1B, $4FC5C080, $A220DC61, $694B775A, $161A121C, + $0ABA93E2, $E52AA0C0, $43E0223C, $1D171B12, $0B0D090E, $ADC78BF2, $B9A8B62D, $C8A91E14, + $8519F157, $4C0775AF, $BBDD99EE, $FD607FA3, $9F2601F7, $BCF5725C, $C53B6644, $347EFB5B, + $7629438B, $DCC623CB, $68FCEDB6, $63F1E4B8, $CADC31D7, $10856342, $40229713, $2011C684, + $7D244A85, $F83DBBD2, $1132F9AE, $6DA129C7, $4B2F9E1D, $F330B2DC, $EC52860D, $D0E3C177, + $6C16B32B, $99B970A9, $FA489411, $2264E947, $C48CFCA8, $1A3FF0A0, $D82C7D56, $EF903322, + $C74E4987, $C1D138D9, $FEA2CA8C, $360BD498, $CF81F5A6, $28DE7AA5, $268EB7DA, $A4BFAD3F, + $E49D3A2C, $0D927850, $9BCC5F6A, $62467E54, $C2138DF6, $E8B8D890, $5EF7392E, $F5AFC382, + $BE805D9F, $7C93D069, $A92DD56F, $B31225CF, $3B99ACC8, $A77D1810, $6E639CE8, $7BBB3BDB, + $097826CD, $F418596E, $01B79AEC, $A89A4F83, $656E95E6, $7EE6FFAA, $08CFBC21, $E6E815EF, + $D99BE7BA, $CE366F4A, $D4099FEA, $D67CB029, $AFB2A431, $31233F2A, $3094A5C6, $C066A235, + $37BC4E74, $A6CA82FC, $B0D090E0, $15D8A733, $4A9804F1, $F7DAEC41, $0E50CD7F, $2FF69117, + $8DD64D76, $4DB0EF43, $544DAACC, $DF0496E4, $E3B5D19E, $1B886A4C, $B81F2CC1, $7F516546, + $04EA5E9D, $5D358C01, $737487FA, $2E410BFB, $5A1D67B3, $52D2DB92, $335610E9, $1347D66D, + $8C61D79A, $7A0CA137, $8E14F859, $893C13EB, $EE27A9CE, $35C961B7, $EDE51CE1, $3CB1477A, + $59DFD29C, $3F73F255, $79CE1418, $BF37C773, $EACDF753, $5BAAFD5F, $146F3DDF, $86DB4478, + $81F3AFCA, $3EC468B9, $2C342438, $5F40A3C2, $72C31D16, $0C25E2BC, $8B493C28, $41950DFF, + $7101A839, $DEB30C08, $9CE4B4D8, $90C15664, $6184CB7B, $70B632D5, $745C6C48, $4257B8D0 + ); + + LastInverseTable: array [0..255] of longword = ( + $00000052, $00000009, $0000006A, $000000D5, $00000030, $00000036, $000000A5, $00000038, + $000000BF, $00000040, $000000A3, $0000009E, $00000081, $000000F3, $000000D7, $000000FB, + $0000007C, $000000E3, $00000039, $00000082, $0000009B, $0000002F, $000000FF, $00000087, + $00000034, $0000008E, $00000043, $00000044, $000000C4, $000000DE, $000000E9, $000000CB, + $00000054, $0000007B, $00000094, $00000032, $000000A6, $000000C2, $00000023, $0000003D, + $000000EE, $0000004C, $00000095, $0000000B, $00000042, $000000FA, $000000C3, $0000004E, + $00000008, $0000002E, $000000A1, $00000066, $00000028, $000000D9, $00000024, $000000B2, + $00000076, $0000005B, $000000A2, $00000049, $0000006D, $0000008B, $000000D1, $00000025, + $00000072, $000000F8, $000000F6, $00000064, $00000086, $00000068, $00000098, $00000016, + $000000D4, $000000A4, $0000005C, $000000CC, $0000005D, $00000065, $000000B6, $00000092, + $0000006C, $00000070, $00000048, $00000050, $000000FD, $000000ED, $000000B9, $000000DA, + $0000005E, $00000015, $00000046, $00000057, $000000A7, $0000008D, $0000009D, $00000084, + $00000090, $000000D8, $000000AB, $00000000, $0000008C, $000000BC, $000000D3, $0000000A, + $000000F7, $000000E4, $00000058, $00000005, $000000B8, $000000B3, $00000045, $00000006, + $000000D0, $0000002C, $0000001E, $0000008F, $000000CA, $0000003F, $0000000F, $00000002, + $000000C1, $000000AF, $000000BD, $00000003, $00000001, $00000013, $0000008A, $0000006B, + $0000003A, $00000091, $00000011, $00000041, $0000004F, $00000067, $000000DC, $000000EA, + $00000097, $000000F2, $000000CF, $000000CE, $000000F0, $000000B4, $000000E6, $00000073, + $00000096, $000000AC, $00000074, $00000022, $000000E7, $000000AD, $00000035, $00000085, + $000000E2, $000000F9, $00000037, $000000E8, $0000001C, $00000075, $000000DF, $0000006E, + $00000047, $000000F1, $0000001A, $00000071, $0000001D, $00000029, $000000C5, $00000089, + $0000006F, $000000B7, $00000062, $0000000E, $000000AA, $00000018, $000000BE, $0000001B, + $000000FC, $00000056, $0000003E, $0000004B, $000000C6, $000000D2, $00000079, $00000020, + $0000009A, $000000DB, $000000C0, $000000FE, $00000078, $000000CD, $0000005A, $000000F4, + $0000001F, $000000DD, $000000A8, $00000033, $00000088, $00000007, $000000C7, $00000031, + $000000B1, $00000012, $00000010, $00000059, $00000027, $00000080, $000000EC, $0000005F, + $00000060, $00000051, $0000007F, $000000A9, $00000019, $000000B5, $0000004A, $0000000D, + $0000002D, $000000E5, $0000007A, $0000009F, $00000093, $000000C9, $0000009C, $000000EF, + $000000A0, $000000E0, $0000003B, $0000004D, $000000AE, $0000002A, $000000F5, $000000B0, + $000000C8, $000000EB, $000000BB, $0000003C, $00000083, $00000053, $00000099, $00000061, + $00000017, $0000002B, $00000004, $0000007E, $000000BA, $00000077, $000000D6, $00000026, + $000000E1, $00000069, $00000014, $00000063, $00000055, $00000021, $0000000C, $0000007D + ); + +procedure ExpandAESKeyForEncryption(const Key: TAESKey128; var ExpandedKey: TAESExpandedKey128); +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 3] shl 24) or (ExpandedKey[I + 3] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 4] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 5] := ExpandedKey[I + 1] xor ExpandedKey[I + 4]; + ExpandedKey[I + 6] := ExpandedKey[I + 2] xor ExpandedKey[I + 5]; + ExpandedKey[I + 7] := ExpandedKey[I + 3] xor ExpandedKey[I + 6]; + Inc(I, 4); + until I >= 40; +end; + +procedure ExpandAESKeyForEncryption(const Key: TAESKey192; var ExpandedKey: TAESExpandedKey192); overload; +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + ExpandedKey[4] := PLongWord(@Key[16])^; + ExpandedKey[5] := PLongWord(@Key[20])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 5] shl 24) or (ExpandedKey[I + 5] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 6] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 7] := ExpandedKey[I + 1] xor ExpandedKey[I + 6]; + ExpandedKey[I + 8] := ExpandedKey[I + 2] xor ExpandedKey[I + 7]; + ExpandedKey[I + 9] := ExpandedKey[I + 3] xor ExpandedKey[I + 8]; + ExpandedKey[I + 10] := ExpandedKey[I + 4] xor ExpandedKey[I + 9]; + ExpandedKey[I + 11] := ExpandedKey[I + 5] xor ExpandedKey[I + 10]; + Inc(I, 6); + until I >= 46; +end; + +procedure ExpandAESKeyForEncryption(const Key: TAESKey256; var ExpandedKey: TAESExpandedKey256); overload; +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + ExpandedKey[4] := PLongWord(@Key[16])^; + ExpandedKey[5] := PLongWord(@Key[20])^; + ExpandedKey[6] := PLongWord(@Key[24])^; + ExpandedKey[7] := PLongWord(@Key[28])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 7] shl 24) or (ExpandedKey[I + 7] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 8] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 9] := ExpandedKey[I + 1] xor ExpandedKey[I + 8]; + ExpandedKey[I + 10] := ExpandedKey[I + 2] xor ExpandedKey[I + 9]; + ExpandedKey[I + 11] := ExpandedKey[I + 3] xor ExpandedKey[I + 10]; + W0 := LastForwardTable[Byte(ExpandedKey[I + 11])]; + W1 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 8)]; + W2 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 16)]; + W3 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 24)]; + ExpandedKey[I + 12] := ExpandedKey[I + 4] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))); + ExpandedKey[I + 13] := ExpandedKey[I + 5] xor ExpandedKey[I + 12]; + ExpandedKey[I + 14] := ExpandedKey[I + 6] xor ExpandedKey[I + 13]; + ExpandedKey[I + 15] := ExpandedKey[I + 7] xor ExpandedKey[I + 14]; + Inc(I, 8); + until I >= 52; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 9 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 11 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 10 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 11 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 13 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 10 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 11 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 12 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // round 13 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[52]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[53]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[54]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[55]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[56]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[57]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[58]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[59]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey128); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 9 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey128; var ExpandedKey: TAESExpandedKey128); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey192); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 11 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey192; var ExpandedKey: TAESExpandedKey192); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey256); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 13 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey256; var ExpandedKey: TAESExpandedKey256); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[40]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[41]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[42]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[43]; + // performing transformations 9 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[48]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[49]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[50]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[51]; + // performing transformations 11 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 10 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 11 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[56]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[57]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[58]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[59]; + // performing transformations 13 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[52]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[53]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[54]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[55]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 10 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 11 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 12 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 13 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +// Stream encryption routines (ECB mode) + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +// Stream decryption routines (ECB mode) + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +// Stream encryption routines (CBC mode) + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +// Stream decryption routines (CBC mode) + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/FileHelp.ini b/报关管理(BaoGuan.dll)/FileHelp.ini new file mode 100644 index 0000000..495119d --- /dev/null +++ b/报关管理(BaoGuan.dll)/FileHelp.ini @@ -0,0 +1,7 @@ +[FILEPATH] +FileClass=YP,AA,BB,HT +YP=D:\YP +AA=D:\AA +BB=D:\BB +HT=D:\HT +OTHER=D:\OTHER diff --git a/报关管理(BaoGuan.dll)/ProjectGroup1.bpg b/报关管理(BaoGuan.dll)/ProjectGroup1.bpg new file mode 100644 index 0000000..7c050f6 --- /dev/null +++ b/报关管理(BaoGuan.dll)/ProjectGroup1.bpg @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = testDll.exe ProductPrice.dll +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + +testDll.exe: testDll.dpr + $(DCC) + +ProductPrice.dll: ProductPrice.dpr + $(DCC) + + diff --git a/报关管理(BaoGuan.dll)/SYSTEMSET.ini b/报关管理(BaoGuan.dll)/SYSTEMSET.ini new file mode 100644 index 0000000..3faae6b --- /dev/null +++ b/报关管理(BaoGuan.dll)/SYSTEMSET.ini @@ -0,0 +1,3 @@ +[SERVER] +ַ=172.168.1.246 +=֯ \ No newline at end of file diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.dfm new file mode 100644 index 0000000..dd93f3b --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.dfm @@ -0,0 +1,429 @@ +object frmBaoGuanCRKCX: TfrmBaoGuanCRKCX + Left = 189 + Top = 135 + Width = 1348 + Height = 635 + Caption = #25253#20851#20986#20837#24211#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1332 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object TPrint: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 4 + OnClick = TPrintClick + end + object ComboBox1: TComboBox + Left = 189 + Top = 5 + Width = 145 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 0 + Items.Strings = ( + #20837#24211#21333 + #20986#24211#21333) + end + object TBExport: TToolButton + Left = 334 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 397 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1332 + Height = 40 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 30 + Top = 13 + Width = 52 + Height = 13 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 182 + Top = 13 + Width = 13 + Height = 13 + Caption = #33267 + end + object Label6: TLabel + Left = 307 + Top = 13 + Width = 72 + Height = 13 + Caption = #20379#24212#21830'/'#23458#25143 + end + object Label8: TLabel + Left = 533 + Top = 13 + Width = 39 + Height = 13 + Caption = #35746#21333#21495 + end + object Label3: TLabel + Left = 724 + Top = 13 + Width = 52 + Height = 13 + Caption = #21830#21697#21517#31216 + end + object Label4: TLabel + Left = 921 + Top = 13 + Width = 26 + Height = 13 + Caption = #35268#26684 + end + object BegDate: TDateTimePicker + Left = 83 + Top = 9 + Width = 95 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 196 + Top = 9 + Width = 96 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object C3BGName: TEdit + Tag = 2 + Left = 775 + Top = 9 + Width = 140 + Height = 21 + TabOrder = 2 + OnChange = A5ConNOChange + end + object A5ConNO: TEdit + Tag = 2 + Left = 573 + Top = 9 + Width = 140 + Height = 21 + CharCase = ecUpperCase + TabOrder = 3 + OnChange = A5ConNOChange + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 381 + Top = 9 + Width = 140 + Height = 21 + TabOrder = 4 + OnChange = A1ChuKouShangChange + end + object YSChenFen: TEdit + Tag = 2 + Left = 948 + Top = 9 + Width = 140 + Height = 21 + TabOrder = 5 + OnChange = A5ConNOChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 73 + Width = 1332 + Height = 522 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1C4BGQty + end + item + Kind = skSum + Column = v1C4BGQty + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + Column = v1A1ChuKouShang + end + item + Kind = skSum + Column = v1C4BGQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_DDMD.Default + object v1A7FPDate: TcxGridDBColumn + Caption = #26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1A1ChuKouShang: TcxGridDBColumn + Caption = #20379#24212#21830'/'#23458#25143 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1A5ConNO: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'A5ConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v1C3BGName: TcxGridDBColumn + Caption = #21830#21697#21517#31216 + DataBinding.FieldName = 'C3BGName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1YSChenFen: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YSChenFen' + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1C5BGUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1C4BGQty: TcxGridDBColumn + Caption = #20837#24211#25968#37327 + DataBinding.FieldName = 'C4BGQty' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v1Column1: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'C4BGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1JC: TcxGridDBColumn + Caption = #32467#23384 + DataBinding.FieldName = 'JC' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column8: TcxGridDBColumn + Caption = #22791#27880 + HeaderAlignmentHorz = taCenter + Width = 114 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 571 + Top = 278 + Width = 235 + Height = 44 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 1000 + Top = 202 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 960 + Top = 202 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1035 + Top = 202 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 360 + Top = 232 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Main + Left = 424 + Top = 232 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 392 + Top = 232 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 488 + Top = 232 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 232 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 232 + object N1: TMenuItem + Caption = #20840#36873 + end + object N2: TMenuItem + Caption = #20840#24323 + end + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.pas b/报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.pas new file mode 100644 index 0000000..f2e54bd --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanCRKCX.pas @@ -0,0 +1,245 @@ +unit U_BaoGuanCRKCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxPC; + +type + TfrmBaoGuanCRKCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + Panel2: TPanel; + Label6: TLabel; + Label8: TLabel; + Label3: TLabel; + C3BGName: TEdit; + A5ConNO: TEdit; + A1ChuKouShang: TEdit; + v1A7FPDate: TcxGridDBColumn; + v1A1ChuKouShang: TcxGridDBColumn; + v1A5ConNO: TcxGridDBColumn; + v1C3BGName: TcxGridDBColumn; + v1YSChenFen: TcxGridDBColumn; + v1C5BGUnit: TcxGridDBColumn; + v1C4BGQty: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + Label4: TLabel; + YSChenFen: TEdit; + v1Column1: TcxGridDBColumn; + v1JC: TcxGridDBColumn; + TPrint: TToolButton; + ComboBox1: TComboBox; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure v2Column1CompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); + procedure TPrintClick(Sender: TObject); + procedure A1ChuKouShangChange(Sender: TObject); + procedure A5ConNOChange(Sender: TObject); + private + procedure InitGrid(); + procedure GetColor(color:TColor); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanCRKCX: TfrmBaoGuanCRKCX; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmBaoGuanCRKCX.FormDestroy(Sender: TObject); +begin + frmBaoGuanCRKCX:=nil; +end; + +procedure TfrmBaoGuanCRKCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanCRKCX.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); +end; + +procedure TfrmBaoGuanCRKCX.InitGrid(); +var + fsj:string; +begin + Panel2.Visible:=True; + Panel2.Refresh; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,JC=cast(0 as decimal(18,2)) from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A7FPDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and A7FPDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally; + ADOQueryMain.EnableControls; + Panel2.Visible:=False; + end; + Panel2.Visible:=False; +end; + +procedure TfrmBaoGuanCRKCX.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanCRKCX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanCRKCX.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('񱨹۱',Tv1,''); + Close; +end; + +procedure TfrmBaoGuanCRKCX.FormShow(Sender: TObject); +begin + ReadCxGrid('񱨹۱',Tv1,''); + //InitGrid(); +end; + +procedure TfrmBaoGuanCRKCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('񱨹۱',cxGrid2); +end; + +procedure TfrmBaoGuanCRKCX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanCRKCX.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmBaoGuanCRKCX.v2Column1CompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); + +var + colIdx0:integer; +begin + colIdx0:= tv1.GetColumnByFieldName('A4FPNO').Index; + if ARow1.Values[colIdx0] = ARow2.Values[colIdx0] then + AAreEqual := True + else + AAreEqual := False; +end; + + +procedure TfrmBaoGuanCRKCX.GetColor(color:TColor); +begin + +end; + +procedure TfrmBaoGuanCRKCX.TPrintClick(Sender: TObject); +var + fPrintFile,fsj:string; +begin + if CDS_Main.IsEmpty then Exit; + if ComboBox1.Text='ⵥ' then + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\񱨹ⵥ.rmf'; + if ComboBox1.Text='ⵥ' then + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\񱨹سⵥ.rmf'; + if FileExists(fPrintFile) then + begin + //RMVariables['TaiTou']:=cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\񱨹ⵥ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanCRKCX.A1ChuKouShangChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanCRKCX.A5ConNOChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanInPut.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanInPut.dfm new file mode 100644 index 0000000..9a9ed22 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanInPut.dfm @@ -0,0 +1,1321 @@ +object frmBaoGuanInPut: TfrmBaoGuanInPut + Left = -8 + Top = -8 + Width = 1382 + Height = 754 + Align = alClient + Caption = #25253#20851#36164#26009#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 15 + OnClick = TBSaveClick + end + object TCXLJ: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #37325#26032#36830#25509 + ImageIndex = 22 + OnClick = TCXLJClick + end + object ToolButton4: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #26368#22823#21457#31080#21495 + ImageIndex = 64 + OnClick = ToolButton4Click + end + object Panel2: TPanel + Left = 249 + Top = 0 + Width = 182 + Height = 30 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object ComboBox1: TComboBox + Left = 2 + Top = 1 + Width = 178 + Height = 27 + DropDownCount = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemHeight = 19 + ParentFont = False + TabOrder = 0 + end + end + object TBClose: TToolButton + Left = 431 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 308 + Width = 1366 + Height = 408 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource3 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + Column = v1Column4 + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + Column = v1Column11 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column21: TcxGridDBColumn + Tag = 2 + Caption = #24207#21495 + DataBinding.FieldName = 'XHInt' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 39 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 108 + end + object v1Column20: TcxGridDBColumn + Tag = 2 + Caption = #33521#25991#21697#21517 + DataBinding.FieldName = 'C3BGNameEng' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 108 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column14PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 109 + end + object v1Column13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.ImmediatePost = True + Properties.Items.Strings = ( + #26797#32455 + #38024#32455 + #32463#32534 + #21050#32483 + #38024#32455#32463#32534) + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 71 + end + object v1Column18: TcxGridDBColumn + Tag = 2 + Caption = #26579#25972#26041#24335 + DataBinding.FieldName = 'YSRanZhengType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.ImmediatePost = True + Properties.Items.Strings = ( + #26579#33394 + #21360#33457 + #33394#32455 + #28418#30333 + #26410#28418#30333) + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 72 + end + object v1Column15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 65 + end + object v1Column16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column16PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 74 + end + object v1Column17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column17PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 102 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 100 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 51 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 42 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 70 + end + object v1Column4: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 72 + end + object v1Column6: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 61 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'BALES' + 'ROLLS' + 'CTNS') + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 59 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 67 + end + object v1Column10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 60 + end + object v1Column11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_DDMD.FontBlue + Width = 65 + end + object v1YSKeZhong: TcxGridDBColumn + Tag = 2 + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'YSKeZhong' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_DDMD.FontBlue + Width = 73 + end + object v1ZZJGou: TcxGridDBColumn + Tag = 2 + Caption = #32452#32455#32467#26500 + DataBinding.FieldName = 'ZZJGou' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1ZZJGouPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column19: TcxGridDBColumn + Tag = 2 + Caption = #25240#31639#31859#25968 + DataBinding.FieldName = 'ZheSuanMiQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 75 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column12PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 59 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1366 + Height = 242 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 513 + Top = 15 + Width = 60 + Height = 12 + Caption = #21457#31080#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 27 + Top = 15 + Width = 60 + Height = 12 + Caption = #20986' '#21475' '#21830#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 27 + Top = 49 + Width = 60 + Height = 12 + Caption = #31246' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 351 + Top = 15 + Width = 60 + Height = 12 + Caption = #21457' '#31080' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label14: TLabel + Left = 678 + Top = 15 + Width = 60 + Height = 12 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 678 + Top = 49 + Width = 60 + Height = 12 + Caption = #23458#25143' PO#'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 513 + Top = 49 + Width = 60 + Height = 12 + Caption = #33322#21517#33322#27425#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label6: TLabel + Left = 27 + Top = 82 + Width = 60 + Height = 12 + Caption = #25552' '#21333' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label7: TLabel + Left = 351 + Top = 82 + Width = 60 + Height = 12 + Caption = #24320#33322#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label8: TLabel + Left = 513 + Top = 82 + Width = 60 + Height = 12 + Caption = #31665#21495#23553#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label9: TLabel + Left = 678 + Top = 82 + Width = 60 + Height = 12 + Caption = #36135' '#26588#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 27 + Top = 116 + Width = 60 + Height = 12 + Caption = #20986' '#36816' '#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label11: TLabel + Left = 187 + Top = 116 + Width = 60 + Height = 12 + Caption = #21040' '#36135' '#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 351 + Top = 116 + Width = 60 + Height = 12 + Caption = #36152' '#26131' '#22269#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label16: TLabel + Left = 513 + Top = 116 + Width = 60 + Height = 12 + Caption = #25269' '#36816' '#22269#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label17: TLabel + Left = 678 + Top = 116 + Width = 60 + Height = 12 + Caption = #36816#36755#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label19: TLabel + Left = 27 + Top = 149 + Width = 60 + Height = 12 + Caption = #36135' '#28304' '#22320#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label20: TLabel + Left = 187 + Top = 149 + Width = 60 + Height = 12 + Caption = #36152#26131#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label21: TLabel + Left = 351 + Top = 149 + Width = 60 + Height = 12 + Caption = #32467#27719#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label2: TLabel + Left = 513 + Top = 149 + Width = 60 + Height = 12 + Caption = #25253#20851#26465#27454#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label18: TLabel + Left = 678 + Top = 149 + Width = 60 + Height = 12 + Caption = #36816' '#36153#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label22: TLabel + Left = 27 + Top = 183 + Width = 60 + Height = 12 + Caption = #20445' '#36153#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label23: TLabel + Left = 187 + Top = 183 + Width = 60 + Height = 12 + Caption = #36135#36816#20195#29702#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label24: TLabel + Left = 513 + Top = 183 + Width = 60 + Height = 12 + Caption = #33337' '#20844' '#21496#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label25: TLabel + Left = 27 + Top = 216 + Width = 60 + Height = 12 + Caption = #22791' '#27880#65306 + end + object Label26: TLabel + Left = 351 + Top = 49 + Width = 60 + Height = 12 + Caption = #28023#20851#32534#30721#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label27: TLabel + Left = 513 + Top = 216 + Width = 60 + Height = 12 + Caption = #23458#25143#21517#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label28: TLabel + Left = 843 + Top = 15 + Width = 60 + Height = 12 + Caption = #24449#20813#24615#36136#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label29: TLabel + Left = 921 + Top = 247 + Width = 60 + Height = 12 + Caption = #22806' '#27719' '#23616#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label30: TLabel + Left = 843 + Top = 49 + Width = 60 + Height = 12 + Caption = #21512#21516#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label31: TLabel + Left = 843 + Top = 82 + Width = 60 + Height = 12 + Caption = #31163#22659#21475#23736#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label32: TLabel + Left = 843 + Top = 116 + Width = 60 + Height = 12 + Caption = #21253#35013#31181#31867#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label33: TLabel + Left = 843 + Top = 149 + Width = 60 + Height = 12 + Caption = #30003#25253#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label34: TLabel + Left = 843 + Top = 183 + Width = 60 + Height = 12 + Caption = #22791' '#26696' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label35: TLabel + Left = 843 + Top = 216 + Width = 72 + Height = 12 + Caption = #26368#32456#30446#30340#22269#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object A7FPDate: TDateTimePicker + Tag = 2 + Left = 570 + Top = 11 + Width = 90 + Height = 20 + Date = 42296.498237581020000000 + Time = 42296.498237581020000000 + TabOrder = 21 + end + object A1ChuKouShang: TBtnEditA + Tag = 1 + Left = 83 + Top = 11 + Width = 251 + Height = 21 + Hint = 'A1ChuKouShang/'#20986#21475#21830 + ReadOnly = True + TabOrder = 0 + OnBtnClick = A1ChuKouShangBtnClick + end + object A2ShuiHao: TEdit + Tag = 2 + Left = 83 + Top = 45 + Width = 251 + Height = 21 + TabOrder = 3 + end + object A4FPNO: TEdit + Tag = 1 + Left = 408 + Top = 11 + Width = 90 + Height = 21 + CharCase = ecUpperCase + TabOrder = 1 + end + object A5ConNO: TEdit + Tag = 1 + Left = 735 + Top = 11 + Width = 90 + Height = 21 + CharCase = ecUpperCase + TabOrder = 2 + end + object A6PONO: TEdit + Tag = 2 + Left = 735 + Top = 45 + Width = 90 + Height = 21 + CharCase = ecUpperCase + TabOrder = 4 + end + object B1HangBan: TBtnEditA + Tag = 2 + Left = 570 + Top = 45 + Width = 90 + Height = 21 + Hint = 'B1HangBan/'#33322#21517#33322#27425 + TabOrder = 18 + OnBtnClick = A1ChuKouShangBtnClick + end + object B2TiDanHao: TEdit + Tag = 2 + Left = 83 + Top = 78 + Width = 251 + Height = 21 + TabOrder = 19 + end + object B3KaiHangDate: TDateTimePicker + Tag = 2 + Left = 408 + Top = 78 + Width = 90 + Height = 20 + Date = 42296.498237581020000000 + Time = 42296.498237581020000000 + TabOrder = 20 + end + object B4XiangNO: TEdit + Tag = 2 + Left = 570 + Top = 78 + Width = 90 + Height = 21 + TabOrder = 22 + end + object B5HuoGui: TBtnEditA + Tag = 2 + Left = 735 + Top = 78 + Width = 90 + Height = 21 + Hint = 'B5HuoGui/'#36135#26588 + TabOrder = 5 + OnBtnClick = A1ChuKouShangBtnClick + end + object B6ChuYunGang: TBtnEditA + Tag = 1 + Left = 83 + Top = 113 + Width = 91 + Height = 21 + Hint = 'B6ChuYunGang/'#20986#36816#28207 + ReadOnly = True + TabOrder = 6 + OnBtnClick = A1ChuKouShangBtnClick + end + object B7DaoHuoGang: TBtnEditA + Tag = 1 + Left = 244 + Top = 113 + Width = 90 + Height = 21 + Hint = 'B7DaoHuoGang/'#21040#36135#28207 + TabOrder = 7 + OnBtnClick = A1ChuKouShangBtnClick + end + object B8MaoYiGuo: TBtnEditA + Tag = 1 + Left = 408 + Top = 113 + Width = 90 + Height = 21 + Hint = 'B8MaoYiGuo/'#36152#26131#22269 + TabOrder = 8 + OnBtnClick = A1ChuKouShangBtnClick + end + object B9DiYunGuo: TBtnEditA + Tag = 1 + Left = 570 + Top = 113 + Width = 90 + Height = 21 + Hint = 'B9DiYunGuo/'#25269#36816#22269 + TabOrder = 9 + OnBtnClick = A1ChuKouShangBtnClick + end + object B10YunShuType: TBtnEditA + Tag = 1 + Left = 735 + Top = 113 + Width = 90 + Height = 21 + Hint = 'B10YunShuType/'#36816#36755#26041#24335 + TabOrder = 10 + OnBtnClick = A1ChuKouShangBtnClick + end + object D1HuoYunDiJN: TBtnEditA + Tag = 1 + Left = 83 + Top = 145 + Width = 91 + Height = 21 + Hint = 'D1HuoYunDiJN/'#36135#28304#22320 + TabOrder = 11 + OnBtnClick = A1ChuKouShangBtnClick + end + object D2MaoYiType: TBtnEditA + Tag = 1 + Left = 244 + Top = 145 + Width = 90 + Height = 21 + Hint = 'D2MaoYiType/'#36152#26131#26041#24335 + TabOrder = 12 + OnBtnClick = A1ChuKouShangBtnClick + end + object D3JiHuiType: TBtnEditA + Tag = 1 + Left = 408 + Top = 145 + Width = 90 + Height = 21 + Hint = 'D3JiHuiType/'#32467#27719#26041#24335 + TabOrder = 13 + OnBtnClick = A1ChuKouShangBtnClick + end + object F1BaoGuanTK: TBtnEditA + Tag = 1 + Left = 570 + Top = 145 + Width = 90 + Height = 21 + Hint = 'F1BaoGuanTK/'#25253#20851#26465#27454 + TabOrder = 14 + OnBtnClick = A1ChuKouShangBtnClick + end + object F2YunFee: TEdit + Tag = 1 + Left = 735 + Top = 145 + Width = 90 + Height = 21 + TabOrder = 15 + end + object F3BaoFee: TEdit + Tag = 1 + Left = 83 + Top = 179 + Width = 91 + Height = 21 + TabOrder = 16 + end + object F4HuoYunDaiLi: TBtnEditA + Tag = 2 + Left = 244 + Top = 179 + Width = 254 + Height = 21 + Hint = 'F4HuoYunDaiLi/'#36135#36816#20195#29702 + TabOrder = 17 + OnBtnClick = A1ChuKouShangBtnClick + end + object F5ChuanGongSi: TBtnEditA + Tag = 2 + Left = 570 + Top = 179 + Width = 256 + Height = 21 + Hint = 'F5ChuanGongSi/'#33337#20844#21496 + TabOrder = 23 + OnBtnClick = A1ChuKouShangBtnClick + end + object Note: TEdit + Tag = 2 + Left = 83 + Top = 212 + Width = 415 + Height = 21 + TabOrder = 24 + end + object KHName: TBtnEditA + Tag = 1 + Left = 570 + Top = 212 + Width = 256 + Height = 21 + Hint = 'KHName/'#23458#25143#21517#31216 + TabOrder = 25 + OnBtnClick = A1ChuKouShangBtnClick + end + object ZMXingZhi: TBtnEditA + Tag = 1 + Left = 899 + Top = 11 + Width = 101 + Height = 21 + Hint = 'ZMXingZhi/'#24449#20813#24615#36136 + TabOrder = 26 + OnBtnClick = A1ChuKouShangBtnClick + end + object WHJu: TBtnEditA + Tag = 2 + Left = 978 + Top = 244 + Width = 91 + Height = 21 + Hint = 'WHJu/'#22806#27719#23616 + TabOrder = 27 + Visible = False + OnBtnClick = A1ChuKouShangBtnClick + end + object HTDate: TDateTimePicker + Tag = 2 + Left = 899 + Top = 45 + Width = 101 + Height = 20 + Date = 42296.498237581020000000 + Time = 42296.498237581020000000 + TabOrder = 28 + end + object LJKouAn: TBtnEditA + Tag = 2 + Left = 899 + Top = 78 + Width = 101 + Height = 21 + Hint = 'LJKouAn/'#31163#22659#21475#23736 + TabOrder = 29 + OnBtnClick = A1ChuKouShangBtnClick + end + object BZType: TBtnEditA + Tag = 1 + Left = 899 + Top = 113 + Width = 101 + Height = 21 + Hint = 'BZType/'#21253#35013#31181#31867 + TabOrder = 30 + OnBtnClick = A1ChuKouShangBtnClick + end + object SBDate: TDateTimePicker + Tag = 2 + Left = 899 + Top = 145 + Width = 102 + Height = 20 + Date = 42296.498237581020000000 + Time = 42296.498237581020000000 + ShowCheckbox = True + Checked = False + TabOrder = 31 + end + object BAHao: TEdit + Tag = 2 + Left = 899 + Top = 179 + Width = 101 + Height = 21 + CharCase = ecUpperCase + TabOrder = 32 + end + object MDGuo: TBtnEditA + Tag = 1 + Left = 909 + Top = 212 + Width = 93 + Height = 21 + Hint = 'B9DiYunGuo/'#26368#32456#30446#30340#22269 + TabOrder = 33 + OnBtnClick = A1ChuKouShangBtnClick + end + object A3HaiGuanBM: TBtnEditA + Tag = 2 + Left = 408 + Top = 45 + Width = 90 + Height = 21 + Hint = 'A3HaiGuanBM/'#28023#20851#32534#30721 + TabOrder = 34 + OnBtnClick = A1ChuKouShangBtnClick + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 275 + Width = 1366 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton2: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 12 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 63 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 19 + OnClick = ToolButton1Click + end + object ToolButton3: TToolButton + Left = 146 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 13 + OnClick = ToolButton3Click + end + end + object DataSource3: TDataSource + DataSet = CDS_Sub + Left = 501 + Top = 431 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 463 + Top = 433 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 981 + Top = 270 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 945 + Top = 256 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1012 + Top = 267 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 424 + Top = 429 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanInPut.pas b/报关管理(BaoGuan.dll)/U_BaoGuanInPut.pas new file mode 100644 index 0000000..875f587 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanInPut.pas @@ -0,0 +1,862 @@ +unit U_BaoGuanInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, + ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, + cxTextEdit, StdCtrls, BtnEdit, ExtCtrls, cxLookAndFeels, + cxLookAndFeelPainters, cxNavigator; + +type + TfrmBaoGuanInPut = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + DataSource3: TDataSource; + CDS_Sub: TClientDataSet; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column5: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column3: TcxGridDBColumn; + Panel1: TPanel; + ToolBar2: TToolBar; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + A7FPDate: TDateTimePicker; + A1ChuKouShang: TBtnEditA; + Label1: TLabel; + Label3: TLabel; + Label12: TLabel; + A2ShuiHao: TEdit; + Label13: TLabel; + A4FPNO: TEdit; + Label14: TLabel; + A5ConNO: TEdit; + Label4: TLabel; + A6PONO: TEdit; + Label5: TLabel; + B1HangBan: TBtnEditA; + Label6: TLabel; + B2TiDanHao: TEdit; + Label7: TLabel; + B3KaiHangDate: TDateTimePicker; + Label8: TLabel; + B4XiangNO: TEdit; + Label9: TLabel; + B5HuoGui: TBtnEditA; + Label10: TLabel; + B6ChuYunGang: TBtnEditA; + Label11: TLabel; + B7DaoHuoGang: TBtnEditA; + Label15: TLabel; + B8MaoYiGuo: TBtnEditA; + Label16: TLabel; + Label17: TLabel; + B9DiYunGuo: TBtnEditA; + B10YunShuType: TBtnEditA; + Label19: TLabel; + D1HuoYunDiJN: TBtnEditA; + Label20: TLabel; + D2MaoYiType: TBtnEditA; + Label21: TLabel; + D3JiHuiType: TBtnEditA; + Label2: TLabel; + F1BaoGuanTK: TBtnEditA; + Label18: TLabel; + F2YunFee: TEdit; + Label22: TLabel; + F3BaoFee: TEdit; + Label23: TLabel; + F4HuoYunDaiLi: TBtnEditA; + Label24: TLabel; + F5ChuanGongSi: TBtnEditA; + Label25: TLabel; + Note: TEdit; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + Label26: TLabel; + ToolButton1: TToolButton; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + Panel2: TPanel; + ComboBox1: TComboBox; + ToolButton4: TToolButton; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + Label27: TLabel; + KHName: TBtnEditA; + Label28: TLabel; + ZMXingZhi: TBtnEditA; + Label29: TLabel; + WHJu: TBtnEditA; + Label30: TLabel; + HTDate: TDateTimePicker; + v1ZZJGou: TcxGridDBColumn; + v1YSKeZhong: TcxGridDBColumn; + TCXLJ: TToolButton; + Label31: TLabel; + LJKouAn: TBtnEditA; + Label32: TLabel; + BZType: TBtnEditA; + Label33: TLabel; + SBDate: TDateTimePicker; + Label34: TLabel; + BAHao: TEdit; + Label35: TLabel; + MDGuo: TBtnEditA; + A3HaiGuanBM: TBtnEditA; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure A1ChuKouShangBtnClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column14PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column16PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column17PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure v1ZZJGouPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column12PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TCXLJClick(Sender: TObject); + private + { Private declarations } + function SaveCKData():Boolean; + public + { Public declarations } + FBCId:String;CopyStr:String; + end; + +var + frmBaoGuanInPut: TfrmBaoGuanInPut; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmBaoGuanInPut.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +function TfrmBaoGuanInPut.SaveCKData():Boolean; +var + FJMID,Maxno,MaxSubNo,FSCID:string; +begin + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Main where BGID='''+Trim(FBCId)+''''); + Open; + end; + FBCId:=Trim(ADOQueryTemp.fieldbyname('BGID').AsString); + if Trim(FBCId)='' then + begin + if GetLSNo(ADOQueryCmd,Maxno,'BG','JYOrder_BaoGuan_Main',3,1)=False then + begin + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + Maxno:=Trim(FBCId); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Main where BGID='''+Trim(Maxno)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(FBCId)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillerCode').Value:=Trim(DCode); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditerCode').Value:=Trim(DCode); + FieldByName('EditTime').Value:=SGetServerDate(ADOQueryTemp); + end; + FieldByName('BGID').Value:=Trim(Maxno); + RTSetsavedata(ADOQueryCmd,'JYOrder_BaoGuan_Main',Panel1,1); + RTSetsavedata(ADOQueryCmd,'JYOrder_BaoGuan_Main',Panel1,2); + Post; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Main where A4FPNO='''+Trim(A4FPNO.Text)+''' and Valid=''Y'' '); + Open; + end; + if ADOQueryTemp.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('˷ƱѾʹãܱ!','ʾ',0); + Exit; + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not eof do + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BSID='''+Trim(CDS_Sub.fieldbyname('BSID').AsString)+''''); + Open; + end; + FSCID:=Trim(ADOQueryTemp.fieldbyname('BSID').AsString); + if Trim(FSCID)='' then + begin + if GetLSNo(ADOQueryCmd,MaxSubNo,'BS','JYOrder_BaoGuan_Sub',3,1)=False then + begin + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡӱʧ!','ʾ',0); + Exit; + end; + end else + begin + MaxSubNo:=Trim(FSCID); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BSID='''+Trim(MaxSubNo)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(FSCID)='' then + begin + Append; + FieldByName('SFiller').Value:=Trim(DName); + end else + begin + Edit; + FieldByName('SEditer').Value:=Trim(DName); + FieldByName('SEditTime').Value:=SGetServerDate(ADOQueryTemp); + end; + FieldByName('BGID').Value:=Trim(Maxno); + FieldByName('BSID').Value:=Trim(MaxSubNo); + RTSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'JYOrder_BaoGuan_Sub',2); + Post; + end; + Edit; + FieldByName('BSID').Value:=Trim(MaxSubNo); + FieldByName('BGID').Value:=Trim(Maxno); + Post; + Next; + end; + end; + CDS_Sub.EnableControls; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set '); + sql.Add(' C7BGMoneyHZ=(select Sum(C7BGMoney) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E1BZQtyHZ=(select Sum(E1BZQty) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E2ChiMaQtyHZ=(select Sum(E2ChiMaQty) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E3MaoZHZ=(select Sum(E3MaoZ) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E4JingZHZ=(select Sum(E4JingZ) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(' where BGID='''+Trim(Maxno)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + FBCId:=Trim(Maxno); + Result:=True; + except + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; + +end; +procedure TfrmBaoGuanInPut.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('¼YD',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanInPut.FormShow(Sender: TObject); +begin + ReadCxGrid('¼YD',Tv1,'ع'); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add(' select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A'); + sql.Add(' where BGID='''+Trim(FBCId)+''''); + Open; + end; + SCSHDataNew(ADOQueryTemp,Panel1,1); + SCSHDataNew(ADOQueryTemp,Panel1,2); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add(' select A.* '); + sql.Add(' from JYOrder_BaoGuan_Sub A'); + sql.Add(' where BGID='''+Trim(FBCId)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Sub); + SInitCDSData20(ADOQueryTemp,CDS_Sub); + if CopyStr='99' then + begin + FBCId:=''; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('BGID').Value:=Null; + FieldByName('BSID').Value:=Null; + Post; + Next; + end; + end; + CDS_Sub.EnableControls; + end; + if Trim(FBCId)='' then + begin + A7FPDate.Date:=SGetServerDate(ADOQueryTemp); + B3KaiHangDate.Date:=A7FPDate.Date; + HTDate.Date:=SGetServerDate(ADOQueryTemp); + end; + ToolButton4.Click; +end; + +procedure TfrmBaoGuanInPut.TBSaveClick(Sender: TObject); +var + FReal:Double; + i:Integer; +begin + with Panel1 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i].Tag=1 then + begin + if Controls[i] is TLabel then continue; + if Controls[i].Tag<>1 then continue; + if Controls[i] is TEdit then + begin + if Trim(TEdit(Controls[i]).Text)='' then + begin + Application.MessageBox('ɫעϢΪд','ʾ',0); + Exit; + end; + end; + if Controls[i] is TBtnEditA then + begin + if Trim(TBtnEditA(Controls[i]).Text)='' then + begin + Application.MessageBox('ɫעϢΪд','ʾ',0); + Exit; + end; + end; + end; + end; + end; + if TryStrToFloat(F2YunFee.Text,FReal)=False then + begin + Application.MessageBox('˷ѷǷ!','ʾ',0); + Exit; + end; + if TryStrToFloat(F3BaoFee.Text,FReal)=False then + begin + Application.MessageBox('ѷǷ!','ʾ',0); + Exit; + end; + if CDS_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C3BGName',Null,[]) then + begin + Application.MessageBox('ƷΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C3BGNameEng',Null,[]) then + begin + Application.MessageBox('ӢƷΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C2HSNO',Null,[]) then + begin + Application.MessageBox('HS NOΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C4BGQty',Null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C5BGUnit',Null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C6BGPrice',Null,[]) then + begin + Application.MessageBox('۲Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C7BGMoney',Null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('E1BZQty',Null,[]) then + begin + Application.MessageBox('װΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('E1BZUnit',Null,[]) then + begin + Application.MessageBox('װλΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('E2ChiMaQty',Null,[]) then + begin + Application.MessageBox('벻Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('E3MaoZ',Null,[]) then + begin + Application.MessageBox('ëزΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('E4JingZ',Null,[]) then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('YSZhiZaoType',Null,[]) then + begin + Application.MessageBox('֯췽Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('YSChenFen',Null,[]) then + begin + Application.MessageBox('ɷֺΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('YSRanZhengType',Null,[]) then + begin + Application.MessageBox('ȾʽΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('YSFuKuan',Null,[]) then + begin + Application.MessageBox('(CM)Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('YSPinPai',Null,[]) then + begin + Application.MessageBox('ƷƲΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('YSShengChanShang',Null,[]) then + begin + Application.MessageBox('̲Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('C5BGUnit;ZheSuanMiQty', VarArrayOf(['KG', Null]), [loPartialKey]) then + begin + Application.MessageBox('λΪKGʱΪ!','ʾ',0); + Exit; + end; + ToolBar1.SetFocus; + if SaveCKData() then + begin + Application.MessageBox('ɹ!','ʾ',0); + //ModalResult:=1; + Exit; + end; +end; + +procedure TfrmBaoGuanInPut.A1ChuKouShangBtnClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='A1ChuKouShang' then + begin + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + frmZDYHelp.Align:=alClient; + V1ZdyStr1.Caption:='ĵַ'; + V1ZdyStr1.Visible:=True; + V1ZdyStr2.Caption:='Ӣĵַ'; + V1ZdyStr2.Visible:=True; + V1ZdyStr3.Caption:='ر'; + V1ZdyStr3.Visible:=True; + end; + if Trim(flag)='B6ChuYunGang' then + begin + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + end; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='B9DiYunGuo' then + begin + MDGuo.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + if Trim(flag)='A1ChuKouShang' then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrder_BaoGuan_Main where A1ChuKouShang='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' and Valid=''Y'' '); + sql.Add(' order by FillTime desc'); + Open; + end; + A2ShuiHao.Text:=ADOQueryTemp.fieldbyname('A2ShuiHao').ASString; + A3HaiGuanBM.Text:=Trim(ClientDataSet1.fieldbyname('ZdyStr3').AsString); + end; + end; + end; + finally; + frmZDYHelp.Free; + end; +end; + +procedure TfrmBaoGuanInPut.ToolButton2Click(Sender: TObject); +var + i:Integer; +begin + //CopyAddRowCDS(CDS_Sub); + {with CDS_Sub do + begin + Edit; + FieldByName('BGID').Value:=Null; + FieldByName('BSID').Value:=Null; + Post; + end; } + i:=CDS_Sub.RecordCount; + i:=i+1; + with CDS_Sub do + begin + Append; + FieldByName('XHInt').Value:=i; + Post; + end; +end; + +procedure TfrmBaoGuanInPut.ToolButton3Click(Sender: TObject); +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.fieldbyname('BSID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() '); + sql.Add(' where BSID='''+Trim(CDS_Sub.fieldbyname('BSID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set '); + sql.Add(' C7BGMoneyHZ=(select Sum(C7BGMoney) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E1BZQtyHZ=(select Sum(E1BZQty) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E2ChiMaQtyHZ=(select Sum(E2ChiMaQty) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E3MaoZHZ=(select Sum(E3MaoZ) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(',E4JingZHZ=(select Sum(E4JingZ) from JYOrder_BaoGuan_Sub A where A.BGID=JYOrder_BaoGuan_Main.BGID and A.SValid=''Y'' )'); + sql.Add(' where BGID='''+Trim(CDS_Sub.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + end; + CDS_Sub.Delete; +end; + +procedure TfrmBaoGuanInPut.v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='C3BGName'; + flagname:='Ʒ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('C3BGName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrder_BaoGuan_Sub where C3BGName='''+Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.add(' and isnull(C2HSNO,'''')<>'''' '); + sql.Add(' order by SFillTime desc'); + Open; + end; + with Self.CDS_Sub do + begin + Edit; + FieldByName('C2HSNO').Value:=Trim(ADOQueryTemp.fieldbyname('C2HSNO').asstring); + FieldByName('C3BGNameEng').Value:=Trim(ADOQueryTemp.fieldbyname('C3BGNameEng').asstring); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; +procedure TfrmBaoGuanInPut.v1Column14PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='YSChenFen'; + flagname:='ɷֺ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('YSChenFen').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBaoGuanInPut.v1Column16PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='YSPinPai'; + flagname:='Ʒ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('YSPinPai').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBaoGuanInPut.v1Column17PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='YSShengChanShang'; + flagname:=''; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('YSShengChanShang').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBaoGuanInPut.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FName,FPrice,FQty,FBaoGangFee:string; +begin + FName:=Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with CDS_Sub do + begin + Edit; + FieldByName(FName).Value:=mvalue; + Post; + end; + + with CDS_Sub do + begin + Edit; + FieldByName('C7BGMoney').Value:=format('%.2f',[CDS_Sub.fieldbyname('C4BGQty').AsFloat*CDS_Sub.fieldbyname('C6BGPrice').AsFloat]); + Post; + end; +end; + +procedure TfrmBaoGuanInPut.ToolButton1Click(Sender: TObject); +begin + if CDS_Sub.IsEmpty then Exit; + OneKeyPost(Tv1,CDS_Sub); +end; + +procedure TfrmBaoGuanInPut.ToolButton4Click(Sender: TObject); +var + fsj:String; +begin + fsj:='select Name=AA.A4FPNO,Code='''' from (select Top 10 A4FPNO from JYOrder_BaoGuan_Main where Valid=''Y'' order by FillTime Desc)AA order by A4FPNO desc'; + SInitComBoxBySql(ADOQueryTemp,ComboBox1,False,fsj); + ComboBox1.ItemIndex:=0; + ToolBar1.SetFocus; +end; + +procedure TfrmBaoGuanInPut.v1ZZJGouPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ZZJGou'; + flagname:='֯ṹ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('ZZJGou').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBaoGuanInPut.v1Column12PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='E5MaiTou'; + flagname:='ͷ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('E5MaiTou').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBaoGuanInPut.TCXLJClick(Sender: TObject); +begin + if not Assigned(DataLink_DDMD) then + DataLink_DDMD:=TDataLink_DDMD.Create(Application); + Try + with DataLink_DDMD.ADOLink do + begin + //if not Connected then + begin + Connected:=false; + ConnectionString:=DConString; + LoginPrompt:=false; + Connected:=true; + end; + end; + Except + application.MessageBox('ݿʧܣ','',mb_Ok+ MB_ICONERROR); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanList.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanList.dfm new file mode 100644 index 0000000..f1342c2 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanList.dfm @@ -0,0 +1,1213 @@ +object frmBaoGuanList: TfrmBaoGuanList + Left = 225 + Top = 259 + Width = 1386 + Height = 685 + Caption = #25253#20851#36164#26009#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1370 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 101 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 1 + Visible = False + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 11 + Visible = False + OnClick = TBEditClick + end + object TBCopy: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 38 + Visible = False + OnClick = TBCopyClick + end + object TBView: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = TBViewClick + end + object TBDel: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 3 + Visible = False + OnClick = TBDelClick + end + object TBSS: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #36865#23457 + ImageIndex = 22 + Visible = False + OnClick = TBSSClick + end + object TBSSCX: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #36865#23457#25764#38144 + ImageIndex = 52 + Visible = False + OnClick = TBSSCXClick + end + object TBHD: TToolButton + Left = 591 + Top = 0 + AutoSize = True + Caption = #26680#23545 + ImageIndex = 10 + Visible = False + OnClick = TBHDClick + end + object TBHDCX: TToolButton + Left = 654 + Top = 0 + Caption = #26680#23545#25764#38144 + ImageIndex = 52 + Visible = False + OnClick = TBHDCXClick + end + object TBSH: TToolButton + Left = 755 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 22 + Wrap = True + Visible = False + OnClick = TBSHClick + end + object TBSHCX: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #23457#26680#25764#38144 + ImageIndex = 52 + Visible = False + OnClick = TBSHCXClick + end + object TBAll: TToolButton + Left = 87 + Top = 30 + Caption = #20840#37096#36164#26009 + ImageIndex = 4 + Visible = False + OnClick = TBAllClick + end + object TBBGZL: TToolButton + Left = 188 + Top = 30 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 14 + Visible = False + OnClick = TBBGZLClick + end + object TBHT: TToolButton + Left = 275 + Top = 30 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + Visible = False + OnClick = TBHTClick + end + object TBFP: TToolButton + Left = 338 + Top = 30 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + Visible = False + OnClick = TBFPClick + end + object TBZXD: TToolButton + Left = 401 + Top = 30 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + Visible = False + OnClick = TBZXDClick + end + object TBBGD: TToolButton + Left = 476 + Top = 30 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + Visible = False + OnClick = TBBGDClick + end + object TBSBYS: TToolButton + Left = 551 + Top = 30 + AutoSize = True + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + Visible = False + OnClick = TBSBYSClick + end + object TBExport: TToolButton + Left = 638 + Top = 30 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 701 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + object ToolButton1: TToolButton + Left = 764 + Top = 30 + Caption = 'ToolButton1' + ImageIndex = 22 + OnClick = ToolButton1Click + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1370 + Height = 59 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label6: TLabel + Left = 191 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 184 + Top = 35 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 367 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 367 + Top = 35 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object Label2: TLabel + Left = 552 + Top = 12 + Width = 24 + Height = 12 + Caption = #21697#21517 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 77 + Top = 31 + Width = 86 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 227 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 227 + Top = 31 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 404 + Top = 8 + Width = 130 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 404 + Top = 31 + Width = 130 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object C3BGName: TEdit + Tag = 4 + Left = 578 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 6 + OnKeyPress = C3BGNameKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 143 + Width = 1370 + Height = 326 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1B6ChuYunGang: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1B7DaoHuoGang: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column31: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'Status' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column32: TcxGridDBColumn + Caption = #36865#23457#20154 + DataBinding.FieldName = 'SChker' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column33: TcxGridDBColumn + Caption = #36865#23457#26102#38388 + DataBinding.FieldName = 'SSTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 71 + end + object v1Column34: TcxGridDBColumn + Caption = #26680#23545#20154 + DataBinding.FieldName = 'OKPerson' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column35: TcxGridDBColumn + Caption = #26680#23545#26102#38388 + DataBinding.FieldName = 'OKTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column36: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column37: TcxGridDBColumn + Caption = #23457#26680#26102#38388 + DataBinding.FieldName = 'ChkTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 121 + Width = 1370 + Height = 22 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Properties.CustomButtons.Buttons = <> + Properties.Style = 8 + Properties.TabIndex = 4 + Properties.Tabs.Strings = ( + #24453#36865#23457 + #24453#26680#23545 + #24453#23457#26680 + #24050#23457#26680 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1370 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 469 + Width = 1370 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 477 + Width = 1370 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v2Column4: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHInt' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 40 + end + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 95 + end + object v2Column5: TcxGridDBColumn + Caption = #33521#25991#21697#21517 + DataBinding.FieldName = 'C3BGNameEng' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 101 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 80 + end + object v2Column2: TcxGridDBColumn + Caption = #26579#25972#26041#24335 + DataBinding.FieldName = 'YSRanZhengType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 88 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 64 + end + object v2Column3: TcxGridDBColumn + Caption = #25240#31639#31859#25968 + DataBinding.FieldName = 'ZheSuanMiQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 66 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 925 + Top = 217 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 893 + Top = 217 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 957 + Top = 217 + end + object PopupMenu1: TPopupMenu + Left = 858 + Top = 188 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 861 + Top = 219 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 883 + Top = 487 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 917 + Top = 487 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 949 + Top = 487 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 225 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end + object RMDataDictionary1: TRMDataDictionary + FieldFieldNames.TableName = 'TableName' + FieldFieldNames.FieldName = 'FieldName' + FieldFieldNames.FieldAlias = 'FieldAlias' + Left = 432 + Top = 232 + end + object RMJPEGExport1: TRMJPEGExport + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + Left = 624 + Top = 224 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanList.pas b/报关管理(BaoGuan.dll)/U_BaoGuanList.pas new file mode 100644 index 0000000..8d92d69 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanList.pas @@ -0,0 +1,1269 @@ +unit U_BaoGuanList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,ShellAPI, dxBarBuiltInMenu, + RM_e_Graphic, RM_e_Jpeg, dxSkinsCore, dxSkinBlack, dxSkinBlue, + dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, + dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, + dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, + dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, + dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, + dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmBaoGuanList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + TBDel: TToolButton; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + TBAdd: TToolButton; + TBEdit: TToolButton; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1B6ChuYunGang: TcxGridDBColumn; + v1B7DaoHuoGang: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + TBCopy: TToolButton; + TBBGZL: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + TBHT: TToolButton; + TBFP: TToolButton; + TBZXD: TToolButton; + TBBGD: TToolButton; + TBView: TToolButton; + TBSBYS: TToolButton; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + TBSS: TToolButton; + TBSSCX: TToolButton; + TBHD: TToolButton; + TBHDCX: TToolButton; + TBSH: TToolButton; + TBSHCX: TToolButton; + v1Column31: TcxGridDBColumn; + v1Column32: TcxGridDBColumn; + v1Column33: TcxGridDBColumn; + v1Column34: TcxGridDBColumn; + v1Column35: TcxGridDBColumn; + v1Column36: TcxGridDBColumn; + v1Column37: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + TBAll: TToolButton; + Label2: TLabel; + C3BGName: TEdit; + RMDataDictionary1: TRMDataDictionary; + RMJPEGExport1: TRMJPEGExport; + ToolButton1: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure TBCopyClick(Sender: TObject); + procedure TBBGZLClick(Sender: TObject); + procedure TBHTClick(Sender: TObject); + procedure TBFPClick(Sender: TObject); + procedure TBZXDClick(Sender: TObject); + procedure TBBGDClick(Sender: TObject); + procedure TBViewClick(Sender: TObject); + procedure TBSBYSClick(Sender: TObject); + procedure TBSSClick(Sender: TObject); + procedure TBSSCXClick(Sender: TObject); + procedure TBHDClick(Sender: TObject); + procedure TBHDCXClick(Sender: TObject); + procedure TBSHClick(Sender: TObject); + procedure TBSHCXClick(Sender: TObject); + procedure TBAllClick(Sender: TObject); + procedure C3BGNameChange(Sender: TObject); + procedure C3BGNameKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton1Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + procedure InitButton(); + procedure InitPrtData(); + { Private declarations } + public + { Public declarations } + end; + +//var + //frmBaoGuanList: TfrmBaoGuanList; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut,U_FjList_BG; + +{$R *.dfm} + +procedure TfrmBaoGuanList.FormDestroy(Sender: TObject); +begin + //frmBaoGuanList:=nil; +end; +procedure TfrmBaoGuanList.InitButton(); +begin + if Trim(Self.Caption)='ع' then // + begin + TBAdd.Visible:=True;TBEdit.Visible:=True;TBDel.Visible:=True;TBCopy.Visible:=True; + TBSS.Visible:=False; TBSSCX.Visible:=False;TBAll.Visible:=True; + TBBGZL.Visible:=True;TBHT.Visible:=True;TBFP.Visible:=True; + TBZXD.Visible:=True;TBBGD.Visible:=True;TBSBYS.Visible:=True; + cxTabControl1.TabIndex:=0; + cxTabControl1.Visible:=False; + v1Column31.Visible:=False; + v1Column31.Hidden:=True; + v1Column32.Visible:=False; + v1Column32.Hidden:=True; + v1Column33.Visible:=False; + v1Column33.Hidden:=True; + v1Column34.Visible:=False; + v1Column34.Hidden:=True; + v1Column35.Visible:=False; + v1Column35.Hidden:=True; + v1Column36.Visible:=False; + v1Column36.Hidden:=True; + v1Column37.Visible:=False; + v1Column37.Hidden:=True; + end else + if Trim(Self.Caption)='¼' then + begin + TBAdd.Visible:=True;TBEdit.Visible:=True;TBDel.Visible:=True;TBCopy.Visible:=True; + TBSS.Visible:=True; TBSSCX.Visible:=True;TBAll.Visible:=True; + TBBGZL.Visible:=True;TBHT.Visible:=True;TBFP.Visible:=True; + TBZXD.Visible:=True;TBBGD.Visible:=True;TBSBYS.Visible:=True; + cxTabControl1.TabIndex:=0; + end else + if Trim(Self.Caption)='¼(Ȩ)' then + begin + TBAdd.Visible:=True;TBEdit.Visible:=True;TBDel.Visible:=True;TBCopy.Visible:=True; + TBSS.Visible:=True; TBSSCX.Visible:=True;TBAll.Visible:=True; + TBBGZL.Visible:=True;TBHT.Visible:=True;TBFP.Visible:=True; + TBZXD.Visible:=True;TBBGD.Visible:=True;TBSBYS.Visible:=True; + cxTabControl1.TabIndex:=0; + end else + if Trim(Self.Caption)='ϲѯ(Ȩ)' then + begin + TBBGZL.Visible:=True;TBHT.Visible:=True;TBFP.Visible:=True; + TBZXD.Visible:=True;TBBGD.Visible:=True;TBSBYS.Visible:=True; TBAll.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='ϴӡѯ' then + begin + TBBGZL.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='غͬӡѯ' then + begin + TBHT.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='طƱӡѯ' then + begin + TBFP.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='װ䵥ӡѯ' then + begin + TBZXD.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='صӡѯ' then + begin + TBBGD.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='걨Ҫشӡѯ' then + begin + TBSBYS.Visible:=True; + cxTabControl1.TabIndex:=4; + cxTabControl1.Visible:=False; + end else + if Trim(Self.Caption)='Ϻ˶' then + begin + TBHD.Visible:=True; TBHDCX.Visible:=True; TBAll.Visible:=True; + TBBGZL.Visible:=True;TBHT.Visible:=True;TBFP.Visible:=True; + TBZXD.Visible:=True;TBBGD.Visible:=True;TBSBYS.Visible:=True; + cxTabControl1.TabIndex:=1; + end else + if Trim(Self.Caption)='' then + begin + TBSH.Visible:=True; TBSHCX.Visible:=True; TBAll.Visible:=True; + TBBGZL.Visible:=True;TBHT.Visible:=True;TBFP.Visible:=True; + TBZXD.Visible:=True;TBBGD.Visible:=True;TBSBYS.Visible:=True; + cxTabControl1.TabIndex:=2; + end; +end; + +procedure TfrmBaoGuanList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Application:=MainApplication; + Action:=caFree; +end; + +procedure TfrmBaoGuanList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end; + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + + end else + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(OKPerson,'''')='''' and isnull(SChker,'''')<>'''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')='''' and isnull(OKPerson,'''')<>'''' '); + end else + begin + sql.Add(' and A7FPDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and A7FPDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=3 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end else + begin + if cxTabControl1.Visible=False then + begin +// sql.Add(' and isnull(OKPerson,'''')<>'''' '); + end; + end; + end; +// ShowMessage(SQL.text); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanList.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(''+self.Caption,Tv1,'ع'); + WriteCxGrid('ϸ'+self.Caption,Tv2,'ع'); + Close; +end; + +procedure TfrmBaoGuanList.FormShow(Sender: TObject); +begin + ReadCxGrid(''+self.Caption,Tv1,'ع'); + ReadCxGrid('ϸ'+self.Caption,Tv2,'ع'); + InitButton(); + InitGrid(); + RM1.CanExport:=true; +end; + +procedure TfrmBaoGuanList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel(Trim(CDS_Main.fieldbyname('A4FPNO').AsString)+Trim(CDS_Main.fieldbyname('A5ConNO').AsString),cxGrid1); +end; + +procedure TfrmBaoGuanList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanList.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanList.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmBaoGuanList.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +procedure TfrmBaoGuanList.TBDelClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + InitSubGrid(); + end; +end; +function TfrmBaoGuanList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanList.TBAddClick(Sender: TObject); +begin + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanList.TBEditClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + //TBDel.Visible:=False; + //TBAdd.Visible:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanList.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanList.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanList.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanList.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end; + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanList.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanList.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanList.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanList.TBCopyClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + // if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + CopyStr:='99'; + //TBDel.Visible:=False; + //TBAdd.Visible:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanList.InitPrtData(); +begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add(' exec P_View_BaoGuanData :BGID '); + Parameters.ParamByName('BGID').Value:=Trim(CDS_Main.fieldbyname('BGId').AsString); + Open; + end; + // ShowMessage(CDS_Main.fieldbyname('BGId').AsString); + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); +end; + +procedure TfrmBaoGuanList.TBBGZLClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + InitPrtData(); + FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['ImageFile']:=trim(FimageFile); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBHTClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + InitPrtData(); + FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['ImageFile']:=trim(FimageFile); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBFPClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + InitPrtData(); + FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['ImageFile']:=trim(FimageFile); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBZXDClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + InitPrtData(); + FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['ImageFile']:=trim(FimageFile); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBBGDClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + InitPrtData(); + FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['ImageFile']:=trim(FimageFile); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBViewClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + //if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanList.TBSBYSClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + InitPrtData(); + FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['ImageFile']:=trim(FimageFile); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBSSClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Status='''',SStime=getdate(),SChker='''+Trim(DName)+''''); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + InitSubGrid(); + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBSSCXClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>1 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Main '); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('OKPerson').AsString)<>'' then + begin + CDS_Main.EnableControls; + Application.MessageBox('Ѻ˶Բܳ!','ʾ',0); + Exit; + end; + end; + Next; + end; + end; + CDS_Main.EnableControls; + if Application.MessageBox('ȷҪִ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Status=Null,SStime=Null,SChker=Null'); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + InitSubGrid(); + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBHDClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>1 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִк˶Բ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Status=''Ѻ˶'',OKTime=getdate(),OKPerson='''+Trim(DName)+''''); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + InitSubGrid(); + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBHDCXClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>2 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Main '); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('Chker').AsString)<>'' then + begin + CDS_Main.EnableControls; + Application.MessageBox('˲ܳ!','ʾ',0); + Exit; + end; + end; + Next; + end; + end; + CDS_Main.EnableControls; + if Application.MessageBox('ȷҪִк˶Գ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Status='''',OKtime=Null,OKPerson=Null'); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + InitSubGrid(); + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBSHClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>2 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִ˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Status='''',ChkTime=getdate(),Chker='''+Trim(DName)+''''); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + InitSubGrid(); + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBSHCXClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>3 then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִ˳','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Status=''Ѻ˶'',ChkTime=Null,Chker=Null'); + sql.Add(' where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + InitSubGrid(); + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.TBAllClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH,FimageFile,FZMFile:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ȫ.rmf'; + InitPrtData(); +// FimageFile:= ExtractFilePath(Application.ExeName)+'Image\'+Trim(CDS_Print.FieldByName('A1ChuKouShang').AsString)+'.jpg'; + +// ShellExecute(Handle, 'open',PChar(FimageFile),'', '', SW_SHOWNORMAL); + //RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + if RM1.CanExport=true then + begin + fZMFile:='C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile:='C:\Documents and Settings\Administrator\\'+trim(CDS_Main.fieldbyname('A4FPNO').AsString)+' '+trim(CDS_Main.fieldbyname('A5ConNO').AsString)+'.xls'; + end + else + begin + fZMFile:='C:\Users\Administrator\Desktop\'+trim(CDS_Main.fieldbyname('A4FPNO').AsString)+' '+trim(CDS_Main.fieldbyname('A5ConNO').AsString)+'.XLS'; + end; + RM1.ExportTo(RMXLSExport1,fZMFile); + end; + RM1.CanExport:=true; +// RMVariables['ImageFile']:=trim(FimageFile); + RMVariables['FC2HSNOHZ']:=Trim(CDS_Print.fieldbyname('C2HSNOHZ').AsString); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + RM1.CanExport:=False; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ȫ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanList.C3BGNameChange(Sender: TObject); +begin + SDofilter(ADOQueryTemp,SGetFilters(Panel1,3,4)); + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +procedure TfrmBaoGuanList.C3BGNameKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end; + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + + end else + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(OKPerson,'''')='''' and isnull(SChker,'''')<>'''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')='''' and isnull(OKPerson,'''')<>'''' '); + end else + begin + if cxTabControl1.TabIndex=3 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end else + begin +// if cxTabControl1.Visible=False then +// begin +// sql.Add(' and isnull(OKPerson,'''')<>'''' '); +// end; + end; + end; + sql.Add(' and exists (select B.C3BGName from JYOrder_BaoGuan_Sub B where B.BGID=A.BGID'); + sql.Add(' and B.SValid=''Y'' and B.C3BGName like '''+'%'+trim(C3BGName.Text)+'%'+''')'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanList.ToolButton1Click(Sender: TObject); +begin +// if Order_Main.IsEmpty then Exit; + try + frmFjList_BG:=TfrmFjList_BG.Create(Application); + with frmFjList_BG do + begin + if Trim(DParameters1)<>'Ȩ' then cxButton1.Visible:=false; +// fkeyNO:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + fType:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_BG.Free; + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListBGD.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListBGD.dfm new file mode 100644 index 0000000..62bd322 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListBGD.dfm @@ -0,0 +1,985 @@ +object frmBaoGuanListBGD: TfrmBaoGuanListBGD + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#21333#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + Visible = False + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + Visible = False + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + Visible = False + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + Visible = False + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListBGD.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListBGD.pas new file mode 100644 index 0000000..1504a6d --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListBGD.pas @@ -0,0 +1,684 @@ +unit U_BaoGuanListBGD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListBGD = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListBGD: TfrmBaoGuanListBGD; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListBGD.FormDestroy(Sender: TObject); +begin + frmBaoGuanListBGD:=nil; +end; + +procedure TfrmBaoGuanListBGD.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListBGD.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListBGD.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListBGD.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListBGD.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListBGD.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('BGD',Tv1,'ع'); + WriteCxGrid('ϸBGD',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListBGD.FormShow(Sender: TObject); +begin + ReadCxGrid('BGD',Tv1,'ع'); + ReadCxGrid('ϸBGD',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListBGD.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListBGD.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListBGD.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListBGD.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListBGD.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListBGD.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListBGD.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListBGD.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListBGD.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListBGD.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListBGD.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListBGD.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListBGD.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListBGD.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListBGD.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.dfm new file mode 100644 index 0000000..70f5667 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.dfm @@ -0,0 +1,979 @@ +object frmBaoGuanListBGZL: TfrmBaoGuanListBGZL + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#36164#26009#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.pas new file mode 100644 index 0000000..530b236 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZL.pas @@ -0,0 +1,700 @@ +unit U_BaoGuanListBGZL; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListBGZL = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListBGZL: TfrmBaoGuanListBGZL; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListBGZL.FormDestroy(Sender: TObject); +begin + frmBaoGuanListBGZL:=nil; +end; + +procedure TfrmBaoGuanListBGZL.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListBGZL.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListBGZL.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListBGZL.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListBGZL.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListBGZL.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('',Tv1,'ع'); + WriteCxGrid('ϸ',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListBGZL.FormShow(Sender: TObject); +begin + ReadCxGrid('',Tv1,'ع'); + ReadCxGrid('ϸ',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListBGZL.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListBGZL.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListBGZL.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListBGZL.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListBGZL.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListBGZL.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListBGZL.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListBGZL.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListBGZL.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListBGZL.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListBGZL.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListBGZL.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListBGZL.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListBGZL.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + //fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='֯޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱYD.rmf'; + end else + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='˽޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱJF.rmf'; + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + //fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='֯޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥YD.rmf'; + end else + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='˽޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥JF.rmf'; + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else ZheSuanMiQty end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListBGZL.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.dfm new file mode 100644 index 0000000..c413407 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.dfm @@ -0,0 +1,985 @@ +object frmBaoGuanListBGZLCX: TfrmBaoGuanListBGZLCX + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#36164#26009#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + Visible = False + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + Visible = False + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + Visible = False + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.pas new file mode 100644 index 0000000..5d4ae01 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListBGZLCX.pas @@ -0,0 +1,684 @@ +unit U_BaoGuanListBGZLCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListBGZLCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListBGZLCX: TfrmBaoGuanListBGZLCX; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListBGZLCX.FormDestroy(Sender: TObject); +begin + frmBaoGuanListBGZLCX:=nil; +end; + +procedure TfrmBaoGuanListBGZLCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListBGZLCX.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListBGZLCX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListBGZLCX.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListBGZLCX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('BGZL',Tv1,'ع'); + WriteCxGrid('ϸBGZL',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListBGZLCX.FormShow(Sender: TObject); +begin + ReadCxGrid('BGZL',Tv1,'ع'); + ReadCxGrid('ϸBGZL',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListBGZLCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListBGZLCX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListBGZLCX.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListBGZLCX.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListBGZLCX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListBGZLCX.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListBGZLCX.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListBGZLCX.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListBGZLCX.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListBGZLCX.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListBGZLCX.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListBGZLCX.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListBGZLCX.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListFP.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListFP.dfm new file mode 100644 index 0000000..c687967 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListFP.dfm @@ -0,0 +1,985 @@ +object frmBaoGuanListFP: TfrmBaoGuanListFP + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#21457#31080#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + Visible = False + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + Visible = False + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + Visible = False + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListFP.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListFP.pas new file mode 100644 index 0000000..d8f4286 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListFP.pas @@ -0,0 +1,692 @@ +unit U_BaoGuanListFP; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListFP = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListFP: TfrmBaoGuanListFP; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListFP.FormDestroy(Sender: TObject); +begin + frmBaoGuanListFP:=nil; +end; + +procedure TfrmBaoGuanListFP.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListFP.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListFP.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListFP.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListFP.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListFP.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('FP',Tv1,'ع'); + WriteCxGrid('ϸFP',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListFP.FormShow(Sender: TObject); +begin + ReadCxGrid('FP',Tv1,'ع'); + ReadCxGrid('ϸFP',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListFP.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListFP.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListFP.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListFP.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListFP.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListFP.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListFP.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListFP.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListFP.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListFP.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListFP.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListFP.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListFP.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListFP.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + //fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='֯޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱYD.rmf'; + end else + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='˽޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱJF.rmf'; + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListFP.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListHT.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListHT.dfm new file mode 100644 index 0000000..b41850c --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListHT.dfm @@ -0,0 +1,985 @@ +object frmBaoGuanListHT: TfrmBaoGuanListHT + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#21512#21516#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + Visible = False + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + Visible = False + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + Visible = False + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListHT.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListHT.pas new file mode 100644 index 0000000..834876b --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListHT.pas @@ -0,0 +1,684 @@ +unit U_BaoGuanListHT; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListHT = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListHT: TfrmBaoGuanListHT; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListHT.FormDestroy(Sender: TObject); +begin + frmBaoGuanListHT:=nil; +end; + +procedure TfrmBaoGuanListHT.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListHT.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListHT.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListHT.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListHT.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListHT.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('HT',Tv1,'ع'); + WriteCxGrid('ϸHT',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListHT.FormShow(Sender: TObject); +begin + ReadCxGrid('HT',Tv1,'ع'); + ReadCxGrid('ϸHT',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListHT.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListHT.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListHT.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListHT.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListHT.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListHT.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListHT.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListHT.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListHT.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListHT.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListHT.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListHT.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListHT.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListHT.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListHT.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.dfm new file mode 100644 index 0000000..2cb2d1c --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.dfm @@ -0,0 +1,985 @@ +object frmBaoGuanListSBYS: TfrmBaoGuanListSBYS + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#21333#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + Visible = False + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + Visible = False + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + Visible = False + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.pas new file mode 100644 index 0000000..625f23a --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListSBYS.pas @@ -0,0 +1,684 @@ +unit U_BaoGuanListSBYS; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListSBYS = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListSBYS: TfrmBaoGuanListSBYS; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListSBYS.FormDestroy(Sender: TObject); +begin + frmBaoGuanListSBYS:=nil; +end; + +procedure TfrmBaoGuanListSBYS.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListSBYS.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListSBYS.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListSBYS.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListSBYS.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListSBYS.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('SBYS',Tv1,'ع'); + WriteCxGrid('ϸSBYS',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListSBYS.FormShow(Sender: TObject); +begin + ReadCxGrid('SBYS',Tv1,'ع'); + ReadCxGrid('ϸSBYS',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListSBYS.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListSBYS.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListSBYS.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListSBYS.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListSBYS.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListSBYS.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListSBYS.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListSBYS.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListSBYS.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListSBYS.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListSBYS.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListSBYS.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListSBYS.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListSBYS.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListSBYS.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListZXD.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanListZXD.dfm new file mode 100644 index 0000000..7c4b07e --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListZXD.dfm @@ -0,0 +1,985 @@ +object frmBaoGuanListZXD: TfrmBaoGuanListZXD + Left = 110 + Top = 82 + Width = 1162 + Height = 615 + Caption = #25253#20851#35013#31665#21333#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton12: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton12Click + end + object ToolButton7: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25253#20851#36164#26009 + ImageIndex = 4 + Visible = False + OnClick = ToolButton7Click + end + object ToolButton8: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #21512#21516 + ImageIndex = 14 + Visible = False + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21457#31080 + ImageIndex = 14 + Visible = False + OnClick = ToolButton9Click + end + object ToolButton10: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #35013#31665#21333 + ImageIndex = 14 + OnClick = ToolButton10Click + end + object ToolButton11: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25253#20851#21333 + ImageIndex = 14 + Visible = False + OnClick = ToolButton11Click + end + object ToolButton3: TToolButton + Left = 552 + Top = 0 + Caption = #30003#25253#35201#32032 + ImageIndex = 14 + Visible = False + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 635 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 698 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label5: TLabel + Left = 639 + Top = 12 + Width = 42 + Height = 12 + Caption = #23458#25143'PO#' + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label3: TLabel + Left = 831 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + OnChange = FactoryNameChange + OnKeyPress = A4FPNOKeyPress + end + object A6PONO: TEdit + Tag = 2 + Left = 683 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 3 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 4 + OnChange = FactoryNameChange + OnKeyPress = A5ConNOKeyPress + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 868 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 5 + OnChange = FactoryNameChange + OnKeyPress = A6PONOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1146 + Height = 309 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v2Column6 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Position = spFooter + Column = v1Column30 + end + item + Kind = skSum + Position = spFooter + Column = v1Column18 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column30 + end + item + Kind = skSum + Column = v1Column18 + end + item + Kind = skSum + Column = v1Column19 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 43 + end + object v1Column15: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #31246#21495 + DataBinding.FieldName = 'A2ShuiHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 97 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #28023#20851#32534#30721 + DataBinding.FieldName = 'A3HaiGuanBM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 93 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#21495 + DataBinding.FieldName = 'A5ConNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143'PO#' + DataBinding.FieldName = 'A6PONO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #21457#31080#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #24320#33322#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column10: TcxGridDBColumn + Caption = #36135#26588 + DataBinding.FieldName = 'B5HuoGui' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #20986#36816#28207 + DataBinding.FieldName = 'B6ChuYunGang' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#28207 + DataBinding.FieldName = 'B7DaoHuoGang' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v1Column11: TcxGridDBColumn + Caption = #36152#26131#22269 + DataBinding.FieldName = 'B8MaoYiGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #25269#36816#22269 + DataBinding.FieldName = 'B9DiYunGuo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #36816#36755#26041#24335 + DataBinding.FieldName = 'B10YunShuType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #36152#26131#26041#24335 + DataBinding.FieldName = 'D2MaoYiType' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #32467#27719#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column17: TcxGridDBColumn + Caption = #25253#20851#26465#27454 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #36816#36153 + DataBinding.FieldName = 'F2YunFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column19: TcxGridDBColumn + Caption = #20445#36153 + DataBinding.FieldName = 'F3BaoFee' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column20: TcxGridDBColumn + Caption = #36135#36816#20195#29702 + DataBinding.FieldName = 'F4HuoYunDaiLi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column22: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column23: TcxGridDBColumn + Caption = #33322#21517#33322#27425 + DataBinding.FieldName = 'B1HangBan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column24: TcxGridDBColumn + Caption = #25552#21333#21495 + DataBinding.FieldName = 'B2TiDanHao' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column25: TcxGridDBColumn + Caption = #31665#21495#23553#21495 + DataBinding.FieldName = 'B4XiangNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column21: TcxGridDBColumn + Caption = #33337#20844#21496 + DataBinding.FieldName = 'F5ChuanGongSi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column6: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column26: TcxGridDBColumn + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column27: TcxGridDBColumn + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQtyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column28: TcxGridDBColumn + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column29: TcxGridDBColumn + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column30: TcxGridDBColumn + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoneyHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 70 + Width = 1146 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1146 + ClientRectTop = 23 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 400 + Width = 1146 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 408 + Width = 1146 + Height = 169 + Align = alBottom + TabOrder = 5 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = cxGridDBColumn2 + end + item + Kind = skSum + Position = spFooter + end + item + Kind = skSum + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn9 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn11 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.GroupFooters = gfAlwaysVisible + Styles.Inactive = DataLink_DDMD.SHuangSe + Styles.IncSearch = DataLink_DDMD.SHuangSe + Styles.Selection = DataLink_DDMD.SHuangSe + Styles.Header = DataLink_DDMD.Default + object cxGridDBColumn1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 183 + end + object cxGridDBColumn14: TcxGridDBColumn + Tag = 2 + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 77 + end + object cxGridDBColumn15: TcxGridDBColumn + Tag = 2 + Caption = #24133#23485'(CM)' + DataBinding.FieldName = 'YSFuKuan' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #32455#36896#26041#27861 + DataBinding.FieldName = 'YSZhiZaoType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #38024#32455 + #32463#32534) + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #21697#29260 + DataBinding.FieldName = 'YSPinPai' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 76 + end + object cxGridDBColumn17: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#21378#21830 + DataBinding.FieldName = 'YSShengChanShang' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 84 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 2 + Caption = 'HS NO' + DataBinding.FieldName = 'C2HSNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 132 + end + object cxGridDBColumn3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'C4BGQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn4: TcxGridDBColumn + Tag = 2 + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'MTR' + 'KG') + HeaderAlignmentHorz = taCenter + Width = 43 + end + object cxGridDBColumn5: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215'(USD)' + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069'(USD)' + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#25968#37327 + DataBinding.FieldName = 'E1BZQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn8: TcxGridDBColumn + Tag = 2 + Caption = #21253#35013#21333#20301 + DataBinding.FieldName = 'E1BZUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'BALES' + 'ROLLS') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Tag = 2 + Caption = #23610#30721'(CBM)' + DataBinding.FieldName = 'E2ChiMaQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object cxGridDBColumn10: TcxGridDBColumn + Tag = 2 + Caption = #27611#37325'(KG)' + DataBinding.FieldName = 'E3MaoZ' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object cxGridDBColumn11: TcxGridDBColumn + Tag = 2 + Caption = #20928#37325'(KG)' + DataBinding.FieldName = 'E4JingZ' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object cxGridDBColumn12: TcxGridDBColumn + Tag = 2 + Caption = #21787#22836 + DataBinding.FieldName = 'E5MaiTou' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 920 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 888 + Top = 184 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 952 + Top = 184 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object PopupMenu1: TPopupMenu + Left = 768 + Top = 168 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 816 + Top = 224 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 472 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 912 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 944 + Top = 472 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 200 + Top = 208 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 256 + Top = 208 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 288 + Top = 208 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 208 + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanListZXD.pas b/报关管理(BaoGuan.dll)/U_BaoGuanListZXD.pas new file mode 100644 index 0000000..6e83866 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanListZXD.pas @@ -0,0 +1,692 @@ +unit U_BaoGuanListZXD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit, cxPC, BtnEdit, cxSplitter; + +type + TfrmBaoGuanListZXD = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + ClientDataSet1: TClientDataSet; + Label6: TLabel; + A4FPNO: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column4: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + ClientDataSet2: TClientDataSet; + v1Column11: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + A6PONO: TEdit; + Label8: TLabel; + A5ConNO: TEdit; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + A1ChuKouShang: TEdit; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton7: TToolButton; + RMXLSExport1: TRMXLSExport; + CDS_Print: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + ToolButton11: TToolButton; + ToolButton12: TToolButton; + ToolButton3: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CRTypeChange(Sender: TObject); + procedure A4FPNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure A6PONOKeyPress(Sender: TObject; var Key: Char); + procedure A5ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + canshu1:string; + canshu2:string; + FDate:TDateTime; + procedure InitGrid(); + function DelData():Boolean; + procedure InitSubGrid(); + procedure InitGridSql(var fsj:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanListZXD: TfrmBaoGuanListZXD; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp,U_BaoGuanInPut; + +{$R *.dfm} + +procedure TfrmBaoGuanListZXD.FormDestroy(Sender: TObject); +begin + frmBaoGuanListZXD:=nil; +end; + +procedure TfrmBaoGuanListZXD.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanListZXD.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmBaoGuanListZXD.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where Valid=''Y'' '); + {if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and Filler='''+Trim(DName)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and BGDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and BGDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListZXD.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanListZXD.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanListZXD.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ZXD',Tv1,'ع'); + WriteCxGrid('ϸZXD',Tv1,'ع'); + Close; +end; + +procedure TfrmBaoGuanListZXD.FormShow(Sender: TObject); +begin + ReadCxGrid('ZXD',Tv1,'ع'); + ReadCxGrid('ϸZXD',Tv1,'ع'); +end; + +procedure TfrmBaoGuanListZXD.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmBaoGuanListZXD.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanListZXD.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmBaoGuanListZXD.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; +procedure TfrmBaoGuanListZXD.InitSubGrid(); +begin + if CDS_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where BGID='''+Trim(CDS_Main.fieldbyname('BGID').AsString)+''''); + sql.Add(' and SValid=''Y'' '); + Open; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_BaoGuan_Sub where 1=2'); + Open; + end; + end; + + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +function TfrmBaoGuanListZXD.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while CDS_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_BaoGuan_Main Set Valid=''N'',C7BGMoneyHZ=Null,E1BZQtyHZ=Null, E2ChiMaQtyHZ=Null,E3MaoZHZ=Null,E4JingZHZ=Null'); + sql.Add(',Editer='''+Trim(DName)+''',EditTime=getdate()'); + sql.Add(' where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + sql.Add('UPdate JYOrder_BaoGuan_Sub Set SValid=''N'',SEditer='''+Trim(DName)+''',SEditTime=getdate() where BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; +procedure TfrmBaoGuanListZXD.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListZXD.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + + + +procedure TfrmBaoGuanListZXD.CRTypeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmBaoGuanListZXD.A4FPNOKeyPress(Sender: TObject; var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A4FPNO.Text)='' then Exit; + fsj:=' and isnull(A.A4FPNO,'''') like '''+'%'+Trim(A4FPNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; +procedure TfrmBaoGuanListZXD.InitGridSql(var fsj:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from JYOrder_BaoGuan_Main A '); + sql.Add(' where 1=1 '); + { if Trim(canshu1)<>'Ȩ' then + begin + SQL.Add(' and FillerCode='''+Trim(DCode)+''''); + end;} + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBaoGuanListZXD.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitSubGrid(); +end; + +procedure TfrmBaoGuanListZXD.A6PONOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A6PONO.Text)='' then Exit; + fsj:=' and isnull(A.A6PONO,'''') like '''+'%'+Trim(A6PONO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListZXD.A5ConNOKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Trim(A5ConNO.Text)='' then Exit; + fsj:=' and isnull(A.A5ConNO,'''') like '''+'%'+Trim(A5ConNO.Text)+'%'+''''; + InitGridSql(fsj); + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton7Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton8Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\غͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\غͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton9Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\طƱ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\طƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton10Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + //fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf'; + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='֯޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥YD.rmf'; + end else + if Trim(CDS_Main.fieldbyname('A1ChuKouShang').AsString)='˽޹˾' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥JF.rmf'; + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else ZheSuanMiQty end as C4BGQtyJS '); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\װ䵥.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton11Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ص.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ص.rmf'),'ʾ',0); + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton12Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmBaoGuanInPut:=TfrmBaoGuanInPut.Create(Application); + with frmBaoGuanInPut do + begin + FBCId:=Trim(CDS_Main.fieldbyname('BGID').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsData.Editing:=False; + if ShowModal=1 then + begin + Self.InitGrid(); + end; + end; + finally + frmBaoGuanInPut.Free; + end; +end; + +procedure TfrmBaoGuanListZXD.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; + EngMoney,BZZH:string; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\걨Ҫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Case when C5BGUnit=''MTR'' then C4BGQty else Null end as C4BGQtyJS '); + sql.Add(',Case when C5BGUnit<>''KG'' then E4JingZ else Null End As E4JingZJS'); + sql.Add(',Case when C5BGUnit<>''KG'' then ''KGS'' else Null End As JZUnit'); + sql.Add(',Case when C5BGUnit=''KG'' then ''KGS'' else C5BGUnit End As C5BGUnitJS'); + sql.add(' ,A1ChuKouShangEng=(select Note from KH_Zdy where Type=''A1ChuKouShang'' and ZdyName=A.A1ChuKouShang )'); + sql.add(' ,B6ChuYunGangEng=(select Note from KH_Zdy where Type=''B6ChuYunGang'' and ZdyName=A.B6ChuYunGang )'); + sql.Add(',HTDate=(select ORDDate from JYOrderCon_Main F where F.ConNo=A.A5ConNO)'); + sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC='); + sql.Add(' (select CustomerNoName from JYOrderCon_Main F where F.ConNo=A.A5ConNO ))'); + sql.Add(' from JYOrder_BaoGuan_Main A inner join JYOrder_BaoGuan_Sub B on A.BGId=B.BGId '); + sql.Add(' where A.BGId='''+Trim(CDS_Main.fieldbyname('BGId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\걨Ҫ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanXSList.dfm b/报关管理(BaoGuan.dll)/U_BaoGuanXSList.dfm new file mode 100644 index 0000000..02ac419 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanXSList.dfm @@ -0,0 +1,519 @@ +object frmBaoGuanXSList: TfrmBaoGuanXSList + Left = 117 + Top = 78 + Width = 1238 + Height = 618 + Caption = #38144#21806#26376#25253#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1222 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 101 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object TBRKCX: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 4 + OnClick = TBRKCXClick + end + object TBExport: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 68 + OnClick = TBExportClick + end + object ToolButton1: TToolButton + Left = 252 + Top = 0 + Caption = 'ToolButton1' + ImageIndex = 22 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 353 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1222 + Height = 40 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label6: TLabel + Left = 279 + Top = 12 + Width = 36 + Height = 12 + Caption = #21457#31080#21495 + end + object Label8: TLabel + Left = 455 + Top = 12 + Width = 36 + Height = 12 + Caption = #35746#21333#21495 + end + object Label3: TLabel + Left = 647 + Top = 12 + Width = 36 + Height = 12 + Caption = #20986#21475#21830 + end + object BegDate: TDateTimePicker + Left = 77 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object A4FPNO: TEdit + Tag = 2 + Left = 315 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 2 + end + object A5ConNO: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 129 + Height = 20 + CharCase = ecUpperCase + TabOrder = 3 + end + object A1ChuKouShang: TEdit + Tag = 2 + Left = 684 + Top = 8 + Width = 129 + Height = 20 + TabOrder = 4 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 115 + Width = 1222 + Height = 465 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v2Column1: TcxGridDBColumn + Caption = #21457#31080#21495 + DataBinding.FieldName = 'A4FPNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.CellMerging = True + Options.Sorting = False + Width = 100 + OnCompareRowValuesForCellMerging = v2Column1CompareRowValuesForCellMerging + end + object v1Column14: TcxGridDBColumn + Caption = #20986#21475#21830 + DataBinding.FieldName = 'A1ChuKouShang' + HeaderAlignmentHorz = taCenter + Width = 134 + end + object v1Column6: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'A5ConNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.CellMerging = True + Options.Sorting = False + Width = 126 + OnCompareRowValuesForCellMerging = v2Column1CompareRowValuesForCellMerging + end + object v1Column10: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'C3BGName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 166 + end + object v1Column13: TcxGridDBColumn + Caption = #25104#20221#21547#37327 + DataBinding.FieldName = 'YSChenFen' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 149 + end + object v1Column2: TcxGridDBColumn + Caption = #20986#36135#26085#26399 + DataBinding.FieldName = 'A7FPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.CellMerging = True + Options.Sorting = False + Width = 74 + OnCompareRowValuesForCellMerging = v2Column1CompareRowValuesForCellMerging + end + object v1Column1: TcxGridDBColumn + Caption = #20986#21475#26085#26399 + DataBinding.FieldName = 'B3KaiHangDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.CellMerging = True + Options.Sorting = False + Width = 67 + OnCompareRowValuesForCellMerging = v2Column1CompareRowValuesForCellMerging + end + object v1Column3: TcxGridDBColumn + Caption = #25104#20132#26041#24335 + DataBinding.FieldName = 'F1BaoGuanTK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.CellMerging = True + Options.Sorting = False + Width = 65 + OnCompareRowValuesForCellMerging = v2Column1CompareRowValuesForCellMerging + end + object v1Column4: TcxGridDBColumn + Caption = #20184#27454#26041#24335 + DataBinding.FieldName = 'D3JiHuiType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.CellMerging = True + Options.Sorting = False + Width = 62 + OnCompareRowValuesForCellMerging = v2Column1CompareRowValuesForCellMerging + end + object v1Column5: TcxGridDBColumn + Caption = #25253#20851#25968#37327 + DataBinding.FieldName = 'C4BGQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 73 + end + object v1Column7: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C5BGUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 50 + end + object v1Column8: TcxGridDBColumn + Caption = #25253#20851#21333#20215 + DataBinding.FieldName = 'C6BGPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 61 + end + object v1Column9: TcxGridDBColumn + Caption = #25253#20851#37329#39069 + DataBinding.FieldName = 'C7BGMoney' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 68 + end + object v1Column11: TcxGridDBColumn + Caption = #36741#21161#25968#37327 + DataBinding.FieldName = 'FZQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 64 + end + object v1Column12: TcxGridDBColumn + Caption = #36741#21161#21333#20301 + DataBinding.FieldName = 'FZQtyUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 66 + end + object v1Column16: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column15: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'Status' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 416 + Top = 192 + Width = 217 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 94 + Width = 1222 + Height = 21 + Align = alTop + Style = 8 + TabOrder = 4 + OnChange = cxTabControl1Change + ClientRectBottom = 21 + ClientRectRight = 1222 + ClientRectTop = 0 + end + object cxTabControl3: TcxTabControl + Left = 0 + Top = 73 + Width = 1222 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 3 + TabOrder = 5 + Tabs.Strings = ( + #24453#36865#23457 + #24453#26680#23545 + #24453#23457#26680 + #24050#23457#26680 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1222 + ClientRectTop = 23 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 1000 + Top = 32 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 960 + Top = 32 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 32 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 360 + Top = 232 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 424 + Top = 232 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 392 + Top = 232 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 520 + Top = 232 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 488 + Top = 232 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 232 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 232 + object N1: TMenuItem + Caption = #20840#36873 + end + object N2: TMenuItem + Caption = #20840#24323 + end + end +end diff --git a/报关管理(BaoGuan.dll)/U_BaoGuanXSList.pas b/报关管理(BaoGuan.dll)/U_BaoGuanXSList.pas new file mode 100644 index 0000000..1925ba9 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_BaoGuanXSList.pas @@ -0,0 +1,328 @@ +unit U_BaoGuanXSList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxPC; + +type + TfrmBaoGuanXSList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v2Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + RMDBHZ: TRMDBDataSet; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + TBRKCX: TToolButton; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + v1Column6: TcxGridDBColumn; + Panel2: TPanel; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + Label6: TLabel; + Label8: TLabel; + Label3: TLabel; + A4FPNO: TEdit; + A5ConNO: TEdit; + A1ChuKouShang: TEdit; + cxTabControl3: TcxTabControl; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + ToolButton1: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure v2Column1CompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); + procedure TBRKCXClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + private + procedure InitGrid(); + procedure GetColor(color:TColor); + { Private declarations } + public + { Public declarations } + end; + +var + frmBaoGuanXSList: TfrmBaoGuanXSList; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmBaoGuanXSList.FormDestroy(Sender: TObject); +begin + frmBaoGuanXSList:=nil; +end; + +procedure TfrmBaoGuanXSList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBaoGuanXSList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); +end; + +procedure TfrmBaoGuanXSList.InitGrid(); +var + fsj:string; +begin + Panel2.Visible:=True; + Panel2.Refresh; + fsj:=' and A7FPDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+'''' + +' and A7FPDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''; + if cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption<>'ȫ' then + begin + fsj:=fsj+' and A1ChuKouShang like '''+'%'+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+'%'+'''' + end; + if cxTabControl3.TabIndex=0 then + begin + fsj:=fsj+'and isnull(SChker,'''')='''''; + end else + if cxTabControl3.TabIndex=1 then + begin + fsj:=fsj+' and isnull(OKPerson,'''')='''' and isnull(SChker,'''')<>'''' '; + end else + if cxTabControl3.TabIndex=2 then + begin + fsj:=fsj+' and isnull(Chker,'''')='''' and isnull(OKPerson,'''')<>'''' '; + end else + if cxTabControl3.TabIndex=3 then + begin + fsj:=fsj+' and isnull(Chker,'''')<>'''' '; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' exec P_View_BaoGuanData_XS :WSql'); + Parameters.ParamByName('WSql').Value:=fsj; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + Panel2.Visible:=False; + end; + Panel2.Visible:=False; +end; + +procedure TfrmBaoGuanXSList.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmBaoGuanXSList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmBaoGuanXSList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('񱨹۱',Tv1,''); + Close; +end; + +procedure TfrmBaoGuanXSList.FormShow(Sender: TObject); +begin + ReadCxGrid('񱨹۱',Tv1,''); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''A1ChuKouShang'' '); + Open; + end; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + cxTabControl1.Tabs.Add(ADOQueryTemp.fieldbyname('ZdyName').asstring); + Next; + end; + end; + cxTabControl1.Tabs.Add('ȫ'); + //InitGrid(); +end; + +procedure TfrmBaoGuanXSList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('񱨹۱',cxGrid2); +end; + +procedure TfrmBaoGuanXSList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmBaoGuanXSList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmBaoGuanXSList.v2Column1CompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); + +var + colIdx0:integer; +begin + colIdx0:= tv1.GetColumnByFieldName('A4FPNO').Index; + if ARow1.Values[colIdx0] = ARow2.Values[colIdx0] then + AAreEqual := True + else + AAreEqual := False; +end; + + +procedure TfrmBaoGuanXSList.TBRKCXClick(Sender: TObject); +var + fPrintFile,fsj:string; +begin + if CDS_Main.IsEmpty then Exit; + //if cxTabControl3.TabIndex<>3 then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf'; + fsj:=' and SubString(convert(varchar(10),A7FPDate,120),1,7)='''+Copy(Trim(CDS_Main.fieldbyname('A7FPDate').AsString),1,7)+''''; + if cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption<>'ȫ' then + begin + fsj:=fsj+' and A1ChuKouShang like '''+'%'+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+'%'+''''; + //+' and isnull(Chker,'''')<>'''' '; + end else + begin + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('exec P_View_BaoGuanData_XS :WSql'); + Parameters.ParamByName('WSql').Value:=fsj; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + //RMVariables['enddate']:=enddate.DateTime; + RMVariables['TaiTou']:=cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; + +end; + + + +procedure TfrmBaoGuanXSList.ToolButton1Click(Sender: TObject); +begin + GetColor(clRed); +end; + +procedure TfrmBaoGuanXSList.GetColor(color:TColor); +var + R,G,B:Integer; + color10:TColor; +begin + R:=0; + G:=0; + B:=0; + for R:=0 to 255 do + begin + for G:=0 to 255 do + begin + for B:=0 to 255 do + begin + //HZ:=i+j+k; + color10:=(R shr 3)shl 11+(G shr 2)shl 5+B shr 3; + if color10=color then + begin + Application.MessageBox(PChar('R='+IntToStr(R)+',G='+IntToStr(G)+',B='+IntToStr(B)),'ʾ',0); + Exit; + end; + end; + end; + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_DataLink.dfm b/报关管理(BaoGuan.dll)/U_DataLink.dfm new file mode 100644 index 0000000..b52306c --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_DataLink.dfm @@ -0,0 +1,17985 @@ +object DataLink_DDMD: TDataLink_DDMD + OldCreateOrder = False + OnDestroy = DataModuleDestroy + Left = 343 + Top = 231 + Height = 349 + Width = 482 + object AdoDataLink: TADOQuery + Connection = ADOLink + Parameters = <> + Left = 136 + Top = 8 + end + object ADOLink: TADOConnection + LoginPrompt = False + Left = 48 + Top = 8 + end + object ThreeImgList: TImageList + Height = 24 + Width = 24 + Left = 48 + Top = 96 + Bitmap = { + 494C01018900F000040018001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 000000000000360000002800000060000000A005000001002000000000000070 + 0800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008195DB0028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 73002839730028397300283973007287D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A4B3E50031437F002B38 + 680026335B002B396C008E9FD400C0C0C000C1C1C100C7C7C700C8C8C800D5D5 + D500DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CACACA00596FB9003E5194003E51 + 94003E5194003E5194003E5194003D5092003B4D8B00384A860034447C003241 + 77002F3E71002A3867002936620040529200C3C3C300DBDBDB00000000000000 + 0000000000000000000000000000000000002D3E7C00092EAA000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7003B57B400354682000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536AB6007089DA005570 + CD003E5ABA00566EBC0047589200B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005E72B6008DA1E40090A5 + EB008DA3ED008BA2ED00879EEB008199E9007E96E4007B92E000758CD7007187 + D1006E84CC00687CC0006F7FB7004D5B8A000000000000000000000000000000 + 0000000000000000000000000000000000004057A7002345B600042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042AAA000328 + A300042AAA00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC004157A200334A9300374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000000000006782DF006983DC00617C + D6004461C2003A57B800576EBC00283A7700B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008AA0EB00829CF5007995 + F4007290F4006989F3006082F2004C71ED004469E6003A5FDE00274DCD001D43 + C300143AB9000328A3003652AF006E7EB7000000000000000000000000000000 + 000000000000000000000000000000000000A7B7ED00435EBA00153AB7000930 + B3000930B3000930B3000930B3000930B3000930B3000930B3008191C600FFFF + FF00FFFFFF000930B3000930B3000930B3000930B3000930B3000930B3000930 + B3000930B3000F35B5003D4F8D008499DF0033478A004F6CCC004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC004F6CCC0033478A0000000000000000006F8AE5007891E300758E + DF005873CF004663C3003A57B80047589300283B7800B7C5F100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000096AAEE0093AAF60096AC + F700829DF5007894F4006D8CF3005679EE004B6FE7004166DF002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 000000000000000000000000000000000000000000003A4E93004E69C0002449 + C500163DC100163DC100163DC100163DC100163DC100153AB800FFFFFF00FFFF + FF00FFFFFF00153AB800163DC100163DC100163DC100163DC100163DC100163D + C1001F45C4004E69C600A8B7EE00000000004158A7001B47D800204BD900224C + D9001B47D800829AE9004158A700000000004158A700829AE900204BD900224C + D900204BD900829AE9004158A700000000004158A700829AE9001B47D800224C + D900204BD9001B47D8004158A7000000000000000000778ACD009EB0EF00829A + E800778FE00096A8E3008292C800344EA200576EBC0048599300B7C5F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000097ABEE0097ADF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 00000000000000000000000000000000000000000000617ACE004E61A5004666 + D0001D44C9001D44C9001D44C9001D44C9001D44C9001C43C500A8B4DC00FFFF + FF00FFFFFF001D44C9001D44C9001D44C9001D44C9001D44C9001D44C9001D44 + C9003E60D0005066AD0000000000000000004961B6002D58E7003861E9003A62 + E9002C57E7009BAFF3004961B600000000004961B6009BAFF3003861E9003A62 + E900365FE8009BAFF3004961B600000000004961B6009BAFF3002D58E7003A62 + E900365FE8002C57E7004961B60000000000000000003F59B0007E90D000A1B3 + EF00839AE5008A96BD00B3C0EB00384F9C00344EA200576EBC002A3D7900B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000099ADEE0098AEF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A53A1005A73 + C600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF001C3CA6004660 + B6004660B600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002F54 + D2005974CB003E549E0000000000000000004F69C0003C65EF00496FF0004C72 + F1003A64EF00A9BBF8004F69C000000000004F69C000A9BBF800496FF0004C72 + F100476EF000A9BBF8004F69C000000000004F69C000A9BBF8003C65EF004C72 + F100476EF0003A64EF004F69C0000000000000000000BECCF5004059B0007F92 + D100849BE8004E5C8A008A96BD008292C800384F9C00344EA200495A93002B3D + 7A00B7C5F1000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009AAEEF0098AEF70097AD + F700829DF5007894F4006D8CF30011172D0000000000161B2B002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455E + B200476ADF003158DB003158DB003158DB003158DB003158DB0092A2D700FFFF + FF00FFFFFF003158DB003158DB003158DB003158DB003158DB003158DB00657E + D0004159AB000000000000000000000000005770C700BBC9F600BECBF700BFCC + F600BAC8F600B5C4F5005770C700000000005770C700B5C4F500BECBF700BFCC + F600BECBF700B5C4F5005770C700000000005770C700B5C4F500BBC9F600BFCC + F600BECBF700BAC8F6005770C70000000000000000000000000000000000BECC + F5008093D100A2B4EF006576AF008A96BD00B3C0EB008292C800344EA200566E + BC00495A9500B7C5F10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000099ADF00097ADF70097AD + F700829DF5007894F4006D8CF3001F1F1F000C0C0C001F1F1F002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009AAD + EC006984E0003C62E200375EE000375EE000375EE000375EE00095A5D900FFFF + FF00FFFFFF00375EE000375EE000375EE000375EE000375EE000395FE000566C + B600748ADC000000000000000000000000005B76D2005872C9005872C9007A7E + 8E005872C9005872C9005B76D200000000005B76D2005872C9005872C9006F74 + 83005872C9005872C9005B76D200000000005B76D2005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000435CB2007C8FD1009AADEF004E5C8A008A96BD00B3C0EB00384F9C00344E + A200576EBC002C3F7C00B7C5F100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000098ACF00094ABF60096AC + F700829DF5007894F4006D8CF3003A405600333333003F4454002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000687ECB00587AE9003E64E5003E64E5003E64E5003E64E50097A7DB00FFFF + FF00FFFFFF003E64E5003E64E5003E64E5003E64E5003E64E5005073E8004A63 + BB00000000000000000000000000000000000000000000000000000000007878 + 7800000000000000000000000000000000000000000000000000000000006666 + 6600000000000000000000000000000000000000000000000000000000005656 + 5600000000000000000000000000000000000000000000000000000000000000 + 0000BECCF500445DB3007C90D1006576AF004E5C8A008A96BD008292C800384F + 9C00344EA2004A5B95002D3F7C00B7C5F1000000000000000000000000000000 + 000000000000000000000000000000000000000000008EA4EE00859FF50089A2 + F600859FF5007E99F5007592F4006283F000597AE9005072E1003E60D2003457 + C9002C4EC0001C3DAC003652AF007181BA000000000000000000000000000000 + 0000000000008282820080808000828282000000000000000000000000000000 + 0000657FD9006C83CD006686F2004C71F0004C71F0004C71F000CDD4EE00FFFF + FF00FFFFFF004C71F0004C71F0004C71F0004C71F0006182F1007087D4000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000000000000000000000000000000000000000000000000000000000008080 + 8000000000000000000000000000000000000000000000000000000000007070 + 7000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BECCF5008294D300A2B4EF006576AF008A96BD00B3C0 + EB008292C800344EA200576EBC004B5C9500B7C5F10000000000000000000000 + 000000000000000000000000000000000000000000006E84D0008AA1EE0090A6 + F00091A7F0008FA5F0008CA3EF00879FED00849BE8008097E3007B91DA00788D + D400758ACF007083C5007283BE00576798000000000000000000000000000000 + 0000000000008080800040404000808080000000000000000000000000000000 + 0000D2DBF800536CC1008098E7005176F1005176F1005176F100CFD6EF00FFFF + FF00FFFFFF005176F1005176F1005176F100597CF2007E97ED005870C3000000 + 0000000000000000000000000000000000000000000000000000000000009D9D + 9D009A9A9A0099999900989898009494940094949400919191008E8E8E008C8C + 8C008C8C8C008888880088888800858585008282820080808000808080007C7C + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465FB5008395D300A2B4EF004E5C8A008A96 + BD00B3C0EB00384F9C003B58B800576EBC002F3E750032437D00354787003B50 + 98004C64BB0000000000000000000000000000000000718BE2005771C8005771 + C8005771C8005771C8005771C800556EC400516ABD004E66B600485EA7006D71 + 7D00717170005E616D003A4A83005068B8000000000000000000000000000000 + 0000000000008080800045454500808080000000000000000000000000000000 + 0000000000007991E3006B81CC00587CF200587CF200587CF200D1D8EF00FFFF + FF00FFFFFF00587CF200587CF200587CF200718FF4007388D200607AD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009999 + 9900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF5004760B6008396D4006576AF004F5D + 8A008A96BD008292C8004663C3003C59B900596DAF00586CAF005D72B800647B + C8005C70B1004760B40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000CCCCCC008080800000000000000000000000000000000000000000000000 + 0000000000008080800050505000808080000000000000000000000000000000 + 00000000000000000000839AE800869FF3006686F3006586F300F3F5FA00FFFF + FF00FFFFFF006586F3006586F3006586F300758AD1007189DF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000364C99002B3D7B002B3D7B002B3D7B006367 + 73002B3D7B002B3D7B002B3D7B00364C99000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5007F92D400A2B4 + EF00869DE800778FE0006781D7005873CF003351B600203FA6000C2C96001B3B + A8003D5ABD00667FD0004861B400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D1D1D1008080800000000000000000000000000000000000000000000000 + 0000000000008080800055555500808080000000000000000000000000000000 + 00000000000000000000000000008B9FE0007E99F5006B8AF300FFFFFF00FFFF + FF00FFFFFF006B8AF3006B8AF3007A96F400526CC50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031448600657ED100506CCA00506CCA00506C + CA00506CCA00506CCA00657ED100314486000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004963B9008597 + D500A4B5EF00849BE600778FE0006781D7004461C200415DBA00445EB4001433 + 9B001839A7003A58BC005F73B4004A62B5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D5D5D5008080800000000000000000000000000000000000000000000000 + 0000000000008A8A8A0059595900808080000000000000000000000000000000 + 00000000000000000000000000005F77C90097ACF2007592F4005B73C3005B73 + C3005B73C3007290F4007491F40090A7F300849BE80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000374C94006580D8000732C1000833C1000833 + C1000833C1000631C1006681D900374C94000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004A63 + BA008799D60093A7EB00859BE600778FE0008196DA0099A8D9008F9DCD008191 + C7003853AB001536A5005E78CD003F549B000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D8D8D80084848400C6C6C600000000000000000000000000000000000000 + 0000C6C6C6009898980067676700868686000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005C75C8009FB1EF007F9AF5007F9A + F5007F9AF500829CF500A1B4F300687FCD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445BAC00869EEC002C55DE003D62DF003E63 + DF003C61DF002A53DD00869EEC00445BAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D66BB00A3B5F1009EB0EF008FA4EA00596CAD00AAB9EF0000000000536B + BC005A6999007F8FC400546DBE003A4C8B000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000C3C3C3008E8E8E008A8A8A00000000000000000000000000000000000000 + 00008A8A8A00B5B5B5006E6E6E00969696000000000000000000000000000000 + 0000000000000000000000000000000000006B84DE008699DB00859FF500859F + F500859FF50096ACF7008FA2E0005E79D6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63B900A1B4F600446BEC005F80EE006383 + EF005E7FEE004269EC00A1B4F6004A63B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004E67BD00A7B8F300A7B8F10095A9ED004C65BB0000000000000000000000 + 0000465CAA006B79A8004F66B400374883000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B0B0 + B000A6A6A600B0B0B0008B8B8B00868686000000000000000000000000008686 + 860092929200ACACAC0078787800BBBBBB000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF9005C75CC0094ABF6008CA5 + F6008CA5F600A6B7F100647CCD00AFBFF3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F68BF00A6B9F800567AF2007B97F4007F9A + F5007995F4005378F100A5B8F8004F68BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC000A3B5F400ADBDF4009DB0F1004D62AF00D1DAF800000000000000 + 0000000000003F56A1007284C00034437B000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D3D3D300D7D7D700DFDFDF00CECECE00AEAEAE009D9D9D0099999900C0C0 + C000C5C5C500B7B7B700D3D3D300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A7B6EB00A4B7 + F800A2B6F8005E77CA00D3DBF900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556EC500B8C7F900597CF2007E99F500829C + F5007C97F400577BF200B7C7F900556EC5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C77D400AABBF5009BB0F50097ACF300829BEB006D81C9005169C1000000 + 000000000000000000003D5299003D539D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000080808000B3B3B300E1E1E100F3F3F300EFEFEF00E9E9E900CDCD + CD00A7A7A7008080800000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CF00B2C0 + F100B1BFF1007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005771C800B7C6F600BFCCF500C6D1F700C7D2 + F700C6D1F700BECBF500B7C6F6005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008C9EDC00A9BAF50090A7F3007B95EE007993EA006C81C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B0B0B0008A8A8A008080800080808000808080008A8A + 8A00B0B0B0000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007C93E6005771 + C9005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005B76D2005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005B76D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005974CF008C9EDD00A5B7F5007490EE00718DED006E8AE800526B + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D600556FC500556EC400546DC1005169 + BB00546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C2C2 + C2003D4E860029355F0027335E0027335E0027335E0027335E0027335E002733 + 5E0027335E0027335E0027335E0027335E0029355F003D4E860098A7D800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002C3C + 75003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55 + A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A40040518F00AFBD + EC00000000000000000000000000000000000000000000000000000000004053 + 93003F64DE002A54DF004368E5007D97ED0099ADF0009EB1F000849BE700768F + E2006984DB00506CCB004360C2003553B700213EA0003E57A900415187000000 + 000000000000000000000000000000000000000000002F3E710045569500475C + A400435AA700435AA700435AA600435AA500445BA600435AA500445AA5004359 + A4004359A3004359A2004359A2004359A1004358A0004358A00043589F004358 + 9F00495A990044528B0043569E0000000000D6D6D600384A880023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C00C0C0C000CECECE000000000000000000465DAD004055 + 99001336AC001034AB001034AB001034AB001034AB001034AB001034AB001034 + AB001034AB001034AB001034AB001034AB001034AB001336AC002C4BB4003D54 + A300000000000000000000000000000000000000000000000000000000002B3D + 79001945D7001F42B5005466A300A7B7ED00A3B5F100AABAF2007781A4009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB3001B3898004A5EA1000000 + 0000000000000000000000000000000000006279C9004660B4002747B000072B + A3000328A0000328A00003279F0003279F0003279E0003279D0003269C000326 + 9B0003269A000326990003269800032597000325960003259500032594000324 + 9300072895002743A2002E3D6F008EA1E1000000000026356E005A6CAB00566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB00000000000000000000000000000000000324791003E59 + B400042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC001338B1002D40 + 8100000000000000000000000000000000000000000000000000000000002D3E + 7D000938D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D50013319500495EA4000000 + 000000000000000000000000000000000000283C80002748B5000429A8000429 + A7000429A6000429A5000429A5000328A3000328A2000328A2000328A0000328 + A00003279F0003279E0003279E0003279D0003269B0003269B0003269A000326 + 99000326980003259700495A99002D428A00000000002D4289005771CA00173F + C500042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC0004F6DD30000000000000000000000000000000000364B95003F5C + BD00042DB800042DB800042DB8001037BB001037BB001037BB001037BB001037 + BB001037BB001037BB001037BB000D35BB00042DB800042DB8001037BB003246 + 8B00000000000000000000000000000000000000000000000000000000003143 + 84000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000002B3E8100042CB300042CB200042C + B20003238D00506BC800042BAF00042BAD00042BAD00042BAC00042AAA000322 + 8800506AC3000429A8000429A8000429A7000429A6000429A500032184000328 + A3000328A2000328A100435EB8002638730000000000324793005873D0001842 + CF000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC005171DB0000000000000000000000000000000000384E9900405D + C200042FBF00042FBF00042FBF00405EC200405EC200405EC200405EC200405E + C200405EC200405EC200405EC2003859C800042FBF00042FBF00113AC2003549 + 9000000000000000000000000000000000000000000000000000000000003346 + 87000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000002D418600042DB800042DB700042D + B600032492004F6BCA00042CB400042CB300042CB200042CB100042BB0000323 + 8C004F6AC700042BAD00042BAC00042BAC00042AAA00042AAA00032187000429 + A8000429A8000429A700435FBC002839770000000000364C9D00607CDA002851 + DC001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9005C7BE400000000000000000000000000000000003A509D00405F + C7000430C4000430C4000430C400374C9700374C9700374C9700374C9700374C + 9700374C9700374C9700374C9700405FC7000430C4000430C400103AC700374C + 9700000000000000000000000000000000000000000000000000000000003447 + 8B000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000002F438B000530BE00042EBC00042E + BC00032595004F6CCE00042EB900042DB700042DB7000328A200031F7E000219 + 6400374B8D00031F7C0003269A00042CB100042BB000042BAF0003238C00042B + AD00042BAC00042AAB00425FBF002A3C7C00000000003E57AF00748FEA004F74 + F000426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF007B97F400000000000000000000000000000000003F57A7004162 + D1000434D1000434D1000434D1003C54A1000000000000000000000000000000 + 000000000000000000003C54A1004162D1000434D1000434D100113ED3003C54 + A10000000000000000000000000000000000000000000000000000000000384D + 94000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 000000000000000000000000000000000000344A9400143ECA001740CA00153E + C900072A9E005875D7000E38C5000B36C4000934C2000D2A8A00CDCCCA00CBCA + C800C9C7C600CECCCB0003208300042EBB00042EBA00042EB90003249300042D + B700042DB600042DB6004361C7002F42850000000000405AB1007D97EB006384 + F300587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF20089A2F600000000000000000000000000000000004058AC004567 + D6000E3DD8000E3DD8000C3BD8003F57A8000000000000000000000000000000 + 000000000000000000003F57A8004567D6000E3DD8000E3DD8001946DA003F57 + A800000000000000000000000000000000000000000000000000000000003A4F + 98000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 000000000000000000000000000000000000364B99001D46D100224AD2002149 + D1000A2DA3005F7CDC001A43CD001640CB00153FCA0016359B00EDEDEC00ECEC + EB00EBEBEA00DBDCE20005258E000530C100042FBF00042FBF0003269800042F + BD00042EBC00042EBB004362CB0031458A0000000000425BB300869DED007894 + F4006E8DF3006E8DF3006E8DF3006E8DF3006E8DF3006E8DF300637EDB00637E + DB00637EDB00637EDB006C8AF0006E8DF3006E8DF3006E8DF3006E8DF3006E8D + F3006E8DF30097ADF70000000000000000000000000000000000435CAF004B6C + DB001E4BE1001D4AE0001947E000425AAD000000000000000000000000000000 + 00000000000000000000425AAD004A6CDB001E4BE1001E4BE1002853E200425A + AD00000000000000000000000000000000000000000000000000000000003C51 + 9C000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 000000000000000000000000000000000000394F9E00264FD8002C53D8002C53 + D7000D31A8006884E100254DD400214AD2002049D2001D45CC001639AF000826 + 8B004E67BA001034AC00113AC5000F3AC8000C37C7000A35C50004279C000632 + C3000531C200042FC0004262CF0033478F00000000003B519A00465898003A4D + 9000364A8E00364A8E00364A8E00364A8E00364A8E00364A8E00C7CCDD009BA0 + AF00999EAD005967980035488A00364A8E00364A8E00364A8E00364A8E00364A + 8E00364A8E00465898003D55A5000000000000000000000000004862B9005576 + E5003D66EE003D66EE00325DED004761B9000000000000000000000000000000 + 000000000000000000004761B9005475E5003D66EE003D66EE00436AEE004761 + B900000000000000000000000000000000000000000000000000000000004157 + A3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA4000000 + 0000000000000000000000000000000000003D55A800375EE2004166E3004267 + E3001338B0007691E9003B61E000375DDE00355CDD00345BDD003057DB000F33 + AB006C87E4002951D800274FD700264ED6001834940017349400072074001330 + 9200122F91001338B3004869D800384E9800000000006179CC005A75D1005A75 + D1005A75D1005A75D1005A75D1005A75D1005A75D1005A75D100D0D7ED00D0D6 + E700CED4E5006A7FC7005873CD005A75D1005A75D1005A75D1005A75D1005A75 + D1005A75D1005A75D1004B5FA5000000000000000000000000004A64BB005A7B + E8004D72F1004D72F1004068F0004A64BB000000000000000000000000000000 + 000000000000000000004A64BB00597AE8004D72F1004E73F1005176F1004A64 + BB0000000000000000000000000000000000000000000000000000000000435A + A7000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000004059AD003F66E7004B70E8004D71 + E900163BB3007E98ED00456AE5004368E4004166E3003F64E2003C62E1001237 + AF00748FE900345BDD003259DC003158DC00B6B6BA00BFBDBB00BDBBB900BAB8 + B600AEAEB200173494004C6DDC003A509D0000000000738CE000466AE2003B61 + E0003B61E0003B61E0003B61E0003B61E0003B61E0003B61E0004665CE005773 + D3005773D3003557C9003A5FDC003B61E0003B61E0003B61E0003B61E0003B61 + E0003B61E0003B61E000566AB3000000000000000000000000004B65BC005F7F + E8005C7FF2005C7FF2004D72F1004B65BC000000000000000000000000000000 + 000000000000000000004B65BC005D7DE8005C7FF2005D80F2005F81F2004B65 + BC0000000000000000000000000000000000000000000000000000000000455C + AB000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 000000000000000000000000000000000000425CB200486DEC004D6CD2003D55 + A600122C80005E6FA8003851A4004362CA004B70E800496EE700456AE600153A + B3007A95EC003F64E3003E64E3003C62E200D7D5D400CDCCCA00CBCAC800C7C5 + C300CECCCB001F3B99005071E0003D54A20000000000B8C6F6009BB0F70093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF6006C80C9000000000000000000000000004D67BE006A87 + E9007C97F4007C97F4006686F3004D67BE0000000000000000005A74CB004D67 + BE004D67BE004D67BE004D67BE00728DEA007D98F5007D98F5007F9AF5004D67 + BE004D67BE004D67BE004D67BE005A74CB000000000000000000000000004961 + B3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007E95 + E200C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000004760B700587CF2005166AD00D7D5 + D400CBCAC800C9C7C600C7C5C300465DA9006283F2006082F1005C7EEF001B40 + BB008AA2F3005477ED005377ED005175EC004361C7004261C70014339B003D5C + C5003C5CC5004166E2005678E8004259AC0000000000D7DFF900D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC007387CC000000000000000000000000004E68BF006E8A + EA008BA4F6008AA3F6007391F4004E68BF0000000000000000004E68C100607A + D0004E71E7006382E900738EEA0089A2F4008CA5F6008CA5F6008CA5F600738D + EA006483E9005A7BE800607AD0004E68C1000000000000000000000000004C65 + B8000535D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000004861B8006082F2005E73BB00E4E5 + EA00ECECEB00EBEBEA00EAEAE9005269B4006D8CF3006B8AF3006888F3001E43 + BE0092A9F5006082F1005F81F1005C7EF000597CEF00577AEF001A3FBB005175 + ED005074EC004A6FEB00597BEB00455DB100000000007185CC007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE005870C6000000000000000000000000004F69C000738E + EB009BB0F7009AAFF700809BF5004F69C0000000000000000000BFCDF600516A + C3005A78E0006384F300819BF50098AEF7009CB1F7009CB1F7009CB1F700829D + F5006686F3006183F200516AC300BFCDF6000000000000000000000000004E66 + BC000535D4001F42B5005466A300A7B7ED00A3B5F100AABAF2007882A5009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB300133195004A5FA5000000 + 0000000000000000000000000000000000004962B9006888F3007D97F0007086 + D000213FA3008D9DD2006A81CF007893F0007894F4007794F4007391F4002146 + BE009BB0F7006C8BF3006A8AF3006888F3006586F3006384F3001D42BE005D7F + F1005C7FF1005478F0005C7EEF004761B7000000000000000000000000000000 + 0000000000000000000000000000C7C5C500AFADAC00898685007D7A78007D7A + 78007D7A78007D7A78007D7A7800AFADAC008F8D8B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000516BC2007B95 + EC00BAC9FA00B9C8F90097ADF700516BC2000000000000000000000000000000 + 000092A5EC00738EEB0098AEF700B4C4F900BBCAFA00BBCAFA00BAC9FA0097AD + F7007892EC005A73C6000000000000000000000000000000000000000000536D + C4000425940015349B002C469F005B6CA500727FA9007682A9006070A2005666 + 9F004B5D990035498D002A3F86001F357E00091F6A000D226800344374000000 + 0000000000000000000000000000000000004B65BC00708EF40089A2F60097AD + F70097ADF70095ACF70093AAF60090A8F6008EA6F6008CA5F60088A2F60087A1 + F500859FF500829CF500809BF5007F9AF5007B97F4007995F4007894F4007491 + F4006F8DF3006283F2006987ED004B65BC000000000000000000000000000000 + 0000000000000000000000000000E0DEDE00D7D5D500D3D1D000D3D1D000D3D1 + D000D3D1D000D3D1D000D3D1D000D5D3D2009C9A990000000000000000000000 + 0000000000000000000000000000000000000000000000000000526CC3007A95 + EC00C4D1FA00C3D0FA009CB1F700526CC3000000000000000000000000000000 + 0000000000006179CB00809AEE00ABBDF800C9D5FB00C9D5FB00C1CEFA007B96 + EE006179CB007991E20000000000000000000000000033437C0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D00374780000000000000000000000000004D66BF007995F400829CF50091A8 + F6009AAFF70099AFF70097ADF70096ACF70094ABF60092A9F6008FA7F6008DA5 + F6008BA4F60088A2F60086A0F500849EF500819BF5007F9AF5007C97F4007592 + F4006D8CF3005E80F2006C86E0004F6AC5000000000000000000000000000000 + 0000000000000000000000000000DEDDDC00E4E3E200E4E3E200E4E3E200E4E3 + E200E4E3E200E4E3E200E4E3E200E4E3E2009A97960000000000000000000000 + 0000000000000000000000000000000000000000000000000000536DC600738E + E900AFC0F900B0C0F9008FA7F600536DC4000000000000000000000000000000 + 0000000000006883DC00637BCD00869FF200BAC9FA00BAC9FA00A7B9F8006179 + CC006883DC00000000000000000000000000000000002E3F7B004662BF004F6C + CD005F7DE3006685ED006988F1006382EB005F7FE8005B7BE4005474DD005070 + D9004C6CD5004564CC004463CA004766CC004D6BD100506ED400516FD500536F + CC00364A91000000000000000000000000007990E200839CF0007E99F5007C97 + F400839EF500839EF500839EF500829CF500819BF5007F9AF5007C97F4007B97 + F4007A96F4007794F4007592F4007491F400718FF4006F8DF3006C8BF3006485 + F3005F81F2006485F3005C73C70091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CED8F7005770 + C8006D8AEB006D8AEB006A83DA00C1CDF6000000000000000000000000000000 + 00000000000000000000000000005973CF007390F2007592F2006E86D6000000 + 000000000000000000000000000000000000000000003E539B00566EBF004463 + CA005B7AE2007490EE007E99F3006987EC005D7DE7005273E2003B60D8002F54 + D200244ACB000C35BE000831BA001239BE00254AC6002B50C9003256CD005D77 + CE004458A000000000000000000000000000000000007991E300506AC3005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C000506AC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005670C7005670C700647ED900000000000000000000000000000000000000 + 0000000000000000000000000000000000006580DC006681DD005D77CF000000 + 000000000000000000000000000000000000000000006079C700566CB6005D77 + CB006D87DD00748EE5007892E800708BE3006E88E1006A84DE00637DD8005E79 + D5005B76D200536DCA00516CC9005570CC005B75CE005E78D1005E78D100556B + B2006880D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005972CA005972CA00C1CDF6000000 + 0000000000000000000000000000000000000000000000000000677FD1005068 + BC005068BC005068BC005068BC005068BC005068BC00485EA900485EA900485E + A900485EA9005068BC005068BC005068BC005068BC005068BC005068BC006E85 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000879BE00044589E004458 + 9E00475A9E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DADADA00C7C7C700C0C0 + C000C0C0C000253566002A396E00AFBCE400C8C8C800D5D5D500DEDEDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000032458D00DDE2 + F600DFE4F700DFE4F700E0E5F700E0E6F700E0E6F700E1E7F800E3E8F800E3E8 + F800E4E9F800E4E9F800E5EAF800E5EAF800E6EBF800E7EBF900E7EBF900E8EC + F900E9EDF900E9EDF90032458D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F1002C3F7D003E58AE003F58AA00425287000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000293973008C99C6008897C9004963B7001F3E + A60003269C001F3EA6004963B7006A7EC2008C99C60029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000035499400D8DF + F600C9D2F200C9D2F200CAD3F200CCD5F400CDD6F400CED7F400CFD7F400D0D8 + F400D0D8F400D2DAF500D3DBF500D4DBF500D6DDF500D6DDF500D7DEF500D9E0 + F600DAE0F600DBE1F70035499400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002E42 + 81004A5D9D000F309D000F2F9A003F58AA003044890000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005871C0003D54A2002C4082005165A9004A65 + BD000328A3004661BC005165A9004A598E002C3C7A005871C000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000384E9A00D5DC + F600C3CEF300C4CFF300C4CFF300C5D0F300C5D0F300C6D0F300C8D2F400C9D3 + F400C9D3F400CBD4F400CCD5F400CCD5F400CED7F500CFD8F600D0D9F600D2DA + F600D2DAF600D3DBF600384E9A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000304285004B5F + A1003F5AB70003269B00032698000F2F9A004453880031458A00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000042528C00516B + C200042AAA00506AC40042528C008397DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003F56AA00D7DF + F9000537DD00C6D1F700C6D1F700C6D1F700C5D1F7000537DD00C5D1F700C4D0 + F700C4D0F700C4D0F700C4D0F700C3CFF7000537DD00C3CFF700C3CFF700C4D0 + F7000537DD00C4D0F7003F56AA00000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC7F20035498F003E5BBE000F33 + AB000429A50003279F0003279D0003269B000F2F9A003F58AA00445489000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034488D005771 + C600042EB9005771C60034488D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AB000D8E0 + FA000538E500C7D3F900C7D3F900C7D3F900C6D2F9000538E500C6D2F900C6D2 + F900C6D2F900C6D2F900C6D2F900C5D1F9000538E500C5D1F900C4D0F800C4D0 + F8000538E500C4D0F800425AB000000000000000000000000000000000000000 + 0000000000000000000000000000BAC7F200374B93005165AD001035B100042A + AA00A0AEDE000328A20003279F0003279D00032698000F2F9A003F58AA003247 + 8B00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000374C93005873 + CB00042FC0005873CB00374C9300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455EB600DAE2 + FC00053AEB00CAD5FB00CAD5FB00C9D5FB00C9D5FB00053AEB00C8D4FB00C8D4 + FB00C8D4FB00C7D3FB00C7D3FB00C7D3FB00053AEB00C7D3FB00C6D2FA00C6D2 + FA00053AEB00C6D2FA00455EB600000000000000000000000000000000000000 + 0000000000000000000000000000394E9700546AB2004A67CA000C32B200052C + AD0099A6D000A0AEDD000328A20003279F0003269B00032698000F2F9A004555 + 890033478C000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A509A005974 + D0000431C7005974D0003A509A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004861B900DEE5 + FC000F42EC00D0DAFB00D0DAFB00CFD9FB00CFD9FB000F42EC00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB000F42EC00CCD7FB00CCD7FB00CCD7 + FB000F42EC00CBD6FB004861B900000000000000000000000000000000000000 + 000000000000BDC9F4003D54A0005C78D500395BCB002B4FC600A7B5E5001439 + B8000C32B200939FC600FFFFFF00A0AEDD0003279F0003279D0003269B000F2F + 9A003F58AA0046568A0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004057A7005B77 + DA000636D6005B77DA004057A700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000364C97002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C7600000000000000000000000000000000004963BA00DFE6 + FC001949ED00D3DCFB00D3DCFB00D3DCFB00D3DCFB001A4AED00D2DBFB00D2DB + FB00D2DBFB00D2DBFB00D2DBFB00D1DBFB001A4AED00D1DBFB00D1DBFB00D0DA + FB001A4AED00CFD9FB004963BA00000000000000000000000000000000000000 + 0000BDC9F4003F57A3005F76C0004767D2003A5CCD003255C900FFFFFF00A7B5 + E5001439B80004269800939FC600FFFFFF000328A20003279F0003279D000326 + 98000F2F9A003F58AA0033488D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000435BAE005F7D + E0000E3EDF005F7DE000435BAE00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003F559E004E6CD000274D + CD002B50CD002B50CD002B50CD002C51CD002C51CD002C51CD002C51CD002C51 + CD002C51CD002C51CD002C51CD002C51CD002C51CD002B50CD002B50CD002A4F + CD00274DCD004E6CD000000000000000000000000000000000004A64BB00E2E8 + FD002251ED00D7DFFC00D6DFFC00D6DFFC00D6DFFC002453EE00D6DFFC00D6DF + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC002453EE00D4DDFC00D4DDFC00D4DD + FC002352ED00D2DBFB004A64BB00000000000000000000000000000000000000 + 00004259AA006379C4006883DF004A6AD5004364D2003B5DCD00A5B0D300FFFF + FF00A7B5E5000C32B20004269800939FC600A0AEDD000328A20003279F000326 + 9B00032698000F2F9A0046568B003A4F99000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000465FB4006381 + E5001747E7006381E500465FB400000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005A75D1005771C8006472 + A8006A80CA005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8007684 + B4006472A8005771C800000000000000000000000000000000004D66BE00E5EA + FD003761EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003761EF00D8E0FC004D66BE00000000000000000000000000BECCF500465E + B2007590E7006D88E5006985E200BDC7E700FFFFFF00B9C5EE003B5DCD003250 + B600A5B0D300A7B5E5001439B8000C32B200939FC600FFFFFF00A0AEDD000327 + 9F000F31A100405AB000364B9300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004B65BC006B88 + EB002755EE006B88EB004B65BC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005A74 + C7002247C100042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF004A60 + AA005A74C70000000000000000000000000000000000000000004E68BF00E6EC + FD004169F000E1E7FD00E1E7FD00E1E7FD00E1E7FD00436BF000E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00436BF000DEE5FC00DEE5FC00DEE5 + FC004169F000DBE2FC004E68BF000000000000000000BECCF5004961B7006D84 + D0007892E9007892E800728CE600617BCF00BAC3E100FFFFFF004364D2003B5D + CD003250B600FFFFFF00A7B5E5001439B80004269800939FC60099A5CE000F32 + A700415BB5004B5B950000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C66BD006E8B + EB00305CEE006E8BEB004C66BD00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007D93 + E0003457CD000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA004B61 + AF007D93E00000000000000000000000000000000000000000004F69C000E7EC + FD004B71F100E4E9FD00E4E9FD00E4E9FD00E4E9FD004D72F100E3E9FD00E3E9 + FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD004D72F100E2E8FD00E2E8FD00E1E7 + FD004B71F100DEE5FC004F69C00000000000000000004B67C0006A83D30089A1 + F000889FED00819AEB007993E8006A85E200617BCF00BAC3E100B9C5EE004364 + D2003B5DCD00A5B0D300FFFFFF00A7B5E5000C32B2000426980003259500415C + B9004C5E9A003B519B0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67BE00728E + EC003862EF00728EEC004D67BE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E7BDD00234FE100234FE100234FE100234FE100234FE100234FE100234F + E100234FE100234FE100234FE100234FE100234FE100234FE100224EE0004E64 + B500000000000000000000000000000000000000000000000000526CC300EBF0 + FD005D80F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2006183F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2005E80F200E4E9FD00526CC30000000000000000004C66BD00728FF20095AB + F30099AEF20091A7F0008AA1EE007993E800728CE6006A85E200BAC3E100FFFF + FF00B9C5EE003B5DCD003250B600A5B0D3001B40BC001B40B9004562C1003E56 + A200000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005069C0007B95 + ED004A70F0007B95ED005069C000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006984E1003E66EE003862ED003B64ED003B64ED003B64ED003B64ED003B64 + ED003B64ED003B64ED003B64ED003B64ED003B64ED003862ED003E66EE004F68 + C300000000000000000000000000000000000000000000000000536DC400ECF0 + FE00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E6EBFD00536DC40000000000000000004D67BF007693F300A1B4 + F600A1B4F40099AEF20091A7F000819AEB007993E800728CE600617BCF00BAC3 + E100FFFFFF004364D2003B5DCD003250B600274BC2004A67C7005366A8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1007D97 + EE005176F1007D97ED00516AC100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006781DA005378F100496FF0005176F1005176F1005176F1005176F1005176 + F1005176F1005176F1005176F1005176F1005075F100496FF0005378F1005975 + D100000000000000000000000000000000000000000000000000546EC500EDF1 + FE00EDF1FE00EEF2FE00EEF2FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0 + FE00EAEFFD00E7ECFD00546EC50000000000000000004E68C0007A96F400A9BB + F700A3B4F1006078C7004B63B600506BC6007C95E7007993E8006A85E200617B + CF00BAC3E100B9C5EE004364D2003A5CCD00516DCD00566AAB00445AAA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000526BC200809A + EE005A7DF200809AEE00526BC200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000647AC900728FF100577BF2005C7FF2005E80F2005F81F2006082F2006082 + F2006082F2006082F2005F81F2005E80F200567AF200587CF200728FF1009FB1 + F0000000000000000000000000000000000000000000000000005770C700F0F3 + FE007B97F40087A1F5008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F60087A1 + F5007A96F400EBF0FD005770C7000000000000000000506AC1007A96F400B1C1 + F900506AC100D2DBF80000000000A9BAF0004B63B6008AA1EE007993E800728C + E6006A85E2005771CB004B6BD7005D79D7004960B30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FAFE9005671CC0000000000000000000000000000000000546EC50088A0 + EF006B8AF30088A0EF00546EC500000000000000000000000000000000005A72 + C600A1B1E900546EC50000000000000000000000000000000000000000000000 + 00005A75D1006E84D2007690EA007D97EB007F98EB007F98EB008099EB008099 + EB008099EB008099EB007F98EB007F98EB007A94EA007790EA006E84D2000000 + 00000000000000000000000000000000000000000000000000005871C800F0F3 + FE00F1F4FE00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE00F1F4FE00F0F3 + FE00EEF2FE00EBF0FD005871C8000000000000000000516BC2006F8DF300A9BB + F800516BC200D3DBF90000000000BFCDF5004D66BA007F99ED00819AEB007993 + E800728CE6005776DD00637FDC005F73BA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008AA1EC006B81CD00AFBEF300000000000000000000000000556FC6008BA2 + F0007290F4008BA2F000556FC600000000000000000000000000000000007589 + D200879FEF00556FC60000000000000000000000000000000000000000000000 + 000000000000647EDB005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C900647EDB000000 + 00000000000000000000000000000000000000000000000000005872C900F1F4 + FD00F4F6FD00F5F7FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F5F7 + FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F4F6FD00F4F6 + FD00F3F6FD00F1F4FD005872C9000000000000000000546FCB006680D90099AF + F7006E84D1005E78D100D3DBF900556FCB00647BCA0099AEF2008AA1EE00819A + EB00748FE7006984E0006277BF004D65BA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007993EE00748EE5005870C8000000000000000000000000005670C7008FA6 + F1007A96F4008FA6F1005670C70000000000000000000000000093A7ED007791 + E7007C96EE005E79D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009EB3F700B6C6F900C3D0FA00B7C6F800B1C1F800A8BAF50092A8F100809A + EE00758FE900526BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000819AEB006183F2005579F100486DE8004469E8004469E8005174E9006585 + F1007894F4006484F1005074E900466BE8004469E8004A6EE8004E73EF006586 + F3007992E500607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600748DDD0099AFF700ACBDF800B5C5F900AFBFF800A6B8F600869FF100809A + EE006B81CC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000095A8E600A8B9F300AABBF300A5B7F300A4B6F300A4B6F300A9B9F300AFBF + F500B1C1F500AEBEF500A8B9F300A5B7F300A4B6F300A6B8F300AABAF300A8B9 + F30095A8E600607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8006982DC007C96ED0089A0EE00869EEE00839BED00738EE9006C83 + D0005671CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C900879CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CBCBCB00C7C7C70095A4D9002B3A6A002B3A6A002B3A6A002B3A6A002B3A + 6A002B3A6A002B3A6A002B3A6A002B3A6A003040790095A4D900C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000DBDBDB00D1D1D100C9C9C900C7C7 + C700C7C7C700C5C5C500C5C5C500C5C5C50029386D0030417800C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 00007789C8002C375F0033458000C3C3C300C5C5C500D1D1D100DCDCDC000000 + 00000000000000000000DADADA00D5D5D500C3C3C300B1BCE500394B89007587 + C600DADADA000000000000000000000000000000000000000000000000000000 + 000000000000B2BFEE002D407D003758C6003758C6003758C6003758C6003758 + C6003758C6003758C6003758C6003758C6003C53A1002E407C00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387100032698000326 + 98004E66B6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007F92D80029396C008494C80025346900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED7F60031417A00536BBC002D3D7800647BC90000000000000000000000 + 0000000000000000000000000000000000002D3D780041569B004B66BE00B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 000031458E003E58AF003358D600042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB3000D34B9003358D6003E58AF00BAC6 + F200000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3D79000328A2000328 + A2004F69BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008093D900324273005466A5008393C80027366B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000354C98003C529C00425DB400384984003D54A200000000000000 + 00000000000000000000000000003D54A200425CB0002245B8003E55A1000000 + 000000000000000000000000000000000000000000000000000000000000BAC7 + F2004059B200345AD9000D36BE00042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB7000D36BE00345AD9003348 + 9100BAC7F2000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F418200042BAD00042B + AD00506BC6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036457A005568AA00324DAA008494CC00293A7300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007389D500495991001338B2003A59C0004054960094A6E5000000 + 000000000000A5B6EC002F42860040549600163BB400092EA9004B5B95000000 + 0000000000000000000000000000000000000000000000000000BCC8F300354A + 95003359DA000D37C200042EBC00042EBC00042EBC00042EBC00042EBC00042E + BC00042EBC00042EBC00042EBC00042EBC00042EBC00042EBC000D37C200415B + B500354A9500BCC8F30000000000000000000000000000000000000000000000 + 000000000000364B94005C76CD00183DB800183DB800183DB8000D37C3000D37 + C3000D37C300183DB800183DB800183DB800364B940000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003850 + 9D00455690002042B300042AA900042AA9008496D4002F428100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003B54A200042CB100042CB100042CB100435EBE003E51 + 9500344890004660BD002146C200072EB300042CB1004961AE00384D98000000 + 00000000000000000000000000000000000000000000384F9E00435DBA00335A + DE000431C5000431C5000431C5000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C5000431C5000431C5000D39 + CB00335ADE00435DBA00BDC9F400000000000000000000000000000000000000 + 0000000000003A509B005B79DD001540CF001540CF001540CF001540CF001540 + CF001540CF001540CF001540CF001540CF003A509B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3005365 + A400516CC700042CB200042CB200042CB2008497D90033468700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000788ED900163CBB00062FB700062FB700133ABE003C5C + C900465EAF00163DBF00062FB700062FB7001138BA005062A2005E76C9000000 + 000000000000000000000000000000000000BDC9F400435FBD00335BE0000D3A + CE000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000D3ACE00335BE0003A52A100BDC9F4000000000000000000000000000000 + 0000000000003E54A5006782DD006A84DD006A84DD006A84DD001D49DA001D49 + DA00617FE5006A84DD006A84DD006A84DD003E54A50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000CED7F6006179C7004258A50033488F005568AA004D6A + CC001239BE00042EBB00042EBB00042EBB008499DD00364A9000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D0D8F7004762C1001139BE001139BE001139BE00143B + C0002E53CD001139BE001139BE001139BE003959C30040539600BCC8F3000000 + 0000000000000000000000000000000000004159AD00345CE3000D3BD3000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000D3BD3004561C0004159AD000000000000000000000000000000 + 0000000000000000000000000000000000008197E500455FB6002D59ED002D59 + ED00587BF1008197E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004C5F9F005971BF004A66C5002447BA001237B4007288D2004F6FDB000432 + CD000432CD000432CD000432CD000432CD00849BE6003D53A0007087D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005669AA003458D0002B50CE002B50CE002B50 + CE002B50CE002B50CE002B50CE002B50CE00596DAF00647CD000000000000000 + 0000000000000000000000000000000000004159A9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9003760E8004159A9000000000000000000000000000000 + 00000000000000000000000000004A62BC00526AC4004D6DD5003560EF003560 + EF003560EF00526AC4004A62BC008198E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C9001C43C500042FC000042FC000042FC000728ADB005273E2000D3C + D7000E3DD8000E3DD8000E3DD8000E3DD800869DEB004058A800576EB8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465BA500395BCB00385CD400385CD400385C + D400385CD400385CD400385CD400385CD4004B60A7004D66BC00D1DAF7000000 + 000000000000000000000000000000000000435BAF000537DD000537DD000434 + D200042CB100042CB100042EB9000537DD000537DD00042CB1000537DD000537 + DD000430C400042CB100042CB1000430C4000537DD00042CB1000537DD000537 + DD000537DD000537DD00365FE900435BAF000000000000000000000000000000 + 000000000000000000005C76D2005171DE003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF005171DE00526BC1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005071DE000433CF000433CF000433CF000433CF00728DE4005779E9001A48 + E1001C4AE1001C4AE1001C4AE1001C4AE10089A1EF00445DB0004E71E500738C + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000ABBBF0004159AB006580DD004B6DDD004669DC004669DC004669 + DC004669DC004669DC004669DC004669DC006480DE00576EB8004159AB000000 + 000000000000000000000000000000000000455EB300093BE300093BE2003B5A + C000FFFFFF00FBFBFB00BCC3DD00093BE200093BE200F2F2F200093BE2000835 + CC007F90CB00FFFFFF00F5F5F5007F90CB00093BE200F2F2F200093BE200093B + E200093BE200093BE2003861EB00455EB3000000000000000000000000000000 + 0000839AE6006279C7006A88EE004D72F1005879E5005D76CA004E68C3004E68 + C3004F68BD005879E5004D72F1004D72F1006279C700839AE600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006384F300456CF0004C72F1004C72F100466DF00088A1F5005E80F200335E + EF003862EF003862EF003862EF003862EF008EA6F6004A64BC00093DEB00516A + BE0000000000000000000000000000000000000000000000000000000000BFCC + F5005A70BB00728BDF006D8AEA006180E7006180E7006180E7006180E7006180 + E7006180E7006180E7006180E7006180E7006180E700607FE7006B88EA005E73 + BD004A63BA00ABBBF10000000000000000004A64BB001949ED001B4BED001B4B + ED001B4BED003761EF00C4D0F9001B4BED001B4BED00FFFFFF001B4BED00C2C9 + E2007F9AF5001B4BED001B4BED00708EF4001B4BED00F5F5F5004F6CCE003A5A + C3001741CF001B4BED004068F0004A64BB000000000000000000000000000000 + 00005169C2008A9FE9005378F100617FE500536CBF007990E200000000000000 + 0000D2DBF800536CBF00617FE5005378F1008A9FE9005169C200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F8DF3006787F3006F8DF3006F8DF3006888F30095ACF7006283F2004068 + F000466DF000466DF000466DF000466DF00091A8F6004B65BD00093DEB004B65 + BD00000000000000000000000000000000000000000000000000768EDF004C64 + B7007D97EB007590ED006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB007C96 + ED006F85D0004C64B70000000000000000004B65BD002050ED002352ED00315D + EF00E3E9FD00FFFFFF00C8D4FB002352ED002352ED00FFFFFF002352ED00FBFB + FB005A7DF2002352ED002352ED005A7DF2002352ED00FFFFFF00C9D5FB00EDF0 + FA0092A0D0002352ED00446BF0004B65BD000000000000000000000000000000 + 00007288D000718FF4005B7EF200566EC10091A4EB0000000000000000000000 + 00000000000091A4EB00566EC1006684E700718FF4007288D000839AE7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007995F400839EF50090A8F60090A8F600859FF500A0B4F7006586F3004D72 + F1005378F1005378F1005378F1005378F10094ABF6004C66BE002553EE004F6A + C50000000000000000000000000000000000000000005672CE00586FBE00738C + DE007D97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97 + F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007D97 + F1007E99F1007790E200526DC700BFCCF5004C66BD002957EE002C59EE00BCCA + FA007D98F500486FF0002C59EE002C59EE002C59EE00FFFFFF002C59EE00D8E0 + FC0088A2F6002C59EE002C59EE007B97F4002C59EE00FFFFFF002C59EE00476E + F000F8F8F8002C59EE00486FF0004C66BD000000000000000000000000000000 + 00009EB1F2006B8AF300738FEE00D3DBF8000000000000000000000000000000 + 00000000000000000000D3DBF800566EC2006B8AF3009EB1F2004F69C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000089A0EC009FB3F700AFC0F900B8C7F900A6B9F800ACBDF8006C8BF3006485 + F3006F8DF3006F8DF3006F8DF3006F8DF30099AFF7004E68C000667DCB000000 + 00000000000000000000000000000000000000000000516BC200516BC200516B + C200516BC200516BC200516BC200516BC200516BC200516BC20094ABF60095AC + F70095ACF70093AAF600879DE600516BC200516BC200516BC200516BC200516B + C200516BC200516BC200516BC2005671CD004E68BF003963EF003E67F0006384 + F300FFFFFF00FFFFFF00CFD9FB00FFFFFF00FFFFFF00FFFFFF00FFFFFF003E67 + F000ACBDF800FFFFFF00FFFFFF00ACBDF8003E67F000FFFFFF00FFFFFF00F2F5 + FE009FB3F7003E67F0004F74F1004E68BF000000000000000000000000000000 + 0000A4B6F3007391F4007C97ED00000000000000000000000000000000000000 + 0000000000000000000000000000526DC8007391F400A4B6F3005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000768CD400B1C0F200B5C5F900B4C4F9009EB3F700A7B9F800718FF4006D8C + F3007C97F4007D98F5007D98F5007D98F5009CB1F7004F69C1007991E3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007189E000A3B6F800A2B6 + F800A2B6F800A0B4F7007A8FD6006882DC000000000000000000000000000000 + 0000000000000000000000000000000000004F69C0003F68F000476EF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000476EF0005075F1004F69C0000000000000000000000000000000 + 0000A9BAF300809BF500839CEF00000000000000000000000000000000000000 + 0000000000000000000000000000536EC900809BF500A9BAF300516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006881DB00506AC200657BC9008196DB008FA2E5008EA5F0008FA7F6007794 + F400859FF5008AA3F6008AA3F6008AA3F6009FB3F700506AC200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600AFBFF500B0C0 + F900B0C0F900ACBDF6006078C9009FB1F0000000000000000000000000000000 + 000000000000000000000000000000000000506AC100466DF0004E73F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1004E73F1004F74F100566FC3000000000000000000000000000000 + 0000A5B5EA00A2B6F8008AA3F6007A92E4000000000000000000000000000000 + 000000000000000000007A92E4007D90D600A2B6F800A5B5EA005C77D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005871CF008A9C + DC00A8B9F6009BB0F700A4B7F800A5B8F800A3B6F800536DC400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007F94D800C4D1 + FA00C9D5FB008DA0DF006983DD00000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCDF6008499E0006686F3005A7D + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006283 + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006082 + F2005A7DF2006686F300526CC500BFCDF6000000000000000000000000000000 + 00008597D800B3C3F90097ADF700637ACA0092A7EC0000000000000000000000 + 00000000000092A7EC00637ACA0096AAEE00B3C3F9008597D800849BE8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + CF00758BD20097ADF70097ADF700A0B4F700A1B5F700546EC500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DCD00BCCA + F700CDD8FB006D84CF009FB1F000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC60090A2E200718F + F4006787F3006B8AF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3005D80 + F200718FF40090A2E200BFCDF600000000000000000000000000000000000000 + 00005B74C900B9C6F200B2C2F9009FB1EF00657BCB007C92E500000000000000 + 0000D3DBF900657BCB009FB1EF009AAFF700B9C6F2005B74C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006883DC00A7B9F40098AEF700849EF5009EB3F700556FC600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C900A9B8 + EC00CAD5FB005771C80000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600536EC70091A4 + E2006384F300708EF4007592F4007592F4007592F4007592F4007592F4007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007290F4007491 + F40091A4E200536EC70000000000000000000000000000000000000000000000 + 0000000000006B84DE008093D600BCCAFA00ACBDF800A7B9F800AFBFF500AFBF + F500ADBDF600ACBDF800BCCAFA00C5D1F9006B84DE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A7ED00677ECD009DAFEE0094ABF6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009FB1F000667D + CD009AAFF40093A8ED0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60099A9E3008CA5F6007894F40086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F500839EF5007894F40093AAF6005670 + C800C1CDF6000000000000000000000000000000000000000000000000000000 + 000000000000000000006B85DE00C2CEF400C2CFFA00B7C7F900A9BBF800A9BB + F800B0C0F900C2CFFA00C2CEF400798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000093A8ED005D76CA008DA5F6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9008297E1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C9009AAAE300ABBDF8008AA3F6008EA6F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008EA6F6007E99F500ABBDF8009DACE500C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E76CC008D9EDB00B5C2ED00C6D2F800C6D2 + F800C6D2F8008D9EDB005E76CC00879CE9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6008FA2E5005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000647E + DA00667DCD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF6005771C9009DACE50090A8F60099AFF7009DB2F7009FB3F7009FB3 + F7009FB3F7009EB3F7009DB2F70098AEF700ABBDF8009DACE5005771C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005874CF00C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D6D6D600CDCDCD00C7C7C7007487C6002938 + 6D0025346A00C5C5C500C7C7C700CBCBCB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005E72B6002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B00687BBC00CFCF + CF0000000000000000000000000000000000000000000000000000000000D3D3 + D300C0C0C00025346D0027315900273159002731590027315900273159002731 + 590027315900273159002731590027315900273159002E3D7300C0C0C000CBCB + CB00DEDEDE000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DFE5F90032406C005261 + 970046568B00455AA500DFE5F900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004C64B4003F59AE002C52 + D2000D35BA000E36BB000E36BB000E36BB000E36BB000E36BB000E36BB000E36 + BB000E36BB000D35BA000C34BA00284ECE00142A74002240A6003C54A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000293973004E67B80003269B0003269B0003269B0003269B000326 + 9B0003269B0003269B0003269B0003269B004E67B80029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F100293C7A0045548D0017369D001C3A + 9E00032083003F57A70043528600283873000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000006E85CF00273773002534690025346900364D96006E85 + CF00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000354C97004A68CE003358 + D600355AD200365AD200365AD200365AD200365AD200365AD200365AD200365A + D200365AD2003358D2002C52D1004166DF000A2479001335A500425FC0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C77004E68BC0003279F0003279F0003279F0003218700021C + 700003228A0003279F0003279F0003279F004E68BC002B3C7700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334685006F7EB1003F5AB20003269B002946 + A900032288000F2F99003F58A90048599300B6C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007287D100293B7900233576000C2A8F000C2A8F000C2A8F00172F82002335 + 7600293B79000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002E407F005271DE004166 + E2005374E3005677E4005777E4005777E4005777E4005777E4005777E4005777 + E4005777E4005072E3004267E0005275EA0003218700092EA9004160CA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002D3E7C004E68BF000328A4000328A4000328A40003238C00FFFF + FF0003238F000328A4000328A4000328A4004E68BF002D3E7C00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007483B4003D59B800072CA4000328A1002947 + AD000321870003269A00072999003751AA003244840000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293B7B00143090000328A1001638A8001638A8001638A8000328A1000328 + A100143090004F67B60000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003C54A30033468A003346 + 8A0033468A003A4C8B0030438400304384003043840030438400304384003043 + 84003043840030438400304384003043840003249100042DB500365BD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000031448500506BC700042BAE00042BAE00042BAE00042BAE00042B + AE00042BAE00042BAE00042BAE00042BAE00506BC70031448500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006880D0006170A400173CB7001036B5001237B5000F34B1003D5B + BF0006258B00062BA7000429A3000328A000465FB0003D4D81006179C7000000 + 0000000000000000000000000000000000000000000000000000788DD9002F44 + 8D002045BD004B68CA00566FBF003E509000374D9A00374D9A004D609F00566F + BF002045BD002648B70044569700788DD9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000364A8F003358D30003279F0003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F00042AA900042EBB00375DDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034468900506CCA00042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300506CCA0034468900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F200455796008496D300153BBC00183EBD00193EBC001F44BC004361 + C60008278E000D32AE000A2FAB00052AA6001F3FAA00485FAA00324279000000 + 0000000000000000000000000000000000000000000000000000374D98001E3F + AD00506ED3005C75C60042559800D0D8F70000000000000000006B83D3004255 + 98005C75C6000B35C000546EC1003A509A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000384D9500375DDE000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C200375DDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036498E004F6CCD00042DB800042DB800042DB800042DB800042D + B800042DB800042DB800042DB800042DB8004F6CCD0036498E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB2008B98C8004968D0001E44C4002147C6002146C500284CC4004866 + CC000B2B94001439B7001035B2000D32AE000429A500324FB2004D5E98000000 + 000000000000000000000000000000000000000000007B92DD00354EA200113C + CC005F78CF004559A100889DE30000000000000000000000000000000000889D + E3004559A100133ECC003156D3005165AC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00003D54A000375EE3000433CE00829DF500829DF500829DF500829DF500829D + F500829DF500829DF500829DF500829DF5000433CE000433CE00375EE3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A4F9700506ED4000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C200506ED4003A4F9700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000091A0D1004769D800234BD1003055D4003055D4002F54D3004062D4005371 + D7001132A0002146C5001D42C100193EBC001035B3000A2FAD002C4BB4003F55 + A2000000000000000000000000000000000000000000435AB000254DD4003059 + E2004D63B000D1DAF80000000000000000000000000000000000000000000000 + 0000D1DAF800355BDC001E4BE0006682E0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004057A600375FE6000636D4000737D4000737D4000737D4000737D4000737 + D4000737D4000737D4000737D4000737D4000737D5000636D400375FE6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003C529C004F6ED7000431C7000431C7000431C7000431C7000431 + C7000431C7000431C7000431C7000431C7004F6ED7003C529C00000000000000 + 000000000000000000000000000000000000000000000000000000000000D1DA + F8008EA2E6002A52D7002F56D800375CDB00375CDB00365BDA004668DA005876 + DC001334A300274CCB002348C7001F44C300163BB9000F34B3001035AF003B4C + 8400CED7F70000000000000000000000000000000000465EB400355BE0003660 + EB004A64BE000000000000000000000000000000000000000000000000000000 + 000000000000355CE1002250E9006986E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000435BAD003961E8000D3DDB00103FDB00103FDB00103FDB00103FDB00103F + DB00103FDB00103FDB00103FDB00103FDB000F3EDB000D3DDB003A62E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A0004F6FDB000432CC000432CC000432CC000432CC000432 + CC000432CC000432CC000432CC000432CC004F6FDB003F55A000000000000000 + 000000000000000000000000000000000000000000000000000000000000677F + D4006683E6002E56DD00395FDF003F64E1003E63E0003D62DF005777E2005E7C + E2001638A9002D52D100294ECD00254AC9001B40BF00153AB9000E34B3004A5C + 9D005B74C300000000000000000000000000000000004962B9004167E700305C + EE004D68C2000000000000000000000000000000000000000000000000000000 + 0000000000003059E2003661EF006D8AEB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004962B8003E66EE001B4BE80092A9F60092A9F60092A9F60092A9F60092A9 + F60092A9F60092A9F60092A9F60092A9F6002250E9001C4BE8004169EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000435AAA005576E3001441D8001542D8001542D8001542D8001542 + D8001542D8001542D8001542D8001441D8005576E300435AAA00000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8005C71 + BB00365FE800446AEA004B70EC004C71EC004B70EB004B70EB006785EB006987 + EA001B3EB200395EDC003459D8003055D400264BCA002045C400183EBE004A65 + C0003F508C00CED7F7000000000000000000000000005772CE006C85DE003C65 + EF006A80CD007990E20000000000000000000000000000000000000000000000 + 00007990E2003F68F0006989F300748CDF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B65BD004068F0002352ED002E5AED002E5AED002E5AED002E5AED002E5A + ED002E5AED002E5AED002E5AED002E5AED002C59ED002352ED00446BF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000465EAF005879E7001E4ADE001F4BDE001F4BDE001F4BDE001F4B + DE001F4BDE001F4BDE001F4BDE001E4ADE005879E700465EAF00000000000000 + 00000000000000000000000000000000000000000000000000008EA3E9007E90 + D1003D65ED004D72F0005277F0005378F0005277F0005176EF00708DF0006E8B + EE001E41B7003F64E1003A5FDD00355AD9002B50CF00254AC9001D43C3003858 + C200495C9E008499DF00000000000000000000000000839AE600667DCC00577B + F2005B7BE800576EC10091A4EB000000000000000000000000000000000091A4 + EB00516ABF00597CF2007E99F500677ECC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D67BE00426AF0002A57EE003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003560EF002B58EE00476EF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004861B4005B7CEA002853E4002954E4002954E4002954E4002954 + E4002954E4002954E4002954E4002853E4005B7CEA004861B400000000000000 + 00000000000000000000000000000000000000000000000000006D87DD0091A3 + DF00476EF000567AF2005A7DF2005B7EF2005A7DF200587CF2007794F4007390 + F2002044BB004469E5004065E2003A5FDD002F54D3002A4FCE002248C8002C4F + C1004D62AB005E76C70000000000000000000000000000000000526BC3008199 + E8005075F1005475E200526BC000D3DBF80000000000000000007990E300526B + C0005878E3007290F4008AA0E900526BC30000000000000000004E67C1005C74 + C4004E67C1000000000000000000000000000000000000000000000000000000 + 00004F69C000466DF0003963EF00A6B9F800A6B9F800A6B9F800A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A6B9F800496FF0003A64EF004E73F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004D67BE006182F1003C65EE003E66EE003E66EE003E66EE003E66 + EE003E66EE003E66EE003E66EE003B64ED006182F1004D67BE00000000000000 + 0000000000000000000000000000000000000000000000000000516CC700AEBE + F300567AF2006586F3006989F3006989F3006888F3006686F3007D98F5007D98 + F5002549BF004E73ED00486DE9004469E500385DDB003257D6002A50CF002348 + C400506BC3003D539D0000000000000000000000000000000000000000006881 + DA00869FF1006D8CF3005F81F2005679EB004C70E8004D71E7005C7FF2006D8C + F300708EF4006586F300577BF2004E6CD500BFCDF600000000005069C1006384 + F3005069C1000000000000000000000000000000000000000000000000000000 + 0000506AC100486FF0004068F0005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005176F1004169F0005075F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C0006485F300466DF000496FF000496FF000496FF000496F + F000496FF000496FF000496FF000466DF0006485F3005069C000000000000000 + 00000000000000000000000000000000000000000000000000004F69C000AFBF + F4005A7DF2006989F300708EF400718FF4006F8DF3006D8CF3007E99F500829C + F500274ABF005378F0004D72ED00476CE8003B60DE00355AD9002D53D3001940 + C300526CC5003C4F910000000000000000000000000000000000000000000000 + 0000657CCC008FA3EA00839EF5006283F2005277F1005C7FF20086A0F50097AD + F700A1B3F1006D8CF3006C8BF3005479F100516BC400BFCDF600516BC2006586 + F300516BC2000000000000000000000000000000000000000000000000000000 + 0000516BC2004A70F000486FF0005F81F2005F81F2005F81F2005F81F2005F81 + F2005F81F2005F81F2005F81F2005F81F2005A7DF200496FF0005378F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516AC1006888F3005075F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005075F1006888F300516AC100000000000000 + 0000000000000000000000000000000000000000000000000000506AC100AFBF + F400577BF2006787F300708EF4007794F4007693F4007491F4007C97F40086A0 + F500294CBF00577BF2005176EF004B70EB003E63E100355BDB002C53D400163E + C500536DC7003D50940000000000000000000000000000000000000000000000 + 0000849AE800576FC7007085D100859DEF00849CEF00849CEF00859AE4007389 + D3005770C500839EF5007592F4006F8DF3005270D600526CC500526CC3006A8A + F300526CC3000000000000000000000000000000000000000000000000000000 + 0000556FC5004D72F1005378F100B8C7F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F9006C8BF3005579F1005C7EF000536D + C400536DC400536DC40000000000000000000000000000000000000000000000 + 000000000000536CC3006E8DF30092A9F60094ABF60094ABF60094ABF60094AB + F60094ABF60094ABF60094ABF60091A8F6006E8DF300536CC300000000000000 + 0000000000000000000000000000000000000000000000000000526CC300ADBD + F4008BA4F60099AFF7009EB3F7008BA4F6007491F4007290F4007D98F5008DA5 + F6002C4EBF005A7DF2004F74F1004269EE005D7DE9007993E900869DE8007B92 + E0008397D8004054980000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC700768EDE0087A1F500829DF5007290F4006A83DB007C97 + F400556EC5000000000000000000000000000000000000000000000000000000 + 00005670C6005C7DEA005579F1007C97F4007D98F5007D98F5007D98F5007D98 + F5007D98F5007D98F5007D98F5007D98F5007290F4005A7DF2005E80F0003761 + ED003761ED00456AE50000000000000000000000000000000000000000000000 + 000000000000546DC400708EF400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB300708EF400546DC400000000000000 + 0000000000000000000000000000000000000000000000000000536DC400ABBB + ED008295D7006F84CE008599DA00B3C2F300B4C4F90091A8F6006B8AF30089A2 + F6002A4DBF004B71F100466DF0006787F30093A4DD008092CF00677ABC008797 + CD00A7B3DC0041569A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF600566FC7007A91DF008DA5F6008DA5F60086A0F500839E + F500566FC6000000000000000000000000000000000000000000000000000000 + 0000556FC7005B7CEA00587CF2007F9AF500849EF50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F500859FF5007592F4005B7EF2005B7EF2000834 + C5000A36CA004568DA0000000000000000000000000000000000000000000000 + 000000000000556EC5007391F4009EB3F700A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F8009EB3F7007391F400556EC500000000000000 + 00000000000000000000000000000000000000000000000000005873CF00536E + C7009FB1F000AEBEF3009FB1F0005A74C9008E9FDD00B4C3F5006888F3007995 + F4002448BF004E73F1007C97F200889BDC006680D9009CAFEE00ACBCF1006780 + D400445AA6004860B10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005E79 + D6005771C8005771C8005771C8005771C80095ACF70095ACF70095ACF70086A0 + F5005771C8000000000000000000000000000000000000000000000000000000 + 00006B85DE005B78DB005479F1006283F2006B8AF3006F8DF3007391F4007391 + F4007391F4007391F400718FF4006D8CF3005C7FF2004A70F0004A70F000324B + 9C002648B700506BC20000000000000000000000000000000000000000000000 + 0000000000005770C7007693F400A6B9F800AFC0F900B1C1F900B1C1F900B1C1 + F900B1C1F900B1C1F900AFC0F900A5B8F8007592F4005770C700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859BE900ACBCF1009CB1 + F7002A4FC8005E77CA00859BE900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006E8BED007C96EE007F99EF00859EF00098ADF2009AAEF20097ACF2007C96 + EE005872C9000000000000000000000000000000000000000000000000000000 + 0000AFBFF3005D76CA005879E5005277F1005579F100577BF200587CF200587C + F200587CF200587CF200587CF200567AF2005075F1004C72F100446BF0006379 + C500526AB9005B72C40000000000000000000000000000000000000000000000 + 0000000000005871C8007491F400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB3007391F4005871C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008497D900AEBF + F8007189DA007C93E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005B76D2000000000000000000000000000000000000000000000000000000 + 000000000000859CE9005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C90093A8ED0000000000000000000000000000000000000000000000 + 0000000000005872C9006D8CF3006686F3007391F4007A96F4007E99F5007F9A + F5007E99F5007A96F4007290F4006485F3006D8CF3005872C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D200A1B0 + E80094A4DA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004E6ACE005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005B76D200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005A76 + D2005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000253671003E4D + 8200495991008699DD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004A60AE003544 + 7900485EA900435BAC00435BAC00435BAB00435BAB00435BAA00435BA900435A + A8004259A7004259A600435AA6004259A500435AA500435AA500435AA5004556 + 910033406D00455BA50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008197DC0044579500405B + B8005B73C4005A679400293D8500B9C6F100000000000000000000000000293D + 8500293D8500B9C6F100000000000000000000000000647BCB00364784004761 + B500072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A3004A5FA6003342760000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197DD002A3C7B003755BB003E5B + BD008798D100465BA000465BA0002A3E83000000000000000000BAC6F200465B + A000465BA0002A3E830000000000000000000000000033478A004B61AA002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A8004B5E9E0000000000000000000000000037477F00CDD6F6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000354787004963B7002B4EC0007188D4006273 + B0004B64B500123DCC00123DCC004A6BD80032499A0032499A004B64B500123D + CC00123DCC004A6BD800384FA2000000000000000000314588004361C700042C + B300042CB2003252BF00DEE3F400C0CAEA003353BD00042BAD00042BAC00425F + C000FFFFFF008194D400042AA900042AA900BFC8E800FFFFFF00FFFFFF000328 + A4000328A300435EBB000000000000000000000000006D789F004B62B1000000 + 000000000000000000000000000000000000000000000000000000000000293C + 7A00283871002838710028387100283871002838710028387100283871002838 + 71002838710028387100293C7A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005169BE004A64BA002A4EC400042EB9007289D7006677 + B8004F69C0001240DA000535D8001240DA004E69BF004E69BF004B6EE3000535 + D8001240DA004B6EE3003D55AC00000000000000000034488C004362CA00042D + B800042DB600DEE4F500FFFFFF00FFFFFF00AFBBE200042BAF00042CB100617A + CE00FFFFFF008191CA000429A800042BAD00C0CAEA00FFFFFF00FFFFFF00042A + AA00042AA900425EBD000000000000000000000000007D89B10035447D00A3B4 + EB00000000000000000000000000000000000000000000000000000000003447 + 8400949DBE00435DB600435DB600435EB6004761B7004963B8004A64B8004E67 + BB004E67BB004C66BA002B3C7600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546CC000384C90002B50C800042FBE00042FBE002B4FC700869A + DC005E74BB004C71ED001344E7000539E600476DED00476DED001344E7001344 + E7004C71ED00536DCA00BECCF5000000000000000000364A91004363CE000530 + BE00042EBC00FFFFFF00FFFFFF00FFFFFF00FFFFFF000429A700042DB60091A3 + DE00FFFFFF006177BF00042BAC00042CB300EEF1F900FFFFFF00DEE3F100042B + AE00042BAE00425FC100000000000000000000000000707DAA004B66C0004959 + 9400000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F20094A0C8007A8ED1002647B6002C4CB8003150B9003755BB00415E + BF00435FBF003856BC0031438300000000000000000026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0031458E00000000000000000000000000000000000000 + 0000394E97004D68C5002C52D1000431C7000431C7000431C6000431C6000431 + C5003358D0006478C2005C76D2005378F1001748EC001748EC001748EC005C76 + D200435CB600BECCF5000000000000000000000000003A509A004768D700133D + CA00153EC9004062D300E0E5F600C3CCEA001A3CAD000A32B700647ED800FFFF + FF00FFFFFF000429A700042FBE00042FBD00FFFFFF00FFFFFF008F9FD400042D + B800042DB8004362C90000000000000000000000000054639C006980CC004964 + BF00546CC0000000000000000000000000000000000000000000000000000000 + 0000000000003C5094006E7FBC00516CC9003858C1003E5CC2004462C5004F6B + C800536ECA004764C600344789000000000000000000435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC002C3E7B0000000000000000000000000000000000BCC9 + F400536BBD00385DD7000C39CE000E3ACE000E3ACD000E3ACD000E3ACC000E3A + CC003B5FD600667BC4006981D5006787F300315DEF00315DEF00315DEF006981 + D500455FB800BFCCF5000000000000000000000000003C52A000496BDA001C46 + D1002149D1001F48D0001D44C900173CB600173DBD001640CB00E1E6F800FFFF + FF00FFFFFF000B33B8000A35C4000833C300FFFFFF00FFFFFF00516BBF00042F + BE00042FBD004363CD000000000000000000000000003D5196008596D0003F5F + C80040539500556EC30000000000000000000000000000000000000000000000 + 000000000000384D9600586FBA00516DCD004563C9004C69CC00516DCD005C76 + D0005F7AD100536FCD00374C8F0000000000000000004361C700042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB40032468800000000000000000000000000000000003E55 + AB004266DD001A45D6001944D5001D47D5001C46D4001C46D4001D47D4004669 + DB0092A4E6006F87D6007F9AF500567AF2004C72F1004C72F1004C72F1007F9A + F5006F87D6004761BA000000000000000000000000003F56A5004C6EDF00244D + D7002C53D7002A51D6002951D600254DD400234BD3002F55D500FFFFFF00FFFF + FF00EFF2F900163FCA00153FCB00133DCA00FFFFFF00FFFFFF00193CAE000833 + C4000632C3004364D100000000000000000000000000B3C0EF006475B0007089 + DA002D52CE004E6CCF004F64AF005E77CC009CAEED0000000000000000009CAE + ED004C65BC005E78D1005C78D8005371D700607CD9006681DB006A85DC00758E + DF007A92E0006883DB003E539D0000000000000000004568DE000D3BD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000C3AD5003F57A5000000000000000000ABBCF100435AA9005B78 + D9002E57E000345CE100385FE200385FE100385FE100385FE0008FA5EE00778B + CE007F93DA0088A2F600819BF50087A1F500899BDD00899BDD00A5B8F800819B + F50088A2F600A5B8F8004E68C3000000000000000000445CAF005073E700345C + E2004267E3006F8BE9006D89E800DAE1F900FFFFFF00FFFFFF00FFFFFF007A8F + D4002B4FC7002D54D900385DDA00F0F3FC00FFFFFF005771C8002147C8001C46 + D1001540D0004668D900000000000000000000000000000000004960AE0095A5 + D900113DCE002F55D4004B6CDA004D64B200455BA5004359A6004258A500485E + A6005269B9006480DE005A78DD00627EDE006E88E100728CE1007790E3008299 + E400869CE600718BE1004158A30000000000000000004D72EA002652E6002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002955E700224FE500465FB40000000000000000004E68C3007B8DCC006383 + EC003E65E6004469E700456AE700466BE700456AE600456AE60096ABF000798C + D0008699DD00A1B5F700A1B5F700B7C7F9006E82CB006E82CB00899CDE00A1B5 + F700A1B5F700B7C7F9004F6AC5000000000000000000465FB4005275EA003D64 + E7004D71E900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008296D800375A + CD003C62E100385EDF00BFCBF400FFFFFF00BBC6E900284BBE002D55DA002750 + D9001D48D600486BDD0000000000000000000000000000000000889CE2008090 + C5001F49D600244DD7003057D9005A79E0005A78DE005976D6005C78D600617F + E2006B86E300617FE2006B87E400708BE5007993E7007F97E800849BE80092A7 + EB0090A5EA007690E500455CAA0000000000000000005579F1003F68F000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0003761EF004C66BD000000000000000000475FB200B8C5EF005175 + ED004E73EB005376EC005376EC005376EC005477EC005376EB006F8CEE00A9B9 + F1006F84CD00C0CEFA00C0CEFA008FA0DF00A9B9F000A9B9F0006F84CD00C0CE + FA00C0CEFA008FA0DF00BFCDF60000000000000000004963B9005478EE00456B + EB00587BED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B9C5EB004567D900486D + E700456AE60094A9F000FFFFFF00FFFFFF004D69C800365BD400395FE0003058 + DE00244EDB004A6DE100000000000000000000000000000000000000000098AB + EA0098ABED004066E600466BE7005376E900587AE9005D7DEA006987EC006E8B + EC00738FEC007E98EE00839CEF0089A1EF0094A9F10099ADF10098ADF100CCD5 + F400B2C2F5006886EB004C65B90000000000000000005D80F2006586F3007491 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007995 + F4006F8DF300597CF200516BC20000000000000000008095DE00A9BBF800577B + F2006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300708E + F4008AA3F5007F91D3007F91D300B4C3F4006F8DF2006F8DF2008AA3F4007D91 + D2007D8FD300AFBFF3006982D90000000000000000004D67BE00597CF2005579 + F1006E8DF3006B8AF0006785EA006585EE006686F3006384F2006082F1006888 + F100C0CDF800FFFFFF00FFFFFF00AEBBE7005074EA005074EC004D72EA00456A + E900345DE6004E72E90000000000000000000000000000000000000000000000 + 0000A2B0E0007E99F0004E73EC005F80EE006686EF006B89EF007692F0007B96 + F100809AF1008BA3F30091A8F30096ACF400A1B4F500A0B3F500A5B7F500677D + C800ABB9E8009BB0F4005069BF0000000000000000005E7DEA00718DEC007792 + ED007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95 + EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007993 + ED007590EC006D8AEC00546EC500000000000000000099ACEE00B1C1F9007290 + F400839EF5007F9AF5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500BBCAFA00BBCAFA0097ADF7007F9AF5007D98F5007D98F500B0C0 + F800A5B8F7007995F400536ECA0000000000000000004E68BF005B7EF2005D80 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300A1B5F700EBF0 + FD00FFFFFF00FFFFFF00B4C0E9005370D0005C7EF0005B7EF000597CEF004E73 + ED003B63EB005074EC0000000000000000000000000000000000000000000000 + 00005A74C900B4C1EC00829DF4006C8BF3007391F4007995F400829DF40087A1 + F5008DA5F50098AEF6009DB2F600A3B6F700A1B5F700A5B8F700BECBF600617C + D8005A74C900A4B4E800546EC50000000000000000005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005A75D1000000000000000000A4B4EE00D3DCFB0087A1 + F50097ADF70092A9F6008EA6F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F60097ADF70096ACF70094ABF6008FA7F6008DA5F6008BA4F6007F9A + F5006C8BF3005B7EF2004760B90000000000000000004F69C0005D80F2006586 + F300849EF500829DF500819BF5007E99F50093AAF600C3D0FA00FFFFFF00FFFF + FF00FFFFFF009BABE1005E78D1006987ED006888F3006686F3006586F300597C + F200436AEF005277F00000000000000000000000000000000000000000000000 + 00000000000093A8ED006D82CE00B1C1F8008AA3F600829DF5009AAFF700A1B5 + F700A6B9F800ACBDF800A8BAF800AFC0F900B5C4F4007E93D6005A76D2000000 + 000000000000C1CDF6005771C900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000096AAEC00DFE6FC00D2DB + FB00B5C5F900B7C7F900B4C4F900ADBEF800AABCF800A6B9F800A0B4F700B3C3 + F800DCE3F900DDE4FC00B6C6F900B3C3F900AFC0F900AEBFF800ACBDF80097AD + F7007F9AF5006787F3004861B8000000000000000000516BC2006082F200708E + F4009AAFF700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5DBF10098A8 + DC00758BD300859FF500839EF500829CF5007F9AF5007D98F5007B97F4006989 + F3004F74F1005579F10000000000000000000000000000000000000000000000 + 00000000000000000000BBC9F50095A6DE00C2CEF300B9C8F900A8BAF800A4B7 + F800A7B9F800B6C6F900C2CFFA00C1CEF800647CCD00647EDA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000798FD900DCE3FC00E6EB + FD00BECCFA00C1CEFA00C1CEFA00BBCAFA00B4C4F900ACBDF800A4B7F800A4B4 + EA0093A3DB00E7ECFD00D9E1FC00BBCAFA00BCCAFA00BBCAFA00B6C6F9009DB2 + F700839EF5006F8DF300516AC7000000000000000000526CC3005F81F200718F + F400A2B6F800FFFFFF00FFFFFF00E8EBF600D9DEF000B2BDE3008598D9008CA1 + E60092A9F40090A8F6008EA6F6008CA5F60089A2F60087A1F500859FF5006E8D + F3005075F1005579F10000000000000000000000000000000000000000000000 + 00000000000000000000000000007C93E400667FCC008799D900BDC9F100C0CD + F600C1CDF600A5B5EA008497DB00657DCD009DB1EF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000637AC700B8C7F800E6EB + FD00DDE4FC00C6D2FA00C3D0FA00BBCAFA00B3C3F900A5B8F800A7B8F3006177 + C4005068BE00E6ECFD00E7ECFD00E0E6FC00BCCAFA00BBCAFA00B6C6F9009BB0 + F700819BF5007B97F400657FD8000000000000000000536DC4006685EC006C8B + F300A3B6F800A4B5EE0092A1D30097A7DD0098A8E1009BACE700A2B6F800A1B5 + F7009FB3F7009BB0F70099AFF70097ADF70094ABF60091A8F6008CA5F6006B8A + F3005075F1005E7EEC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600516AC3008699 + DD00DBE2FC00E7ECFD00E6ECFD00E4E9FD00D0DAFB00A6B6EB00536ECA000000 + 0000000000005C73C400A3B3EB00CBD6F900E2E8FD00E0E6FC00DEE5FC00C3D0 + FA008AA0EE006177C8000000000000000000000000007A92E5006079CC00728E + EE007794F400829DF5008AA3F6008DA5F6008DA5F6008BA4F60089A2F60088A2 + F60087A1F500839EF500829DF500819BF5007B97F4007693F4006C8BF3005E80 + F2006786ED005F78CC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600516B + C7008499DE009CAEEF00A7B8F2008BA0E7007489D100526AC000000000000000 + 000000000000839AE7004F69C2006D82CD0091A7EE009FB2F10094A9EF006C85 + D9005870C3005E79D300000000000000000000000000000000005974CF00617A + CD005F81F2006586F3006888F3006A8AF3006A8AF3006A8AF3006A8AF3006989 + F3006989F3006888F3006888F3006787F3006586F3006384F3006082F2005E7D + E5006079CD006984DD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005975D1005069C0004F69C000526CC7006680DA00D3DBF800000000000000 + 0000000000000000000000000000839AE7004F68BF004F68BF004F68BF005E79 + D5009FB0EF000000000000000000000000000000000000000000000000007C93 + E5005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005D76 + CC007C93E5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C200C0C0 + C000263159002631590026315900263159002631590026315900263159002631 + 5900263159002631590026315900263159002631590026315900263159002631 + 59002E3D7100C0C0C000D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9002736660000000000000000000000000000000000C4C4C4004E63A6003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193004E63A600DBDBDB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004F69BF000328A300FFFFFF00E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F6004F69 + BF002C3D7B0000000000000000000000000000000000000000003D57AE00435D + B30007299A0007299A0007299A0007299A0007299A0007299A0007299A000729 + 9A0007299A0007299A0007299A0007299A0007299A0007299A0007299A000628 + 9A00435DB3003D57AE0000000000000000000000000000000000000000000000 + 00005972C900374D9E0034499400425AAE00768DD80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000273465007287CC005971 + C3005971C3005971C3005971C3005971C3005971C3005971C3005971C3005971 + C3005971C3005971C3005971C3005971C3002734650000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC400042AAA00FFFFFF00E6EAF700E6EAF700E6EAF700E6EAF700E6EA + F700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700506A + C4002F40800000000000000000000000000000000000000000003E58AF004660 + B9000F32A4001032A4001032A4001032A4001032A4001032A4001032A4001032 + A4001032A4001032A4001032A4001032A4001032A4001032A4001032A4000D30 + A3004661B9003E58AF0000000000000000000000000000000000000000005C75 + CF00536CC2005B77D4005874D200566EC1004C60A100354A9300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3A73006B86E1001639 + AC001639AC001639AC001639AC001639AC001639AC001639AC001639AC001639 + AC001639AC001639AC001639AC002446B7002A3A730000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506BC800042CB100FFFFFF009397A5009397A5009397A5009397A5009397 + A5009397A5009397A5009397A5009397A5009397A500E6EAF800E6EAF800506B + C8003245860000000000000000000000000000000000000000003F59B0004863 + BF00173AAE0015359F0015349C0015349C0015349C0015349C0015349C001534 + 9C0015349C0015349C0015349C0015349C0015349C0015349C0015359F001538 + AE004A65C0003F59B000000000000000000000000000000000005E79D3005269 + B900345CE4001744DB000434D200254CCF004666D300586DB6008499DF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3E7B006984E1000328 + A4000328A4000328A4000328A4000328A4000328A4000328A4000328A4000328 + A4000328A4000328A4000328A400163AB2002C3E7B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506ED200042FBF00FFFFFF00E6EBF800E6EBF800E6EBF800E6EBF800E6EB + F800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800506E + D200374B92000000000000000000000000000000000000000000415BB2004D6A + CA002649BF002343AC00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DF + DE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE002343AC002246 + BE00506CCB00415BB200000000000000000000000000607AD1006881D5005176 + F1001344E8000639E3000537DD000434D2000433CE000935C900586EB700374A + 8D00849BE0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000033458900738DE7000A32 + B8000A32B800375BD2006B86E0006480DE00163CBC000A32B8000A32B8000A32 + B8000A32B8000A32B8000A32B8001C42C2003345890000000000000000003449 + 9100334589005E76C90000000000000000000000000000000000000000000000 + 00004F6ED6000431C500FFFFFF009398A6009398A6009398A6009398A6009398 + A6009398A6009398A6009398A6009398A6009398A600E6EBF900E6EBF9004F6E + D6003A4F99000000000000000000000000000000000000000000425CB3004F6D + D0002E52C8002949B300DCDBDA00F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F800DCDBDA00DCDBDA002949B300284D + C500526FD100425CB300000000000000000000000000455EB7007C96EA004D72 + F1002856EE001445E8000639E3000535D8000434D2000433CE004162D100596E + B700384A8E000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000364A91007E95E3002349 + C8002C51CF00607BD80044589B007A8CCE006884E200143CC300113AC200113A + C200113AC200113AC200113AC2001E45C800364A910000000000869BE100627C + D600607CDA004D62A40000000000000000000000000000000000000000000000 + 00004F6FDB000432CD00FFFFFF00E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9004F6F + DB003D539F000000000000000000000000000000000000000000435DB400516F + D5003559CF003050BA00D8D7D600F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F700D8D7D600D8D7D6003050BA002F54 + CD005573D700435DB4000000000000000000000000004A62B600859DEE005176 + F1003C65EF002856EE001445E8000537DD000535D8000434D2000935C9004162 + D1005A6FB800859BE00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005068BE00788DD3005B7A + E0005375E400586DB4006D85D6004559A0007F96E1004063D8001841CA001841 + CA001841CA001841CA001841CA001841CA0042579E00000000003D55A8003B60 + DB002F55D600607EE200BDC9F400000000000000000000000000000000000000 + 00005073E5000536D900FFFFFF009398A8009398A8009398A8009398A8009398 + A8009398A8009398A8009398A8009398A8009398A800E6EBFB00E6EBFB005073 + E500425AAC000000000000000000000000000000000000000000455FB6005676 + E0004367DD003D5DC700DDDDDC00BABED100F3F3F700F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700F2F3F700DDDDDC00DDDDDC003D5DC7003C61 + DB005B7AE100455FB6000000000000000000000000005570CB00859BE6007C97 + F4006384F3005075F1003C65EF001445E8000639E3000537DD000434D2000433 + CE000935C9005A70B9003A4D910096A7E1000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005D76CF006073 + BB00798ED200556FC70000000000BDCBF400576CB300859EF0002751DE002751 + DE002751DE002751DE002751DE002751DE00667CCB004058A8006B82D0002751 + DE002751DE003D63E3004E68C000000000000000000000000000000000000000 + 00005174EA00093BE200FFFFFF00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EB + FC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC005174 + EA00465FB20000000000000000000000000000000000000000004660B7005778 + E5004B6EE3004463CC00E1E1E000858FAF00DBDEE800F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700DBDDE700E1E1E000E1E1E0004463CC004368 + E2005D7DE6004660B7000000000000000000000000008197E5007386CE0091A8 + F6007693F4006384F3005075F1002856EE001445E8000639E3000535D8000434 + D2000433CE004162D100979DB700888786000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000738B + DD004760BA00BECCF5000000000000000000445CB0008AA1EC002F59E6002F59 + E6002F59E6002F59E6002F59E6002F59E6006A88EE00748DE1006A88EE002F59 + E6002F59E6003C63E800516CC700000000000000000000000000000000000000 + 00005579EF001344E800FFFFFF00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7EC + FC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC005579 + EF004962B90000000000000000000000000000000000000000004761B8005A7B + EA005376E9004A69D000E5E4E4007C86A700838BAC00B7BBCF00F5F6F900FEFE + FE00FEFEFE00E2E5EC00B6BACD008089A900E5E4E400E5E4E4004A69D000496E + E7006080EB004761B800000000000000000000000000000000004D66BE0094A5 + E300829DF5007794F4006384F3003C65EF002856EE001445E8000537DD000535 + D8000434D2008794C700C5C5C500B3B3B300B0B0B00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005570CC008EA4EF00355FED00355F + ED00355FED00355FED00355FED00355FED003E67EF00456CEF003962ED00355F + ED00355FED00436AEF004761BA00000000000000000000000000000000000000 + 00005F81F2002856EE00FFFFFF00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD005F81 + F2004D66BD0000000000000000000000000000000000000000004963BA005E80 + F2006283F2005876DA00ECEBEB007780A2007780A1007780A100F1F2F600F1F2 + F600F1F2F600C1C6D500747E9F00737D9F00ECEBEB00ECEBEB005876DA00577B + F2006686F3004963BA00000000000000000000000000000000000000000090A4 + EA009AABE5009FB3F700849EF5006384F3005075F1003C65EF001445E8000639 + E3009BABE100CECECE00C4C4C400BBBBBB00B5B4B3008A898800B1B0B0000000 + 00000000000000000000000000000000000000000000000000006D87DD00637A + C7007087D8005D77D30000000000D2DBF8005B72C10089A2F300456CF000456C + F000456CF000456CF000456CF000456CF0007F98EA00647AC40090A3E400456C + F000456CF000587CF2005671CE00000000000000000000000000000000000000 + 00006485F300325EEF00FFFFFF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD006485 + F3004E67BF0000000000000000000000000000000000000000004A64BB006082 + F2006989F3005F7BDA00EFEFEE00747E9F00747E9F00737D9F00F1F2F600F1F2 + F600F1F2F600E8EAEF00717A9D00717A9D00EFEFEE00EFEFEE005F7BDA005E80 + F2006989F3004A64BB0000000000000000000000000000000000000000000000 + 0000556DC0009BABE5009FB3F7007794F4006384F3005075F1002856EE00A7B7 + ED00E7E7E700D7D7D700CECECE00C4C4C400C5C5C500B5B4B4008B8A89000000 + 00000000000000000000000000000000000000000000AEBEF2005B72C200869F + F0007B95EF00536CBF00D2DBF8007990E2007C8FD4007995F4004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1006C83CD005771CE00687DC7005277 + F1004C72F1006C8BF3007990E200000000000000000000000000000000000000 + 00006989F3003D66EF00FFFFFF00989DAA00989DAA00989DAA00989DAA00989D + AA00989DAA00989DAA00989DAA00989DAA00989DAA00EBF0FD00EBF0FD006989 + F3004F68C00000000000000000000000000000000000000000004B65BC006384 + F300718FF4006580DB00F2F1F100717A9D00717A9D00717A9C00F1F2F600F1F2 + F600F1F2F600F1F2F5006F7899006F789900F2F1F100F2F1F1006580DB006485 + F3006C8BF3004B65BC0000000000000000000000000000000000000000000000 + 000091A4EB00566FC1009CADE600849EF5007794F4006384F300B7C6F400F5F5 + F500EFEFEF00E0E0E000D7D7D700CECECE00BBBBBB00C5C5C500B5B5B500B1B1 + B1000000000000000000000000000000000000000000657FD9008195DD006F8D + F3007794F400738AD5005D78D300556DC10089A0EC006686F3005277F1005277 + F1005277F1005277F1005277F1005277F1005E75C300D2DBF8004F69C5007B97 + F4005E80F200879FEF00D2DBF800000000000000000000000000000000000000 + 00007391F4005277F100FFFFFF00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE007391 + F400516BC20000000000000000000000000000000000000000004D67BE006787 + F300809BF500728BDC00F7F7F6006C7697006B7597006B759600F0F1F500F0F1 + F500F0F1F500CDD1DC006972950069729400F7F7F600F7F7F600728BDC007290 + F400718FF4004D67BE0000000000000000000000000000000000000000000000 + 0000000000000000000091A5EB009DAEE6009FB3F700CCD5F300F8F8F800FAFA + FA00F9F9F900EFEFEF00E7E7E700E0E0E000CECECE00C4C4C400BBBBBB00B6B5 + B5008B8A8900000000000000000000000000000000004E68BF008FA6F3005B7E + F2006183F2007693F40094A9F300829CF5006485F3006183F2006183F2006183 + F2006183F2006183F2006183F2006A8AF3004E68BF0000000000000000004F68 + C1004E68BF006F89DF0000000000000000000000000000000000000000000000 + 00007794F4005C7FF200FFFFFF009DA1AC009DA1AC009DA1AC009DA1AC009DA1 + AC009DA1AC009DA1AC009DA1AC009DA1AC009DA1AC00EFF3FE00EFF3FE007794 + F400526CC30000000000000000000000000000000000000000004D67BF006989 + F30086A0F5007990DC00F9F9F900697295006972940068729400CDD0DC00F0F1 + F500F0F1F5006F77980067709100666F9100F9F9F900F9F9F9007990DC007894 + F4007491F4004D67BF0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C500D0D5E900F7F7F700F7F7F700F8F8 + F800FAFAFA00F5F5F500EFEFEF00E7E7E700D7D7D700CECECE00C4C4C400C7C7 + C700A6A6A500A9A9A9000000000000000000000000004F69C0008CA5F6006082 + F2006989F3006989F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006C8BF3004F69C00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007C97F4006787F300FFFFFF00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE007C97 + F400536DC40000000000000000000000000000000000000000004E68C0006B8A + F3008DA5F6007F95DD00FBFAFA0067709100666F9100666F9100656E9100656E + 9100646E9000646E8F00636D8F00636D8F00FBFAFA00FBFAFA007F95DD007F9A + F5007794F4004E68C00000000000000000000000000000000000000000000000 + 0000000000000000000000000000A2B2EC00BAB9B800ECECEC00F6F6F600F7F7 + F700F8F8F800F9F9F900F5F5F500EFEFEF00E0E0E000D7D7D700CECECE00C3C3 + C300BFBFBE00908F8F00000000000000000000000000506AC1008AA3F6006A8A + F3007D98F5007E99F5007B97F400708EF400708EF400708EF400708EF400708E + F400708EF4007A96F4007995F4007491F400506AC10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000849EF5007C97F400FFFFFF00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00849E + F500556FC6000000000000000000000000000000000000000000506AC100708E + F4009CB1F7008D9FDE00FDFDFD00616A8D00606A8C00606A8C005F698B005F69 + 8B005F698A005F688A005E6789005E678900FDFDFD00FDFDFD008D9FDE008BA4 + F6007C97F400506AC10000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7B7B700ECECEC00F7F7 + F700F6F6F600F8F8F800FAFAFA00F9F9F900EFEFEF00E7E7E700E0E0E000CECE + CE00D3D3D3009B9A99000000000000000000000000005B76D300526CC300526C + C300526CC300526CC300526CC3007388CF00A2B2E700B3C3F900A0B4F6008FA1 + E0006D82CC00526CC300526CC300526CC300607BD70000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000088A2F600829DF500FFFFFF0058595C0074757A00F3F6FE0058595C007475 + 7A00F3F6FE0058595C0074757A00F3F6FE0058595C0074757A00F3F6FE0088A2 + F6005670C7000000000000000000000000000000000000000000516BC2007290 + F400A4B7F80093A4DE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE0093A4DE0091A8 + F6007F9AF500516BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BEBCBB00EDEC + EC00F7F7F700F7F7F700F8F8F800FAFAFA00F5F5F500EFEFEF00E7E7E700DADA + DA00DADAD9009C9A990000000000000000000000000000000000000000000000 + 0000000000000000000000000000718AE0006178C900B5C4F500A0B3F300546D + C40092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000089A2F60086A0F500FFFFFF00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D + 7100F4F7FE00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D7100F4F7FE0089A2 + F6005871C8000000000000000000000000000000000000000000526CC3007491 + F400ABBDF80099A9DE00E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5 + E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E50099A9DE0097AD + F700819BF500526CC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B8B8B700BEBD + BC00EDECEC00F6F6F600F7F7F700F8F8F800F9F9F900F5F5F500EFEFEF00E6E6 + E600CFCFCE009F9E9E0000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0006F84CF00A2B2E900A9BBF800AABCF7008C9F + DF00647ACA009FB1F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007D97EE0091A7F1009AAEF200191918007F8FC200A1B4F300191918007F8F + C200A1B4F300191918007F8FC200A1B4F300191918007D8DC2009AAEF2007D97 + EE005872C9000000000000000000000000000000000000000000546EC5007491 + F400B7C7F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F90099AF + F700819BF500546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8B8B800EBEAEA00F6F6F600F5F5F500F7F7F700F9F9F900F9F9F900CDCC + CB00A4A4A3000000000000000000000000000000000000000000000000000000 + 0000000000005770C800A1B3EF009BB0F7009BB0F7009BB0F7009BB0F7009BB0 + F7009BB0F7008DA2EB005770C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005F5F5F004F5E92005872C9005F5F5F004F5E + 92005872C9005F5F5F004F5E92005872C9005F5F5F004F5E92005872C9005872 + C9005B76D2000000000000000000000000000000000000000000556FC6006D8C + F300A6B9F800AFC0F900B1C1F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2 + F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2F900B1C1F900ADBEF800849E + F5007894F400556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B6B4B300D7D5D500ECECEB00F6F6F600F8F8F700E6E5E500A7A6 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800A5B7F300A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F80095AAF1005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D2D1D0008080800000000000D2D1D0008080 + 800000000000D2D1D0008080800000000000D2D1D00080808000000000000000 + 00000000000000000000000000000000000000000000000000005670C7006382 + EA00849DEE00889FEE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0 + EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE00879FEE007B94 + ED006886EB005670C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B2B1B100A8A6A600BCBAB900B3B1B000A7A6A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDB008D9FDF00B4C4F900ADBEF800A8BAF800A6B9F800AABC + F800ACBDF800879ADC006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080009090900000000000808080009090 + 9000000000008080800090909000000000008080800090909000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006B85DE005A74CF005872C9005872C9005B76 + D2006B85DE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D1D1D100CFCFCF00C9C9C900C7C7C700C5C5 + C500C5C5C500C5C5C50091A1D70029386D00C5C5C500C8C8C800D3D3D3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F200364A91004F63 + A5008793BC00A7B0CF00D9DFF300D9DFF400D9DFF400D9DFF400D9DFF400D9DF + F400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400DADF + F200A5AECE003A4D930000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000029396C00526297008494C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F448B002E3F7B002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B7800354B970000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BAE007182BB005C77 + D3007B90D7006979B200A3ADCF00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CB + EE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C4CE + EF00CFD7F200A3ADD00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008093D9005466A5004059AA008393C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F2004F609F002C3D7B004E66B700506AC400506A + C400506AC400506AC400506AC400506AC400506AC400506AC400506AC400506A + C400506AC4002D3F7F0000000000000000000000000000000000000000000000 + 000000000000000000002E4696001F3376001F3376001F3376001F3376001F33 + 76001F3376001F3376001F3376001F3376001F3376002E469600000000000000 + 00000000000000000000000000000000000000000000354992008699DA004868 + D200607BD8008699DA005C6CA700B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00BCC8EE00CFD6EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B20036457A00324DAA00032597008494CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC6F20031458D00526ECE002F4183000328A000042CB200042C + B200042CB200042CB200042CB200042CB200042CB200042CB200042CB200042C + B200506CC9003043850000000000000000008E8C8A00BBB9B700BBB9B700BBB9 + B700BBB9B700BBB9B70029429500042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB7004F6ED70029429500BBB9B700BBB9 + B700BBB9B700BBB9B700BBB9B7008E8C8A00000000003B509D008EA3E9005D7B + E0005D7BE0008EA3E9003B509D00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00C4CEF00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000045569000546C + BD004762BF007186CE002B4BB6008496D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374D9A002C459A000732C1006582E30035498F00042BAE000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2004F6DD300364B9300000000000000000093918F00D8D8D700D8D8D700D8D8 + D700D8D8D700D8D8D7002F4AA4001942CD001D46CE001E46CE001E46CE001E46 + CE001E46CE001E46CE001E46CE001C45CE005474E1002F4AA400D8D8D700D8D8 + D700D8D8D700D8D8D700D8D8D70093918F00000000003D54A40095A9ED006885 + E6006885E60095A9ED003D54A400A5B6F000A5B6F0001442D9001442D9001442 + D9001442D9001442D9001442D9001442D9001442D9001442D9001442D900A5B6 + F000A5B6F000C3CEF10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003C54A300516CC7004F6B + C8007184C600344581007184C6009BABE0000000000000000000B9C6F1002E42 + 8800B9C6F100000000000000000000000000000000000000000000000000BDC9 + F4002E489F000833C5000D3AD0007791EB00374C9700042DB6000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA004F6FD9003A4F9900000000000000000098969400F5F5F400F5F5F400F5F5 + F400F5F5F400F5F5F4003652B4003D63E300476BE300486CE400486CE400486C + E400486CE400486CE400486CE400466BE3005D7DEA003652B400F5F5F400F5F5 + F400F5F5F400F5F5F400F5F5F40098969400000000004058AB009EB1F200738E + EB00738EEB009EB1F2004058AB00A9BAF300A9BAF3001443DE001443DE001443 + DE001443DE001443DE001443DE001443DE001443DE001443DE001443DE00A9BA + F300A9BAF300C7D0F30000000000000000000000000000000000000000000000 + 0000CED7F60092A4E3006179C70033488F002D3C71005568AA004161CB007287 + CC00334687004A5EA40033468700A6B2DA0000000000BAC6F2002F4489004A5E + A4002F448900BAC6F2000000000000000000000000000000000000000000425A + AE005271D9005676E1006583E800859EEF003B509D00042EBC000434D1000434 + D1000434D1000434D1000434D1000434D1000434D1000434D1000434D1000434 + D1004F70DF003C53A100000000000000000099989600A3A19F00A3A19F00A3A1 + 9F00A3A19F00A3A19F003D5DC6007994ED0088A0EF00A6B7F200B5C4F500B5C4 + F500B5C4F500B3C2F400A2B4F200859EEF006382EB003D5DC600A3A19F00A3A1 + 9F00A3A19F00A3A19F00A3A19F0099989600000000004660B700B2C2F80094AB + F60094ABF600B2C2F8004660B700B0C0F800B0C0F80088A1F50088A1F50088A1 + F50088A1F500B0C0F80088A1F50088A1F50088A1F50088A1F50088A1F500B0C0 + F800B0C0F800CBD5F70000000000000000000000000000000000536BBE004C5F + 9F004A66C5003857C0002447BA007288D200344889004F6FDB004258A4004F67 + B9004A6BD800123DCC004A6BD8004F67B9003950A1004F67B9004A6BD800123D + CC004A6BD8004F67B9000000000000000000000000000000000000000000445C + AF000432CA000432CA000432CA000432CA000432CA000535D9000537E1000537 + E1000537E1000537E1000537E1000537E1000537E1000537E1000537E1000537 + E1004F73EA00445CAF0000000000000000000000000000000000000000000000 + 000000000000000000004C6BD2003F5EC8003F5EC8003F5EC8003F5EC8003F5E + C8003F5EC8003F5EC8003F5EC8003F5EC8003F5EC8004C6BD200000000000000 + 000000000000000000000000000000000000000000004962B900BFCDFA00ACBD + F800ACBDF800BFCDFA004962B900B4C4F900B4C4F9001647EC001647EC001647 + EC001647EC00B4C4F9001647EC001647EC001647EC001647EC001647EC00B4C4 + F900B4C4F900CED8F800000000000000000000000000000000003A4F96005A74 + C900042FC000042FC000042FC000728ADB003A4F96005273E200485FAF00536E + C4004B6EE3000535D8001240DA004B6EE300536DC4004B6EE3001240DA001240 + DA004B6EE300536EC40000000000000000000000000000000000000000004760 + B700063AE800073BE900073BE900073BE900073BE900073BE900073BE900073B + E900073BE900073BE900073BE900073BE900073BE900073BE900073BE900063A + E8005075EF004760B70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003C59BC00708CEB006683E6005374 + E1004F70DE005070DA004F6ED700314A9A000000000000000000000000000000 + 000000000000000000000000000000000000000000004A63BB00CAD5FB00BFCD + FA00BECCFA00CAD5FB004A63BB00B7C7F900B7C7F9001849EC001849EC001849 + EC001849EC00B7C7F9001849EC001849EC001849EC001849EC001849EC00B7C7 + F900B7C7F900D0D9F800000000000000000000000000000000004056A3005071 + DE000433CF000433CF000433CF00728DE4004056A3005779E9007F96E3004962 + B7005772CF001344E7000539E6001344E700476DED001344E7000539E6004C71 + ED005772CF00455EB70000000000000000000000000000000000000000004963 + BA000E41EC001042EC001143EC001143EC001143EC001143EC001143EC001143 + EC001143EC001143EC001143EC001143EC001143EC001143EC001143EC000E41 + EC005378F1004963BA0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000425FC3007893EE004C6EDE00355A + D6001C45CE00042FC0004F6FD900354DA0000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00D6DEF900DCE3 + F900DBE2F900D6DEF9004C66BD00C3D0FA00C5D1FA00305CEE00305CEE00305C + EE00305CEE00C5D1FA00305CEE00305CEE00305CEE00305CEE00305CEE00C5D1 + FA00C3D0FA00D6DEF900000000000000000000000000000000004A64BB006384 + F3004C72F1004C72F1004C72F10088A1F5004A64BB005E80F2003862EF005D80 + F2008CA2EC005E78D5005378F1001748EC001748EC001748EC005378F1004A64 + BE00BFCCF5000000000000000000000000000000000000000000000000004C65 + BC001F4FED002553EE002654EE002654EE002654EE002654EE002654EE002654 + EE002654EE002654EE002654EE002654EE002654EE002654EE002654EE001E4E + ED005A7DF2004C65BC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004360C5006C88E700738DE4006E88 + E2006781DE005A77D9005976D6003750A3000000000000000000000000000000 + 00000000000000000000000000000000000000000000536ECA004D67BE004D67 + BE004D67BE004D67BE004D67BE00C9D5FB00CBD6FB003E67F0003E67F0003E67 + F0003E67F000CBD6FB003E67F0003E67F0003E67F0003E67F0003E67F000CBD6 + FB00C9D5FB00D9E0F900000000000000000000000000000000004B65BD006F8D + F3006F8DF3006F8DF3006F8DF30095ACF7004B65BD006283F200466DF0006888 + F30092A7EC006780D7006787F300315DEF00315DEF00315DEF006686F3004C66 + C000BFCDF6000000000000000000000000000000000000000000000000004D66 + BE002755EE00305CEE00325EEF00325EEF00325EEF00325EEF00325EEF00325E + EF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF002755 + EE005E80F2004D66BE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F6DD3004360C500405DBC003F5A + B8003E58B4003B54AC003952A900435EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004F68BF00CFD9FB00D2DBFB004B71F1004B71F1004B71 + F1004B71F100D2DBFB00B1C1F900B1C1F900B1C1F900B1C1F900B1C1F900D2DB + FB00CFD9FB00DCE3F900000000000000000000000000000000004C66BE007995 + F40090A8F60090A8F60090A8F600A0B4F7004C66BE006586F3007391F40097AB + ED00536CC3007C97F400567AF2004C72F1004C72F1004C72F100567AF2006D85 + D9004E68C100BFCDF60000000000000000000000000000000000000000004E68 + BF00305CEE003B64EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF002F5B + EE006183F2004E68BF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200D9E1FC00DDE4FC006586F3006586F3006586 + F3006586F300DDE4FC006586F3006586F3006586F3006586F3006586F300DDE4 + FC00D9E1FC00E3E8FB00000000000000000000000000000000004E68C00089A0 + EC00AFC0F900B9C8F900B8C7F900ACBDF8004E68C0006C8BF3005E77CA006D86 + DA009CB1F700819BF50087A1F5009EB3F7007D93DE009DB2F70087A1F50088A2 + F60099AFF7006C85DA000000000000000000000000000000000000000000516A + C1004169F0005075F1005378F1005378F1005378F1005378F1005378F1005378 + F1005378F1005378F1005378F1005378F1005378F1005378F1005378F1004068 + F0006888F300516AC10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000526CC300DEE5FC00E1E7FD00E2E8FD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E1E7 + FD00DDE4FC00E4EAFB00000000000000000000000000000000006681DA00768C + D400B5C5F900B9C8F900B4C4F900A7B9F8004F69C100718FF4006179CC007189 + DC00ACBDF800A1B5F700AFC0F9008397DF00536EC7008297DF00AEBFF800A1B5 + F700AABCF8006F89DC000000000000000000000000000000000000000000526C + C3004A70F0005A7DF2005E80F2005E80F2005E80F2005E80F2005E80F2005E80 + F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F200496F + F0006B8AF300526CC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400E2E8FD00E6EBFD00CDD8FB00CDD8FB00CDD8 + FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00E6EB + FD00E2E8FD00E6EBFB0000000000000000000000000000000000000000006881 + DB00657BC9007388D2008196DB008EA5F000506AC2008FA7F600ADBCF0005D76 + CA00879CE000B4C4F900879CE0005D76CA00C1CDF600556FC800869ADF00B3C3 + F900879BE000556FC8000000000000000000000000000000000000000000536D + C4005075F1006485F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006989F3006989F3006989F3006989F3005075 + F1006E8DF300536DC40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600E7ECFD00EBF0FD0096ACF70098AEF70098AE + F70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF700EBF0 + FD00E7ECFD00EBEFFD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871CF00A8B9F600AABC + F800B6C3F100677FCE00AEBEF000B3C3F9000000000000000000C1CDF6005874 + CF00C1CDF600000000000000000000000000000000000000000000000000566F + C600597CF2007290F4007D98F500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF5007D98F500587C + F200718FF400566FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005771C800E9EEFD00EDF1FE0095ACF7009EB3F7009FB3 + F7009FB3F700A0B4F700A0B4F7009FB3F7009FB3F7009EB3F7009BB0F700EDF1 + FE00E9EEFD00EDF1FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758BD200ACBC + F500A9BBF800C9D5FB0096ACF700A1B5F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005770 + C700567AF2006D8CF3007B97F400839EF500839EF500849EF500859FF500859F + F500859FF500859FF500849EF500849EF500839EF500819BF5007A96F4005479 + F1006F8DF3005770C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C900EAEFFD00ECF0FE00EEF2FE00EFF3FE00EFF3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00ECF0 + FE00EAEFFD00EFF2FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006883DC00768B + D300A7B9F400849EF5007592F4009EB3F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005871 + C8004A70F0005D80F2006989F3007290F4007491F4007491F4007491F4007491 + F4007491F4007491F4007491F4007491F4007290F4006F8DF3006888F300486F + F0006A8AF3005871C80000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009E9C9A009997 + 9500959391008B89870000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005B76D2005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A7ED009DAFEE0086A0F50094ABF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D76CA0096A8E7008DA5F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005B74CB008FA2E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C2008FA0D5003A4A + 7A003A4A7A00C0C0C000C1C1C100C7C7C700D5D5D500DCDCDC00000000000000 + 0000000000000000000000000000000000000000000000000000DEDEDE006B80 + C20027335F0026335D002A386D00C3C3C300C3C3C300C4C4C400D1D1D100D5D5 + D500000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C700C0C0C0006679B80027325B0027325B0027325B0027325B002732 + 5B0027325B0027325B0027325B0027325B0027325B00273462007385C800C7C7 + C700D6D6D6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A4B82004B5B + 94004B5A9300B2BFEE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C64B5004656 + 8A0098A5CE0098A4CD00828FB90031458A00DEE3F80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002A3A750003279E0003279E0003279E0003279E000327 + 9E0003279E0003279E0003279E0003279E0003279E00435DB6003F58B0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B8C6F2003D4E8E003F59B2000F30 + 9F000F309F004B5E9F003D4E8E00B8C6F2000000000000000000000000000000 + 00000000000000000000000000000000000000000000314792009BA8D200526D + C5002647B5002041B0001B3DAE00909ECB00293D7F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D3D7A00092DA5006077C400768ACC00092DA5006077 + C40096A6D800092DA5006077C4008A9BD4000328A300435EBA004059B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C8F2003D5091004C5FA1000F31A3000327 + 9F0003279F003F5AB6004C5FA1003D5091000000000000000000000000000000 + 000000000000000000000000000000000000000000002E4285008FA0DB004A66 + C6003C5AC0003655BD003151BA00697FC9002B3E7C0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E407F00092EAA008C9DD700B5C0E600092EAA008C9D + D700C5CEEB00092EAA008C9DD700BDC7E800042AA900425EBD00415AB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DEDEDE00DEDEDE00CECECE00CECECE00C7C7C700C0C0C000C0C0 + C000C0C0C000C0C0C000C0C0C00092A2D700394B8A0093A2D800C0C0C000DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003F5193004C61A500435EBB000328A3000328 + A3000328A3000F32A800435EBB004C61A500BBC8F20000000000000000000000 + 0000000000000000000000000000000000000000000030448A008296D9005D77 + D000516DCA004C68C8004764C6006079CC002D3F810000000000000000000000 + 00000000000000000000000000008196DC00293A7500293A740033478C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000334688000A31B5006E85D30091A2DD000A31B500607A + CF0098A8E0000A31B500607ACF0091A2DD00042CB4004361C700435CB4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007F92D8003E4C7E0093A5E4000000 + 000000000000BDC9F300374E9D004F68BC004A6FE800657ECF00455FBB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004153940041539400415394001338B100042A + AB00042AAB004360C1004153940041539400465CA90000000000000000000000 + 000000000000000000000000000000000000000000006D83D4005669A80092A4 + E300788FDC00758DDB00768DDA004B69CD0032468B0000000000000000000000 + 0000000000008398DE00505F9800A4B1DD003E5BBD003957BB005F77C7005160 + 9400647CCB000000000000000000000000000000000000000000000000000000 + 0000000000000000000035498E000A33BB0091A3E000B5C1EA000A33BB008C9F + DF00BDC8ED000A33BB008C9FDF00CDD5F100042EB9004362CA00445DB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002E4185005467A7005068BB000000 + 0000000000003950A000506ABE004A6EE5006C8BF1007389D4004661BC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425596001439B500042B + B000042BB0004361C40042559600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAE005468 + A90097A9E50092A5E5008399E1003C5ECD003448900000000000000000000000 + 0000000000003B53A2009EABD5005B75CC003252BE002D4EBB002748B70094A2 + D000364A8D000000000000000000000000000000000000000000000000000000 + 00000000000000000000384B9300042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF004363CF00455EB6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008296DB0043528900516BBE00384C95000000 + 0000BDC9F400516BC1004A6EE600204EE800738AD500435DB600BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D64B7004F65B20000000000000000000000000043569900143ABA00042D + B500042DB5004361C700435699000000000000000000000000004960AF00BAC9 + F300000000000000000000000000000000000000000000000000000000006E86 + D700384E9A00384E99004264D4004062D200374B950000000000000000000000 + 00000000000034488D0094A5DF005470CD004765C8004260C6003C5BC200788C + D000314384000000000000000000000000000000000000000000000000000000 + 000000000000000000003C529D000A36CA008CA1E600B5C3EF000A36CA008CA1 + E600B8C5EF000A36CA008CA1E600C1CCF2000432CA004365D7004760B8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000475994004D69C7000932BD00556DBD003E54 + A400556EC700204FEB006C8BF300758BD700BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B5004665CC004559A0000000000000000000000000004559A0001C42C3000D36 + BF000D36BF004766CF004559A0000000000000000000000000004559A0005067 + B700445AA300BCCAF40000000000000000000000000000000000000000000000 + 0000000000003D54A400486BDF004669DC003C529F0000000000000000000000 + 0000000000003D55A5008294D3007F95E0006D86DA006882D700647FD6006982 + D60035498E000000000000000000000000000000000000000000000000000000 + 000000000000000000003F55A2000735D0000735D0000735D0000735D0000735 + D0000735D0000735D0000735D0000735D0000735D0004467DB004862B9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000566AB2003356CB000431C6005D78D7005570 + C9004C71ED006C8BF300758CD7004761BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C63B6005B70 + B6004969D300465AA300465AA300465AA300465AA300465AA300284DCA001A42 + C7001A42C7004D6CD300465AA300465AA300465AA300465AA300465AA3004666 + D200536ABB00445CA70000000000000000000000000000000000000000000000 + 0000000000004058A9004B6EE3004A6DE1003E55A50000000000000000000000 + 0000000000006F85D7005A6DB00094A7E6008197E2007E95E0007E95E0005673 + D400384C93000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A800103ED700A0B2EF00A0B2EF00103ED700A0B2 + EF00A0B2EF00103ED700A0B2EF00A0B2EF00103ED700486BE0004963BA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A8B7ED005470CF000E3ACC000434D1004268E800476D + ED002050ED00778CD8004862BC00BFCCF5000000000000000000000000000000 + 000000000000000000000000000000000000000000004D65B8005E72BA00516F + D5005472D8005C77D1005974D1005974D1005A74D1005C77D1002A50CF00274D + CD00274DCD005876D9005D78D1005A74D1005974D1005974D1005B75D100284E + CE004D6DD700556DBE00BDC9F400000000000000000000000000000000000000 + 000000000000435CAF004F72E8004D70E5004159AA0000000000000000000000 + 00000000000000000000465FB500586CB2009BADE80097A9E8008BA0E5004969 + D5003A5099000000000000000000000000000000000000000000000000000000 + 000000000000000000004760B3005B668B008895BE008996BF008B98C1008C99 + C2008D9AC3008F9CC500909DC600919EC7008B9ACB005073E9004B65BC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000AAB9EF004D61A5000D3CD7000537DE000539E600053AEB000C3F + EC005579F1006B85D8005F76C6004B65BE009DB0EE0000000000000000000000 + 0000000000000000000000000000000000004B63B7005574DC003A5FD9003C61 + D9004064DB003F63DB003F63DB003F63DB003F63DB003F63DB004064DB004064 + DB004064DB004064DB004064DB003F63DB003F63DB003F63DB003F63DB003F63 + DB003B60D900395ED900556FC3004B63B7000000000000000000000000000000 + 0000000000004862B9005579F0005578EE00465FB50000000000000000000000 + 000000000000000000000000000000000000BFCDF8004159A7005474E1005272 + DF004056A3000000000000000000000000000000000000000000000000000000 + 000000000000000000004A62B70039456E0054659F005566A0005869A300596A + A4005B6CA6005D6EA8005F70AA006071AB00919DC6005477ED004C66BD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005E77CC005971C5000537E1000539E800053AEB001244EC002654 + EE003B64EF007B97F40086A0F500839BEB006A80CB00526DCA00000000000000 + 0000000000000000000000000000000000004D65BA005777E2004266DE00486B + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF00486BDF004266DE005770C7004D65BA000000000000000000000000000000 + 0000000000004963BB00597CF200597CF2004963BA0000000000000000000000 + 00000000000000000000000000000000000000000000445CAD005878E5005676 + E3004259A9000000000000000000000000000000000000000000000000000000 + 000000000000000000004C66BD0036426A0051629B0052639C0054659E005667 + A0005768A1005A6BA4005B6CA5005C6DA6008E9AC200597CF1004D67BE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF8004D62AE005B79DF00053AEA00053AEB00093DEB002E5AEE00426A + F000567AF200809BF50093AAF600AEBFF8007287CE00546ECB00000000000000 + 000000000000000000000000000000000000BFCBF5005C76CB006381E7005274 + E3005778E5005475E4005274E3005274E3005374E3005677E5005979E5005979 + E5005979E5005979E5005677E4005374E3005274E3005274E3005475E4005576 + E4005374E3006381E7004A63B600BFCBF5000000000000000000000000000000 + 0000000000004A64BC005D80F2005C7FF2004A64BC0000000000000000000000 + 000000000000000000000000000000000000000000004760B3005D7DEA005B7B + E800455DAF000000000000000000000000000000000000000000000000000000 + 000000000000000000004F69C000333E63004A5A8F004B5B90004E5E93005060 + 9500516196005464990055659A0056669B008A95BB006283F2004F69C0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000546BBC005C7CE8001849EC001446EC002856EE003D66EF006D8CF3009BB0 + F700BDCBF9007487CE00536EC90091A5EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5004D66BC005C77 + D0005F7FEC004C65B8004C65B8004C65B8004C65B8004C65B8007792EE00738F + EE00738FEE007994EF004C65B8004C65B8004C65B8004C65B8004C65B8005E7F + EC005C77D0004D66BC0000000000000000000000000000000000000000000000 + 0000000000004D67BE006485F3006485F3004D67BE0000000000000000000000 + 000000000000000000000000000000000000000000004C66BD006787F2006484 + F0004A63B9000000000000000000000000000000000000000000000000000000 + 00000000000000000000506AC100313C5F004857890049588A004C5B8D004D5C + 8E004F5E90005160920053629400546395008994B7006686F300506AC1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000647DD4003D66EF000A3EEB002F5BEE00446BF0006888F300BAC8F800A2B1 + E6006E83CD009FB1EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004D66 + BF004F74ED004D66BB000000000000000000000000004D66BB007F9AF1007E99 + F1007E99F1007893F0004D66BB000000000000000000000000004D66BB005A76 + D2004D66BF00BFCCF50000000000000000000000000000000000000000000000 + 0000000000004E68BF006888F3006E8DF3005B73C4004E68C100839AE700BFCD + F60000000000000000000000000000000000000000004E68BF006B8AF3006989 + F3004D67BE000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC2002F395A004554840046558500485787004A59 + 89004B5A8A004E5D8D004F5E8E00516090008690B2006A8AF300516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006280E8002654EE002251ED005C7FF20094ABF600B7C6F6006E84CE005C77 + D400AEBEF3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005673D5004E68BF000000000000000000000000004E68BF0089A2F5008BA4 + F5008BA4F5007C97F4004E68BF000000000000000000000000004E68BF004E68 + C100BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000004F69C0006B8AF300849EF500B9C7F700A8B8ED00768AD1005C74 + C500536CC0007991E300AEBEF30000000000000000004F69C0006F8DF3006D8C + F3004F69C0000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC4002B3452003F4C7700414E790043507B004451 + 7C0046537E00485580004A5782004B588300838CAB007391F400546DC4000000 + 0000000000000000000000000000000000000000000000000000000000005972 + CA006183F2008FA7F600AABAF100637BCC006B84DD00D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC1009FB3F700A4B7 + F800A4B7F80086A0F500506AC100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC2007290F400829CF500819BF500809BF5007E99F50089A2 + F6009BB0F700B4C4F900B7C7F900AEBEF200788ED600647BC8007C97F4007693 + F400516BC2000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC50029314E003C4870003E4A7200404C7400424E + 7600434F770046527A0047537B0049557D008189A6007794F400556EC5000000 + 00000000000000000000000000000000000000000000000000007C93E6007A8F + D700A2B4EF008699DA005C75CC00D3DBF9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC200516BC200516BC200ADBEF800B1C1 + F900B1C1F90091A8F600516BC200516BC2005973CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000526CC3007391F40087A1F50086A0F500859FF500839EF500829D + F500829CF5007F9AF50086A0F50099AFF700B9C8F900C2CFFA008CA5F6007A96 + F400526CC3000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600272F49003B466C003B466C003E496F003F4A + 7000414C7200434E740045507600465177007E86A1007B97F400566FC6000000 + 00000000000000000000000000000000000000000000000000005872CA009BAC + E7005C75CC007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000627CD2005F7FEA00748FEC00B7C7F900BDCB + FA00BDCBFA00A7B9F8007E98ED006080EA00546FCA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006384F30093AAF6008FA7F6008BA4F60089A2F60088A2 + F60087A1F500849EF500839EF500829DF500819BF50087A1F500839EF5007F9A + F500536DC4000000000000000000000000000000000000000000000000000000 + 000000000000000000005871C800242B4400343D5C0038426200384262003943 + 63003B4565003D4767003F496900404A6A00787F99007E99F5005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF600536DC6006781DA00AEBFF800C2CF + FA00C3D0FA0094ABF6006E87DB00536DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0005D77CF005771C700637CCF007993E90086A0 + F40095ACF70097ADF70092A9F6008FA7F6008DA5F6008BA4F6008AA3F60086A0 + F500556FC6000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C90027304F00262D4400282E4400292F4500292F + 4500292F4500292F4500292F4500292F4500515870007794F4005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCDF600536EC70094ABF6009FB3 + F700A0B4F700718ADD00536EC700BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF90093A7ED005874CD005C75 + C900647ED300879EEB008EA6F60099AFF70099AFF70094ABF60090A8F6008AA3 + F6005670C7000000000000000000000000000000000000000000000000000000 + 000000000000000000005872CA00879FF0008FA6F00093A9F20095AAF20095AA + F20095AAF20095AAF20094AAF20092A8F200849DF0007A93E7005872CA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C1CDF6006F88DC00829C + F500829CF500556FC700C1CDF600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CED8 + F800859CE9005771C9006179CC006680D60092A8F00097ADF7009EB3F70089A2 + F6005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005874 + CF005874CF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF3007C93E4005771 + C8005771C9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3B7700DBE0F100DDE2 + F200DEE3F300DFE4F300DFE4F300E0E5F300E0E5F300E2E7F400E3E7F500E3E7 + F500E3E7F500E5E9F600E5E9F600E6EAF600E8ECF700E8ECF700E8ECF700E8EB + F600E9ECF700EAEDF700000000000000000000000000D3D3D3005F5D5E005E5C + 5C0037363800B9B9B90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D3F7F00D7DDF100C8D0 + EC00C9D1ED00CAD2ED00CBD3ED00CCD3ED00CDD4ED00CED5EE00D0D7EF00D1D8 + EF00D2D9EF00D3D9EF00D4DAF000D5DBF100D7DDF200D7DDF200D7DDF100D9DE + F200DADFF200E6EAF8000000000000000000000000007B7979008D8B8A007D7B + 7A006462620039383900CFCFCF00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448600D6DCF200C3CC + EC003E5DC4003E5DC4003E5DC4003F5EC4003F5EC4003F5EC400C9D2EF00C9D2 + EF00CAD2EF00CBD3EF00CDD5F000CDD5F000CFD6F000D0D7F000D1D8F100D2D9 + F100D3DAF100E0E5F500000000000000000000000000858383009E9B9A00A19F + 9E00676564006462620039383900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000384C9700D7DEF500C6D0 + F1003F61D2003F61D2003F61D2003F61D2003F61D2003F61D200C4CEF000C4CE + F100C4CEF100C4CEF100C3CEF100C3CEF100C3CEF100C3CEF100C3CEF100C4CE + F100C4CEF100D7DEF50000000000000000000000000000000000D3D3D3008583 + 8200A19F9E007D7B7A006765640039383900CFCFCF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000687AB8007084C600566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC007084C60023336700000000000000000032479000304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 89003045890030458900859AE00000000000000000003B519F00D9E0F700C8D2 + F4003F63DA003F63DA003F63DA003F63DA003F63DA003F63DA00C6D1F400C6D1 + F400C6D1F400C5D0F300C5D0F300C5D0F300C4CFF300C4CFF300C4CFF300C3CE + F300C3CEF300D6DDF7000000000000000000000000000000000000000000D3D3 + D3009E9B9A00A19F9E007D7B7A006462620039383900CFCFCF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004259A600344FA700405C + BB001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF003956B900344FA70027366E0000000000000000005C74C5005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0003D529A0000000000000000003F57A700DBE2F900CAD4 + F6004065E0004065E0004065E0004065E0004065E0004065E000C8D3F600C8D3 + F600C8D3F600C7D2F600C7D2F600C7D2F600C6D1F500C6D1F500C6D1F500C5D0 + F500C5D0F500D7DEF80000000000000000000000000000000000000000000000 + 0000858382009E9B9A00A19F9E00676564006462620039383900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425CB300032491003550 + AB001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3F + B2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2003251 + BA003550AB0003249100293972000000000000000000587BED001444E6000E2A + 8A001744DB000F2B8A001744DB000F2B8A000F2B8A000F2B8A000F2B8A001744 + DB000F2B8A000F2B8A000F2B8A001744DB000F2B8A000F2B8A001744DB000F2B + 8A001644DB000D2A8A005268B70000000000000000004761B700DEE5FB00D1DA + FA005176EF005075EF005075EF005075EF005075EF005075EF00D0DAFA00D0DA + FA00D0DAFA00CFD9FA00CFD9FA00CFD9FA00CED8FA00CED8FA00CED8FA00CDD7 + FA00CCD7FA00DAE1FB0000000000000000000000000000000000000000000000 + 000000000000D3D3D30085838200A19F9E007D7B7A006765640039383900CFCF + CF00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435EBB000429A5000429 + A500324FB0002C4DBC00163BB500163BB500163BB500163BB500163BB5001235 + A8001235A800163BB500163BB500163BB500163BB500163BB5002C4DBC000327 + 9E000429A5000429A5002E3F7D0000000000000000006383EE002352ED006886 + EB00335EEF006A88EE00335EEF006985E2006985E2006985E2006986E600335E + EF006A88EE006A88EB006986E600335EEF005F71B0006883DF00335EEF006A88 + EE00325EEF006786EE00566EBE0000000000000000004963BA00E0E6FC00D4DD + FC00597CF200597CF200597CF200597CF200597CF200597CF200D4DDFC00D4DD + FC00D4DDFC00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D2DBFB00D2DB + FB00D0DAFB00DDE4FC0000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D3009E9B9A00A19F9E007D7B7A00646262003938 + 3900CFCFCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425FBF00042AAA00042A + AA000328A400304EB200294CBE001338B7001338B7001338B7001136AF000E2F + 9E000E2F9E001338B7001338B7001338B7001338B700294CBE00304EB200042A + AA00042AAA00042AAA003042820000000000000000006D8AEB00305CEE002B43 + 9400243D90003D63E300243D9000354C9800486CE400354C9800304896003960 + E300284192002C44940030489600385EDE007692EF005075F1003D66EF002841 + 92003960E300253E92005A70C10000000000000000004A64BB00E2E8FD00D8E0 + FC006283F2006283F2006183F2006183F2006183F2006183F200D8E0FC00D7DF + FC00D7DFFC00D7DFFC00D7DFFC00D7DFFC00D6DFFC00D6DFFC00D6DFFC00D5DE + FC00D4DDFC00DFE6FC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000858382009E9B9A00A19F9E00676564006462 + 6200393839000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004361C400052CB000062D + B100062DB100052BAC00304FB6001138B9001138B9001138B9000F31A3008598 + D8008598D8000E33B1001138B9001138B900264AC0002F4EB600042AAB00042B + B000042BB000042BB0003346870000000000000000007691ED00496FF0003D51 + 94006381E700394D91005D7DE6005D7DE600394D91005D7DE6005D7DE600394D + 91005D7DE6007483B3007483B3006583E6007483B3007483B3006280E4003C50 + 93005A7AE600374C93005F76C50000000000000000004D66BE00E6EBFD00DEE5 + FC007290F4007290F4007290F4007290F4007290F4007290F400DEE5FC00DEE5 + FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DCE3 + FC00DAE2FC00E2E8FD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D30085838200A19F9E007D7B + 7A005A585700373A4600354A9200425BB3000000000000000000A6B6EC002C3F + 820000000000000000000000000000000000000000004967CD001A40C0002045 + C2002247C3002146C3002146C3003F5DC300284CC3001A3DB1007791E5004C6D + DC004B6CDB008C9EDD00183BAF003052C4001C41BF001D43C2001C42C2001C42 + C200193FC000133ABF00384C920000000000000000007A94EE005378F10092A7 + EE007693F40099AEF2007693F4007693F40099AEF2007693F4007693F40099AE + F2007693F40094A7E60095A8EA007995F40094A7E60095A8EA007995F40099AE + F2007391F4008DA4F1005871C40000000000000000004E68BF00E6ECFD00E1E7 + FD007A96F4007A96F4007A96F4007A96F4007A96F4007A96F400E2E8FD00E1E7 + FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00DFE6 + FC00DDE4FC00E4E9FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D3009E9B9A008D8C + 8A00646262009E9D9D0034343C0052629D00899DE3006B82D2003B4D8D003A49 + 8000CED7F600000000000000000000000000000000004C6BD200254AC8002D52 + CA002F53CB002F53CB002F53CB00294DC5003B57B70091A3E0005878E1005777 + E0005777E0007993E70091A3E0003855B6002B50CA002B50CA002B50CA002A4F + CA00264BC9001C43C6003A50970000000000000000007B96EE00597CF2004B5C + 96004E5E93007D96E9004E5E93004E5E93007D96E9004E5E93004E5E93007D96 + E9004E5E93005A699A00576698007A94E8005A699A00576698007A94E8005060 + 9500718CE8003D519300536DC40000000000000000004F69C000E8EDFD00E3E9 + FD00829CF500829CF500829CF500829CF500829CF500829CF500E5EAFD00E5EA + FD009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009BB0 + F700E0E6FC00E6EBFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000858382008885 + 8500BBBAB900BBB9B7009E9D9D0032343D00485CA6004A5EA500556FC5004354 + 8E00A5B6EB00000000000000000000000000000000004E6DD6002F54CF003B5E + D2003F61D3003F61D3003E61D300274ABC0096A7E200849CEA006482E5006381 + E5006381E5006381E500839BEA0095A7E2003457CD003A5DD200395CD200395C + D2003257D000254CCD003D529D0000000000000000007B93E700819CF30092A9 + F600A3B6F800A4B7F800A6B9F800A8BAF800A6B9F800A8BAF800A8BAF800A6B9 + F800A8BAF800A9BBF800ABBDF800A6B9F800ADBEF800AABCF800A4B7F8009FB3 + F70094ABF60087A1F5005771C9000000000000000000526CC300EBF0FD00E7EC + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7EC + FD00E5EAFD00E8EDFD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C3CE + F20083838700F0F0F000CCCBCA00BBB9B70032343D002347BF000534D400556C + B6003B4D8F004057A8000000000000000000000000005575E0004669DD005877 + E0005D7BE1005373DE003759CA0098ACF0007B95EC007B95EC007B95EC007B95 + EC007B95EC007A95EC007A95EC007A95EC009EAEE7003457C9004E6FDD005777 + E0004B6DDD00375CDA00435AA70000000000000000005872CA00495891004A59 + 9100697EC8006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82 + CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006C82 + CF006B82CE006980CE0093A8ED000000000000000000536DC400ECF0FE00E9EE + FD007693F4007693F4007693F4007693F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007693F4007693F4007693F400708E + F400E6ECFD00E9EEFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004660 + B9006A7CBD00CFCECE00F0F0F000CCCBCA009E9D9D002B3049000537DE004668 + D7005772CC00576CB300475EAE0000000000000000005878E4005072E2006683 + E6006885E5004162CF00A3B3E900879FEF00879FEF00879FEF00879FEF00869E + EF00869EEF00869EEF00859EEF00869FF0009EB1F200A1B1E8003E5FCE006683 + E6005979E4003F64DF00465DAE00000000000000000000000000000000008380 + 7E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546EC500EDF1FE00EBF0 + FD00809BF500809BF500809BF500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF500809BF5007794 + F400E8EDFD00EBF0FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004E69 + C6006A80CE0088888B00CFCECE00F0F0F00093919000383D55000539E8000534 + D4002F54D3005470CE005D74C60000000000000000005A7BE800597AE700728D + EA004D6DD700A4B4EA00ACBDF60093A9F20093A9F20093A9F20092A8F20092A8 + F20092A8F20091A7F20091A7F20091A7F20091A7F2009DB1F300A3B3EB00718D + EA006482E800476CE5004961B30000000000000000000000000000000000918F + 8F00908D8B00918E8C00928F8D0093908E0094918F0095929000979492009895 + 9300999694009B9896009C9997009D9A98009E9B99009F9C9A009B999800A09F + 9E00B6B4B400D6D6D6000000000000000000000000005770C700F0F3FE00EDF1 + FE00839EF5008AA3F6008CA5F6008EA6F6008FA7F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008FA7F6008DA5F6008CA5F6008AA3F6007693 + F400EAEFFD00ECF0FE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008FA1E00099AAE300848692004A6AD700305CEE001E4EED004B70 + EE005E77CB004A63BB000000000000000000000000005C7EEE006383F0005273 + E000B4C4F800ADBEF700ACBDF700ACBDF700ACBDF700ABBCF700ABBCF700ABBC + F700ABBCF700AABCF700AABCF700AABCF700A9BBF700A9BBF700A9BBF700A9B9 + EE00486BDF004D72ED004F68BE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871C800F0F3FE00EDF1 + FE00F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EEF2FE00ECF0 + FE00EAEFFD00EDF1FE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A1B1EB009AAFF7007995F4005479F100436BF000305CEE003B64 + EF00617CD8004F69C4000000000000000000000000005C7FF200466BE500A6B6 + EF00ADBEF800AFC0F900B0C0F900B0C0F900B0C0F900B0C0F900B0C0F900AFC0 + F900AFC0F900AFC0F900AFC0F900AEBFF800ADBEF800ADBEF800ABBDF800AABC + F800A0B2ED003A61E400526CC300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900F1F4FD00F1F4 + FD00F2F5FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6 + FD00F2F5FD00F2F5FD00F2F5FD00F2F5FD00F1F4FD00F1F4FD00F1F4FD00F0F3 + FD00EFF2FD00EEF2FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FB0EF00B0C0F700ACBDF8009BB0F7006787F3005479F1005E80F200486F + F0005A7CED00566EC1000000000000000000000000005578EB0098ACEE0095AC + F7009AAFF7009DB2F7009EB3F7009EB3F7009FB3F7009EB3F7009EB3F7009EB3 + F7009EB3F7009EB3F7009DB2F7009DB2F7009CB1F7009BB0F70099AFF7008EA6 + F6008BA4F60092A7ED00546EC500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE8005B76D3005B76D300536FCA009EB3F70093AAF6007086D1005B76 + D3005B76D3005B76D300000000000000000000000000617ACC005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF30095AAF200889EE600566FC8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007289D700637BCE0092A7EC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C9C9C900A1ADDA0058648C00545664005456640054566400545664005456 + 6400545664005456640054566400545664005456640053556300525E8800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C4003847 + 7D0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0038477D00C4C4C40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C3CEF1005E607000999CA600B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1 + BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00999BA600BEC9 + EE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002B3C + 78000328A30003208200E8E8E700E5E4E300E0DFDE00DBDAD900032082000328 + A3000328A3000328A3000328A3000328A3000328A3000328A3000328A300435E + BA002B3C78000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000060647500A6A9B60025377600253776002537760025377600253776006870 + 92007B819B002537760025377600253776002537760025377600253776006569 + 7A00000000000000000000000000000000000000000000000000000000000000 + 00000000000029386A005469AE005065AC005065AC005065AC005065AC005065 + AC005065AC005065AC005065AC005065AC005065AC005469AE00344686000000 + 0000000000000000000000000000000000000000000000000000000000002C3F + 7E00042AA90003218700E8E8E700EFEEED00EAE9E800E5E4E30003218700042A + A900042AA900042AA900042AA900042AA900042AA900042AA900042AA900425E + BD002C3F7E000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000063677800A2A4B400263877002638770026387700263877002C3D77005960 + 7A0059607A002638770026387700263877002638770026387700263877006367 + 7800000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C7800536CBF000328A0000328A0000328A0000328A0000328 + A0000328A0000328A0000328A0000328A0000328A000536CBF00354994000000 + 0000000000000000000000000000000000000000000000000000000000002F42 + 8300042BAF0003238C00DFDFDD00F3F3F100F3F3F200EFEFEE0003238C00042B + AF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF004360 + C3002F4283000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000676B7C009FA2B20028397800283978002839780028397800283978003A42 + 63003B425C00283978002839780028397800283978002839780028397800676B + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000002E3F7E00536DC3000429A8000429A8000429A80003279E000326 + 99000325970003269A0003279F000429A7000429A800536DC300374D97000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8E00042EBB0003259500CAC9C800E3E2E000E6E6E500EAEAE90003259500042E + BB0003279D00032595000325950003259500032595000325950003279D004262 + CB0034488E000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 00006F738300A7ABBB002B3C7B003963EF00446BF000486FF000496FF000496F + F000496FF000496FF000486FF000476EF000325EEF00466DF0002B3C7B006F73 + 8300000000000000000000000000000000000000000000000000000000000000 + 00000000000034478B005470CD00042DB600042BAC000320800003208000586B + AB00ADB6D50003208000031F7E0003269B00042DB6005470CD003B519F000000 + 000000000000000000000000000000000000000000000000000000000000364B + 94000430C20003269B00C1C0BE00DAD9D800DEDDDC00E2E1E00003269B000430 + C20003269B0002175D0002175D000110410002175D0002175D0003269B004364 + D100364B94000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 000073778700AAAFBF002C3D7C004068F000486FF000496FF000496FF000496F + F000496FF000496FF000496FF000496FF0003761EF00486FF0002C3D7C007377 + 8700000000000000000000000000000000000000000000000000000000000000 + 000000000000364A91005773D300042DB60003228A0003218700032187000321 + 870003238D00032187000321870003218500042CB4005773D3003C53A3000000 + 000000000000000000000000000000000000000000000000000000000000394F + 9A000633C80004289F00B5B4B200D2D1CF00D6D5D300DAD9D70004289F000633 + C70004289F00031860000318600002114300031860000318600004289F004365 + D500394F9A0000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000000000000000000000000 + 000075798A00AFB3C3002E3E7E003E67F000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF0003761EF00486FF0002E3E7E007579 + 8A00000000000000000000000000000000000000000000000000000000000000 + 000000000000394D98005875D8000429A5000324920003249200042AA900042C + B200042CB200032493000324920003249200042DB5005875D8003E56A6000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A4001E49D800193BAC00AFADAC00B3B1B000BAB8B600C1BFBD00193BAC00204A + D800193BAC00091743000D1E58000A194900091743000D1E5800193BAD004B6D + DF003E55A400000000000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F51940000000000000000000000000000000000000000000000 + 00007C819200B7BACA00304180003661EF003B64EF003B64EF003B64EF003B64 + EF003B64EF003B64EF003B64EF003B64EF00305CEE00466DF000304180007C81 + 9200000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A4005878E1000429A8000429A8000429A8000328A1000328 + A1000328A10003279F000429A8000429A800042FBD005878E100425BAE000000 + 0000000000000000000000000000000000000000000000000000000000004159 + AA002A54DF002649BB002445B3002445B3002445B3002445B3002649BB002D56 + DF002649BB002445B3002445B3002445B3002445B3002445B3002649BB004E71 + E4004159AA00000000000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A90000000000000000000000000000000000000000000000 + 000080849500BBBFCF0032428100315CED00355FED00355FED00355FED00355F + ED00355FED00355FED00355FED00355FED002B58EC00456CEF00324281008084 + 9500000000000000000000000000000000000000000000000000000000000000 + 0000000000004259AB005879E6002044BC00ADBBE7003C5BC400032699000326 + 99000326990003239000042DB800C9D2EF000431C6005879E600445DB1000000 + 0000000000000000000000000000000000000000000078767600D3D3D300445D + B000365EE5003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62 + E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6005376 + E900445DB000D3D3D300807F7F0000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE0000000000000000000000000000000000000000000000 + 000084889800BDC2D200334482002D59EA00315CEA00315CEA00315CEA00315C + EA00315CEA00315CEA00315CEA00315CEA002855E900446BEC00334482008488 + 9800000000000000000000000000000000000000000000000000000000000000 + 000000000000455EB100597BEB000430C200042FBF00042FBF00032187000323 + 8D0003238D0003249100042FBF00042FBF000434D300597BEB00465FB5000000 + 00000000000000000000000000000000000000000000EBEBEB00AEADAC007979 + 7D00728EEE005D80F200567AF200567AF200567AF200567AF200567AF200567A + F200567AF200567AF200567AF200567AF200567AF200567AF2005C7FF2004F67 + BB0079797D00AEADAC007C7A790000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800395ED800395ED800395ED800FFFFFF00FFFF + FF00FFFFFF00395ED800395ED800395ED800395ED800395ED800395ED8003459 + D700224BD4005773D30000000000000000000000000000000000000000000000 + 00008B8F9F00C5C9D90035468400234FE2002551E2002551E2002551E2002551 + E2002551E2002551E2002551E2002551E2001F4CE2004066E600354684008B8F + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000004B64BB006082F2001445E9001240D700123FD600123FD600123F + D600123FD600123FD600123FD600113DD1001143EC006082F2004B64BB000000 + 00000000000000000000000000000000000000000000CFCECE00EBEBEB00AFAE + AD005F71B000829CF0006A8AF3006384F3006384F3006384F3005673D4004F6A + C2004F6AC2006283F0006384F3006384F3006384F3006A8AF300829DF5007979 + 7F00AFAEAD00EBEBEB007F7D7C0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569DF003E63 + DD002B53DA005975D70000000000000000000000000000000000000000000000 + 00008E92A300C7CCDD00374785001E4ADE00214DDF00214DDF00214DDF00214D + DF00214DDF00214DDF00214DDF00214DDF001B48DE003E64E400374785008E92 + A300000000000000000000000000000000000000000000000000000000000000 + 0000000000004C65BC006485F3001E4DED001D4CE9001C49DE007691EB00E8ED + FB00E8EDFB001C49DD001C49DE001D4CE9001949ED006586F3004C65BC000000 + 00000000000000000000000000000000000000000000807E7E00D0CFCF00EBEB + EB007E7E81006878B1008DA4F100708EF400708EF400708EF400A4B0D800E4E4 + E300D6D5D400627CD500708EF400708EF4007794F4008FA7F6006D80BF00B0AF + AF00EBEBEB00D0CFCF00D3D3D30000000000000000005C79DB00375EDF00486C + E3005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173E300486C + E3003058DE005B78DB0000000000000000000000000000000000000000000000 + 00009195A600CBD0E000384987001A47DB001B47DA001B47DA001B47DA001B47 + DA001B47DA001B47DA001B47DA001B47DA001744DB003D62E100384987009195 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000004D66BD006888F3002856EE002957EE002956EC002854E5002854 + E5002854E5002854E7002956EC002957EE002150ED006888F3004D66BD000000 + 0000000000000000000000000000000000000000000000000000D3D3D3008584 + 8300EBEBEB00B2B1B10084848700A1B4F30090A8F6008AA3F600C9C8C600D4D3 + D100E0DFDD006F83C5008AA3F60090A8F6007E8EC00084848700B2B1B100D2D2 + D10085848300D3D3D3000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00536CBE00536C + BE00536CBE006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D50000000000000000000000000000000000000000000000 + 0000989CAC00D0D5E6003A4B8900113ED300123FD300123FD300123FD300123F + D300123FD300123FD300123FD300123FD3000F3CD3003A5FDB003A4B8900989C + AC00000000000000000000000000000000000000000000000000000000000000 + 0000000000004F68C0006E8DF3003E67F0004068F0004068F0004068F0004068 + F0004068F0004068F0004068F0004068F000335EEF006E8DF3004F68C0000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300D4D3D200EBEBEB00B3B3B2007C89B400ABBBF4009DB2F7009FA6C200C3C1 + BF00C9C7C5008598D8009DB2F700AEBFF80088878B00B3B3B200EBEBEB008B89 + 8700D3D3D300000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA0000000000000000000000000000000000000000000000 + 00009A9EAF00D3D8E9003B4C8A000D3AD0000E3BD0000E3BD0000E3BD0000E3B + D0000E3BD0000E3BD0000E3BD0000E3BD0000C39D000395ED9003B4C8A009A9E + AF00000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C100718FF400F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE007290F4005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008B898800D5D4D400EBEBEB008B8A8E007E8BB400B4C3F40092A2D9008494 + C6008494C600A8BAF500B5C5F9008896C300B4B4B300EBEBEB00D5D4D4008684 + 83000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500EDF1FD00FFFF + FF00EDF1FD00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 00009DA1B200D6DBEC003C4D8B000835CC000936CC000936CC000936CC000936 + CC000936CC000936CC000936CC000936CC000835CC00375CD5003C4D8B009DA1 + B200000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC2007491F400F1E0CB00F1E0CB00F1E0CB00F1E0CB00F1E0 + CB00F1E0CB00F1E0CB00F1E0CB00F1E0CB00F5EADA007592F400516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D300908E8D00EBEBEB00B7B6B50091919300CBD6FB00C3D0 + FA00C3D0FA00949FC50091909400B7B6B500D7D6D600908E8D0093918F009290 + 8F000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700FFFFFF00FFFF + FF00FFFFFF0096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000A3A7B800DBE0F1003F4F8D000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C500365AD1003F4F8D00A3A7 + B800000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4007E99F500F3E2CB00F3E2CB00F3E2CB00F3E2CB00F3E2 + CB00F3E2CB00F3E2CB00F3E2CB00F3E2CB00F5EADA007E99F500536DC4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300D8D7D700EBEBEB00B8B7B6009DA6C500CDD8 + FB00CDD8FB0094939600B8B7B600EBEBEB009391900099979500A5A4A200A5A4 + A200939291000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000A6AABA00DDE3F3003F518E000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2003558CD003F518E00A6AA + BA00000000000000000000000000000000000000000000000000000000000000 + 000000000000546EC500819BF500F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4 + FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F3F6FE00819BF500546EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000096949300D9D9D800EBEBEB0097979900919D + C500919DC500B9B8B800EBEBEB00D9D9D800D3D3D300A09E9C00CCCCCC00CCCC + CC00A09E9C00000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800E1E3E800F2F2 + F200E1E3E800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000A9ADBD00DFE5F60040518F003558CA003558CA003558CA003558CA003558 + CA003558CA003558CA003558CA003558CA003558CA003558CA0040518F00A9AD + BD00000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600829DF500F4E4CB00F5E4CB00F5E4CB00F5E4CB00F5E4 + CB00F5E4CB00F5E4CB00F5E4CB00F5E4CB00F6EADA00829DF500556FC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D3009B999800EBEBEB00BBBA + BA00BBBABA00DBDBDA009B999800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AEB2C200E2E8F90042539000425390004253900042539000425390006776 + A6006776A600425390004253900042539000425390004253900042539000AEB2 + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800829CF500CACCD100CBCDD100CBCDD100CBCDD100CBCD + D100CBCDD100CBCDD100CBCDD100CBCDD100D9DBDF00829CF5005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D5D5D300DDDCDB00EBEB + EB00EBEBEB009D9C9B00D5D5D300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0B4C400E3E9FA0043549100435491004354910043549100435491003543 + 740035437400435491004354910043549100435491004354910043549100B6BA + CB00000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C97F400A5A7AC00A5A7AB00A5A7AB00A5A7AB00A5A7 + AB00A5A7AB00A5A7AB00A5A7AB00A5A7AB00BEC0C4007D98F5005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A19F9D00DEDD + DC00DEDDDC00D5D5D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000094A2D300D8DEEF0094A0C700445492004454920044549200445492004454 + 920044549200445492004454920044549200445492004454920094A0C70094A2 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C96EE008FA5F00094AAF20095AAF20097ACF20097AC + F20097ACF20096ABF20095AAF20093A9F200889FF0007C96EE005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C2CEF60096A3D400B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9 + CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA0096A3D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1D1D100CBCBCB00C7C7C700C5C5C5007C8FCD005368AF00354785003546 + 8100364783004358A100566CB5007F91D100C7C7C700C7C7C700C9C9C900DADA + DA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C200B1BCE5003446 + 820029376700C0C0C000C0C0C000C5C5C500CDCDCD00DADADA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ACACAC00A4A4A400A4A4A400A4A4A4008A8A + 8A008A8A8A00A4A4A400B3B3B300C7C7C7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008EA2E10031458B004B64B5004561C1002E4FBE00143AB9002347 + BF00143BBC002449C7002E53CD004566D4004B61AF003D56AA0097A9E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008297DD00485A9900415C + B9003654B7002E3F7C008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A4A40000000000000000002A3B7400354476003F518C004D66B7004F67 + B9004F68BA00485DA50040518D00374677007288CB0000000000C7C7C700A4A4 + A400000000000000000000000000000000000000000000000000000000000000 + 00005068BA00374885004B62AD002345B600082EAD00042AAB00617ACB008295 + D7005974CB00042DB600042EB9000832BF003E61D500506AC4004258A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008297DE00304381003755BB000F34 + AE00082DAB004B60A4002F4180008297DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009494 + 940000000000B7C3EE0032427D004C61A5004E69C3004B69CE003F62D6004063 + D9004064DA004365D4004B69CF004F6AC6003A497D002C3E7B00AAB9EB00D3D3 + D30096969600D3D3D30000000000000000000000000000000000000000000000 + 0000415393004B65BE002E50BF00042CB300042CB2001B3FB7008194D6008194 + D5006179CA003353BE00042CB100042DB5000832C0002E53CE004C6ACF005B74 + C900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005169BD00394B89004D65B300082FB000042B + AF00042BAE003655BD004C61A700314483000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000096969600D3D3 + D30095A5DF00959392007D8294004464CE00385DD7004368E3005175EB005275 + EB005174EA004D72EA004469E5003B60DC004963B7007D81940091908F000000 + 0000000000009F9F9F000000000000000000000000000000000093A5E4003E52 + 96003256CD001D44C8002349C900274CCA008B9FE20091A4E4008B9FE100879B + DE008498DC006A82D2002245B800042AAB00042BAF00042CB400042EB9004D6A + CB004258A20095A9E7000000000000000000283870003551AE003552B000455F + B4004964B6004B65B800546EBB005E76BC005F78C000657DC200788DC500788D + C500788DC500788DC5007287C4005F78C0005E76BC005E76BC004B65B8004963 + B5004963B5003A56B1003E59B0002D3E75000000000000000000000000000000 + 00000000000000000000546CC1004C66BC002A4EC400042EB900042DB800042D + B800042DB700042DB7000830B8003657C50035488B00A8B7ED00000000000000 + 000000000000000000000000000000000000000000009A9A9A0000000000B7C4 + EF00C7C6C500E1E1E000F0F0F00094A0C8003D5DC9002D50C400183BAD001739 + A8001738A7001D40B300284BBF003757C300D1D0D000EDECEC00DDDCDB00B1AF + AE00A4B5E80000000000B3B3B3000000000000000000000000003A519D00546D + C1002D52D100365BD3003D60D500496AD8009DAEE9009CADE80096A8E60093A6 + E5008197DF002348C300052EB700042CB200042AAB00042BAD00042CB2002F53 + C9005069BF003D54A30000000000000000002A3C760003279F00032699001032 + A300032699001032A30003279F001032A30003279F000326990003279F000326 + 9C001033A800032699001032A30003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F002947AD002A3C76000000000000000000000000000000 + 000000000000566FC3003F5396002B50C800042FBE00042FBE00042FBD00042F + BD00042EBC00042EBC00042EBB000831BC004F66B100384D9600BCC8F3000000 + 0000000000000000000000000000000000000000000000000000000000003344 + 8000E7E6E600F3F3F300F7F7F700BAB9B8007580A700233F9C00425AAB00425A + AA00455CA700334EA500203B9800747FA500EBEAEA00F9F9F900EFEFEF009EA3 + B7002F3E7300000000009A9A9A0000000000000000006D85D6004F64AD005272 + DB004668DA005070DD005373DE007D95E600A8B8EE00A6B6ED00A1B2EB009EAF + E9006782DC002248C800173EC2000B34BC00042BB000042AAB00042BAC000830 + B8003F60CD004C61A90000000000000000002D3E7C000328A400042695002545 + B000042695002545B0000328A4002545B0000328A400042695000328A4000426 + 95002545B000042695002545B0000328A4000328A4000F32A8003250B5003250 + B5000F32A8000328A4002949B2002D3E7C000000000000000000000000000000 + 00007A8FDC0041559B004E69C4000430C2000430C2000430C2000430C2000430 + C2000430C1000430C100042FC000042FC0003E5FCE004E63A900364D98000000 + 00000000000000000000000000000000000000000000000000007388CB003A49 + 7C00ADB9E100FAFAFA00EBEBEA00CCCAC900A5A3A100797F9800384677003543 + 7500324172003B4B8000797F9800A6A4A300DFDEDD00EEEEEE00FBFBFA004862 + B7003F4E82005D73BE009F9F9F0000000000000000004D63AB005F7DE1004D6F + E100758FE9007691E9007792E900BBC8F400BAC8F400B8C6F300B3C2F200B0BF + F000ACBCEF00496BDA003E61D5003156CF00163DC1000831B900042CB300042A + AB00082FB1004563C70098AAE90000000000324687000D33B3000D2B8F005670 + C9000D2B8F005670C9000E34B3005670C9000E34B3000D2B8F000E34B3000D2B + 8F005670C9000D2B8F005670C9000E34B3000E34B3001B399C00304AA400304A + A4001B399C001439B5002D4EBD0032468700000000000000000000000000BDCB + F400546DC000355AD6000A37CE000D3ACE000E3ACE000E3ACD000E3ACC000E3A + CC000E3ACC000E3ACC000E3ACC000D39CB000A36C9001841CC004C6ACF005871 + C7000000000000000000000000000000000000000000A4B2E5003A4879004C66 + BF005074EA004060CC0098A4CC00C5C3C100D3D2D000A1B3ED00000000000000 + 00000000000000000000A1B3ED00D3D2D000D5D3D20097A2C8003656C2003A5F + DD00506BC8003D4D8200A4A4A4000000000000000000566FC2005E7DE6006180 + E700859DED0088A0EE0088A0EE00C2CEF600C1CDF500C0CCF500BCC9F400B8C6 + F300B5C3F3007892E6004F6FDC004466D800294ECC001940C3000932BA00042B + AC00042BAC006B82D000617ACD000000000035488C002145BD001D378D00788E + D7001D378D00788ED7002549BF00788ED7002549BF001D378D002549BF001D37 + 8D00788ED7001D378D00788ED7002549BF002549BF001C368F006B7CB6006B7C + B6001C368F002549BF003858C50035488C000000000000000000000000004B61 + B4003C61DC001440D4001541D4001B46D5001C46D4001C46D4001D47D4001C46 + D3001C46D3001D47D3001D47D3001C46D2001641D100123ED000284FD300455A + A3008A9EE400000000000000000000000000000000005B71B70042538D004765 + C8005073E8003154CA002541A000D5D4D200A1B3ED0000000000000000000000 + 0000000000000000000000000000A1B3ED009CA3BB001F3A9600274ABE00466B + E7004565D000475A9C009F9F9F0000000000000000005D77CF006684E9007590 + EC0094A9F100A3B5F300B9C7F600CBD5F800C9D4F800C7D2F700C2CEF600C0CC + F500BCC9F400AFBFF1006582E3005575DE00395DD3002A4FCC001A41C300042C + B2003252BB008598D700465FB10000000000384C92003658C8002E4696008398 + DC002E4696008398DC003B5CCA008398DC003B5CCA002E4696003B5CCA002E46 + 96008398DC002E4696008398DC003B5CCA003B5CCA0029408C00828FB900828F + B90029408C003B5CCA004262CB00384C920000000000000000006680D5005067 + B300214CDB001D49DB00234DDB002A53DC002A53DC002A53DC002A53DB002A52 + DA002A52DA002A52DA002A52D9002A52D900244DD7001F49D6001944D500556E + C5003E57A800D1DAF8000000000000000000000000003A4E9000495DA1003D5E + CC004A6DE1002548BE003751AA007382B8000000000000000000000000000000 + 0000000000000000000000000000000000003D4C8100324CA3001B3EB0004D72 + EA004063D5005066B100A4A4A40000000000000000006F89E3007893EF0094AA + F200D6DEFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D5DDFA00D1DAF900CED8 + F900C7D2F800BAC8F50097ABEE00728DE8005776DF005372DB009BADE800133B + C0003354C300425FC200364A8B00000000003E539E005A77D9005A71BD00879C + E3005A71BD00879CE3006983DD00879CE3006983DD005A71BD006983DD005A71 + BD00879CE3005A71BD00879CE3006983DD006983DD006983DD006983DD006983 + DD006983DD006782DC005371D7003E539E0000000000526DC9005B75C800466B + E800345DE6003D64E6004368E700466BE700456AE600456AE600456AE6004469 + E500456AE5004469E4004469E4004469E4004469E4004065E300385FE1002F58 + E0005876DC004B61AF00000000000000000000000000222F59004F67B500385B + D1004063D7001D3FB100425AAB00D4D4D4000000000000000000000000000000 + 00000000000000000000000000000000000038477900425AAA001032A1005174 + E9004266DC00546DBF008A8A8A000000000000000000718BE5007E99F0009EB2 + F400DCE3FB00DDE4FB00DDE4FB00DDE4FB00DCE3FB00DAE1FA00D6DEFA00D4DD + FA00C4D0F800C8D3F800C2CEF60094A9EE006481E4007B94E600A1B2EB003D5F + CE004866CC003354C20036488A00000000004158A3005C7ADD00637CCD00849B + E6006A81CE00859BE600738DE100859BE500738DE1006A81CE00738DE1006A81 + CE00859BE5006A81CE00859BE500738DE100738DE100738DE100738DE100728C + E100718BE1006C86E0005372DB004158A300000000004E67BA006380E500365F + EA00456BEB004D72EB005276EC005376EC005477EC005376EB005376EB005376 + EB005376EA005376EA005376EA005376E9005376E9005073E900496EE7003059 + E300456AE6005972CC00000000000000000000000000232F59004F67B500385B + D1004164D8001E40B200425AAB00D6D6D6000000000000000000000000000000 + 00000000000000000000000000000000000039477900465DA8001133A2005174 + E9004266DC00546DBF008A8A8A000000000000000000728DE400819BF100A5B7 + F500D6DEFB00E2E8FC00E2E8FC00E2E8FC00E1E7FC00E0E6FC00DBE2FA00D8E0 + FA00CBD6F900CED8F900C9D4F800C3CFF600758FE8009CAEED00A8B8EE004062 + D2007C92DD007289D600364A900000000000455CA9003158D900375CDA00395E + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60 + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003A5F + DA00395EDA00365BDA003C61DB00455CA900000000005C75CC005579F100355F + ED005478F0005E80F0006182F1006182F0006182F0006182F0006182F0006182 + EF006182EF006182EF006081EE006181EE006181EE006080ED005A7CEC004268 + E900345DE7005677E400BFCCF5000000000000000000374577004E65B200385B + CE004467DB001E41B600435CAD0093A5DE000000000000000000000000000000 + 0000000000000000000000000000000000003C4B7C00425AAB001537A8005275 + EA003F63D900526BBC00A4A4A4000000000000000000647ED100849EF200A4B7 + F600D3DCFB00D5DEFB00E2E8FC00EAEFFD00E9EEFD00E8EDFD00E5EAFD00E1E7 + FC00DFE5FB00D7DFFA00CDD7F900CDD7F800C0CCF500BAC8F400B2C1F2009FB0 + EA008A9FE3006680D7006079CA0000000000BFCCF5004967CA00335BE3002651 + E100335BE200375EE300385FE3003960E3003960E3003960E3003960E3003960 + E3003960E3003960E3003960E3003960E300385FE300385FE300375EE3002C56 + E1002550E100335BE3004B64B900BFCCF500000000006583E9005A7DF2005C7F + F2007B97F4007E99F5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500829DF50086A0F500859FF500809BF5007E99F5007B97F4006384 + F3004C71F000466DEF005773CE0000000000000000005D71B90045558F004664 + C7005275E9003356CB002642A2009C9A990096A8E20000000000000000000000 + 000000000000000000000000000096A8E2007A809800203B98002B4EC000476C + E6004666CF00495C9E00A4A4A40000000000000000005D74C2007E99F10099AE + F600D8E0FB00DCE3FC00DEE5FC00E7ECFD00ECF0FE00EBF0FD00DAE1FB00CBD6 + FA00CED8FA00DAE1FA00D6DEFA00D1DAF900C5D1F700BECBF500B6C4F300A0B1 + EB0094A7E7006983D70097A9E80000000000000000004E68BF00506DD000456A + E9004F73EA005578EB005578EB005578EB005578EB005578EB005578EB005578 + EB005578EB005578EB005578EB005578EB005578EB005578EB005578EB004268 + E800446AE900506DD000BFCCF50000000000000000006D8AEA006C8BF3007491 + F4008FA7F60092A9F6008EA6F6008AA3F6008AA3F6008AA3F60086A0F500849E + F500839EF50097ADF7009BB0F7009AAFF70093AAF6008FA7F6008AA3F600718F + F400587CF200436BF0004E68C10000000000000000009FAFE3003F4D7E004B66 + BD005174E9004464CF007985AD00BEBCBA009E9C9B0096A8E200000000000000 + 0000000000000000000096A8E2009E9C9B00ABA9A8007884AA003B5BC5003A5F + DB004F6BC80042518500ACACAC0000000000000000004D67C100728CE50091A8 + F500D8E0FC00E2E8FD00E3E9FD00E2E8FD00E4E9FD00EEF2FE00E4E9FC00DBE2 + FB00E3E8FC00DEE5FB00D9E0FA00D4DDFA00C9D4F800C1CDF500BAC8F400A0B1 + EC00A0B1EA00788CCF00000000000000000000000000BFCDF600516BC4005774 + D6005E80EF006A89F0006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8C + F1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006B8AF0005679 + EF005774D500516BC400000000000000000000000000718CEA008EA6F6008AA3 + F6009FB3F700A3B6F800A2B6F8009AAFF70097ADF70093AAF600859FF500829D + F5008AA3F600A7B9F800AABCF800ABBDF800A5B8F800A2B6F8009CB1F7007C97 + F4006183F2004A70F0004E68C00000000000000000000000000034467F004F63 + A5004163D20099A5CC00BFBEBE00C8C6C400BCBBB900B7B5B50093A5DE00D4D4 + D400D4D4D4006C7AB000B7B5B500BDBBB900D6D4D300C2C1C10098A4CB004061 + D0005067B20034447700C7C7C700000000000000000000000000536CC500738D + E000C0CEFA00DDE4FC00E8EDFD00EBF0FD00E9EEFD00E6ECFD00E4E9FD00EDF1 + FE00EAEFFD00E3E8FC00DFE5FB00D9E0FA00CED8F900C5D1F700B7C5F400A9B9 + EF007F93D500455DAA000000000000000000000000000000000000000000C1CD + F6005876DA005F7FEA006A87EB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006B88EB006986EB006281EA005771 + C900C1CDF600000000000000000000000000000000006882DA009DB2F700BDCB + FA00AEBFF800B4C4F900B5C5F900ACBDF800A0B4F7008CA5F600718FF400738C + E1006F87D600C8D4FB00BCCAFA00B3C3F900B8C7F900B4C4F900AEBFF8008AA3 + F6006888F3004E73F1005671CD00000000000000000000000000000000003646 + 8200B4B3B200E8E8E700F9F9F900ECEBEB009CA8D0002642A000425BAC00425A + AB00425AAB003550A800233E9B009CA8CE00F5F4F400F8F8F700E4E3E2007D83 + 97003242780000000000000000000000000000000000000000009CAEEE005B73 + C600AEBFF800CAD5FB00E2E8FD00EEF2FE00EDF1FE00EAEFFD00E3E9FD00E9EE + FD00EAEFFD00E6EBFD00E0E6FC00DBE2FA00CED8F900C1CDF600B0C0F300AFBD + ED00596DB20097A9E80000000000000000000000000000000000000000000000 + 00005771C9005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C800C1CD + F60000000000000000000000000000000000000000006179CC00809AF300B9C8 + F900BAC9FA00B3C3F900B4C4F900A6B9F80096ACF7007D98F5006D8AED005F77 + C800556EC400BAC9FA00CCD7FB00BECCFA00B4C4F900B2C2F900ABBDF800859F + F5006082F200567AF2006882DB0000000000000000000000000000000000ACBB + ED00C4C3C200D8D7D600EBEAEA00BAC6ED004262CD003255CA001D40B300183B + AD00173AAC002245B9002F52C5003E5EC900F8F8F800E7E6E600D4D3D200ACAB + A900A6B5E8000000000000000000000000000000000000000000000000006883 + DC0096ABF100B3C3F900CCD7FB00EAEFFD00EEF2FE00EDF1FE00E6EBFD00E1E7 + FD00E2E8FD00E6ECFD00E1E7FC00DBE2FA00C9D4F900B9C7F600B0C0F3007485 + C400617AD0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005570CC006F87DA008EA6 + F600CBD6FB00C5D1FA00B5C5F9009EB3F700859FF5007894F400637CCD00617C + D8007993E200859CE800B1C1F900C7D3FB00BAC9FA00B0C0F900A7B9F8007995 + F4006082F2005F7EE700AEBEF3000000000000000000B3B3B300000000000000 + 0000C6C5C300C8C7C600DFDFDE004264D3005174EA005174E8004265D9003E61 + D5003E61D4004669DD004F72E5005376EA00A6B2DB00DDDCDB00C3C2C1008EA0 + D900000000000000000000000000000000000000000000000000000000000000 + 00006883DC005E76C9007992E400A9BBF800B8C7F900C9D5FB00D2DBFB00D0DA + FB00C9D4FA00C6D2F900CED8F900C3CFF800B7C6F700A2B1E5005C72BE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005772 + CC006E88DC007A94EA007D97ED006E89E5006A83D3005871C700000000000000 + 0000000000008FA4EA00556FC7006980CF007C96EB007A95EC00738EEB00617D + DA005D76C9006B84DA00000000000000000000000000000000009A9A9A000000 + 000000000000A6B6E90038487C005064AC004D68C0004361C7003A5DD1003E61 + D5003E61D5003F60CF004463CA004D68C50049598E0034447900A6B6E9000000 + 0000B3B3B300ACACAC0000000000000000000000000000000000000000000000 + 0000000000009CAFEE005871C9007B95E80091A8F400A1B5F700ABBDF800ABBC + F700A6B8F700BDCBF900C0CDF800BCCAF7008092D300536CC1009BADEC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E79D6005771C8005670C7005874CD006B84DD00D3DBF900000000000000 + 0000000000000000000000000000859BE9005670C7005670C7005670C700647E + D9009FB1F0000000000000000000000000000000000000000000D3D3D3009696 + 96000000000000000000000000003A497A00445487004A5C9B005068B600526A + B8005169B9005066AF004B5E9D00455588005E74BB000000000000000000B3B3 + B3009A9A9A000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C800677ECD007089DB0096AAEE009DB1 + F200A8B9F30093A6E70091A2DF006F84CD007A91E30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9F9F00BDBDBD0000000000000000008598D8005065AD00344478002A36 + 60002A3661003E4F87005065AD008598D8000000000000000000BDBDBD00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9B9B0092908F0086858500BFBFBF00C0C0C000C0C0C000C5C5C500C7C7 + C700C7C7C700DADADA00DBDBDB00DCDCDC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000DCDCDC00DADADA00CACACA00C5C5C500C0C0C000C0C0C000213166001521 + 490015214900C0C0C000C1C1C100C7C7C700D2D2D200DADADA00DCDCDC000000 + 00000000000000000000000000000000000000000000283B80004F6CCD00506C + CB00506ABE00506AC000516BC500475CA5002E46920000000000000000000000 + 00000000000000000000000000002E469200516BC500506BC300506ABE00506C + CB004F6CCD004F6CCD0000000000000000000000000000000000000000000000 + 0000A5A3A200C2C0BF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003349920035447C00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006C82CD001E306E002F3F740038509D004E66B60042548F003751 + AB003751AB001E3377004E66B60038509D003F4F88001E306E006C82CD000000 + 00000000000000000000000000000000000000000000293D8400042EBC00042E + BC00042EBC00042EBC00042EBC002A408B00BBC7F20000000000000000000000 + 0000000000000000000000000000BBC7F2001B389800042EBC00042EBC00042E + BC00042EBC00042EBC0000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D54A2006271A7003D54 + A200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000203372005264A0005268B30039497D003F518D005067B4001F3E + A6001F3EA6004C60A2003F518D0039497D004963B7005264A000203372000000 + 000000000000000000000000000000000000000000002B3E8600042FBF00042F + BF00042FBF00042FBF001D399C00BBC7F2000000000000000000000000000000 + 0000000000000000000000000000000000002C438E001D399C00042FBF00042F + BF00042FBF00042FBF0000000000000000000000000000000000000000000000 + 0000A5A3A200D1D0CF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000657ECC00647AC5004051 + 8D008397DE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000031479600465A9E002948AE004E68BC003C58B5001638A7000328 + A0000328A0002443AC003C58B5004E68BC002948AE00465A9E00314796000000 + 000000000000000000000000000000000000000000002E428D000431C5000431 + C5000431C5000431C5002148CC003A4D9300869AE10000000000000000000000 + 0000000000000000000000000000BBC8F300566CB7003358D0000431C5000431 + C5000431C5000431C50000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8B7ED005D78CF004664 + C9004F63A4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006F86D200253C + 85002B429000455793004C66C000042AAA00042AAA00042AAA00042AAA00092E + AC00092EAC00042AAA00042AAA00042AAA001B3EB2004C66C00045579300344C + 9C00253C85007F95DB000000000000000000000000002F4590000432C9000432 + C9001F3EA5000432C9000432C9005671C8003B4F9600889CE200000000000000 + 00000000000000000000BDC8F300354B99003358D3000432C9000432C9001F3E + A5000432C9000432C90000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D0D8F700728AD900173E + C1005871C800A8B7EE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D0D8F700263A8000566A + AE004B5FA1004C67C4001237B400042BAF00042BAF001F42B800506BC800506B + C800516BC2003D5BC1001F42B800042BAF00042BAF001237B4004C67C400485E + A900566AAE00263A8000000000000000000000000000324893000835CC002341 + A800334A9A002442A9000835CC00254DD2005A74CB003E539A00000000000000 + 000000000000BDC9F300374E9C005B71BD000835CC000835CC002442A900334A + 9A002341A8000835CC0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007A8FD700123B + C500375ACE004359AD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004B64B800465A9C004B68 + C9003D5CC5001B40BB00042CB4000D34B6004160C600546DC000364886003345 + 84002E41810044599F00546DC0004160C600042CB400042CB4001B40BB00294C + BF004B68C900465A9C000000000000000000000000004159B0003B53A900BCC9 + F40000000000BCC9F400384FA0001945D6001945D6003359D9004358A1008A9E + E400BDC9F400647AC5004468DE001945D600324FB400324B9F0091A6EB000000 + 0000BCC9F4003B53A90000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CD00355A + D8000433CF005B76D0004259A900D1DAF8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000435DB2004659 + 99000F38C1001039C2000F38C1005168B3002B428C00A7B6EC00000000000000 + 00000000000000000000A7B6EC002B428C004766CF000F38C1001039C2005673 + D30045589800435DB20000000000000000000000000000000000000000000000 + 00000000000000000000BDC9F4003956BA00224CDA00224CDA006B84D600465A + A5003D55A6004B6EE100224CDA00224CDA00354EA10091A6EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006E84CC003E63 + DF000737D6004468E0005A72C000556FC8000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A74C7004B61 + AC001A42C8001A42C8003155CD0033488D00A7B7ED0000000000000000000000 + 0000000000000000000000000000A7B7ED005B75CB003055CD001A42C8004E6D + D4004960AB005A74C70000000000000000000000000000000000000000000000 + 00000000000000000000000000003C53A700415DBE002B54DE004368E2007189 + D9006E84CD002B54DE002B54DE00415DBE0093A7EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DC700607F + E8001241DE002450E100607EE2005369B4000000000000000000000000000000 + 0000000000000000000000000000000000000000000096A9E80030499C005A72 + C300244BCE00244BCE00506FD800506AC0000000000000000000000000000000 + 0000000000000000000000000000000000004D64AF004F6FD800234ACE003D60 + D4005871C30030499C0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECAF4004059AD003B62E5003B62 + E5003B62E5004B67CA003B55AC0094A8EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7004C63B200455EB3005E77CE007189DA005973 + CC004762B90044579B00475DA7004862B6005C77D2005E7CE2006583E7006681 + D8005970C000425BB40000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63BA004A63BA004A63BA005D74C2007995 + F3002855EC002855EC002C58EC006282EF007790E20000000000000000000000 + 000000000000000000000000000000000000000000005D78D5005273E0004669 + DD003A5FDB003A5FDB006481E200000000000000000000000000000000000000 + 0000000000000000000000000000000000003E549D006481E300355BDA00395E + DB004367DD004B6DDE002D459400000000000000000000000000000000000000 + 000000000000000000000000000000000000BECCF500455DB200446AE900446A + E900446AE9006C85DE005065B3008CA1E8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006886EB006D87E0005F7AD500546EC200546F + C8005A74CB004E6DD6003B5DCD002E52CA003E62D8004568DE005778E5007994 + F1007C97F4006881DB0000000000000000000000000000000000000000000000 + 00000000000000000000000000008BA1EA006F8BEB006E8BEB007993ED006C8B + F300325EEF00325EEF00325EEF00486FF000536CBF00D2DBF800000000000000 + 000000000000000000000000000000000000000000005E7AD8005676E3004E70 + E2004368E000466AE1006986E600000000000000000000000000000000000000 + 0000000000000000000000000000000000004157A2006B86E1003E63DF004267 + E0004A6DE1004F71E20030489900000000000000000000000000000000000000 + 0000000000000000000000000000BECCF500475FB5008396D9004B70EC004B70 + EC004B70EC006081EF00879CE5005369B6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006282EC00839DF3007C97F3006886EA005878 + E4004E6FDE001D45CB000D36C1000F38C200395ED6005071E0006583E700869F + F20087A1F5007791EA0000000000000000000000000000000000000000000000 + 00000000000000000000000000008DA3EE005378F100496FF0004C72F1004169 + F0003D66EF003D66EF003D66EF003D66EF007087D6005873D000000000000000 + 00000000000000000000000000000000000000000000455CA700556EBF00718B + E5004D70E5004A6EE500718DEA00AABAEF000000000000000000000000000000 + 000000000000000000000000000000000000485EA8006F8BEA00496DE5005677 + E6006D88E500546DBF003E58B300000000000000000000000000000000000000 + 00000000000000000000BFCCF5008DA0DF007C97F4005D80F2006A83D700455F + BB004962BB005D80F2005D80F200708EF400586FBD008FA3E900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700879FF000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009FB3F600839BEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000008498DF007693F4005176F1005176F1005176 + F1005176F10091A7F00099ADF10096ABF1008EA5EF008DA0E100526CC7000000 + 0000000000000000000000000000000000000000000000000000667ED5005C75 + C7006081EE006383EF006A88EE00425BAC00ADBCF10000000000000000000000 + 0000000000000000000000000000ADBCF1007690E5006A89EF006383EF007994 + F1005872C600667ED5000000000000000000000000004E69C5004A65C000BFCC + F50000000000BFCCF5004D66BD00829DF5006686F3006686F3004761BC0098AB + F000BFCCF5007089D9006686F3006686F30098AAEB005970BF0090A3EA000000 + 0000BFCCF5004A65C00000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000798ED70090A8F6005D80F2005D80F2005D80 + F2005D80F2006B81CF00506AC100506AC100506AC100506AC100566FCD000000 + 00000000000000000000000000000000000000000000000000005370CB005D73 + BE006989F2006E8CF2006A89F2006982D6003E59B100ADBCF100000000000000 + 00000000000000000000ADBCF1003E59B2007C97F4006989F2006E8CF200849E + F4005970BC005370CB000000000000000000000000004761B8008296DA004862 + BB00BFCCF5004E67BE0096A6E1006E8DF3006E8DF300778DDB0098ABF0000000 + 0000000000004C65BD00778DDB006E8DF3007F9AF5009CAEEC005C73BF00BFCC + F5004862BB008296DA0000000000000000000000000000000000000000000000 + 0000A7A5A300D2D1D000AEACAB0089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000007489D1009BB0F7006787F3006787F3006787 + F3006787F300859BE900516BC400000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000728BDD005069BA006F8B + EB006E8DF3007894F4007894F4007F9AF5006B84D700465FB300ADBCF1000000 + 0000000000005D79D100465FB3006781D5007491F4007894F4007894F4007290 + F4006A88EB004F68BA000000000000000000000000004963BA007F9AF50097AD + F700A0AFE40097ADF7007F9AF5008498DE004B64BF0098ABF000000000000000 + 00000000000000000000BFCCF5004F67BF007F9AF5007F9AF5008DA5F60091A2 + DE0097ADF7007F9AF50000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009DB2F600839CED0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C600B1C1F500839EF5007D98F5007D98 + F5007D98F5008BA4F600879EE900536DC6000000000000000000000000000000 + 00000000000000000000000000000000000000000000D2DBF800425CB6006983 + D9006A82D100809BF2007E99F5008DA5F60088A2F6008BA4F6008DA5F60086A0 + F50086A0F5008EA6F6008CA5F60088A2F6008BA4F600829CF500849EF200617C + D8006882D900425CB6000000000000000000000000004B64BB0087A1F50087A1 + F5009EB3F70087A1F50087A1F5004D66C00098ABF00000000000000000000000 + 0000000000000000000000000000BFCCF5008A9EE00087A1F50087A1F5009EB3 + F70087A1F50087A1F50000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700849DF000A4B7F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C200385DD6004D6FDF006280E60089A1 + F20091A8F5007E98EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005973CF00AEBEF30094ABF60086A0F50086A0 + F50086A0F50089A2F60097ADF7006C83D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008EA2E9004460 + BC004964C100667DCA00849EF20097ADF70097ADF70097ADF70090A8F6008DA5 + F6008EA6F60094ABF60097ADF70097ADF70093AAF60089A2F300687FCA004E6B + C8004460BC008EA2E9000000000000000000000000004C65BC008FA7F6008FA7 + F6008FA7F6008FA7F60090A2E20098ABF0000000000000000000000000000000 + 000000000000000000000000000000000000526AC20090A2E2008FA7F6008FA7 + F6008FA7F6008FA7F60000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A7007691EE009CB1F50091A8F4006D8AEB005979 + E4004669DD001F46CB00143CC3002147C7004567D8005D7BE1006885E7007994 + F1007B96F3007691EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D50099AAE800A5B8F80092A9F60092A9 + F60092A9F60092A9F6009AAFF7008EA4EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004965C2006E85D20094ABF6009BB0F7009EB3F700A2B6F800A2B6 + F800A2B6F800A1B5F7009EB3F7009DB2F70095ACF700748AD5004965C2000000 + 000000000000000000000000000000000000000000004E67BE00A1B5F700A1B5 + F700A1B5F700A1B5F700B3C3F8004E68C100BFCDF60000000000000000000000 + 0000000000000000000000000000BFCDF6009BABDE00B3C3F800A1B5F700A1B5 + F700A1B5F700A1B5F70000000000000000000000000000000000000000000000 + 0000817F7E00B9B8B600C1C0BE00787F9E007A93E7007994EF006A87EA006984 + E100647ED800576DB9005468A800475DA7006981D600748DDD00778DDF00546E + C800637BCD006C85DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000859CE9008699DD00BAC9FA00A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A2B6F8005771C90000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004763BF006D87DB007C96ED006A80C8006D84D20099AEF200A0B4 + F7009EB3F7008399E3006D84D2006A7FC7007491F400718ADD00405DBC000000 + 000000000000000000000000000000000000000000004F69C000A9BBF800A9BB + F800A9BBF800A9BBF800A9BBF800A0ADDF00526CC70000000000000000000000 + 0000000000000000000000000000526CC700B9C8F900A9BBF800A9BBF800A9BB + F800A9BBF800A9BBF80000000000000000000000000000000000000000000000 + 0000BFBEBC00D9D8D700E3E2E1007A7877005974CF005F77C9005E74C000556B + B800516BC200899EE500C9D4F600000000000000000000000000000000000000 + 000092A7ED005874CD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000AFBFF3007D91D600B0C0F900A1B5F700A4B7 + F800A5B8F800A2B6F8009BB0F7008AA3F6006D84D4007C93E600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008197E5004862BC005971C2005974D0006B85DB006B84D6008AA3 + F60087A1F5004965C0006B85DB005974D000627BCF004862BC008197E5000000 + 00000000000000000000000000000000000000000000556FCC005069C0005069 + C0005069C0005069C0005069C0005069C000556FCC0000000000000000000000 + 0000000000000000000000000000556FCC005069C0005069C0005069C0005069 + C0005069C0005069C00000000000000000000000000000000000000000000000 + 0000CFCDCC00EBEBEA00F8F8F8007A7877000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3DBF9006F84D000A7B8F300B1C1F500B2C2 + F500B2C2F500B1C1F500B0C0F500AABAF30093A6E8005872CA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D2DBF8008197E50000000000000000005871C300728D + EA00708CEA009DAFEE0000000000000000006B85DC00D2DBF800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A9A00959392008C8A8900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DADA + DA002F417A002834600028346000283460002834600028346000283460002834 + 600028346000283460002834600028346000283460002834600028346000CACA + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000092A1D7002635640026356300C3C3C300CACACA00D3D3D300000000000000 + 0000000000000000000000000000D5D5D50090A1D5002532600025326000C8C8 + C800DADADA0000000000000000000000000000000000C2C2C200C0C0C0003345 + 7F0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0033457F00C0C0C000D6D6D600000000000000000000000000000000000000 + 00002A3970000525910004208000031D7300031D7300031D7300031D7300031D + 7300031D7300031D7300031D7300031D7300031D7300031D7300031D73000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F100405396003F5AB6003F5AB5002A3D7D00B9C6F10000000000000000000000 + 0000000000000000000000000000B7C5F1003F5291003E58AF003E58AF00283A + 7800B7C5F100000000000000000000000000000000000000000000000000364B + 99007E93D7007D92D7007D92D7007C91D7007C91D7007C91D7007B90D7007B90 + D7007B90D7007A8FD700798FD700798FD700788ED700788ED700778DD70099A9 + E100364B99000000000000000000000000000000000000000000000000000000 + 00002D407F00637BCA005771CB006684EA006684EA006684EA006684EA006684 + EA006684EA006684EA006684EA006684EA006584EA008AA1EF00032288000000 + 000000000000000000000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B50026377400000000000000000000000000BAC6F2002C40 + 83003E5AB9000F32A8000F32A800415599002B3F8000B9C6F100000000000000 + 00000000000000000000B9C6F1002A3E7D003F5AB4000F31A0000F31A0004052 + 94002A3C7B00B7C5F1000000000000000000000000000000000000000000384F + 9D008398DC008398DC008297DC008297DC008297DC008196DC008196DC008196 + DC008196DD008095DC007F94DC007F94DC007E94DC007E94DC007E94DD009EAE + E500384F9D000000000000000000000000000000000000000000000000000000 + 000030438400667ECF00536ECB005D7EEB005D7EEB005D7EEB005D7EEB005D7E + EB005D7EEB005D7EEB005D7EEB005D7EEB005D7EEB00879FF00003238D000000 + 000000000000000000000000000000000000000000003753B2000F34AF001236 + AE00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AF00283A7C000000000000000000BAC6F2002E4288004358 + A0000F34AD00042AAA00042AA9003E5BBC0042569D002D418500000000000000 + 000000000000B9C6F1002C41820041569A000F32A7000328A1000328A1003F5A + B700415598002B3F7F0000000000000000000000000000000000000000003A51 + A2008A9EE100899DE100899DE100889DE100879CE100879CE100869BE100869B + E100869BE100859AE100859AE100859AE1008499E1008499E1008499E100A2B2 + E8003A51A2000000000000000000000000000000000000000000000000000000 + 000032478A006780D3004C68C8005477EA005477EA005477EA005477EA005477 + EA005477EA005477EA005477EA005477EA005477EA00829CF000032493000000 + 000000000000000000000000000000000000000000003C58B800173CB5001D40 + B6002244B6002345B7002345B6002446B7002446B7002446B7002446B7002446 + B7002446B7002446B7002446B7002446B7002345B6002345B6002345B7002144 + B7001E41B700183DB6002A3D810000000000000000006678B5004261C800183D + BC001036B7001036B7000F35B6000A31B4001338B700405EC40032468E00BAC7 + F200BAC7F2004459A4003F5DC2001035B200042BAD00042BAC00042BAC00042A + AB000F34AE003E5BBD002F428800000000000000000000000000000000003E56 + AA0097AAEC0097AAEC000633C9000633C9000633C9000633C9000633C9000633 + C9000633C90092A7EB0092A7EB0092A7EB0091A6EB0091A6EB0091A6EB00ABBB + F0003E56AA000000000000000000000000000000000000000000000000000000 + 0000374C96006883DB003C5CC6004268E9000434D2004268E9004268E9004268 + E9004268E9004268E9004268E9000434D2004268E9007893F00003279D000000 + 000000000000000000000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5002B4BB5000626910003269B00677FCF004160C8003556C5003556 + C5003254C400284CC4002F448D0000000000000000007D8DC1007D93DC001C42 + C200183EBF001A40C000193FBF00143BBC001037BB00183EBD00465CA900344A + 9200344991003F5EC6001036B700042CB400042CB300042CB200042CB200042B + B0001035B400798ED40032478C00000000000000000000000000000000004159 + AE00A1B3F200A1B3F200A1B3F200A0B3F200A0B3F2009FB2F2009FB2F2009EB1 + F2009EB1F2009DB0F2009DB0F2009CB0F2009BAFF1009BAFF1009BAFF100B1C1 + F4004159AE000000000000000000000000000000000000000000000000000000 + 00003A509A006984DF003455C4003962EA000434D3003962EA003962EA003962 + EA003962EA003962EA003962EA000434D3003962EA00728FEF000328A1000000 + 000000000000000000000000000000000000000000004C6ACD003054CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC000728960003279F0003279F002343AD006D85D5004A68CE003F5F + CC003C5DCC003155CB00314792000000000000000000384E9A007F8FC4007F95 + DF001D44C5002147C7002248C7001E44C4001B42C300163DC1004564CD004860 + AD00485FAD00153CBE000831BA000730B900042DB700042DB700042DB7001037 + B9007A90D8007C8BBE00BAC7F20000000000000000000000000000000000425C + B300A9BBF600A9BBF6001541D3001541D3001541D3001541D3001541D3001541 + D3001541D3001541D3001541D3001541D3001541D3001541D300A3B6F600B8C7 + F800425CB3000000000000000000000000000000000000000000000000000000 + 00003C53A1006985E2002B4EC300305BEA000534D400305BEA00305BEA00305B + EA00305BEA00305BEA00305BEA000534D400305BEA006C8AF0000429A6000000 + 000000000000000000000000000000000000000000005471D4003C5FD2004969 + D3004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6A + D2003D5BC100072CA400072CA400072CA400072CA4002646B100758CD9004B6A + D2004969D2003C5FD100344A9700000000000000000000000000BDC9F4003C53 + A200839AE5002C52D2002A50D1003055D2002E53D1002C52D100264DCE002D52 + CF002B50CF001E46CB001C44CA001A42C900143DC600103AC500173FC700808F + C500394F9B00BCC8F3000000000000000000000000000000000000000000455F + B600B6C6F900B6C6F900244DD600244DD600244DD600244DD600244DD600244D + D600244DD600244DD600244DD600244DD600244DD600244DD600B1C1F900C0CE + FA00455FB6000000000000000000000000000000000000000000000000000000 + 00004259AD006987EA001B41C1001E4DEA000535D6001E4DEA001E4DEA001E4D + EA001E4DEA001E4DEA001E4DEA000535D6001E4DEA006081F000042BB0000000 + 000000000000000000000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1005571CF001435 + A2001035AF001035AF001035AF001035AF001035AF001035AF001035AF00859B + E3006C87E3005373E0003A51A30000000000000000000000000000000000BDCB + F4008393CD00859CE7003056D600375CD800365BD700355AD6003056D5002E54 + D4002C52D300274ED100254CD000234BD0001942CC001E46CE007E95E2003A52 + A000BDC9F4000000000000000000000000000000000000000000000000004660 + B700BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9FA00BAC9FA00B9C8F900B9C8 + F900B9C8F900B9C8F900B8C7F900B8C7F900B7C7F900B7C7F900B7C7F900C4D1 + FA004660B7000000000000000000000000000000000000000000000000000000 + 0000455EB2006987ED00133ABE00153CBF000535D7001546EA001546EA001546 + EA001546EA001546EA001546EA000535D7001546EA005A7DF100042DB6000000 + 000000000000000000000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900173496001336 + A9001336A900153AB500153AB500153AB500153AB500153AB5001439B1003250 + B4008B9FE3006885E8003C55A800000000000000000000000000000000000000 + 00004059AB008495D000869DEA003A5FDC003F64DD003D62DC003A5FDB00385D + DB00355BDA003157D7002E55D6002C53D600254DD4008097E5008292CB00BDC9 + F400000000000000000000000000000000000000000000000000000000004760 + B800C1CEFA00C2CFFA003358D7003358D7003358D7003358D7003358D7003358 + D7003358D7003358D7003358D7003358D7003358D7003358D700BCCAFA00C8D4 + FB004760B8000000000000000000000000000000000000000000000000000000 + 00004761B8006988F1000B34BD009DB2F6000535D7000C3FEA000C3FEA000C3F + EA000C3FEA000C3FEA000C3FEA000535D7000C3FEA005478F000042EBA000000 + 000000000000000000000000000000000000000000007591EF006887EE007B96 + F000819BF000819BF000819BF000819BF000819BF000819BF000142F8C00142F + 8C00142F8C001A3FBA001A3FBA001A3FBA001A3FBA001A3FBA002949B400142F + 8C00324B9D008DA3EB004058AE00000000000000000000000000000000000000 + 000000000000BECCF500455EB5006483EA005275E8004F72E7004B6FE600496D + E500466BE4004267E3004166E3004267E2007C8FD100425BB000BDCBF4000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00CBD6FB00CBD6FB004164D8004164D8004164D8004164D8004164D8004164 + D8004164D8004164D8004164D8004164D8004164D8004164D800C7D3FB00CFD9 + FB004962BA000000000000000000000000000000000000000000000000000000 + 00004A64BC006989F300042DB6009AAFF3002242AE002245BA000538E4000538 + E4000538E4000538E4000538E4000434D2000538E4004F73EB00042EBC000000 + 000000000000000000000000000000000000000000007E99F500708EF400829D + F50094ABF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF7002448BF002448BF002448BF002448BF002448BF00B7C7F90099AF + F70091A8F6007E99F500445DB400000000000000000000000000000000000000 + 000000000000BFCCF5004861BA006887EE00597BEC00597BEC005578EB005275 + EA005074EA004C70E800496EE8004B6FE7005670CB00465EB400BFCCF5000000 + 0000000000000000000000000000000000000000000000000000000000004A63 + BB00D0DAFB00D1DBFB00D0DAFB00CFD9FB00CFD9FB00CFD9FB00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB00CCD7FB00CCD7FB00CCD7FB00D2DB + FB004A63BB000000000000000000000000000000000000000000000000000000 + 00004B65BD006989F300042CB4009AAEF2009BADEC009AAEF2000537E1000537 + E1000537E1000537E1000537E1000433D0000537E1004F73EA00042EBC000000 + 000000000000000000000000000000000000000000007C97F4006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F8002646B3002646B3002646B3002646B3002646B300BECCFA00A1B5 + F70095ACF700819BF500455EB600000000000000000000000000000000000000 + 0000BFCCF5004B65BE005975D300577AF0005E80F0006384F1005E80EF005C7E + EF00597CEE005477ED005276ED004E73EC00597BEC005973CF004861B9000000 + 0000000000000000000000000000000000000000000000000000000000004B64 + BC00D5DEFC00D5DEFC005070D9005070D9005070D9005070D9005070D9005070 + D9005070D9005070D9005070D9005070D9005070D9005070D900D0DAFB00D5DE + FC004B64BC000000000000000000000000000000000000000000000000000000 + 00004C66BD006989F300042CB2009AAEF1000433CE000537DE000537DE000537 + DE000537DE000537DE000537DE000433CE000537DE004F72E800042EBC000000 + 00000000000000000000000000000000000000000000ADBEF8009AAFF700A0B4 + F700A7B9F800ACBDF800ADBEF8009FB3F700A4B7F800A6B9F800A7B9F800A7B9 + F800A8BAF800223C9000223C9000223C9000223C9000223C9000C0CEFA009FB3 + F70093AAF600809BF5004660B70000000000000000000000000000000000BFCD + F6005B76D5006183F200577BF2007693F4007894F4007592F400718FF4006E8D + F3006B8AF3006888F3006586F3006384F3005277F1004A70F0005C7FF2004D67 + C000BFCDF6000000000000000000000000000000000000000000000000004D66 + BD00DDE4FC00DDE4FC005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7B + DA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA00D9E1FC00DBE2 + FC004D66BD000000000000000000000000000000000000000000000000000000 + 00004E68BF006989F300042BAD000535D9000432CA000535D9000535D9000535 + D9000535D9000535D9000535D9000432CA000535D9004F71E300042EBC000000 + 000000000000000000000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ABBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B900000000000000000000000000BFCDF6004E68 + C1006384F3005C7FF2006C8BF300829DF500819BF5007F9AF5007290F400718F + F4006F8DF3006F8DF3006F8DF3006C8BF3006485F300577BF2004E73F1005D78 + D6004E68C100BFCDF60000000000000000000000000000000000000000004E67 + BE00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00E0E6FC00E0E6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DFE6 + FC004E67BE000000000000000000000000000000000000000000000000000000 + 00004F69C0006989F300042AAB000535D6000431C7000535D6000535D6000535 + D6000535D6000535D6000535D6000431C7000535D6005072E200042EBC000000 + 000000000000000000000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB000000000000000000BFCDF6004F69C2005C77 + D6005F81F2007290F400849EF5008CA5F60089A2F600829DF5006B8AF300A3B6 + F800A3B6F8006A8AF3007391F4007592F400718FF4006989F3005A7DF2005D80 + F2005A76D6004F69C20000000000000000000000000000000000000000004F68 + BF00E5EAFD00E5EAFD006D87DB006D87DB006D87DB006D87DB006D87DB006D87 + DB006D87DB006D87DB006D87DB006D87DB006D87DB006D87DB00E1E7FD00E1E7 + FD004F68BF000000000000000000000000000000000000000000000000000000 + 0000506AC1006989F300042AA9000434D3000431C5000434D3000434D3000434 + D3000434D3000434D3000434D3000431C5000434D3004F70DF00042EBC000000 + 000000000000000000000000000000000000000000007C97F4005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1004B65BC000000000000000000778EDB005B7EF2005579 + F10086A0F50098AEF700A0B4F70091A8F6007D98F5006888F3008FA1E000506A + C400506AC40095ACF7005B7EF2006B8AF300829CF500809BF5007995F4005378 + F1003E67F0005075F100506AC40000000000000000000000000000000000516A + C100EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E6EB + FD00516AC1000000000000000000000000000000000000000000000000000000 + 0000526CC3006989F3000328A4000433CE000430C1000433CE000433CE00B2C0 + F000B2C0F0000433CE000433CE000430C1000433CE004F6FDC00042EBC000000 + 00000000000000000000000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C10000000000000000008B9FE0008FA7F600577B + F20089A2F60099AFF7009EB3F700829CF5006C8BF3009AAFF700516BC400BFCD + F600BFCDF6008EA1E00095ACF7005D80F2007E99F500819BF5007A96F4005479 + F1003E67F00086A0F500516BC40000000000000000000000000000000000526B + C200EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00ECF0 + FE00ECF0FE00EBF0FD00EBF0FD00C8CCD800C8CBD600C8CBD600C8CCD700C6CA + D700526BC2000000000000000000000000000000000000000000000000000000 + 0000536DC4006989F3000328A2000432CB00042FBF000432CB000432CB000432 + CB000432CB000432CB000432CB00042FBF000432CB004F6FDA00042EBC000000 + 0000000000000000000000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC50090A2E1009AAF + F7007F9AF5008EA6F60091A8F6006E8DF3009BB0F7008FA2E100BFCDF6000000 + 000000000000526CC5008FA1E10095ACF7006F8DF3007693F400718FF4005378 + F1008DA5F6008D9FE100BFCDF60000000000000000000000000000000000526C + C300F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00EFF3FE00EEF2FE00EEF2FE00CBCED800516BC100526CC300526CC300526C + C300526CC3000000000000000000000000000000000000000000000000000000 + 0000546EC5006989F3000328A0000431C800042EBC000431C8000431C8000431 + C8000431C8000431C8000431C800042EBC000431C800506FD800042EBC000000 + 000000000000000000000000000000000000000000008DA5F6006787F3006787 + F3006787F3006787F3006989F3008597D700546DC10091A5EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009DB2F7006082F2006082F20090A3E100536EC700BFCDF600000000000000 + 00000000000000000000BFCDF600536EC70095ACF7004F74F1004E73F10091A3 + E100536EC700BFCDF6000000000000000000000000000000000000000000546E + C500F4F7FE00F5F7FE00F5F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7 + FE00F4F7FE00F3F6FE00F3F6FE00CFD1D800FAFBFF00FAFBFF00F5F7FD00536E + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005670C7006888F30003269C000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C200506ED400042EBC000000 + 00000000000000000000000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60092A4E20092A9F60092A9F600556FC700C1CDF60000000000000000000000 + 0000000000000000000000000000C1CDF60090A3E2008DA5F6008CA5F600556F + C700C1CDF600000000000000000000000000000000000000000000000000556F + C600F5F7FE00F7F9FE00F7F9FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F5F7FE00F5F7FE00D0D2D800FAFBFF00F5F7FD00B7C2E800C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 00005771C8006586F30003269900042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC0004F6DD2000430C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8008DA1E3008DA1E300C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000005670C8008DA1E3008DA1E300C1CD + F600000000000000000000000000000000000000000000000000000000005670 + C700F5F7FE00F7F9FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F7F9FE00D2D4D800F4F6FD00B7C3E8005670C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C8005D80F20003259700032597000325970003259700032597000325 + 970003259700032597000325970003259700032597003F57A6000536D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9005871C8005871C8005871C8005871C8005871C8005871C8005871C8005871 + C8005871C8005871C8005871C8005871C8005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005A73C9005A73C9005A73C9005A73C9005A73C9005A73 + C9005A73C9005A73C9005A73C9005A73C9005A73C9005A73C9005771C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C7C7C700C0C0C000AEBA + E40028345E0028345E0028345E0028345E0028345E0028345E0028345E002834 + 5E0028345E0028345E0028345E0028345E0028345E0028345E0028345E004053 + 9300AEBAE400C0C0C000D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002A3B78002F448B00B9C6F1000000000000000000000000002F44 + 8B002A3B78002F448B0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C5CEF3006A7FC8002A3A75002433 + 6900243369002A3A7500364D95006A7FC8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E42 + 86002445B400042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042A + AA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00586F + BA002D3F7F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374887006D84CF005B73C7007286C800566EBE000E30A300334FB1008496 + D5006D84CF005D74C10000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000004256 + 9B008E9ED10095A7E2009FB0E900A1B1E9009DADE40099A9DF008E9ED3008999 + CD008595C7007C8BBB007785B5007381AF007180B2007A8ABF008191C3004256 + 9B00000000000000000000000000000000000000000000000000000000003043 + 8600042CB30003279D0003238F0003238F0003238F0003238F0003238F000323 + 8F0003238F0003238F0003238F0003238F0003238F0003238F0003238F00506C + CA00304386000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000364C98009EADDD008492C30031448600506CCA00042CB400314486008391 + C3009EADDD008291C30000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000002736 + 6E00708ADF007993E70091A7F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC8002736 + 6E00000000000000000000000000000000000000000000000000000000003448 + 8F00042FBD00E0E6F700DFE4F600DFE4F600DEE3F600DEE3F600DDE2F600DDE2 + F600DCE2F600DAE0F500DAE0F500DAE0F500D9DFF500D9DFF500D8DEF400506E + D10034488F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F20033478B00374D9C00BAC7F2004F6CCE00042EB90033478B00374D + 9C0033478B00374D9C0000000000000000000000000000000000000000000000 + 0000334686006E7AA6004C65B8000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000002A3A + 74006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4002A3A + 7400000000000000000000000000000000000000000000000000000000003B52 + 9F000433D000C5D0F400C4CFF400C2CDF300C1CDF300C0CCF300BECAF200BECA + F200BDC9F200BBC8F200BBC8F200B9C6F100B7C5F100B6C4F100DAE1F7005071 + DE003B529F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000384D9600384D9600384D9600384D9600384D + 9600384D9600384D9600384D9600384D96001F46CB000C37C600384D96000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100BCBFC900A6ABBA00808DB6001438AE00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB10000000000000000000000000000000000000000003042 + 8200718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4003042 + 8200000000000000000000000000000000000000000000000000000000003F57 + A8000536D900C6D1F600C6D1F600C4D0F600C4D0F600C3CFF600C1CDF500C0CC + F500BFCCF500BECBF500BDCAF500BCC9F500BAC8F500B9C7F500DCE3F9005073 + E5003F57A8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000617BD4001F44C1002C50C6005F79D3005F79 + D3005F79D3005F79D3005F79D3006079D3005A78DC00133ECD003754BA000000 + 0000000000000000000000000000000000000000000000000000A8B7ED005665 + 9800B2B6C300ADB1BF00A9AEBE004A63B7001439B200042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000000000003346 + 8800708ADF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4003346 + 880000000000000000000000000000000000000000000000000000000000435B + B0000538E300CAD5F900C9D4F900A4A9BC00A3A8BC00A3A8BC00A2A8BC00C3CF + F800C2CFF800BFCCF700BECBF700BDCBF700BCCAF700BBC9F700DDE4FA004F73 + EB00435BB0000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E7CE0002C53D7003D52A0003D52A0003D52 + A0003D52A0003D52A0003D52A0003D52A0005670CA00163BB4003D52A0000000 + 0000000000000000000000000000000000000000000000000000455BAE00A2A9 + BF00B1B6C300B1B6C300B1B6C3008794C0004B65BB00153AB700042DB600042D + B600042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD000000000000000000000000000000000000000000364A + 8F007790E1007C95E90092A8F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC800364A + 8F00000000000000000000000000000000000000000000000000000000004861 + B800053AEB00CFD9FB00CED8FB00A6ABBD00A6ABBE00A6ABBE00A4A9BD00A4A9 + BD00A3A9BD00A2A8BD00A2A8BD00A1A7BD00C1CEFA00C0CEFA00DFE6FC005075 + F1004861B8000000000000000000000000000000000000000000374E9B002C3F + 7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F + 7E002C3F7E00374E9B00000000004259AB008099EB005879E7004960AF000000 + 00000000000000000000000000000000000000000000788DD7008D98BA00CACE + D900C1C5D300C1C5D300C1C5D300C1C5D300BDC2D10097A4CE00274CC500173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000000000000000000000D1DA + F7003D529D003D529D003D529D003D529D003D529D003D529D003D529D003D52 + 9D003D529D003D529D003D529D003D529D003D529D003D529D003D529D00D1DA + F700000000000000000000000000000000000000000000000000000000004962 + BA00053AEB00D1DBFB00D0DAFB00CFD9FB00CED8FB00CDD8FB00CBD6FB00CAD5 + FB00C9D5FB00C7D3FB00C6D2FA00C6D2FA00C4D1FA00C3D0FA00E1E7FD005075 + F1004962BA00000000000000000000000000000000000000000032468C00506D + CF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506D + CF00506DCF0032468C00000000004C66C0008195D8004462C700445DB0000000 + 000000000000000000000000000000000000000000004963B600B6BCD100CBCF + DB00C6CAD800C6CAD800C6CAD800C6CAD800C6CAD800C4C9D8006780D1003256 + CD00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B600000000000000000000000000000000005E77 + CD0092A4E00094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC00899A + D5008596CF007C8CC3007787BC007282B6007182BB007A8CC9008697D3005E77 + CD00000000000000000000000000000000000000000000000000000000004A64 + BB000E41EC00D5DEFC00D4DDFC00A8ADBD00A8ADBD00A8ADBD00A7ACBD00A6AC + BD00A6ACBD00A6ABBD00A5AABD00A5AABD00C8D4FB00C7D3FB00E3E9FD005479 + F1004A64BB000000000000000000000000000000000000000000384E99004F6F + DA000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB00384E9900000000005069C4003D5DC9003156D300466AE2000000 + 000000000000000000000000000000000000000000003D54A200D6D9E200CED2 + DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00A7B3DB007088 + D7003D60D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002C52D2003257D3003D54A20000000000000000000000000000000000435B + AC006F89DF007892E8008FA6F10096ABF1008AA0EA007E95E200657ED0005972 + C6004E68BC003751A5002B4498001F388C001C3792002D4AAC00506BC800435B + AC00000000000000000000000000000000000000000000000000000000004C66 + BD002553EE00DDE4FC00DDE4FC00ACB0BE00ACB0BE00ACB0BE00ABB0BD00ABB0 + BE00ABB0BE00A9AEBD00A9AEBD00A9AEBD00D1DBFB00D0DAFB00E7ECFD005E80 + F2004C66BD000000000000000000000000000000000000000000455EB5004F74 + EF0098ABEA005474DD005474DD00445EB400445EB4005474DD005474DD00435D + B100053AE900455EB50000000000516CC9008B9EDE00536FCE004B65BC000000 + 000000000000000000000000000000000000000000004158A600DFE2EB00D8DC + E900DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00D8DD + EA00B6C1E7005373DF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A600000000000000000000000000000000004A63 + BA00708AE000859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004361C4004A63 + BA00000000000000000000000000000000000000000000000000000000004D67 + BE00305CEE00E1E7FD00E0E6FC00DFE6FC00DEE5FC00DDE4FC00DCE3FC00DBE2 + FC00DAE2FC00D8E0FC00D8E0FC00D7DFFC00D6DFFC00D5DEFC00E9EEFD006485 + F3004D67BE0000000000000000000000000000000000000000004761B8005176 + F1009AADEC005575DE005575DE00455FB400455FB4005575DE005575DE00455F + B300073CEB004761B80000000000526DC9004D6BCE004366D9005577E8000000 + 00000000000000000000000000000000000000000000435BAB00E3E6EF00DCE0 + ED00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4 + EF00DDE1EF008CA1E8005F7EE4005173E3005173E3005173E3005173E3005173 + E3004F71E3004267E000435BAB00000000000000000000000000000000004C66 + BD00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4004C66 + BD00000000000000000000000000000000000000000000000000000000004E68 + BF003C65EF00E4E9FD00E4E9FD00B0B3BE00B0B3BE00AFB3BE00AFB3BE00AFB3 + BF00AEB2BE00ADB1BE00ADB1BE00ACB0BE00DAE2FC00D9E1FC00EBF0FD006989 + F3004E68BF0000000000000000000000000000000000000000004A63BA00567A + F200A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC0094A2 + D2001546EC004A63BA00000000004D67BE0099AEF6007995F4005971C3000000 + 00000000000000000000000000000000000000000000475EB400E6E9F200E2E6 + F200E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8 + F300E5E8F300C3CDF00095A9EC006A87E9005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB400000000000000000000000000000000004D67 + BE00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C5004D67 + BE0000000000000000000000000000000000000000000000000000000000516A + C1005378F100EAEFFD00EAEFFD00B4B7BE00B3B6BE00B3B6BE00B2B5BE00B2B5 + BE00B2B5BE00B2B5BF00B2B5BF00B0B3BE00E2E8FD00E1E7FD00EFF3FE007491 + F400516AC10000000000000000000000000000000000000000004E67BE006283 + F2009FABD3006174B5006174B5006174B5006174B5006174B5006174B5005F73 + B500325EEF004E67BE0000000000556FCC005B76CE005573D9006382EA000000 + 000000000000000000000000000000000000000000007790E100A7B3DC00EBEE + F900EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0 + FA00EDF0FA00EDF0FA00EBEFFA00D0D9F8007E99F1007390F0007390F0007390 + F0006988EF006E8CF0007790E100000000000000000000000000000000006680 + DA0096A7E4009EB0EB00A6B7F000A8B8F000A4B4EC00A0B0E80096A6DE0093A2 + D9008E9ED4008595CA008191C4007D8DC0007C8CC3008294CE00899BD8006680 + DA0000000000000000000000000000000000000000000000000000000000526B + C2005F81F200ECF0FE00ECF0FE00EBF0FD00EBF0FD00EAEFFD00E9EEFD00E8ED + FD00E7ECFD00E6ECFD00E6ECFD00E6EBFD00E5EAFD00E4E9FD00F1F4FE007995 + F400526BC20000000000000000000000000000000000000000005069C1006787 + F300B2C0ED008399E2008399E2006B7CB7006B7CB7008399E2008399E2006779 + B4004068F0005069C10000000000506AC100A5B8F70088A2F6005F76C6000000 + 00000000000000000000000000000000000000000000BFCDF6006C81CA00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00EFF2FD00AFBFF8008AA3F500819BF5007E99 + F500718FF4007E98F100CED8F70000000000000000000000000000000000D3DB + F900516AC100516AC100516AC100516AC100516AC100516AC100516AC100516A + C100516AC100516AC100516AC100516AC100516AC100516AC100516AC100D3DB + F90000000000000000000000000000000000000000000000000000000000536C + C4006B8AF300EFF3FE00EFF3FE00EEF2FE00EDF1FE00EDF1FE00ECF0FE00EBF0 + FD00EBF0FD00EAEFFD00E9EEFD00E8EDFD00E7ECFD00E7ECFD00F3F6FE007E99 + F500536CC4000000000000000000000000000000000000000000526CC3006B8A + F300B8C5EE0090A3E40091A4E4007585B9007585B90091A4E40090A3E4006E7E + B5004A70F000526CC300000000005671CD009EADDF007086D000516BC2000000 + 00000000000000000000000000000000000000000000000000005975D100CAD1 + ED00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DAE2FC00B6C6F90095ACF700829C + F500809BF500768DDD0000000000000000000000000000000000000000006882 + DB0094A6E40094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC008A9B + D6008697D0007C8CC3007787BC007282B6007182BB007A8CCB008899D8006882 + DB0000000000000000000000000000000000000000000000000000000000556F + C600819BF500F2F5FE00F2F5FE00DADDE500D9DCE400D9DCE400D8DBE400D8DB + E400D8DBE400D7DAE400D7DAE400D6D9E400E0E4F000EDF1FE00F6F8FE0087A1 + F500556FC60000000000000000000000000000000000000000005670C7006A8A + F3005A7DF2006586F3006B8AF3006F8DF3006F8DF3006D8CF3006586F300597C + F200476EF0005670C70000000000546DC400B1C1F80098AEF700647BCA000000 + 000000000000000000000000000000000000000000000000000000000000607A + D700F4F6FD00F4F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F4F7FE00E0E6FC009FB2 + F500758AD500607AD7000000000000000000000000000000000000000000546E + C5006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C500546E + C500000000000000000000000000000000000000000000000000000000005670 + C70088A2F600F3F6FE00E9ECF3008E8C8D008986860089868600898686008986 + 860089868600898686008986860089868600BABBC100E5E8F300F7F9FE008BA4 + F6005670C70000000000000000000000000000000000000000005871C8006C8A + ED00809AEF00859EF000889FF00089A1F00089A1F00089A1F000849DF0007F99 + EF007A95EE005871C800000000005973CF00A8B5E0007F92D200556EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D6DCF200F4F7FE00F5F7FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F3F6FE00ACBA + E800546FCA00000000000000000000000000000000000000000000000000556F + C6006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004562C500556F + C600000000000000000000000000000000000000000000000000000000005771 + C8008DA5F600F5F7FE00E1E3EA00EEEEEF00FDFDFD00FDFDFD00FDFDFD00FDFD + FD00FDFDFD00FDFDFD00FDFDFD00FDFDFD00A09FA100DFE2EA00F8FAFE008CA5 + F6005771C80000000000000000000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000005974CF007C8FD1007A91DC007D97EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C74C900D8DDF200F4F6FD00F6F8FE00F7F9FE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F6F8FE00F5F7FE00F4F6FD005B74 + C900BFCDF6000000000000000000000000000000000000000000000000005670 + C7006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004663C5005670 + C70000000000000000000000000000000000000000000000000000000000728C + E20093A8F0009BAFF20099ABE900B3B2B400B5B3B200ABA9A700ABA9A700ABA9 + A700ABA9A700ABA9A700ABA9A700B5B3B200919BBB0099ABE9009AAEF200748A + D8006B85DE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B0C0F9009BB0F7005871C8005871C8005871 + C8005871C8005871C8005871C8005871C800B3C3F900A6B9F8005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900CDD4EF00F4F6FD00F6F8FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F6F8FE00F5F7FE00CDD4EF007E91D300627DD9000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006F89DF007993E70090A6F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002F4CAD00556FC9005872 + C900000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C900A1A1A700EDECED00F4F4F300E8E8E700E8E8 + E700E8E8E700EBEBEA00F4F4F300EDECED006277BF005872C9005872C9006B85 + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ABBCF400B9C7F600ACBBF000A5B6EF00A5B6 + EF00A5B6EE00A5B6EF00A5B6EF00A7B6EF00BAC9FA00A4B7F8007E97E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D5007489D100AFBBE500F3F6FD00F3F6 + FD00F3F6FD00F3F6FD00D5DCF200AFBBE5005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000006B85 + DE0096A7E5009DAFEB00A6B7F000A9B9F100A5B5ED00A1B1E80098A8E00094A3 + DA00909FD5008696CB008191C5007E8EC1007E8EC5008494CF008A9CDA006B85 + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B1B1B1009C999800ABABAA00EDECEC00E4E3 + E300E4E3E300D8D7D600ABABAA00959391000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900ABBCF400ABBCF4005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009F9E9D009F9C + 9B009F9C9B000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA0098A8DC006075BD00455BA3003B4C8B003A4B + 8900394B88003849850042579C005C71B700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009BAFEC004B61AF007787C000A0ABD400BAC5EA00B5C1 + E700B1BDE500ACB9E20092A0CF006E7EB600465EB000A3B4EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859AE000344991003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F51900030468E0000000000000000000000000000000000000000000000 + 0000465FB40095A1CD00DCE1F100BBC8F100AABAEE00A7B7ED009CAEE90094A7 + E8008CA1E500889DE4007991E0006882DC00C8D3F800CED7F500929EC90096A9 + E800000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBEED004C5D9500364E9D00364E9D00364E9D00364E + 9D00364E9D00A3B2E50000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004D64B6002A3B78002A3B + 7800344B960000000000344B96002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B7800344B9600000000002A3B + 78002A3B78002A3B7800000000000000000000000000344A96005C72BF00506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED3005C72BF0000000000000000000000000000000000000000008EA2 + E800C5CAE000E9EDFA00D7DEF500C4CEF100BBC7EF00ADBCEC0092A5E500889D + E2007D94DF008096E0008096E0009CAEE900AFBFF400BAC8F600E3E8FA003E51 + 9400859AE1000000000000000000000000000000000000000000000000000000 + 000000000000B9C8F20040529200324FB0000C2FA10003279F0003279F000327 + 9F002947AD00788DD80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006E7CAC00ACB6DC00A8B5 + E0002D3F7F00000000002D3F7F00A5B3E100A4B2E000A4B2E000A4B2E000A3B1 + E000A3B1E000A3B1E000A2B0DF00A2B0E000A2B0E0002D3F7F0000000000A1B0 + E000A0AFDF00A5B1DA005067BA000000000000000000364C9700506FD8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C800506FD800000000000000000000000000000000009DAFED004860 + B200F2F4F900E2E7F500DBE0F400C4CEEE00B5C1EA00ADBBE9009FAFE50095A7 + E2008C9FE000879BDE007B91DC00ADBDF000BBC9F600D3DCF900D4DCF900B9C1 + DE003D50940096A9E80000000000000000000000000000000000000000000000 + 0000BAC7F300425496004C60A8000C31A9000429A6000429A6000429A6000429 + A600193CAE004C61B00000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000ACBAE800899DDF00A7B6 + E700546CC10000000000546CC100A5B4E600869ADE00869ADE008499DD008499 + DD008499DD008398DD008398DD008297DD006C7BAF00546CC100000000006B7A + AF00A0B0E5007F94DC0033478D0000000000000000003F57A7005072E4000535 + D9000535D9000535D9000535D9000535D9000430C3000430C2000430C2000430 + C2000430C2000430C2000430C2000430C3000535D9000535D9000535D9000535 + D9000535D9005072E400000000000000000000000000506BC80098A5CF00ECEF + FA00F0F1F600F0F1F400E5E8F100D2D8EC00C4CCE800B8C2E500A2B0DF0099A9 + DD0090A1DA00899BD900B4C2EE00C1CDF500DCE3F900D7DFF900BFCAED00A6B5 + E600C8D1F0008492C2000000000000000000000000000000000000000000BAC9 + F3005066B3003153C3000D34B9000A32B9000A32B9000A32B9000A32B9000A32 + B9000A32B9004E61A200889DE300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBDEC008DA1E300AEBC + EC00000000000000000000000000B0BEEA008A9FE3008A9FE300889DE200889D + E200879CE200879CE300869BE200869BE2005667A60000000000000000005869 + A700AAB8E8008399E200374B95000000000000000000435CAF005074EA000638 + E1000638E1000638E1000638E1000E3EE2003C60D6000533CA000533CA000533 + CA000533CA000533CA000533CA003C60D6000638E1000638E1000638E1000638 + E1000638E1005074EA000000000000000000000000005B71B900DEE3F200DAE0 + F600E6E9F400EAECF000EBECF000D5DAE900CAD0E600C6CDE700C0C9E700B8C2 + E400B2BDE300AAB7E300CED7F600C6D1F500DDE3F900C1CBEC00AAB8E400A9B8 + E8007B91DA0097A7D90099ABEA00000000000000000000000000BCCAF400455A + A500395BCC00163EC400133BC300133BC300133BC300133BC300133BC300133B + C300133BC3004E66B700556DC200000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B2C0F00094A8EA00B0BF + EF005B74CA00000000005B74CA00AFBEEF0090A4E80090A4E8008FA4E8008FA4 + E8008FA4E8008EA3E8008CA1E7008CA1E7007381BA005B74CA00000000007483 + BB00AABAED00899FE7003A509C0000000000000000004760B700567AF0001445 + E9001445E9001445E9001445E9001B4AEA008199E900889EE900889EE900889E + E900889EE900889EE900889EE9008199E9001445E9001445E9001445E9001445 + E9001445E900567AF000000000000000000000000000AFBADD00D5DDF700CAD3 + F200D7DCEF00E0E4EF00E6E8EC00DDE0E900D9DDEA00C1C9E600627CD0005B75 + CC005771CA008FA1DC00D3DBF700E2E7F900C4CDED00B3BFE600B3BFE7007288 + D300516DCC007E93D8004C64B500000000000000000000000000445CA9006E82 + C7001E46CD001C45CD001C45CD001C45CD00274DCE006B86DE001E46CD001C45 + CD001C45CD00516DCE004A5FA700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BCCAF600A2B4F200A2B4 + F200BBC9F600BCC9F500BAC8F6009FB2F2009FB2F2009FB2F2009EB1F2009DB0 + F2009DB0F2009CB0F2009CB0F2009BAFF100AABBF400B7C6F600B8C6F600A7B8 + F30099ADF10099ADF1004259AD0000000000000000004C65BC006586F300335E + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00335EEF006586F3000000000000000000758BDE00C6D1F500AABAEE00BCC8 + EF00C4CDEB00C8CFE800CFD4E700ADB9E1006880CF00657FD300758CD900738A + D8006F87D6005B76CE004A66C4004C66BF00BCC5E4007A8DCC00697FC9005C76 + CC007189D7005673D5006D7EBA007288D9000000000000000000000000004E67 + BF00708BE700335ADE002D56DE00879DE7006679BE00475FB2006F89E6003159 + DE002D56DE003F64E1005C75CF004B62B9000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF800A8BAF500A8BA + F500A7B9F500A7B9F500A6B8F500A5B7F500A5B7F500A5B7F500A5B7F500A4B6 + F500A4B6F500A3B6F500A2B5F500A2B5F500A1B4F500A1B4F500A0B3F500A0B3 + F5009FB3F5009FB3F500455EB40000000000000000004D67BE006C8BF300446B + F000456CF000456CF000456CF000456CF000456CF000456CF000446BF000446B + F000446BF000446BF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0006C8BF3000000000000000000516CC700B1C0F100A7B7ED00ADBC + EC00B8C3E800BBC5E500C9D0E6006880D0006780D4007B91DB006879B2005C6C + A7005B6BA5006E81C500637CCF004965C3008E9DCF008192CC006E83CB006B84 + D5007089DA006A85DD008E9DD4004E67C0000000000000000000000000000000 + 0000788CCD00738EEB006B89EC00596EBA00627BD400000000008093D6005779 + E900365EE6003860E600597AE800576CB8000000000000000000000000000000 + 00000000000000000000000000000000000000000000C3D0FA00B0C0F900AFC0 + F900AFC0F900AEBFF800AEBFF800ADBEF800ADBEF800ADBEF800ACBDF800ABBD + F800ABBDF800ABBDF800AABCF800AABCF800AABCF800A9BBF800A9BBF800A8BA + F800A7B9F800A7B9F8004962BA0000000000000000004F69C0007391F4005378 + F1005479F1005479F1005479F100829CF300819BEF007E98EE007E98EE007D97 + EE007D97EE007E98EE007E98EE00819BEF00718FF4005479F1005479F1005479 + F1005378F1007491F4000000000000000000435CB0009BADEC00A2B2EB00A0B0 + E900ABB9E500AFBBE300C5CDE7005E78CE007088D9007E90CE007189D800E0E6 + F900000000005668A2006D81C5005B76CE007085CC0098A7D9007B8FD3007990 + DB00728BDD007B93E200A4B3E4004159A9000000000000000000000000000000 + 00004D67C200798DD1008499DC0090A4EA0000000000000000005A71BF0089A0 + EC004A6FEE003E66ED005276EE006079D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000CBD6FB00BBCAFA00BBCA + FA004068F0004068F0004068F0004068F0004068F0004068F000B8C7F9004068 + F0004068F0004068F0004068F0004068F0004068F000B5C5F900B5C5F900B4C4 + F900B4C4F900B4C4F9004C65BC000000000000000000536DC400809BF500708E + F4007592F4007A96F40096ACF4002750D900053AEB00053AEB007B97F4007A96 + F4007A96F4007995F4007894F4007894F400667DCB0097ACF4007D98F5007592 + F400708EF400809BF5000000000000000000445CAF008098E60092A6E800849A + E20094A5DF0099A9DD00B9C3E4005873D000758BD6005E6EA900000000000000 + 000000000000E0E6F9005C6CA7007088D6005873CB00B1BDE3008FA0DA008DA0 + E1007F96E1008CA1E600B2C0EC00445CAF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F6A + C5008A9EE1004F74F1004F74F1006586F3005873CE0000000000000000000000 + 00000000000000000000000000000000000000000000CED8FB00C1CEFA00C1CE + FA00496FF000496FF000496FF000496FF000496FF000496FF000BECCFA00BECC + FA00BDCBFA00BCCAFA00BCCAFA00BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9 + FA00BAC9FA00B9C8F9004D67BE000000000000000000556EC500839EF5007A96 + F400859FF50099AFF700889ADE000D40EC000D40EC000D40EC00A2B6F800A1B5 + F7007D98F5007C97F4007B97F4007B97F400536FD000889BDE0098AEF700859F + F5007A96F400839EF5000000000000000000445CAE007690E400899EE5007C93 + DF008A9DDD008FA0DA00B1BDE3005470CE007289D4005D6EA800000000000000 + 000000000000000000005F6EA900738AD8005C76CD00B7C1E40099A9DE0096A8 + E300879CE30095A8E900B7C4ED00455EB1000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AEBE + F2005E75C4006686F300577BF2005D80F2005A72C200AEBEF200000000000000 + 00000000000000000000000000000000000000000000D1DBFB00C6D2FA00C6D2 + FA005176F1005176F1005176F1005176F1005176F1005176F100C4D1FA005176 + F1005176F1005176F1005176F1005176F1005176F1005176F1005176F1005176 + F100C0CEFA00BFCDFA004E68BF0000000000000000005770C700819BF5007491 + F4008FA7F6009DAFF0006078CB002553EE002553EE002553EE00B1C1F900B0C0 + F9002553EE002553EE002553EE002553EE002C58E9006078CB009EB0F000839E + F5007592F400839DF3000000000000000000445CAD006E88E2008198E300718A + DD007F94DA008497D800A8B5E0004F6BCA006B83D4006677B000000000000000 + 000000000000738ADA006B7BB400758CD900627CD000C0C9E700A4B2E1009FAF + E60092A5E6009EB0EB00BBC7EF00465FB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F89DF008DA5F4006686F3006082F2006C85D900546FCB00000000000000 + 00000000000000000000000000000000000000000000D8E0FC00D1DBFB00D1DB + FB006384F3006384F3006384F3006384F3006384F3006384F300CED8FB006384 + F3006384F3006384F3006384F3006384F3006384F3006384F3006384F3006384 + F300CBD6FB00CAD5FB00516BC200000000000000000093A8ED005872CA005872 + C9005872C9005A78DB00567AF200567AF200567AF200567AF200CBD6FB00CAD5 + FB00567AF200567AF200567AF200567AF200567AF200567AF2005A78DB005872 + C9005872C9005872CA000000000000000000516BC3007E95E3006580DB006B84 + D8007086D1006B81C9007F91CC005872C6004A66C400637CCE006878B0005F70 + AA006070AB008091CF007B91DB00647ED300C2CAE700C6CDE700B9C3E600AEBC + EA00AEBDED00A8B8EF00A7B4E0005471CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000576FC600A0AFE7008BA4F6007D98F5007F95E300536DC6000000 + 00000000000000000000000000000000000000000000DBE2FC00D6DFFC00D6DF + FC006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF300D3DCFB00D3DC + FB00D3DCFB00D2DBFB00D2DBFB00D2DBFB00D1DBFB00D1DBFB00D1DBFB00D0DA + FB00D0DAFB00CFD9FB00526CC30000000000000000000000000000000000556E + C500C0CEFA006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300D6DFFC00D5DE + FC006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300C3D0 + FA00556EC500000000000000000000000000748CDB008FA3E500506ED4006C84 + D5006980CB006B81CB0092A2D600B1BDE4004D68C0004A66C4006B83D4007088 + D600748BD8007088D9006780D4006880CF00DADEEB00CBD1E700C5CDE900B7C3 + EC00BDC9F100AABAEF008494CE007790E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009FB1EF00637AC800A4B4ED007A96F40086A0F500758AD5000000 + 00000000000000000000000000000000000000000000DEE5FC00DAE2FC00DAE2 + FC007592F4007592F4007592F4007592F4007592F4007592F400D8E0FC007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007592F4007592 + F400D5DEFC00D4DDFC00546DC400000000000000000000000000000000005770 + C700DCE3FC00DFE6FC00E0E6FC00E1E7FD00E0E6FC00E0E6FC00DFE6FC00DFE6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DCE3FC00DCE3FC00D9E1FC00D7DF + F9005770C700000000000000000000000000BDCBF40097A7DD005772CE00617B + CF006B82CF00A3B1E000B1BDE500E3E8F800C5CEEE005D76CA004F6BCA00536F + CD005873D0005E78CF00667FD000ADB9E100DEE1EA00D6DBEA00D2D8ED00C6D0 + F000C4CFF200BDCAF3005D74C100BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006A7FCB0092A9F60086A0F5008BA3F100849B + E8000000000000000000000000000000000000000000E6EBFD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6 + FC00E0E6FC00E0E6FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5 + FC00DEE5FC00DBE2FC005770C7000000000000000000000000000000000093A8 + ED005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + CA0093A8ED0000000000000000000000000000000000566AAC009EADDE00A0B0 + E500AEBCE800AAB8E600D2DAF500D5DDF800C3CFF500C4CFF200B1BDE400B1BD + E300BAC4E500C6CEE800C9D0E700D0D5E800E8EAEE00EDEEF200E6E9F200DDE2 + F600D9E0F700DFE4F500AABBF100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000778BD200ABBBEF009DB2F7008298 + E0005871C900C1CDF600000000000000000000000000E7ECFB00E5EAFD00E4E9 + FD00E5EAFD00E6EBFD00E5EAFD00E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9 + FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8FD00E2E8FD00E1E7 + FD00DFE6FC00DEE5FC005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004F69BE0093A0CC00C5CF + F000B0BEEA00D0D8F500D6DEF900C1CDF500C0CCF500A2B2E7008FA0DB008FA0 + DA0099A9DD00B0BCE400BCC6E600C8CFE900E2E6F100ECEEF200F2F3F600E4E9 + F700EAEEFB00A1AFDA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007C93E500687FCD00ADBCED008DA5 + F600788EDA005874CD000000000000000000000000009FAFE100E7ECFB00E8ED + FB00E8EDFB00E8EDFB00E8EDFB00E7ECFB00E7ECFB00E7ECFB00E7ECFB00E7EC + FB00E7ECFB00E6EBFB00E6EBFB00E6EBFB00E6EBFB00E5EAFB00E5EAFB00E5EA + FB00E4EAFB00E3E8FB006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D1DAF8004C62AA00B4BE + DE00C5D0F400D7DFF900D8DFF900BAC8F500BDCAF4008599DC00899CDD00899C + DD0094A5DF00ADBBE700BAC5EA00C6CFED00D9DEF100E8EBF600F2F3F800F4F6 + FB00CED3E9005972C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000093A8ED005C75CC00A5B7 + F5008EA6F400778DD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000889D + E400CAD0E800DDE3F900B3C3F500BBC9F600879CE3007C93DF00778FDF007C93 + E000869BE300A0B1EA00AEBDED00BECAF100CCD5F400DCE2F800ECF0FB005C74 + C70092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AFBF + F3006B85DE005A74CF005B76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004A61AA0094A2D100D0D9F7009CAEED00637FDC00748DE100849AE500899E + E60093A7E900A3B4ED00A8B8EF00AABAEF00D6DEF800E2E7F600A4B1DC009FB1 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF800526AC0006175B500AEBCEB009CAEEA008BA0E7006E89E3007690 + E4008199E8009CAFEE00B3C2F300C7D2F600B7C2E6006E83CC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF500778DDF005771CA005068BA005169 + BC00526BBE00546DC1005C77D2007A92E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C4C4C400B9B9B9004558 + 9700253159002531590025315900253159002531590025315900253159002531 + 5900253159002531590025315900253159002531590025315900253159004558 + 9700BDBDBD00DADADA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA00C7C7C7007486C4004659970028345F002835 + 5F0028355F0028345F002F3F770046599700C8C8C800D2D2D200DADADA000000 + 00000000000000000000000000000000000000000000A6A4A400E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200A6A4A400B6B5B500A09E9E000000 + 00000000000000000000000000000000000000000000000000002C3B75004B62 + AC0003279D0003279D0003279D0003279D0003279D0003279D0003279D000327 + 9D0003279D0003279D0003279D0003279D0003279D0003279D0003279D004B62 + AC002C3B75000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED7F7003C54A200475B9D00455FB6003754B6001739AA001336 + A9001336A9001739AA002343AF003754B600475B9D00384881003C54A2000000 + 00000000000000000000000000000000000000000000A7A6A500E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A7A6A500D8D8D800B7B6B600D5D5 + D5000000000000000000000000000000000000000000000000002B3D7900435E + BB00546393005A6792005A6792000328A300546393005A679200546393000328 + A300546393005A679200546393000328A3005A6792005A67920054639300435E + BB002B3D790000000000000000000000000000000000B1BCE500465792003441 + 6E00333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 6800333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 680034416E00485C9B0000000000000000000000000000000000000000000000 + 0000BAC6F2002D418600445796003352B8001337AE000429A8000429A8000429 + A8000B30AB000429A8000429A8000429A8003352B8004761B70044579600BAC6 + F2000000000000000000000000000000000000000000A8A7A600E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A8A7A600ECECEC00D8D8D800A1A1 + A000D5D5D50000000000000000000000000000000000000000002D407F00435F + BF008190C2008194D4008194D400092EAC008190C2008194D4008392C300042A + AA007080B8008194D4007080B800092EAC008194D4008194D4008392C300435F + BF002D407F00000000000000000000000000000000002D3F7F0043548D004B60 + A8004A60A9004A60A9004A60A9004A60A9004A60A9004A60A9004A60A900495F + A700465BA000425698004256980042569800465BA000495FA7004A60A9004A60 + A9004B60A80044559000DBE2F800000000000000000000000000000000000000 + 000032468C004C61A700405DBE00042BAD00042BAD002245B700617ACC00677F + CD006B81CB00617ACC004360C1002245B700042BAD001B3FB600405DBE003246 + 8C00BAC6F20000000000000000000000000000000000AEACAB00E6E6E600DCDC + DC00DCDCDC00DCDCDC00DCDCDC00718BE400DCDCDC00DCDCDC00DCDCDC00718B + E400DCDCDC00DCDCDC00DCDCDC00718BE400AEACAB00EFEEEE00ECECEC00CDCD + CD00B6B5B400A3A1A1000000000000000000000000000000000032478A004261 + C800042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6008196DA008196DA008196DA00042DB600042DB600042DB600042DB6004261 + C80032478A00000000000000000000000000000000003E58B5001544DF000537 + E0001229760026387700042AAB00042AAB00042AAB00042AAB00182F7F004142 + 4A0079777700ADACAC00ADACAC00ADACAC007977770041424A00182F7F00042A + AB00042AAB001B3EB4003F51920000000000000000000000000000000000455C + AE004160C6001037BB00042DB7002F52C4005069BA003D509100859AE100A8B7 + ED00C1CCF200859AE1004B61B1003D5091006981D0002E51C300042DB7004160 + C600495DA200455CAE00000000000000000000000000B3B1B100ECECEC00E4E4 + E400E4E4E400E4E4E400E4E4E400758FE800E4E4E400E4E4E400E4E4E400758F + E800E4E4E400E4E4E400E4E4E400758FE800BCBBBA00B3B1B100B3B1B100B3B1 + B100B3B1B100B3B1B10000000000000000000000000000000000354890004262 + CD0055659D005A699B005A699B00042FBD0055659D005A699B0055659D00042F + BD008196DE008196DE008196DE00042FBD005A699B005A699B0055659D004262 + CD0035489000000000000000000000000000000000003555BE000839DD000537 + E000032187002A3B7500042CB200042CB200042CB200042AAA004D4B4C009493 + 92009492920043414200454344004341420094929200949392004D4B4C004C66 + C0004B67C7001439B70041548F00000000000000000000000000869BE1004255 + 96001C42C300042FBD00042FBD001038C0004161CA004D62A700BCC8F3000000 + 0000000000000000000000000000B4C2F0005264A2006B83D100294EC6001C42 + C3004966C70042559600000000000000000000000000B8B6B600F1F1F100EBEB + EB007892EB007892EB007892EB007892EB007892EB007892EB007892EB007892 + EB007892EB007892EB007892EB007892EB007B95EE007B95EE007B95EE00F1F1 + F100F1F1F100B8B6B60000000000000000000000000000000000384D96004364 + D3008192CB008197E1008197E1000934C5008192CB008197E1008494CD000934 + C50090A3E5008197E10092A5E5000934C5008197E1008197E1008494CD004364 + D300384D9600000000000000000000000000000000003555BE000537DE000537 + E000032187002C3C7600042DB700042DB700042DB600072AA0008F8E8D008483 + 82004342450024283900202537001E23360041404400848382008F8E8D004760 + B2004F6BCA00143BBC00455794000000000000000000000000003C54A3004F66 + B5000934C300153EC6004162D1000934C300143DC6004363CF00384E9B00BCC8 + F300000000000000000000000000000000005671C4005466A700647ED5000833 + C3003558CE004E66B600000000000000000000000000C0BEBD00F9F9F900F6F6 + F600F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F6007E98 + F100F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F600F6F6 + F600F9F9F900C0BEBD00000000000000000000000000000000003C54A1004266 + DC000433D0000433D0000433D0000433D0000433D0000433D0000433D0000433 + D0000433D0000433D0000433D0000433D0000433D0000433D0000433D0004266 + DC003C54A100000000000000000000000000000000003555BE000537DE000537 + E000032187002F3F79000E38C6000E38C6000D34B500434757006D6B6B004242 + 4900333540002D2F3C00292C3B00262A3800313648002C303D006D6B6B004347 + 57000D34B5001B43C9004B5FA00000000000000000005B74CA005067B2004467 + D9002E54D4006882D700465BA300617DDC00214AD2001842D0004A6AD700556A + B5003D53A40000000000000000000000000000000000B7C5F100465BA3002B52 + D3001742D0004063D8006C83CF000000000000000000C2C1C000FBFBFB00F9F9 + F9007F99F2007F99F2007F99F2004E73EF004E73EF004E73EF004E73EF004E73 + EF007F99F2007F99F2007F99F2007F99F2007F99F2007F99F2007F99F200F9F9 + F900FBFBFB00C2C1C000000000000000000000000000000000003F58A8004368 + E1005669A8005B6CA5005B6CA5000535D8005669A8005B6CA5005669A8000535 + D8005669A8005B6CA5005669A8000535D8005B6CA5005B6CA5005669A8004368 + E1003F58A800000000000000000000000000000000003555BE000537DE000537 + E0000321870030417A001B44CE001B44CE00193EBA004E4C4C004D4B4C004243 + 4A00393B42003537400032333F002E313E0025293800222839004D4B4C004E4C + 4C00193EBA00264DD0004E62A40000000000000000004760B700556EC8003A5F + DB004266DD00657AC4004760B6006B7FC0006480E0002750D8002750D8004E6F + DC00566DB800BDCBF40000000000000000000000000000000000556DC1003F63 + DB001F49D600365CDB004E66BA000000000000000000C5C3C300FDFDFD00FCFC + FC00FCFCFC00FCFCFC00FCFCFC004F74F00099AEF50099AEF50099AEF5004F74 + F000FCFCFC00FCFCFC00FCFCFC00819BF400FCFCFC00FCFCFC00FCFCFC00FCFC + FC00FDFDFD00C5C3C30000000000000000000000000000000000425AAD004469 + E6008295D600819AEE00819AEE000A3ADE008295D600819AEE008598D7000A3A + DE008295D600819AEE008598D7000A3ADE00819AEE00819AEE008598D7004469 + E600425AAD00000000000000000000000000000000003555BE000537DE000537 + E0000321870032427C002951D6002951D6002448C0004F4D4E004F4D4E004545 + 4A006060650072737A0053555D00353741002B2F3D00272B3A004F4D4E005856 + 56002448C0003056D7005166AA0000000000000000004058A8005775D900375D + DD005576E3005D71B7008CA1E6004059AC006D81C4006883E300254FDB002D55 + DD004F70DF004159AC00BECCF5000000000000000000000000008CA1E6005374 + E300254FDB00335ADD00445BA8000000000000000000C8C7C600FFFFFF00FFFF + FF00829CF500829CF500829CF5005075F1005075F1005075F1005075F1005075 + F100829CF500829CF500829CF500829CF500829CF500829CF500829CF500FFFF + FF00FFFFFF00C8C7C600000000000000000000000000000000004862B9004A70 + F0001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4C + EC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC004C71 + F0004862B900000000000000000000000000000000003555BE000537DE000537 + E0000321870035457F004368E4004368E4003E60D1004F526000686666004E4C + 4D00959495008C8C8E008283880044444A00373944003A3C4400686666004F52 + 60003D5FD1004469E400586DB6000000000000000000455EB2006482E6004167 + E7006180E7005168B600C6D1F50000000000BECCF500465FB6006E8BEB003A62 + E700335CE5005577E8005D75C600465FB6000000000000000000C6D1F5005477 + EA003D64E7003B62E700455EB2000000000000000000CAC8C700FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00829C + F500FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00CAC8C700000000000000000000000000000000004A64BB004E73 + F1006777AC006777AC006777AC006777AC006777AC006777AC006777AC006777 + AC006777AC006777AC006777AC006777AC006777AC006777AC006777AC005075 + F1004A64BB00000000000000000000000000000000003555BE000537DE000537 + E00003218700324176005275EB005275EB004D6FDE004F5C8B008F8D8D005452 + 530071707000969496006F6E710049494E003A3B4300514F51008F8D8D004F5C + 8B004D6FDE004E72EA005C72BB0000000000000000004861B7006885E8004B70 + ED005E7FEE00556CBC00AEBDF2000000000000000000BFCCF5007187D0006E8B + EE004067EB003F66EB005D7EEC00627ACB00BFCCF50000000000AEBDF2005A7C + EE003C64EB00446AEB004861B7000000000000000000C9C7C600FCFCFC00FBFB + FB00FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00809A + F300FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00FBFB + FB00FCFCFC00C9C7C600000000000000000000000000000000004B65BC005075 + F10090A4E80099AFF70090A4E80090A4E80099AFF70090A4E80090A4E80099AF + F70090A4E80090A4E80099AFF70090A4E80090A4E80099AFF70090A4E8005479 + F1004B65BC0000000000000000000000000000000000465EB2001743D5001844 + D60019307D0039497A00809AF300657AC2006D84D1005D77D100908E8E007F7D + 7D00575555004F4D4D004D4B4D0047474A00545254007F7D7D00908E8E003E52 + 94004158A5004059AC005F75C10000000000000000004B65BC006F8BEB005075 + F0006384F2005B73C50090A4EB000000000000000000000000004B65BE00748C + DB007290F300426AEF00466DEF006081F0004B65BE00BFCDF50090A4EB006384 + F200466DEF004D72F0004F68BC000000000000000000BDBBBA00E8E8E800DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00E8E8E800BDBBBA00000000000000000000000000000000004D67BE00587C + F2004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1005E80 + F2004D67BE00000000000000000000000000000000005E79D0006B86E2006179 + CA005669AB005669AB007B97F4006279C4006B84D6007B97F4006879B2005959 + 5F00757373008F8E8D008F8E8D008F8E8D007573730059595F006879B2005669 + AB004D62AA004B62AE00617AD30000000000000000006580D9007087D2006A8A + F3005B7EF2006A87EA00536CC00000000000000000000000000000000000BFCD + F6005069C3007995F4005479F1005479F1006685F000667FD000536CC0006384 + F300587CF2006686F300778FDE000000000000000000AEADAC00D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200AEADAC00000000000000000000000000000000004D67BF005B7E + F2004D5B8B005563930055639300556393005563930055639300556393005563 + 9300556393005563930055639300556393005563930055639300556599006283 + F2004D67BF0000000000000000000000000000000000627ACE007592F4003E4E + 8000343D5D006071AB0089A2F60089A2F60089A2F60089A2F600829AEA007A8E + D5006A7191005A585800646262005A5858006A7191007A8ED500829AEA00829C + F5006D8CF3006F8CF1008EA3E90000000000000000009FB0EF005B74C5007B96 + F100567AF2006A8AF3006881D400000000000000000000000000000000000000 + 0000BFCDF6007D93DE007E99F5005F81F2006485F3007592F2008197E2006686 + F3006888F3007793F000B7C4F20000000000000000005263A1005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005263A100000000000000000000000000000000004E68C0005F81 + F2002C3B6C003242790032427900324279003242790032427900324279003242 + 7900324279003242790032427900324279003242790039497E005B6894006787 + F3004E68C000000000000000000000000000000000005C75CC00728ADD00404F + 8100404C72006575AC0091A8F60092A9F60092A9F60093AAF60097ADF70099AE + F30095A9EB008C9EDD008C9EDD008C9EDD0095A9EB0098ADF30094ABF600819B + F5007390F2006983D80000000000000000000000000000000000516CC8008196 + DF005D80F2006283F2006C8AEF006681DA000000000000000000000000000000 + 000000000000526BC4007E94DF00849EF5007C97F400809BF5008FA7F6007592 + F4007D98F5007E94DF00000000000000000000000000556CBD005A79DF000536 + D900042EBB00042BAE00042EBB000536D9000536D9000536D9000536D9000536 + D9000536D9000536D9000536D9000536D900042EBB00042BAE00042EBB000536 + D9005A79DF00556CBD0000000000000000000000000000000000506AC1006686 + F30038446D003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C + 7A007982A2005C688F00737D9E004A5782003E4C7A003E4C7A00646F9400708E + F400506AC1000000000000000000000000000000000000000000000000008DA2 + E800536DC400536DC4004E66B8004B62B0004E66B800536DC400546DC0005870 + BF007D8DC6008D9BC7008E9BC7008D9BC7007789C5004F69BE00556EC100637A + CE008DA2E8000000000000000000000000000000000000000000000000005D78 + CF00819CF3006787F3006888F300718EEF006C85D6005770C40092A5EC00AEBE + F300C8D2F60092A5EC005671CE005A73C600A7B9F8009AAFF70095ACF7008FA6 + F400788ED6005D78CF00000000000000000000000000566FC6006A89F200053A + EA005574DB006886EB005574DB00053AEA00053AEA00053AEA00053AEA00053A + EA00053AEA00053AEA00053AEA00053AEA004D6CD3006482E7004D6CD300053A + EA006A89F200566FC60000000000000000000000000000000000516BC2006A8A + F3003D486E0044517A0044517A0044517A0044517A0044517A0044517A004451 + 7A009097B0007881A000848CA8007881A00044517A0044517A00687294007491 + F400516BC2000000000000000000000000000000000000000000000000000000 + 000000000000DAE1F900637BCE00556FC600637BCE00DAE1F9006C84D800607B + D9007D98F500AABCF800ADBEF800AABCF8007491F4005775D9006C84D8000000 + 000000000000000000000000000000000000000000000000000000000000D3DB + F900859AE100859FF5006D8CF3007491F4007A96F4007892EC00647CCC006078 + C8006078C800647CCC006D85D9007F99EC00A3B6F8009DB2F7008EA6F600899E + E200526CC500000000000000000000000000000000005771C8007794F4001C4C + ED0090A7F4007995F40090A7F4001E4EED001E4EED001E4EED001E4EED001E4E + ED001E4EED001E4EED001E4EED001E4EED0090A7F4007995F40090A7F4001C4C + ED007794F4005771C80000000000000000000000000000000000526CC3006D8C + F300434D6E00485378004A557B004A557B004A557B004A557B004A557B004A55 + 7B004A557B004A557B004A557B004A557B004A557B004A557B006F7896007995 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A8B8F0005570 + CB00466BE300CFD8F800CFD8F800CFD8F8004165E300546ECA00A8B8F0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005871C800869AE2008AA3F4007995F4007A96F400819BF500829DF5007F9A + F5007F9AF500859FF50088A2F6008FA7F60099AFF70095ACF70099AEF5005871 + C800BFCDF600000000000000000000000000000000005872C900889FEB0091A6 + EC0097ABED0098ABED0098ABED0099ACED0099ACED0099ACED0099ACED0099AC + ED0099ACED0099ACED0099ACED0099ACED0099ACED0098ABED0097ABED0091A6 + EC00889FEB005872C900000000000000000000000000000000005670C6007794 + F400AABCF800ADBEF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ADBEF800A9BBF800829C + F500546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D3DBF9006179D1008A9EE2009AAFF40099AFF70097ADF70097AD + F7009AAFF7009AAFF7009DB2F700A0B4F7008B9FE200687FCC005D78D5000000 + 000000000000000000000000000000000000000000005B76D2005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000000000000000000000000000005A74C7008CA3 + ED009BB0F700A6B9F800A9BBF800AABCF800AABCF800AABCF800AABCF800AABC + F800AABCF800AABCF800AABCF800AABCF800A9BBF800A5B8F80098AEF70092A7 + EF005972C6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005772CD00637BCC007A8FD90092A8F00098AD + F0009AAEF10092A8F000879DE6007A8FD9005772CD0092A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000728BDF007289 + D7009BAFF1009FB2F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3 + F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F2009EB1F2009AAEF1007389 + D700728BDF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F000728BE0005771C8005771 + C8005771C8005771C8005A75D100728BE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003044890030448900000000000000000000000000000000000000 + 0000000000003044890000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DBDBDB002E3F79002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B002E3E7700C5C5C500C5C5C500C5C5C500C7C7C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000263569004F5E9400000000000000000000000000000000000000 + 0000536BBA002635690000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000027366E004F65 + AE004F64AC00485B9B004F64AC004F64AC00485B9B004F64AC004F64AC00485B + 9B004F64AC004F64AC002736680026335C0026335B0026335B0026335B002632 + 5D002E3F7900CBCBCB0000000000000000000000000000000000000000000000 + 00000000000029397200627DD900334992000000000000000000000000003349 + 92005E71B3002939720000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F58AD003D59B9003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003A5097005169BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002C3D7A004F69 + BE000328A200032082001D3EAC000328A200032082001D3EAC000328A2000320 + 82001D3EAC004F69BE002C3D7A001D3EAC000328A200032082001D3EAC004F69 + BE002C3D7A000000000000000000000000000000000000000000000000000000 + 0000000000002C3C7700617DDA00445591007389D300000000007389D300495A + 9300526FD2002C3C770000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000283C82000730BA00042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB9003453B900283C820000000000364C9A002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00000000000000000000000000000000002E407E004F69 + C200042AA900032187001D3FB100052AA900042288001E40B100052AA9000321 + 87001D3FB1004F69C2002E407E001D40B300062CAB00052389001F42B400506A + C4002F4180000000000000000000000000000000000000000000000000000000 + 0000000000002E3F7C00617DDB005872C70032478800CED7F70033478800647B + CB002447BB002E3F7C0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027387A00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD001035B10027387A00000000002F4284005872CB004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8005872CB0000000000000000000000000000000000304385004760 + B30005248C0006258D000E2C910009278D0009278D000F2D900009278D000827 + 8D000D2B90004760B300304385002346BC000E34B5000B2A91002548BD00516C + C900314487000000000000000000000000000000000000000000000000000000 + 00000000000032458600617EDF00173CBA005472D800435492005D7ADA001238 + B700042BAF003245860000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002A3C7E00042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB0002A3C7E0000000000354A92005875D600BBC2 + DA00D0D8F400D0D8F400D0D8F400CED6F300CED6F300CED6F300CED6F300CCD5 + F200CDD6F300CED6F300CED6F300D0D8F400D1D9F400D1D9F300D3DAF400D5DC + F400E9EDFA005875D6000000000000000000000000000000000035498F00516E + CF001239BE00102F98002D50C600183EBF00133299002F52C600183EBF001231 + 99002B4FC600526FCF0035498F003256CE001F46C8001938A1003357CE005472 + D500384D95000000000000000000000000000000000000000000000000000000 + 00000000000034478B00627FE100042CB4002E53CB005B73C7002E53CB00042C + B400042CB40034478B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002C408400042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB9002C40840000000000384E99005876DB00BDC4 + DC00D2DAF500D1D9F500D1D9F500D1D9F500D1D9F500D1D9F500CFD7F400CFD7 + F400CED7F400CED7F400CED7F400CED7F500CED7F500CED7F500CED7F500CED7 + F500E6EBF9005876DB0000000000000000000000000000000000374D94005371 + D4001840C50015359E003256CC001E45C70018379F003558CC001E45C6001736 + 9F003054CC005371D400374D94003A5ED600274ED100203FA8003A5ED6005574 + DB003B519D000000000000000000000000000000000000000000000000000000 + 000000000000374B8F006280E300042EB9000932BC004164D8000932BC00042E + B900042EB900374B8F0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002F448C000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2002F448C00000000003C53A0005A79E000C0C7 + DE00D5DDF700D3DBF600D3DBF600D3DBF700D2DAF600D2DAF600D2DAF700D1D9 + F600D2DAF700D1D9F600D0D9F600D0D9F600D0D9F600CFD8F600CFD8F600CFD8 + F600E6EBFA005A79E0000000000000000000000000000000000039509A004B66 + C2001838A4001B3BA5002241A7001D3CA4001D3CA4002341A7001D3CA4001C3B + A4001F3EA6004B66C20039509A004064DC002F56DA002645AE004064DC005777 + E1003F56A4000000000000000000000000000000000000000000000000000000 + 0000000000003B509A00617FE5000430C4000430C4000430C4000430C4000430 + C4000430C4003B509A0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000354B9B000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D400042AAA00042A + AA00042AAA00042EB9000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D400354B9B0000000000435CAF006181EC00C2C9 + E000D8E0FA00D8E0FA00D7DFFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D6DE + FA00D6DEFA00D6DEFA00D6DEFA00D5DDFA00D5DDFA00D4DDFA00D4DDFA00D4DD + FA00E9EEFC006181EC00000000000000000000000000000000003F56A5005676 + E1002951D9002545AF004468DE003259DA002847AF004669DE003259DA002645 + AE003F64DC005676E1003F56A5004F73EB003F66E8003352BA004E72EA00597B + EB00455FB3000000000000000000000000000000000000000000000000000000 + 0000000000003E539E006180E7000432C9000432C9000432C9000432C9000432 + C9000432C9003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003850A3000537DD000537DD000537 + DD000537DD000537DD000537DD000537DD000537DD000537DD00C5C3C200C3C1 + BF00C0BEBC00042EBC000537DD000537DD000537DD000537DD000537DD000537 + DD000537DD000537DD000537DD003850A300000000004660B6006182F100C5CB + E100DAE1FB00DAE1FB00DAE1FB00D9E1FB00D9E1FB00D9E1FB00D8E0FB00D8E0 + FB00D8E0FB00D7DFFB00D7DFFB00D7DFFB00D6DEFB00D6DEFB00D6DEFB00D6DE + FB00EBF0FD006182F10000000000000000000000000000000000425AAA005778 + E5003058DF002A4AB300496DE300385FE0002D4CB3004D70E300385EDF002B4A + B200456AE2005778E500425AAA005579F000476DEE003A59BF005478F0005A7D + F1004963BB000000000000000000000000000000000000000000000000000000 + 0000000000004056A3006180E9000433CE000433CE000433CE000433CE000433 + CE000433CE004056A30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003B54AA000539E5000537E0000434 + D1000433CE000433CE000433CE000433CE000433CE000433CE00D9D8D700D7D5 + D400D4D2D100042BB0000433CE000433CE000433CE000433CE000433CE000433 + CE000434D3000538E2000539E5003B54AA00000000004962BA006283F200C7CD + E300DEE5FC00DDE4FC00DDE4FC00DCE3FC00DCE3FC00DCE3FC00DBE2FC00DBE2 + FC00DBE2FC00DAE2FC00DAE2FC00DAE2FC00D9E1FC00D9E1FC00D8E0FC00D8E0 + FC00EBF0FD006283F20000000000000000000000000000000000445DB100506E + D2002A4AB7002F4FB8003553B9003251B8003251B7003856BA003251B8003150 + B8003150B9004F6DD200445DB1005D80F2005075F100405EC1005B7EF2005C7F + F2004C66BD000000000000000000000000000000000000000000000000000000 + 000000000000455DAE006887ED001543DC001543DC001543DC001543DC001543 + DC001543DC00455DAE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F59B000193BAD004565CF005D7D + EA006082F2006082F2006082F2006082F2006082F2006082F200D9D7D600D3D1 + D000CDCBCA00516DCD006082F2006082F2006082F2006082F2006082F2006082 + F2005B7BE5003959C2001646E9003F59B000000000004C65BC006B8AF300CCD1 + E300E3E9FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DDE4 + FC00EDF1FE006B8AF300000000000000000000000000000000004A64BB005A7D + F1004169EF003857BF005B7EF1004C71F0003D5BC0005E80F1004C71F0003B59 + BF005478F000597CF1004A64BB006684E8005F81F2004D68C2006482E8005E80 + F2004E68BF000000000000000000000000000000000000000000000000000000 + 0000000000004760B3006D8BF0001F4CE1001F4CE1001F4CE1001F4CE1001F4C + E1001F4CE1004760B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000415AB1005E7CE2005579F100486F + F000466DF000466DF000466DF000466DF000466DF000466DF000F1F0F000EFED + ED00ECEBEA003B5DCC00466DF000466DF000466DF000466DF000466DF000466D + F000486FF000587CF2002247C400415AB100000000004D67BE006B8AF300CED3 + E300E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00EFF3FE006B8AF300000000000000000000000000000000004B65BD005C7F + F200466DF0003E5CC1006183F2005176F100425FC1006586F3005176F100405E + C100597CF2005B7EF2004B65BD006D89E9006787F300536DC2006986E8005F81 + F2004F69C1000000000000000000000000000000000000000000000000000000 + 0000000000004A63B8006F8DF1002854E7002854E7002854E7002854E7002854 + E7002854E7004A63B8004A63B8004A63B8004A63B8004A63B800516BC7000000 + 000000000000000000000000000000000000425BB200597CF2005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1004766CD004766 + CD004766CD004B6CDA005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1004D68C400425BB200000000004E68BF006B8AF300CFD4 + E300E7ECFD00E6ECFD00E6ECFD00E6ECFD00E6EBFD00E6EBFD00E5EAFD00E5EA + FD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8 + FD00F0F3FE006B8AF300000000000000000000000000000000004C66BD005473 + D9003D5BC100425FC1004965C2004763C1004864C1004C67C3004763C1004561 + C100425FC2005372D9004C66BD00728DE9006F8DF3005871C3006E8AE8006082 + F200516BC2000000000000000000000000000000000000000000000000000000 + 0000000000004F69C0007894F4003D66EF003D66EF003D66EF003D66EF003D66 + EF003C65EF004F69C0003656C2005579F1005378F1007592F4004F69C0000000 + 000000000000000000000000000000000000445DB5006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3007491F400445DB50000000000516BC2006D8CF300D3D7 + E400EBF0FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E7ECFD00E7ECFD00E6EC + FD00F2F5FE006D8CF300000000000000000000000000000000004E68BF005F81 + F200567AF2004C67C200718FF4006586F300516BC2007693F4006586F3004F69 + C2006888F3005D80F2004E68BF00829DF5007C97F4005D75C3007491F4005F81 + F200536DC4000000000000000000000000000000000000000000000000000000 + 000000000000506AC1007C97F400476EF000476EF000476EF000476EF000476E + F000466DF000506AC1003555C2005176F1005075F1007290F400506AC1000000 + 000000000000000000000000000000000000455EB6007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F400455EB60000000000526CC3007491F400D6D9 + E400EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0 + FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00F4F7FE007491F400000000000000000000000000000000004F69C0006082 + F2005B7EF2004F6AC2007794F4006B8AF300566FC3007C97F4006B8AF300536D + C2006D8CF3005E80F2004F69C00086A0F5007995F400566FC3006989F3005C7F + F200556FC6000000000000000000000000000000000000000000000000000000 + 000000000000516BC200819BF5005075F1005075F1005075F1005075F1005075 + F1005075F100516BC2002A4DBF004169F0004068F0006B8AF300516BC2000000 + 0000000000000000000000000000000000004660B70086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F5004660B70000000000546DC4007491F400D8DB + E400F0F3FE00EFF3FE00EFF3FE00EFF3FE00EEF2FE00EEF2FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0FD00EAEF + FD00F4F7FE007491F40000000000000000000000000000000000506AC1005775 + DA004D68C200546EC2005B73C4005A72C3005B73C3006077C4005B73C3005871 + C300526CC3005674DA00506AC1009CB1F70096ACF7007A91DC00819BEF006483 + EB005670C7000000000000000000000000000000000000000000000000000000 + 000000000000536DC40088A2F6006485F3006485F3006485F3006485F3006485 + F3006384F300536DC4000F35B6001546EC001546EC00577BF200536DC4000000 + 0000000000000000000000000000000000005570CD00A3B6F500A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F7008798D6005570CD00000000005770C7007B97F4001B46 + D500254ED600274FD600274FD6002850D6002850D6002850D6002850D6002850 + D6002850D6002850D6002850D6002850D6002850D600274FD600274FD600214A + D5001B46D5007B97F40000000000000000000000000000000000526CC3006283 + F2006989F3005D75C300859FF5007E99F500657BC3008DA5F6007F9AF5006279 + C4007A96F4006082F200526CC300375EE5003159E4002551E3005771C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546DC4008BA4F6006F8DF3006F8DF3006F8DF3006F8DF3006F8D + F3006E8DF300546DC400042BB0000538E5000538E5005075EF00546DC4000000 + 000000000000000000000000000000000000000000004963BA004963BA004963 + BA004963BA004963BA004963BA003D5BC300042EBC003B57B9004963BA004963 + BA004963BA004963BA003B57B900042EBC004963BA004963BA004963BA004963 + BA004963BA004963BA005670CE0000000000000000005871C800829CF5003E67 + F0005176F1005579F100577BF200597CF200597CF200597CF200597CF200597C + F200597CF200597CF200597CF200597CF200587CF200577BF2005579F1004A70 + F0003E67F000829CF50000000000000000000000000000000000536DC4006283 + F2006C8BF3006077C3008AA3F600839EF5006B80C40092A9F600849EF500657B + C3007C97F4006183F200536DC4005771C8005771C8005771C8005A76D2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC6008FA7F6007995F4007995F4007995F4007995F4007995 + F4007995F400556EC600042AA9000434D3000434D3005073E900556EC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A64BB000430C4004760B300000000000000 + 000000000000000000004760B3000430C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C90089A1F00093A9 + F2009DB0F2009FB2F400A0B3F400A1B4F400A1B4F400A1B4F400A1B4F400A1B4 + F400A1B4F400A1B4F400A1B4F400A1B4F400A0B3F400A0B3F4009FB2F40098AD + F20093A9F20089A1F00000000000000000000000000000000000546EC5005876 + DA00566FC3006379C4006C81C5006E82C4007083C5007587C6006E82C400687D + C4005B73C4005775DA00546EC500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005770C8009DB1F3008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F600697ECB0003269B00042AAA000930B3005D78D6005770C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516ABE002049D4004862BD004D66BD004D66 + BD004D66BD004D66BD004862BD002049D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005670C7005D80 + F200587CF2005972C3008EA6F60093AAF600798AC500A3B6F80087A1F5005B73 + C3006989F3005B7EF2005670C700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDA0095A8E80097ADF70096ACF70096ACF70096ACF70096AC + F70096ACF700758AD4001A36940003269B002042B3005E78CF005874CF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000536CC0006481E4000B39D4000434D3000434 + D3000434D3000434D3000B39D4006D88E3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C8006583 + EB00809AEE007B92DD009BB0F700AEBFF8009FAEDF00B2C2F9009EB3F7007C92 + DD00809AEE006382EB005771C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED007086D2009DB2F70098AEF7009CB1F7009DB2F7009AAF + F70095ACF70096A9EB005E74BF0016349A004D6ACB00657BC5007C93E6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006680D9007489D400879FF200829DF500829D + F500829DF500829DF500879FF2007489D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D2005771 + C8005771C8002A4DBF00425FC100566FC3005B73C3005A72C3004360C100294C + BF005771C8005771C8005A76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900647EDB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008196DC002F42 + 820056659A002F4282008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DADADA00CECECE00C0C0C000C0C0C0009EACDC00273360002631 + 590026315900384987008D9DD300C0C0C000C0C0C000CECECE00D3D3D3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000859AE000364C98004C5D99005F79CD003D5C + C4002447BD003D5CC4005F79CD00697CBD00364C9800859AE000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002B3F800030458B0000000000000000000000 + 00000000000000000000000000004055A3007085D00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000CED7F6002A3D7D0056669F004B5989002A3A + 73002A3A73007381AE005264A4002A3A73000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BC007D94DF007B94E7007F97E7008098E7008199E7008199E7008199E7008199 + E7008199E7008199E7008199E7008199E7008098E7007F97E7007C94E5006377 + BB004D66BC000000000000000000000000000000000000000000000000000000 + 00000000000000000000A9B9EE005062A1006E81C300627CD300294EC600294E + C600294EC600294EC600294EC6004161CD006E81C3005062A10039509E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008196DB002E4187005366A6003F4E84007287D200000000000000 + 0000000000000000000090A3E30039487D003F4E84002E4187008196DB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F65B600213783007181B600A3B4EB000000 + 000000000000354B97007281B300213783000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8004E66 + B7006686F3006888F3006F8DF3007592F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007391F4006F8DF3006888F3007F99 + F0004E66B700D2DBF80000000000000000000000000000000000000000000000 + 000000000000627ACE00465A9E006882DB004A6AD6003E61D3003E61D3002E53 + CF002E53CF002E53CF002E53CF003257D0005674D900748CDD006E82C600627A + CE00000000000000000000000000000000000000000000000000000000000000 + 0000364C980047578E005568AB003C58B800576CAF0030428500000000000000 + 0000000000000000000030468D005568AB004B65BB005568AB0047578E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F428600324CA4004F5E9300000000000000 + 000000000000A5B6EC004F5E9300324CA4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AEBDF100556C + BB00617FE30040508500576AAB00819BF500819BF500435180005D70B000829C + F500829CF5005A6CAB005C6FAF00819BF500425080005669AA005469AF007B97 + F400556CBB00AEBDF10000000000000000000000000000000000000000000000 + 00005469B1008BA0E8005E7CE2005A6DB400445AA9004D67C0006F83C8007590 + EA004469E3003A60E1004E67BE00445DB200445AA9005A6DB4007388CF009FB0 + EA005469B100ABBBF00000000000000000000000000000000000000000000000 + 0000A8B7ED00495A96006A81CF00042DB6001C41BD005771C500BAC7F2000000 + 000000000000374B9400576FBE002045BE000E35B8006880CF004D5E9B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334689002440A30033468900000000000000 + 00000000000000000000334689001C399F000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008FA3E900627A + CD004862BC0036488600445BA9006283F2006283F20031417700445BA9006283 + F2006283F200445BA900445BA9006283F20031417700445BA900445BA9007290 + F400627ACD008FA3E900000000000000000000000000000000004B66BF00435C + B4008F9FDA005878E0005B71BD009DAFED0000000000000000004860B5008299 + E7005B7DEC004E6EDD00455EB40000000000000000009DAFED00516AC600859C + E60092A3DB004761BA004B66BF00000000000000000000000000000000000000 + 000000000000455EB2006B7DB900042FBF00042FBF003C5DCC00465EB2000000 + 0000000000005267AE004161CE00042FBF004363CE007081BD00455EB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000465EB100364A8F002B49AB00364A8F00000000000000 + 000000000000364A8F00364A8F001D3CA5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000768EE1006079 + CD003955B3002F458F003751A8005075F1005075F100273975003751A8005075 + F1005075F1003751A8003751A8005075F100273975003751A8003751A8006183 + F2006079CD00768EE10000000000000000000000000000000000455FB600A4B4 + E900708CE9006076C4005169BB00000000000000000000000000627CD500798F + DC006A89F2005471D500627CD5000000000000000000000000004E67C5006076 + C400708CE9006E82CB00455FB600000000000000000000000000000000000000 + 000000000000D1DAF70044589E002048CD000431C7000E39CA00485CA000899D + E300A9B9EF005772D1001740CB000431C7007189D70044589E00BDC9F3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000394D9500394D95003350B300394D9500000000000000 + 0000000000003953AE00394D95001E3EAC000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007790E100657E + D3002844A200243D8E002C48A7003E67F0003E67F0001E3274002C48A7003E67 + F0003E67F0002C48A7002C48A7003E67F0001E3274002C48A7002C48A7005075 + F100657ED3007790E100000000000000000000000000000000004861B8008CA3 + EF004F74F100607EE0004A63BC00000000000000000000000000AEBDF200657A + C400839EF500586FBF00AEBDF200000000000000000000000000BFCCF5008DA1 + E800839EF500587CF2004861B800000000000000000000000000000000000000 + 0000000000000000000000000000778DD7002C55DE000536D9004D6FE100576D + BA005369B4000D3DDA000536D9002751DE00455DB00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003E53A1003E53A1004260C2003E53A100000000000000 + 0000000000004260C2003E53A1002143B8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC2005E7A + D8000D257600112D8A00123095001A45D6001A45D6000C216800123095001A45 + D6001A45D60012309500123095001A45D6000C2168001230950012309500335B + E1005E7AD800516AC200000000000000000000000000000000004962B9008FA4 + EF005E7DE500516ABD0090A4EA00000000000000000000000000D2DBF8006076 + C20087A1F500576FBF00D2DBF800000000000000000000000000000000005970 + C0008CA1EC00849EF5004962B900000000000000000000000000000000000000 + 00000000000000000000000000005C71BD006886EA000E3FE200204EE5005A78 + DE00607BDA000538E2000A3CE3005E7EEA00758CDE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004157A7004157A7004A66C9004157A700000000000000 + 0000000000004A66C9004157A7002246BD000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D66BA005E7A + D80003185F0005207B00062489000833C3000832BD0004195F00062489000833 + C3000832BD0005218000062489000833C30004195F0005218000062489001A43 + CE005E7AD8004D66BA00000000000000000000000000000000004A63BA0092A8 + F0005971C4007790E2000000000000000000000000000000000000000000546C + BF0091A7F2005068BD0000000000000000000000000000000000000000007790 + E200697EC90091A7F2004A63BA00000000000000000000000000000000000000 + 00000000000000000000000000005570CC00768DD9004068EF00073BEA003560 + EE003A63EE00073BEA003963EE00778EDD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000445CAD00445CAD00516ED000445CAD00000000000000 + 000000000000516ED000445CAD002449C4000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004960B2005D7D + EA0002175D000216580002165800042CB300042BAC0002175D0002175D00042C + B300042BAC000216580002175D00042CB30002175D000216580002165800173E + C2005D7DEA004960B200000000000000000000000000000000004C65BC007A8D + D000000000000000000000000000000000000000000000000000000000004C65 + BC009AAEF1004C65BC0000000000000000000000000000000000000000000000 + 000000000000526CC9004C65BC0000000000000000005F7FE9006381E9006382 + E9006483E9006483E9006483E9006784EA006A87EA006484EE001A4AED001A4A + ED001A4AED002654EE006484EE006986EA006583E9006483E9006483E9006483 + E9006382E9006381E9004A64BB00000000000000000000000000000000000000 + 000000000000000000004963B9004963B900607CDC004963B900000000000000 + 000000000000607CDC004963B9003458D2000000000000000000000000000000 + 000000000000000000000000000000000000000000003C4E9300405190000D26 + 7800031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D000D2678003C4E8C00879DE200000000000000000000000000536ECA004F6A + C50000000000000000000000000000000000000000000000000000000000536E + CA009DB0F200536ECA0000000000000000000000000000000000000000000000 + 00000000000000000000536ECA000000000000000000587CF2001949ED001D4D + ED002050ED002150ED002150ED002352ED002352ED002352ED002352ED002352 + ED002352ED002352ED002352ED002352ED002251ED002150ED002150ED001F4F + ED001D4DED001949ED004B65BC00000000000000000000000000000000000000 + 000000000000000000004C66BD004C66BD006782E0004C66BD00000000000000 + 0000000000006782E0004C66BD003C60D7000000000000000000000000000000 + 000000000000000000000000000000000000000000007A93E4003F64E0004569 + E0004A6DE0004C6EE0004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6F + E1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004C6EE000486B + E0004569E0004266DD004C64B700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546ECB006177C5006177 + C5007893ED006177C5006177C5005C73C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005B7EF2001F4FED002453 + EE002957EE002A57EE002B58EE002D5AEE002D5AEE002D5AEE002D5AEE002D5A + EE002D5AEE002D5AEE002D5AEE002D5AEE002C59EE002B58EE002A57EE002755 + EE002453EE001F4FED004C66BD00000000000000000000000000000000000000 + 000000000000000000004D67BE004D67BE006E88E2004D67BE00000000000000 + 0000000000006E88E2004D67BE004365DA000000000000000000000000000000 + 000000000000000000000000000000000000000000007290F4006A8AF3006888 + F300708EF4007290F4007290F4007391F4007391F4007391F4005771CE00354A + 940032458D007391F4007391F4007391F4007290F4007290F4007290F4006E8D + F3006888F3006A8AF3005771C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC005069C0005069 + C000A9BAF3005069C0005069C0005069C0000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF005870C300829AEB00426AF000426A + F000426AF0004D72F100849CEE005870C3004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF00546FCB00000000000000000000000000000000000000 + 000000000000000000004F69C0004F69C000879EE9004F69C000000000000000 + 000000000000879EE9004F69C0005171DE000000000000000000000000000000 + 000000000000000000000000000000000000000000005872CA005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9003C53A3005072 + E2000535D7005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90093A8ED00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C100B0C0F600516AC10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005975D1007B90DA007592F4004D72F1007794 + F4007995F4004D72F1007592F4007D92DD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000506AC100506AC1009AAEF0005D75C600000000000000 + 0000D3DBF9009AAEF000506AC1005977DF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAF004F73 + EB000538E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000092A7EC00526B + C200A0B3F400526BC20092A7EC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006278C800869EF2005F81F2006989F300A1B3 + EE00A3B3ED00567AF2005C7FF200859EF20092A5EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200516BC200A3B2E7008396D900000000000000 + 0000607BD700A3B2E700516BC200607DE1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004760B8005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB1F000BDCAF6009FAE + E3007287CF00A6B4E400CAD5F800798DD2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A92E4008CA4F4006D8CF3006A8AF30099ABEA00556F + CB00556FCB00859FF5006A8AF3006D8CF3007389D3007A92E400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400546DC400718AE0007388CF00C9D3F500C9D3 + F500B2C0EC00718AE000546DC4006E89E4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C65BD005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000627DD8009AAAE1005973 + CF00D3DBF9005973CF00A4B2E300C0CBF1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005971C80086A0F5007592F4007C97F4006B81CC009FB1 + F000AEBEF300A7B9F5007F9AF5007592F40092A7EE005D75C800D3DBF9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC500556EC500000000009FB1F000556EC500556E + C5005D78D50000000000556EC5007892E6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004E68BF005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000566FC7007085CF00D3DB + F90000000000D3DBF9007488D100C7D1F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006983DD007E92DA007F9AF5007F9AF5009AAFF7005D78D5000000 + 0000000000008DA0DF009CB1F7007F9AF50094ABF6008195DC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600566FC6000000000000000000000000000000 + 00000000000000000000566FC6008AA0EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000647EDA00B1BEE8005B76 + D200D3DBF9005B76D200AAB8E800A5B5ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000647EDA0090A3E4009DB2F70093AAF600AABCF7008497D900000000000000 + 0000000000007C93E5008497D900A9BBF7008BA4F60097ADF70093A6E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000647EDA008B9FE2005B76D200AFBFF300000000000000 + 0000000000005B76D2008C9EDF00A2B2E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005971C7005075 + F1001345EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB2F000D3DCF900B2BF + E9007B8FD400AEBCE700CDD7F800798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005B76D2008195D900AEBDF100A0B4F700A3B4ED005A74CF00000000000000 + 000000000000000000005A74CF00A1B1EC00ACBDF700A2B2EC00778CD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF600BFCBF200A2B1E600778BD3005872C9005872 + C9005872C900A0AFE300BCC9F2006F84D0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005972CB006A86 + E4006A86E4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758AD300BFCA + EF00D7DFF900C1CBEF00758AD3006B85DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007C93E6005C75CC00A5B6EF006F84D0009FB2F000000000000000 + 000000000000000000009FB2F0006F84D0008296DA005872CA00879CE9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000677ECE00A0B0E400C8D3F600CAD4F500CAD4 + F500CAD4F500A6B5E8006F85D00093A8ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000093A8ED005872 + CA005872CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 00000000000000000000DADADA00C1C1C1002C3C720025315900253159002531 + 590025315900253159002531590025315900C1C1C100C8C8C800DADADA000000 + 0000000000000000000000000000000000000000000000000000798CD2001926 + 54001F2E65002233700024367500243675002436750024367500243675002436 + 7500243675002436750024367500243675002436750024367500243675000000 + 0000000000000000000000000000000000000000000000000000000000002E3E + 79002A396C0090A1D600C8C8C800B6C3EC00667CC4003D559D0025356A002535 + 6A00243468003C5198006277BD00ABB9E500C3C3C30090A1D6002A396C002E3E + 7900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 00000000000000000000000000000000000027387100425CB10013339E001333 + 9E0013339E0013339E001F3DA300425CB1000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001A2755002231 + 6A003655BD001C41BA00042CB300042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300072FB400193EB9003656C200273A + 7D00667DCD000000000000000000000000000000000000000000000000003B51 + 9F0003279F0022377D002F3F79003C56AA002F4CAF001F3FA9000F31A3000F31 + A3000F31A3001F3FA9002F4CAF003C56AA002F3F790022377D0003279F003B51 + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 000000000000000000000000000000000000293A7500435DB60003279E000327 + 9E0003279E0003279E001334A300435DB6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001B2957002333 + 6D003555BF00042DB700042DB700042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB700042DB7003556C500AAAF + BE00293D80000000000000000000000000000000000000000000000000005871 + C1001C368C00374986003F57A9001639AD001034AB002344B1003553B7003553 + B7003553B7002344B1001034AB001639AD003F57A900374986001C368C005871 + C100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000002C3D7B00435EBB000328A4000328 + A4000328A4000328A4001336AA00435EBB000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001D2A5A002435 + 70003656C300042EBB00042EBB00042EBB00042EBB00042EBB00042EBB00042E + BB00042EBB00042EBB00042EBB00042EBB00042EBB00042EBB003658C800B6BB + C8002A3E84000000000000000000000000000000000000000000000000008297 + DE003C4E8D003C58B6002244B6002849B8005C73C1009EA8C800CCCCCC006C6C + 6C00CCCCCC009EA8C8005D74C200294AB9002244B6003C58B6003C4E8D008297 + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 000000000000000000000000000000000000314486004361C500042CB100042C + B100042CB100042CB1001439B6004361C5000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001F2D5F002839 + 77003658C9000430C3000430C3000430C3000430C3000430C3000430C3000430 + C3000430C3000430C3000430C3000430C3000430C3000430C3003559CF00BEC3 + D1002E438D000000000000000000000000000000000000000000D0D8F7003C4E + 91002348C300163DBE004B66C100DFDEDE00F5F5F500F8F8F800F9F9F900FAFA + FA00FAFAFA00FBFBFB00F8F8F800E2E2E2004D68C300163DBE002348C3003D50 + 9300D0D8F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000033478C004362C900042DB700042D + B700042DB700042DB700143BBC004362C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000203063002A3B + 7B00375ACD000633C8000633C8000633C7000633C7000633C7000633C7000633 + C7000633C7000633C7000633C7000633C7000633C8000633C800375BD300C3C8 + D600314691000000000000000000000000000000000000000000566FC400455C + A900113AC3004765CB00B1B4BB00E2E2E200F5F5F500F6F6F600F7F7F700F8F7 + F700F8F8F800F9F9F900F9F9F900FAFAFA00B7BAC1004967CD00113AC300455C + A900566FC4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000364A91004363CF00042FBE00042F + BE00042FBE00042FBE00143CC3004363CF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000213164002B3D + 7E003D5FD1000F3BCD00103CCE00123ECF00123ECF00123ECF00123ECF00123E + CF00123ECF00123ECF00123ECF00123ECF00103CCE000F3BCE003D61D700C6CB + DA003248940000000000000000000000000000000000D1DAF7003F539C004463 + CA003156CF00A2AAC700E1E1E100EEEDED00D6D6D600F3F3F300F4F4F400F5F5 + F500F6F5F500F7F6F600F7F7F700F8F7F700E9E9E900A8B1CE003055D0004463 + CA003F539C00D1DAF70000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000003B519C003B519C003B51 + 9C003B519C003B519C003B519C003B519C003B519C004366D8000432CB000432 + CB000432CB000432CB00143FCE004366D8003B519C003B519C003B519C003B51 + 9C003B519C003B519C003B519C004B63BA00000000000000000025356A002E41 + 8400496BDA00214BD900244ED9002750D9002750D9002750D9006985E5006985 + E5006985E5002750D9002750D9002750D900244ED900204AD800486BDF00CFD4 + E400364D9C0000000000000000000000000000000000556EC7004B68C700385E + DD009CA5C800E5E4E400E9E8E800EAEAEA00EBEAEA00E1E0E000EEEDED00EBEB + EB00EFEFEF00F1F0F000F1F1F100F2F1F100F3F3F300F1F0F000A5AED100385E + DD004B67C700556EC70000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000004F6ED500516FD5005270 + D6005270D6005270D6005270D6005270D6005370D600496CDE000E3CD4000E3C + D4000E3CD4000E3CD400113ED4004A6DDF005270D6005270D6005270D6005270 + D6005270D6005270D600506ED4003E55A300000000000000000027366E003044 + 88004E6FDE002A53DE002E57DF00325ADF00325ADF005878E500112B8400112B + 8400112B8400325ADF00325ADF00325ADF002E57DF002A53DE004F72E400D3D8 + E8003951A000000000000000000000000000000000004960B3004C6DDB003A61 + E300C8C9D000E7E6E600E6E6E600E6E5E500E7E6E600E8E7E700BEBEBE00D2D2 + D200D5D4D400EDECEC00EEEDED00EEEEEE00F0EFEF00F1F0F000CFD1D8003960 + E2005473D9004660B7000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 00000000000000000000000000000000000000000000476BE300244FDD002852 + DE002953DE002953DE002953DE002953DE002A53DE00224DDD001C48DC001C48 + DC001C48DC001C48DC001C48DC00224DDD002953DE002953DE002953DE002953 + DE002953DE002852DE00496DE3004058AA000000000000000000283870003246 + 8C005475E200335BE300385FE3003C62E3003C62E3005268B000607FE8007792 + EC007792EC00607FE8003C62E3003C62E300385FE300325BE3005476E700D6DB + EC003B52A50000000000000000000000000000000000455EB2005474E0004369 + E900E0E0E000EFEEEE00EDECEC00EAE9E900E9E8E800E7E6E6007B7979006A68 + 68007F7D7D00E9E8E800EAE9E900EBEAEA00ECECEC00EDECEC00DEDDDD004268 + E8005878E100455EB2000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000005175ED00325CEA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA00577AEE00465FB50000000000000000002B3B7500354A + 9400607FE800446AEA004A6FEB004F73EB004F73EB0042548F0042548F004F73 + EB0042548F0042548F004F73EB004F73EB004A6FEB004369EA006081EE00DFE4 + F5003F58AD00000000000000000000000000000000004A64BB006E8BEE005A7D + F200E9E9E900F9F8F800F8F8F800F6F6F600F5F5F500F4F4F4009F9E9C009290 + 8E009F9D9B00EDECEC00EBEBEB00EAE9E900E7E6E600E6E5E500D7D6D600587C + F2007490EE004A64BB00000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000005579F1003E67EF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF005C7FF2004963BA0000000000000000002D3E7800384D + 97006685EC004C71EF005377EF00597CF000597CF00044569100364B90008BA3 + F400364B900044569100597CF000597CF0005377EF004B70EF006686F100E3E9 + FA00415BB10000000000000000000000000000000000526CC100819BEF006384 + F300DBDDE200FCFCFC00FBFBFB00FAFAFA00F9F9F900F9F8F800E0DFDF005856 + 5500DEDDDD00F3F3F300F2F1F100F1F0F000EEEDED00EDECEC00CCCDD2006183 + F20089A1F100526CC100000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000597CF2004B71F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1006183F2004A64BB0000000000000000002E407A003A50 + 9A006B89EE005277F1005B7EF2006384F3006384F300394D91003B57B400223C + 90003B57B400394D91006384F3006384F3005B7EF2005277F1006C8BF300E6EC + FD00445DB400000000000000000000000000000000005F79D2008DA1E6006D8C + F300BEC5DE00FAFAFA00FDFDFD00FDFCFC00FCFCFC00FCFBFB00FBFAFA007674 + 7300F9F9F900F8F7F700F7F7F700F6F6F600F4F4F400F0EFEF00B7BDD6006B8A + F30092A5E7005F79D200000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587CF2005479F1006183 + F2006888F3006888F3006888F3006A8AF3006E8DF3006D8CF3006D8CF3006D8C + F3006D8CF3006D8CF3006D8CF3006E8DF3006A8AF3006989F3006888F3006888 + F3006686F3006183F2006082F2004C66BD00000000000000000030417B003C51 + 9C007792EF006283F2006C8BF3007592F4007592F4007592F400294190002941 + 9000294190007592F4007592F4007592F4006B8AF3006183F2007693F400E6EC + FD00465FB70000000000000000000000000000000000919FD0005C74C500A6B8 + F3009FB3F700C5CADA00EFEFEF00FFFFFF00FFFFFF00FFFEFE00FEFEFE008785 + 8400FEFEFE00FDFDFD00FDFDFD00FCFCFC00ECECEC00C4C9D9009DB2F600A3B5 + F3005D75C5008A97C600000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005A7BE9006987EA006E8A + EA00728EEA00738EEB00738EEB00748EEB007994EB00849EF5007B97F4007B97 + F4007B97F4007B97F4007C97F4008CA5F600748EEB00738EEB00738EEB00728E + EA00718DEA006E8AEA005E7EE9004D67BE00000000000000000031427C003D53 + 9C007C96F0006A8AF3007491F4007E99F5007E99F5007E99F5007E99F5007E99 + F5007E99F5007E99F5007E99F5007E99F5007491F4006888F3007C97F400E6EC + FD004761B800000000000000000000000000000000007F7E7D008390C10092A3 + DD0091A8F600B2C1F300C2C3C700FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9B + 9A00FFFFFF00FEFEFE00FEFEFE00EBEBEB00C0C1C500B1C1F3008DA5F50091A2 + DD00818FBE008785840000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF004E68BF007391F40087A1F50087A1 + F50087A1F50087A1F5008BA4F600829DF5004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF00546FCB00000000000000000032437D003E53 + 9E007F99F000708EF4007B97F400849EF500849EF500849EF500849EF500849E + F500849EF500849EF500849EF500849EF5007A96F4006F8DF300819BF500E6EC + FD004862B90000000000000000000000000000000000B2B0AF009A9CA6005E76 + C70096ACF700A3B6F800B8C4EC00E5E5E500FBFBFB00FFFFFF00FFFFFF00D7D6 + D600FFFFFF00FFFFFF00FBFBFB00E5E5E500B7C3EC00A0B4F70092A9F6005E76 + C7009498A100B5B4B30000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA004863C0004D68 + C1004D68C2004D68C2004D68C2004D68C2004D68C2004C66C1004964C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000506AC1007290F400A2B6F800A3B6 + F800A3B6F800A3B6F8009FB3F700859FF5000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034447F004056 + A00088A0F1007B97F40086A0F50091A8F60094ABF60095ACF70095ACF70095AC + F70095ACF70095ACF70094ABF60091A8F600849EF5007A96F40089A2F600E6EC + FD004A64BB0000000000000000000000000000000000BDBCBB00A3A1A0007978 + 77007B90D300BAC8F600A9BBF800C9D5FB00D1D8F200D0D3DE00CECECE006D6D + 6D00CECECE00D0D3DE00D1D8F200C8D4FB00A5B8F800B8C6F6007B90D3007372 + 71009B999800B5B4B300000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00607EE4005D7C + E2005E7DE3005E7DE3005E7DE3005E7DE3005E7DE3005D7CE2006B87E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000516BC2007693F400B0C0F900B1C1 + F900B1C1F900B1C1F900ABBDF8008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034457F004156 + A1008DA4F2007F9AF50088A2F60094ABF60097ADF70098AEF7009AAFF7009AAF + F70099AFF70098AEF70097ADF70094ABF60087A1F5007E99F5008DA5F600E6EC + FD004C65BC0000000000000000000000000000000000B4B3B200908E8D007D7B + 7A006C7BAA00758AD200B8C6F200B8C7F900C1CEFA00CED8FB00D5DEFC00D5DE + FC00D5DEFC00CDD8FB00BFCDFA00B6C6F900B6C4F200748AD200707DAE007371 + 700089888700B1B0AF000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00728DEA0094A9 + ED0096AAEC0096AAEC0096AAEC0096AAEC0096AAEC0093A8ED007B95EB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000526CC3007A96F400BDCBFA00BDCB + FA00BDCBFA00BDCBFA00B5C5F9008FA7F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000354681004157 + A2008FA6F100819BF50089A2F60093AAF60096ACF70097ADF70098AEF70098AE + F70098AEF70097ADF70095ACF70093AAF60087A1F5007F9AF5008FA7F600E6EC + FD004D66BD0000000000000000000000000000000000A9A8A600898887006E6C + 6B008C8B8B00919BBC00637BCB00C6D1F700C0CEFA00BECCFA00BAC9FA00BAC9 + FA00B7C7F900BCCAFA00BECCFA00C4D0F700627ACB0097A1C200989796006F6E + 6D00817F7E00ADABAA00000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC5007C97F400CBD6FB00CDD8 + FB00CDD8FB00CDD8FB00C0CEFA0093AAF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000364882004156 + 9D006984E30097ADF7009AAFF7009DB2F7009EB3F7009FB3F7009FB3F7009FB3 + F7009FB3F7009EB3F7009EB3F7009DB2F70099AFF7009CB0F3007B8FD500E6EC + FD004F69C00000000000000000000000000000000000B3B3B300A19F9D00CBCA + CA00F2F1F100DEDEDE00B9B9B9007D808B008891B2006B81D3005771C8005771 + C8005771C8006681D8008A93B4007D808B00A8A8A800D1D1D100F2F2F200D6D5 + D500A9A8A6009F9F9F000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000546EC5007995F400C7D3FB00CCD7 + FB00CDD8FB00CAD5FB00B7C7F9008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004459A7003D4F + 91005366A900506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC1006E82CB00E6EC + FD005069C0000000000000000000000000000000000000000000B4B4B400AAA9 + A700E4E4E400D2D1D100BAB9B900A09F9D00A0A09F0000000000000000009896 + 94000000000000000000B4B4B400A09E9D00B1B0B000C9C9C900E1E0E000B1AF + AE00A0A09F000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000556FC6006F8DF300B2C2F900BECC + FA00C0CEFA00B6C6F900A2B6F800829CF5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F2003B4F + 950097A0C200C9D0E900E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00CCD3 + F000506AC3000000000000000000000000000000000000000000000000000000 + 00009F9D9B00A9A7A500A1A09E00C8C8C800000000000000000092918F009896 + 940092918F000000000000000000D5D5D5009F9D9B00A9A7A5009F9D9B00C8C8 + C800000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005A76D2005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C0C0 + C0004153940034458000344580009FADDD00C0C0C000C0C0C000C0C0C000C0C0 + C000C0C0C000C0C0C000CBCBCB00CECECE00CECECE00DADADA00DEDEDE00DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B8C5 + F1002338820014309000143090002F407C00A8B8E80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BECCF4003D56AA003A57 + BC008CA2EB008695CC008695CC002650DD003A57BC003D56AA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C400C1C1 + C1003E5194003E5194003E5194003E5194003E5194003E5194003E5194003D50 + 92003B4D8B003647800034447C00324177002C3B6C002A38670029366200B1BC + E500C4C4C400DDDDDD0000000000000000000000000000000000000000000000 + 0000D4D4D400C5C5C50030428100273567002735670027356700273567002735 + 670027356700273567002735670027356700273567002F428100D1D1D1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BB5004967CD003761 + EE008A9AD4004964C1004964C10095ABF5003761EE004967CD00BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000637A + CC0091A4E50095A9EC0095A9ED0091A6ED008EA4ED008BA2ED00849CEB008199 + E9007E96E400788FDB00758CD7007187D1006A7FC500687CC0006F7FB700455A + A300000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D4188008895C1008895C1008895C1008895C1008895 + C1008895C1008895C1008895C1008795C1006474A9002D438D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC9004068F00097AC + F5004A65C20000000000000000008E9DD6009EB2F600476EF000455DB700BECC + F500000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000405A + B4008CA5F60089A2F60089A2F6007C97F4007391F4006989F300567AF2004C71 + ED004469E6003157D600274DCD001D43C3000A2FAE000328A3003652AF002636 + 6A00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F200283C8200283C8200283C8200283C8200283C + 8200283C8200283C8200283C8200283C82002E479500BAC6F200000000000000 + 0000000000000000000000000000000000000000000028387100283871002838 + 7100283871002838710028387100283871002838710028387100283871002838 + 7100293C7A000000000000000000000000000000000000000000000000000000 + 0000000000004B62B100283871000000000000000000A5B6EF006283F200697F + CC00000000000000000000000000000000004C67C30095A4D9006888F3006E86 + D8004861BA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435D + B500A3B6F800ACBDF800A2B6F8008DA5F600829DF5007894F4006283F2005679 + EE004B6FE700365BD7002C51CE002146C4000B30AE000328A30003269B002838 + 6D00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002B408A00283C7E00283C7E00283C + 7E00283C7E00283C7E00283C7E002B408A000000000000000000000000000000 + 000000000000000000000000000000000000000000004862B8004E67BA005069 + BB004D66BA004C66BA004A64B8004660B700435EB600435DB6007D8FCC00929D + C00033447F000000000000000000000000000000000000000000000000000000 + 0000A3B4EB0035447D003446820000000000000000009AAADC00A6B9F8007591 + F1004D67C4000000000000000000000000009BAFEC004159B200B2C2F8007391 + F4006F85D0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455F + B700A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A39 + 6D00000000000000000000000000000000003A53A7002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E003A53A700000000004F69BF002948B1002F4D + B3002B4AB2002646B0002142AF001739AB001033A9001538AA00929EC4003749 + 8600ACBBEB000000000000000000000000000000000000000000000000000000 + 000033488F0051629F00445CA90000000000000000004F67BD00B9C4EA00B1C1 + F9006F85CF004E69C50000000000465EB6006177C1005266B10095A3D300839E + F50099ACEC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004761 + B800A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A3A + 6F00000000000000000000000000000000002F44910094A7E90099ABEA009BAD + EA009BADEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009BAD + EA009AACEA0099ABEA008CA1E7002F449100000000005C76CC004C68C7005570 + CA004B67C7004562C500405EC4003454C000546FCA006E80BC00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000004455 + 92004964BF006980CC00B4C3EF00000000000000000000000000BFCCF5005169 + BF00C5D1FA00A5B7F6007D91D3007A8DCB00A5B8F7006485F3005872C5004357 + 9F008796CD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B65 + BC00A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F40013192E000000 + 0000171C2C00365BD7002C51CE002146C4000B30AE000328A30003269B002D3D + 71000000000000000000000000000000000032499900617EE100708AE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400708AE4009CAEEC003249990000000000607AD1005873CF00627C + D2005873D000526ECD004D6ACC004261C9004F6CCC00586FBA00000000000000 + 0000000000000000000000000000000000000000000000000000556EC3004D67 + BC003F5FC8008596D0000000000000000000000000000000000000000000BFCC + F500C4CCEC00C8D4FB00A9BBF700425DB90097A7DD00A4B7F8005E80F1005A73 + C7003B519C000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4001F1F1F000C0C + 0C001F1F1F00365BD7002C51CE002146C4000B30AE000328A30003269B002F3E + 720000000000000000000000000000000000334B9D005D7BE1006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3009BAEED00334B9D00000000006580D700637ED6006F88 + DA00647FD700607BD6005A76D4004E6CD1004766CF005C77D2005871C5000000 + 000000000000000000000000000000000000CCD6F700455EB10044599E003255 + CA00385ACB008392C20000000000000000000000000000000000000000000000 + 0000536BC100C4CCEC00C8D4FB008E9ED8004F67BA0098A7DE006485F3005E80 + F1005B74C800BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F69 + C000A5B8F800ACBDF800A2B6F8008DA5F600829DF5007894F4003C4257003333 + 330041465600365BD7002C51CE002146C4000B30AE000328A30003269B002F3F + 740000000000000000000000000000000000354DA1005474E1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE10099ACEE00354DA100000000006C86E0007891E300889E + E6007E96E4007992E300748EE2006984E0006480DE005977DC006580D8005269 + B900485EA600445BAA004359A600455BA5005570CC004F6FDA003459D5002F55 + D40095A5D9004960AE0000000000000000000000000000000000000000000000 + 000000000000BFCCF500556DC300D5DCF600D5DCF6008E9DD6009AA9E000A4B7 + F8006485F3005D76CA0040549E002D44910019379D002D438F00374B90000000 + 000000000000000000000000000000000000000000000000000000000000536D + C60090A8F6009AAFF7009DB2F7008FA7F60086A0F5007E99F5006C8BF3006383 + F000597AE9004769DA003E60D2003457C9002244B6001C3DAC003652AF003141 + 7600000000000000000000000000000000003952A9004065E000466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE10093A8EE003952A900000000006E89E5007E96E70094A8 + EB008BA1EA00869DE8008199E8007690E600718BE5006B86E3006683E3006B86 + E300607EE2005270D3005A76D5005A78DE004A6CDE003158D900264FD8006D88 + E2008090C500879CE10000000000000000000000000000000000000000000000 + 00000000000000000000D2DBF8005873CE005873CE00657FD9004E68C1009AAA + E200A4B7F8005E80F1005E77CB003E55A3006A84D8000D37C2002846AA00BDC9 + F40000000000000000000000000000000000000000000000000000000000718A + E1008CA3EE0093A8F00096ABF00093A8F00091A7F1008FA5F00089A1EF00879F + ED00849BE8007E94DF007B91DA00788DD4007286C9007083C5007283BE004F66 + B400000000000000000000000000000000003B55AC00385FE0003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E10091A7EF003B55AC00000000006D89E7007C96EA0097AB + EE009DB0F00093A8EE008DA3ED00839BEC007D97EB007792E9006D89E8006381 + E7006482E700607FE6005E7DE6005072E3004065E1003D62E100335ADF00A8B6 + E400566BB8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600506A + C3009BABE2006485F3005E80F1005F78CC008C9CD100839BE9001543DA00475F + B300BFCCF5000000000000000000000000000000000000000000000000000000 + 00005771C800888C9C0094939200888C9C005771C8005771C8005771C800556E + C400516ABD004B62AE00485EA7006D717D006C6B6B005E616D003A4A83000000 + 0000000000000000000000000000000000003C56AE002E56DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE008EA4EE003C56AE00000000005F80EE00A0B3F500ACB9 + E700B9C6F100A5B7F500A0B3F5009DB1F40097ACF40092A9F400869FF200819B + F1007D97F100728FF0006C8AF0006786EF005B7DED005074EC007F99F0005C76 + CC00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DF00516DCC009EADE400A4B7F8006485F3006C80C5004E67BF0093A3DD003761 + EF005270D600516AC30000000000000000000000000000000000000000000000 + 00000000000080808000C6C6C600808080000000000000000000000000000000 + 0000000000000000000000000000808080004646460080808000000000000000 + 0000000000000000000000000000000000003D57AF001C47D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D80089A0EB003D57AF0000000000859FF400A6B6E8005E76 + C700768BD200BDCAF600A4B7F700A8BAF700A4B7F7009FB3F60094ABF6008EA6 + F50088A1F500809BF5007A96F4007592F4006384F300839DF400B3C1ED00D3DB + F900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B75 + D2006B87E6005A72C800A0AFE500AEBFF8007F93D7009FB1EF005671CD009FB3 + F600496FF0005E7AD900BFCDF600000000000000000000000000000000000000 + 00000000000080808000CBCBCB00808080000000000000000000000000000000 + 0000000000000000000000000000808080004C4C4C0080808000000000000000 + 0000000000000000000000000000000000003E58B0001340D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D500869DE9003E58B00000000000A3B3E8006078C800B4C1 + F2005974CF007D91D600BBC9F800A2B6F800AEBFF800ACBDF800A1B5F7009CB1 + F70097ADF7008BA4F600859FF5007E99F50097ADF700B6C2EE006A80CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D3009AACED006C85D8005770C7008598D9005872CA0000000000000000009AA8 + DF00A8BAF700597CF200526BC400000000000000000000000000000000000000 + 00000000000080808000D0D0D0007F7F7F000000000000000000000000000000 + 0000000000000000000000000000888888005050500080808000000000000000 + 0000000000000000000000000000000000003F59B1000B39D3000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D200839AE8003F59B1000000000000000000000000000000 + 00000000000000000000647EDA0096A8E300C1CEF800C3D0FA00B1C1F900A9BB + F800A5B8F800ABBDF800BAC9F900C1CCF400627BCE00BBC9F500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005972C800A9BBF8007995F2007389D6000000000000000000000000000000 + 00005872CF009AAAE3008FA4EB005C77D4000000000000000000000000000000 + 00000000000080808000D4D4D40082828200C6C6C60000000000000000000000 + 00000000000000000000C6C6C600969696006060600086868600000000000000 + 000000000000000000000000000000000000415BB2000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE008299E600415BB2000000000000000000000000000000 + 00000000000000000000000000005874CF00657DCD008497DB00B9C7F300C1CD + F600C0CDF600A7B6E700889AD900667FCC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF600BDC8EE00B4C4F90089A2F4005973CF0000000000000000000000 + 00005973CF00899DDE00B1C0F1005D78D5000000000000000000000000000000 + 00000000000090909000C0C0C0008B8B8B008A8A8A0000000000000000000000 + 000000000000000000008A8A8A00B1B1B1006A6A6A0096969600000000000000 + 000000000000000000000000000000000000415BB3000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB008198E400415BB3000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F0006B85DE005771C8005771 + C8005771C800647EDA0093A8ED00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D74CA00C4CDEF00BECCFA008297DB005974CF00000000005974 + CF008297DB009CB0F5009DACE100718AE2000000000000000000000000000000 + 000000000000B0B0B000A4A4A400ADADAD008A8A8A0086868600000000000000 + 000000000000868686008F8F8F00A4A4A40076767600BBBBBB00000000000000 + 000000000000000000000000000000000000425CB4000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9008198E300425CB4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005F76CC00C8D4FB00A9BBF7009BACE400A9BB + F700C8D4FB00C7D0F000C1CDF600000000000000000000000000000000000000 + 00000000000000000000D3D3D300D6D6D600DFDFDF00CECECE00ADADAD009C9C + 9C0097979700BBBBBB00C0C0C000B4B4B400D3D3D30000000000000000000000 + 000000000000000000000000000000000000445EB5000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4008197E200445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF600C7D0F000CED8FB00B7C7F900CED8 + FB00C7D0F0005F76CD0000000000000000000000000000000000000000000000 + 000000000000000000000000000080808000B3B3B300E1E1E100F3F3F300EEEE + EE00E8E8E800CBCBCB00A6A6A600808080000000000000000000000000000000 + 000000000000000000000000000000000000445EB500889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005D75CC00A1B0E200CED7F400A1B0 + E2005D75CC00C1CDF60000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B0B0B0008A8A8A00808080008080 + 8000808080008A8A8A00B0B0B000000000000000000000000000000000000000 + 0000000000000000000000000000000000004C67C400445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB5004C67C4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000C7C7C70045599A0026336000B2BDE500C7C7C700D2D2D200000000000000 + 0000000000000000000000000000DADADA00C2C2C200475C9D002633620096A6 + DB0000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029387000364FA0008697D0002C3E8000758AD60000000000000000000000 + 0000000000000000000000000000000000002E4286004359A5008596D0002739 + 78007185D0000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000263A7E007082BE00505F92003A53A60033478E0000000000000000000000 + 000000000000000000000000000000000000294091007789C700505F94002942 + 96003B529E000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 0000243E92006676A8005169BB007488CD002E459600576EC300000000000000 + 0000000000000000000000000000A4B3EB00526CBF005F6EA4005B72BF003A54 + A9002F407C000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F100000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB10000000000000000000000000000000000000000000000 + 00005C6FB200354A9100A3B3EB004258A100657ECF002F4CB000000000000000 + 00000000000000000000708ADA003953A6005668A70098AAE90000000000586D + B800374C9100000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC001338B100CFD6 + EE00FFFFFF001338B100042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB10000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000000000000000 + 00006373AC00435BA8005A72C600647ED1004A63B7001F48D1007D93DE000000 + 000000000000D1DAF800455BAC00294EC700445CAD000000000098AAE9007485 + C100485FB2000000000000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100CFD6EF00FFFF + FF00FFFFFF00CFD6EF001439B600042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB1001439B600CFD6 + EF00042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000000000000000 + 00004B5EA0007A8DCC004157A1004760B3003D5BBD003158DC004A62B800D2DB + F800000000005671CB00425EBF003058DE00465CA9006680D400435DB3006778 + B3008699DF000000000000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600143ABA00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D0D7F100143ABA00042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600D0D7F100FFFF + FF00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD00000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD700000000000000000000000000000000000000 + 0000D1DAF8004D64B2008596D3007E98EC00819BEF006D8BEE0098AAEA00536D + C4004F4E4E008699DD00728FF2006D8BF0007994EC008FA4EB008C9EDD008CA0 + E6000000000000000000000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00264BC800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFF + FF00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B600000000000000000000000000000000000000 + 000000000000BFCCF5005F79CD006E82C900788DD7008297DE00667DCC00BCC5 + E300D7D6D6005F75C3008095DA008A9EE4007689D1006278C300526BC1000000 + 000000000000000000000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00D4DBF400FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D4DBF4002F54CE00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB002F54CE00D4DBF400FFFFFF00FFFFFF00FFFF + FF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D200FFFFFF00FFFF + FF00FFFFFF00FFFFFF002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A200000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF300859BE900788DD900CAD1E900EEEE + ED00EBEAEA00C2C6D6007382B6007289D900AFBEF300D3DBF900000000000000 + 000000000000000000000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53CF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D6DDF5002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200D6DDF500FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002E53 + D2002D53D2003257D3003D54A20000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A600000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A6A5006E6D6D00DAD9 + D900E8E7E700BFBDBC009A9897009D9D9D000000000000000000000000000000 + 000000000000000000000000000000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004467DC00B6C2EA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569 + DF004468DF003A5FDC004158A6000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000807E7E00ACABAA00A0A0 + 9F00F1F0F000BCBAB900AEACAB0082807F000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C7004C66BA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E7FB005C7CE8005C7C + E800597AE8005375E700475EB400000000000000000000000000000000000000 + 0000000000000000000000000000000000009796960094929100BFBDBC00EAEA + E9008A898900C0BEBC00A8A6A400989694000000000000000000000000000000 + 00000000000000000000000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7CE800FFFFFF00FFFF + FF00FFFFFF00FFFFFF005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005B7BE5004E69C300DCE1F100FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005C7C + E800597AE8005375E700475EB40000000000000000007790E100687FCD006E8C + F0007491F1007491F100738FEE00677DC500E0E5F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007D98F2007491F1007491F1007491 + F1006988EF006E8CF0007790E100000000000000000000000000000000000000 + 00000000000000000000000000008B8A8900ABAAA900BAB9B800CBCAC9008786 + 860000000000D2D2D100E7E6E500B6B5B4008987870000000000000000000000 + 000000000000000000000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF00FFFFFF007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1006078C900677DC500E0E5F300FFFFFF00FFFF + FF007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E1000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5006B82CD007084C700E2E6F400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00E7ECFD00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F700000000000000000000000000000000000000 + 00000000000000000000000000009F9E9D00C0BFBE00E5E4E4008F8D8C000000 + 0000000000008F8F8D00E2E2E100E4E3E3009E9C9B00B3B1B100000000000000 + 00000000000000000000000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5007E98F1006B82CD007084C700FFFFFF00FFFF + FF00819BF500819BF500819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F60089A2F3007489CD00788AC800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00E9EEFD0092A9F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C8C8C700DFDFDF00F2F2F100C7C7C6000000 + 000000000000D3D3D300A3A2A100F2F2F200C1C0BF00908E8D00000000000000 + 00000000000000000000000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600FFFFFF00FFFF + FF00FFFFFF00FFFFFF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F60089A2F3007489CD00E3E7F400FFFF + FF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A0B3F4008998C900E7EA + F400FFFFFF00A8BAF800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD70000000000000000000000000000000000000000000000 + 000000000000000000009A989700F8F8F800C9C8C80094949400000000000000 + 000000000000000000000000000098979700F8F8F800E2E2E2009F9E9C000000 + 000000000000000000000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F8008898CF00A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD70000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF80091A0D000929F + CA00DBE0F300AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 00000000000095959400C6C5C400E3E3E20092918F0000000000000000000000 + 000000000000000000000000000000000000E9E9E900EEEEEE00C5C5C4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF8008B99C7008B99 + C7008B99C700AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B6C5F600A1AE + D900B6C5F600B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 0000C7C7C700A8A7A500DDDDDC009C9A9900D3D3D30000000000000000000000 + 0000000000000000000000000000000000009C9B9900F3F2F200DFDFDE00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A19F9D00EBEBEA00C0BFBE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A5A500C4C3C200A2A0 + 9E00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A2A000D2D1D0009A999800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009C9A9900A5A3 + A100000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A99009D9B9A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009C9A + 9900000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000808080007D7D7D009D9D + 9D00C5C5C500C5C5C500C5C5C500C5C5C500C7C7C700C7C7C700C8C8C800CECE + CE00CFCFCF000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B0B0B000A6A6A600F9F8 + F800838382009E9E9E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0031458D0000000000354A88002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D7000D2D2D20000000000000000000000000086868600DCDC + DC00ACABA9008988870080808000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000003269B000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A9000293973000000000030438600E6EAF700E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F60000000000000000000000000000000000000000008F8F + 8F00DCDCDB00A5A4A2008A898800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F100000000000000000000000000000000000429A8002E3F7E000000 + 00004F70DE004F70DE004F70DE004F70DE004F70DE0039509D00354A9100506E + D400506ED400506ED400506ED400506ED400000000003A51A1005475E2005979 + E3005979E3005878E3003A51A1000000000000000000354A9200E5EAF8004364 + D2000430C2000430C2003659CE000430C2000430C2000430C2000430C2000430 + C2000430C2003659CE000430C2000430C2000430C2003659CE000430C2000430 + C2004364D200E5EAF80000000000000000000000000000000000000000000000 + 0000CECECE00EBEBEA00C0BFBE008A8988007E7E7E00D3D3D300000000000000 + 0000000000000000000000000000B6C3F0003E55A10000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB100000000000000000000000000082EAE00314284000000 + 00005073E8000537DE000537DE000537DE005073E8003E55A900394F9B004F6F + DB000432CD000432CD000432CD004F6FDB00000000004058AF005F80EF002A56 + E9002A56E9002855E9004058AF000000000000000000384E9800E5EAF9004162 + D1000432C9000432C900365BD3000432C9000432C9000432C9000432C9000432 + C9000432C900365BD3000432C9000432C9000432C900365BD3000432C9000432 + C9004365D600E5EAF90000000000000000000000000000000000000000000000 + 00007E7E7E00CECECE00EBEBEA00A5A4A2008A8988007E7E7E00000000000000 + 00000000000000000000B6C3F000273872002E417F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100A0AFE100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E000000000000000000000000001137B800334689000000 + 00004F74EF00053AE900053AE900053AE9004F74EF00425CB2003D55A5005072 + E3000535D8000535D8000535D8005072E30000000000435CB4006A8AF300426A + F000426AF0003F68F000435CB40000000000000000003B519F00DADFED004A64 + B9000937D0000A38D0003B60D9000A38D0000A38D0000A38D0000A38D0000A38 + D0000A38D0003B60D9000A38D0000A38D0000A38D0003A5FD9000A38D0000836 + D0004467DB00E6EBFA0000000000000000000000000000000000000000000000 + 0000D3D3D3007E7E7E00CECECE00C0BFBE00A5A4A2008A898800D3D3D3000000 + 000000000000B6C5F100283873006472A000364E960000000000000000000000 + 0000000000000000000000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B600042DB60003279F00FFFFFF009FAFE200042DB600042DB600042DB600042D + B6002B4EC2004C62AD000000000000000000000000002248C800384D95000000 + 00005B7EF2001D4DED001D4DED001D4DED005B7EF200455FB600455FB6005075 + F100053AEB00053AEB00053AEB005075F10000000000455FB6007592F4006686 + F3006686F300597CF200455FB60000000000000000004159AB00E5EAFB007E98 + ED003958C0001D48D700496DE5001D49DA001A41C3002F4FBA00B8C4EB003B5B + C6001D49DC00496DE5001E4BDF001E4BDF001E4BDF00496DE5001D4ADF001543 + DE00496DE500E5EAFB0000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300CECECE00EBEBEA00C0BFBE00706F6E005C5C + 5C009DADE2006979AE008192CC007E8EC7006077C40000000000000000000000 + 00000000000000000000000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC40012329D00FFFFFF00FFFFFF00A6B6E800173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000002B51D0003C519B000000 + 00006485F300305CEE00315DEF00305CEE006485F3004760B7004760B7005075 + F100053AEB00053AEB00053AEB005075F100000000004760B7007590EC008BA2 + EE008BA2EE00849DEE004760B7000000000000000000445DB100E6EBFC004A6F + EA00C7D1F2004260C6004868D3003656BF008FA1DE00D4DCF90089A1F200B0BD + E8002D52CC005074EB002854E6002854E6002854E6005074EB002854E6001C4A + E5004B70EA00E6EBFC0000000000000000000000000000000000000000000000 + 00000000000000000000000000007E7E7E00CECECE00EBEBEA00737271006367 + 74003D5093008195D7005871C3007A8CCA00A2B3E90000000000000000000000 + 000000000000000000000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB001C3BA300FFFFFF00FFFFFF00FFFFFF00ABBAEB00234ACB00234A + CB002148CB003357CF004963B60000000000000000003459D7003E54A1000000 + 00006C8BF300446BF000456CF000446BF0006D8CF3004861B9004861B9005075 + F100053AEB00053AEB00053AEB005075F100000000005069C7004861B9004861 + B9004861B9004861B9005069C70000000000000000004761B700E6ECFD004D72 + EF006D8BF100CAD4F40090A1DA00D5DDFA0099AEF600476DEE00325DED00ADBE + F70092A3DD00577AF000325DED00325DED00325DED00577AF000325DED002351 + EB004E73EF00E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3D3D3007E7E7E00A7A7A70081859400455B + A6007084C7005A75D2004F6AC7008496D300B7C5F10000000000000000000000 + 000000000000000000000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002B4FC700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53 + D2002D53D2003257D3003D54A20000000000000000004368E300445CAD000000 + 00007D98F5006989F3006D8CF3006A8AF3007D98F5004A64BB004A64BB005176 + F100083CEB00083CEB00083CEB005176F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004B65BC00E6ECFD007290 + F4006283F2006586F3006586F3006586F3006586F3006586F3006586F3006586 + F3008CA5F600667FD2006586F3006586F300607FE6005874D1005975D400577B + F2007592F400E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2B1E600788ED9008CA4 + F5006B8AF0005071DF003257D000123ABF004E5F9B00465CAC00000000000000 + 000000000000000000000000000000000000000000004158A600627CD900365C + DC004569DF004569DF003854B200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008BA1 + EB004468DF003A5FDC004158A60000000000000000004D71E9004760B3000000 + 0000829DF5007794F400829CF5007894F400829DF5004C65BC004C65BC00587C + F2001647EC001647EC001647EC00587CF2000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00E6ECFD005277 + F1004B71F1005075F1006D8CF3005075F1005075F1005075F1005075F1005075 + F1005075F100C5CEEC004667D600496CDF00657DCE00B5C1E9009EAEE1003862 + EF00567AF200E6ECFD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004862BC0095ACF7007C97 + F400718FF4003D63E3000534D1000431C600556EC200475890004F67B7000000 + 00000000000000000000000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E300415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB0000000000000000005579EF004A63B9000000 + 0000829CF5007592F40086A0F5007592F400829CF5004D66BE004D66BE005E80 + F2002453EE002453EE002453EE005E80F2000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF00E6ECFD005479 + F1005479F100597CF2007491F400597CF200597CF200597CF200597CF200597C + F200597CF200CDD7F90099A9DD007E92D500CED8FB00ACBDF800C4D0F900365A + D200587CF200E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BD007E92DA008AA3F600859F + F5007E99F5002250E9000F3FDD000534D1002146C400556FC20042538B000000 + 00000000000000000000000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8004963B900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C2CEF6005C7C + E800597AE8005375E700475EB40000000000000000006787F3004F68BF000000 + 00004F69C0004F69C0004F69C0004F69C0004F69C000556FCC004F69C0006A8A + F3004068F0004169F0004068F0006B8AF3000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC100E6ECFD00577B + F2006586F3006D8CF300829CF5006D8CF3006D8CF3006D8CF3006D8CF3006D8C + F3006D8CF300829CF5007491F4006D8CF3006D8CF300829CF5006C8BF300D2DB + FA008094D700DFE5F60000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF500889BDD00AFC0F900B4C4F900D1DBFB00B6C6 + F9006A8AF300476EF000345FEF002250E9000534D1000431C6003356C900394C + 8E00B9C6F200000000000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1005C73C000FFFFFF00FFFFFF00CAD5F9007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000006F8DF3005069C1000000 + 0000000000000000000000000000000000000000000000000000516AC100718F + F4004E73F1004F74F1004E73F100718FF4000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC300E6ECFD007995 + F400819BF50088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2 + F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60087A1F500839E + F500D8E0FC00E8EDFD0000000000000000000000000000000000000000000000 + 000000000000000000004F6BC600B9C5EF00ABB9E9008E9FD9006F83CB0096A6 + DD00B2C2F8005579F100466DF000345FEF001040DD000534D1000935C8005B6F + B2003A4D8F00CED7F700000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500677CC400FFFFFF00FFFFFF00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F70000000000000000007894F400516BC2000000 + 0000000000000000000000000000000000000000000000000000526CC3007894 + F4005C7FF2005D80F2005C7FF2007894F4000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC400E6ECFD00597C + F2006F8DF3007C97F4008FA7F600819BF500819BF500819BF500819BF500819B + F500819BF5008FA7F600819BF500819BF500819BF5008EA6F6007A96F4005075 + F1005F81F200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000546FCB005975D1006580D9007990E300BFCDF600546F + CB008FA0DA007491F4005479F100466DF0002250E9001040DE000534D1004161 + CC00596BAC0037488700314075003C539C0000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6006F83C500FFFFFF00D4DDFC008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD0000000000000000000000000088A2F600546DC4000000 + 0000000000000000000000000000000000000000000000000000546EC500839E + F5007794F4007A96F4007894F400839EF5000000000000000000000000000000 + 000000000000000000000000000000000000000000005670C700E6ECFD005378 + F100577BF2006384F3007F9AF5006E8DF3006E8DF3006E8DF3006F8DF3006F8D + F3006F8DF300829DF5006E8DF3006E8DF3006C8BF3007E99F5006082F2003F68 + F000587CF200E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007488CF00B1BFF000829DF500466DF000345FEF002250E900042D + B600082BA100788AC60040539300B8C5F200000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F8008E9FD800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD70000000000000000000000000092A9F600556EC5000000 + 0000000000000000000000000000000000000000000000000000566FC60087A1 + F500829CF50087A1F500829DF50087A1F5000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00496F + F0005A7DF2005E80F2007E99F5006183F2006183F2006283F2006283F2006283 + F2006283F2007F9AF5006283F2006183F2006183F2007D98F5005D80F2005378 + F1004B71F100E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E400687DCA00B3C1F1005277F100466DF000345FEF001035 + B200788CCF009CA8CF00BAC7F300000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA00000000000000000000000000000000009AAFF700566FC6000000 + 00000000000000000000000000000000000000000000000000005770C7008AA3 + F60088A2F60096ACF7008AA3F6008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006179CA009CB1F7004F74F100385CD2008196 + DA009FACD6004F67B50000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF60000000000000000000000000000000000A8BAF8005872C9000000 + 00000000000000000000000000000000000000000000000000005872C9007D97 + EE0090A7F10097ACF20090A7F1007D97EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005670C700647ED2008A9DDC005B74 + CA00C1CDF6000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 00000000000000000000000000000000000000000000AFBFF5005872C9000000 + 00000000000000000000000000000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C8008EA0DF00A5B2DD00C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 000000000000000000000000000000000000000000005872C9005B76D2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C800A3B0DE005C75CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004A60B0002839760026356C00283976004A60B000A3B3EA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A6200465690000000000000000000CBCBCB0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0026346600CBCBCB000000000042579E0036457D002E3C + 6D00283868008D9DD300C0C0C000C0C0C000C0C0C000C0C0C000C2C2C200CECE + CE00CECECE00CECECE00DEDEDE00DEDEDE00DEDEDE0000000000000000000000 + 00000000000000000000000000000000000000000000000000003B53A4002840 + 93001A3FBA003453BC003F5CBD003453BC001A3FBA000C31B0003B53A4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA0000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B5002637740000000000000000003F59B0005A78DE004D67 + BE00334279002A3C780000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005069C0002E47A2000734 + C8005069BC00475AA20043579D00475AA2005069BC002D52CE002E47A2005069 + C000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B20000000000000000003753B2000F34AF001337 + AF00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AE00283A7C000000000000000000415BB2006F8DF3002F58 + E2003C57B1002A38700000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003F56A9001843D5003059 + E1004059AC008A9FE600000000008A9FE6004059AC005A70BC001843D5003F56 + A900ACBCF1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B2000000000000000000415EBF001F44BC00274A + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4E + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002C4E + BD00284BBD001F44BC002D41860000000000000000004A65BF00657DCF00899F + E800647ED800536DC1003F57A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B61DF002A57EE006076 + C20000000000000000000000000000000000000000008FA3E9002A57EE003B61 + DF00445DB6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F80000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003254C400284CC4002F448D000000000000000000BFCCF5004862BC006A81 + D000556FC5003355C700506CCC004E65B40090A3E20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000486CE8003C65ED00556C + BC000000000000000000000000000000000000000000000000003963EF004A6E + E600445DB4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF000000000000000000000000004C6ACD003155CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003C5DCC003155CB0031479200000000000000000000000000BFCCF5004A64 + BD008FA4E8005670C400647DD100425596003645760035498F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006080EB004A6FEE005168 + BB00000000000000000000000000000000000000000000000000476EF0006080 + EB00455EB5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F8000000000000000000000000005C79DA004668D8005674 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005674DA00486AD900374E9D00000000000000000000000000000000000000 + 00004F68C1007087D40095A8E9004462C8005570CA00465AA00032458600B8C5 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008397DB006888F3006F88 + DF0000000000000000000000000000000000C9D4F8004A64BD006886EC007F92 + D100607AD3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006380E1005474E0003A51A300000000000000000000000000000000000000 + 0000BFCDF600506AC3007288D500637AC5004563C8003B5BC800394A86003142 + 7D00A4B3EA00293B7B00283871002E4185000000000000000000000000000000 + 000000000000000000000000000000000000000000006076C20096ACF4007391 + F4004C64BE0090A4EA000000000090A4EA004C64BE009DACDE00A0B3F3005E73 + BB004159AB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900718CE900607FE7003C55A800000000000000000000000000000000000000 + 000000000000BFCDF600536CC50098AAE900637AC6004566D4003954B1003A49 + 7E0035406900576EB900566DBA00556BB400374E9900CED7F700000000000000 + 000000000000000000000000000000000000000000005C76D2008295D6009EB2 + F500859BE400697EC9006076C200697EC900859BE400A9BBF800A0AEDF004362 + CC002D4FC300BDCBF40000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000007C97F400708EF400829D + F4008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F50088A1F5007794F400425CB300000000000000000000000000000000000000 + 00000000000000000000000000005770C800748BD900879DE8004D5D97004E65 + B4004A6AD3000430C2000430C2000430C2004162D1005971C00046589B000000 + 0000000000000000000000000000000000000000000000000000000000005D77 + D3009CABE200BECBF500BCCAF600BECBF5009CABE200687CC600798FDA0086A0 + F5004B71F1002E50C400435BAE00BDCBF4000000000000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000007E99F500708EF400829D + F50093AAF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70091A8F6007E99F500445DB400000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005872CA006F85D000516BBE004A6C + DC00123ED2000433D0000433D0000433D0000937D2002F56D8005775D700455E + B500BDCBF4000000000000000000000000000000000000000000000000000000 + 0000657FD9004C65BF004C65BC004C65BF00657FD900AEBEF2004C65BF007A90 + DB0086A0F5001848EB002F51C500445CAE000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000007D98F5006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A0B4 + F70096ACF700819BF500455EB600000000000000000000000000000000000000 + 000000000000000000000000000000000000AEBEF3005E6FAD004B6FE7001242 + E0000537DE000537DE000537DE000537DE000537DE000537DE001B49E1005E76 + CA00455DB2008DA2E80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004D66 + C0007A90DB004B71F1001848EB003052C500BDCBF40000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005C79DA002E55D6002E55 + D6002E55D6002E55D6006D87E0008DA5F60094ABF60097ADF7009AAFF7009AAF + F7009AAFF7009AAFF7009AAFF7009AAFF7009AAFF70099AFF70097ADF70090A8 + F60086A0F5007794F4004761B800000000000000000000000000000000000000 + 0000000000000000000000000000000000004963BC006A87E8002553EE002553 + EE002553EE007C97F4007F9AF1007C97F4002553EE002553EE002553EE002553 + EE004A70F0006983DB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCDF6007B91DC0086A0F5004B71F1003153C700475EB100BDCBF4000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ACBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B900000000000000000000000000000000000000 + 0000000000000000000000000000000000004A64BB00718DEB003E67F0003E67 + F0006888F300667CC5005A71C100667CC5006888F3003E67F0003E67F0003E67 + F000486FF000718CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004F69C3007B92DC0086A0F5001848EB003154C700485FB2000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB00000000000000000000000000000000000000 + 0000000000000000000000000000000000004F69C4007892E700567AF200567A + F20091A3E4009DB0EE00000000009DB0EE0091A3E400567AF200567AF2005D80 + F2007794F4006B83D40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600506AC4007C92DD004B71F1001848EB003254C800BFCB + F400000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000819BF5005579F1005579 + F1005579F1005579F1005579F1005579F1005D80F2007E99F500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5004C66BD00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC0096ACF7007995 + F4005971C4000000000000000000000000005D75C500809AF10087A1F500728A + DB004F69C200BFCDF60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF6007D93DD0086A0F5004B71F1003355 + C9004A62B400BFCBF50000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA00C2C0BE00B6B6 + B500A09E9D00EDEDEC008F8D8D00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3DBF9009AACEA008FA7 + F600647BC800000000000000000000000000657BC800859FF5009CB1F700516A + C400BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC6007E94DE0086A0F5001848 + EB003456CA004B63B500000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00C2C2C200AFAD + AC00AAA8A700E2E1E00093929100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006278C900A2B4 + F3008A9EE2009FB1F000000000009FB1F000869BE3009BB0F700788FDD00BFCD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF600536CC500859AE0004B71 + F1001848EB003457CA00BFCBF50000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00C3C2C200A09F + 9D00BFBDBC00C4C3C200ACACAC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008EA6F6008EA6F6008EA6 + F6008EA6F6008EA6F6008EA6F600546DC10091A5EB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005974 + CF0098AAE400B2C2F900B4C4F900ADBEF8007D93DF00566FC700C1CDF6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000566FC8008295D400A1B1E500798F + DD0086A0F5004B71F1005E78D1005169BE0000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005C75CC00C1CEFA00B9C8F900B7C7F9005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005874CF008DA0DF00C4CEF100657B + C5008B9FE30086A0F5006781DB00556DC600000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A8ED009CAEE900A0B2EF008195DB00C1CDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF6005874CF00556EC300B0BD + E7007A8CCA008399E1005872CA00C1CDF6000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005770 + CA00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C2003B4E + 91003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E9100C2C2C200000000000000000000000000D6D6D600566AB0002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667005468AB00DEDEDE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6C3F000414F800023316200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455CA5002F3E + 7100475CA400445BA800435AA700435AA600435AA600435AA500435AA500435A + A500445AA5004359A3004359A3004359A2004359A1004359A1004358A0004353 + 8C002D3A660043589F0000000000000000000000000000000000000000003850 + A3000536DB000536DB000536DB000536DB000536DB000536DB000536DB000536 + DB000536DB000536DB000536DB000536DB000536DB000536DB000536DB004368 + E4003850A3000000000000000000000000000000000000000000293C8000042D + B6000000000000000000042DB6006780D3006780D3005B75CF005772CE00536F + CC004765C9004765C9003F5EC7003758C5003758C5000931B800000000000000 + 0000042DB600293C800000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCD6 + F60022357800435BAA0023336900000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006279C90030427E004660 + B400072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A300495EA5002E3D710000000000000000000000000000000000000000003851 + A1000535D8000535D8000535D8000535D8000535D8000535D8000535D8000535 + D8000535D8000535D8000535D8000535D8000535D8000535D8000535D8004368 + E1003851A10000000000000000000000000000000000000000002A3E8200042D + B7000000000000000000042DB7003052C4003052C4003052C4003052C4003052 + C4003052C4003052C4003052C4003052C4003052C400042DB700000000000000 + 0000042DB7002A3E820000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002F43 + 840043538C00425CB00025356D00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000283C8000495EA8002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A800485B9B000000000000000000000000000000000000000000384F + 9F000534D4000534D4000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D4000534D4004367 + DF00384F9F0000000000000000000000000000000000000000002B3F8400042E + B900042EB900042EB900042EB900395AC800395AC800395AC800395AC800395A + C800395AC800395AC800395AC800395AC800395AC800042EB900042EB900042E + B900042EB9002B3F840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000046589600405B + B8000F33A900435EBA002A3B7700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3D81004361C700042C + B300042CB200042CB100042BB000042BAF00042BAE00042BAD00042BAC00042A + AB00042AAA00042AAA00042AA9000429A8000429A7000429A6000429A6000328 + A4000328A300435EBB000000000000000000000000000000000000000000384E + 9B000634CD000735CD000735CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000735CD000735CD004366 + D900384E9B0000000000000000000000000000000000000000002D418700042E + BC00042EBC00042EBC00042EBC004C6ACF004C6ACF004C6ACF004C6ACF004C6A + CF004C6ACF004C6ACF004C6ACF004C6ACF004C6ACF00042EBC00042EBC00042E + BC00042EBC002D4187000000000000000000000000000000000090A3E3003B51 + A2002F4385002F4284002E4284002E4183002E4183002E408100405DBD000F34 + AF00042AAA00425EBD002C3E7D002B3D7C002B3C7A002B3C7A002B3C79002A3C + 7800344A95008196DC000000000000000000000000002D4185004362CA00042D + B800042DB600042DB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00042AAA00042A + AA00042AA900425EBD000000000000000000000000000000000000000000384E + 98000E3ACB000F3ACB000F3ACB000C2FA3000C2FA3000C2FA3000C2FA3000C2F + A3000C2FA3000C2FA3000C2FA3000C2FA3000C2FA3000F3ACB000F3ACB004567 + D600384E980000000000000000000000000000000000000000002F438A00042F + BE000000000000000000042FBE005673D3005673D3005673D3005673D3005673 + D3005673D3005673D3005673D3005673D3005673D300042FBE00000000000000 + 0000042FBE002F438A00000000000000000000000000546CC100405498004D66 + B7004261CA004362CA004362C9004261C7004361C7004361C7001036B600042C + B100042BB0003655BE00425FC1004360C100425FBF00425EBE00435FBE004661 + B9004B60A8003B4C87000000000000000000000000002F438A004363CE000530 + BE00042EBC00042EBB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0003259600042B + AE00042BAE00425FC1000000000000000000000000000000000000000000384D + 9800153FCA001740CA001740CA001740CA001740CA001740CA001740CA001740 + CA001740CA001740CA001740CA001740CA001740CA001740CA001740CA004868 + D500384D9800000000000000000000000000000000000000000030448C00042F + C0000000000000000000042FC0005F7AD7005F7AD7005F7AD7005F7AD7005F7A + D7005F7AD7005F7AD7005F7AD7005F7AD7005F7AD700042FC000000000000000 + 0000042FC00030448C00000000000000000000000000506AC100294FD0000C38 + CA000D38C8000C37C6000C37C6000934C3000833C2000833C1000631BF00052F + BD00042EBC00042EBA00042EB900042DB800042DB600042DB600042DB500042C + B300042CB2002346BB00354B96000000000000000000334993004A6BD800143E + CA00153EC900143DC800123CC8000C30A8000A2FA700092EA700062BA4001437 + A9001437A9000328A1000328A1000328A00003279F0003279F0003279F00042D + B800042DB8004362C90000000000000000000000000000000000000000003A50 + 9B00254CCF00274ECF00274ECF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00274ECF00274ECF004D6D + D8003A509B000000000000000000000000000000000000000000324790000430 + C3000430C3000430C3000430C300718ADD00718ADD00718ADD00718ADD00718A + DD00718ADD00718ADD00718ADD00718ADD00718ADD000430C3000430C3000430 + C3000430C300324790000000000000000000000000004B6BD7001440D1001641 + D1001943CF001943CF001842CE00153FCB00143ECA00133DC900103AC7000E38 + C5000D37C4000B35C2000933C1000832BF000630BD00052FBC00052FBB00042E + B900042DB8000831B90033468A000000000000000000354B98004E6FDC001D46 + D1002149D1001F48D0001D46CF001A43CD001841CC001640CB002148CC00D1D9 + F400D1D9F4000B36C5000A35C4000833C3000530C1000530C100042FBF00042F + BE00042FBD004363CD0000000000000000000000000000000000000000003B51 + 9C002D53D2003055D2003055D2002745A9002745A9002745A9002745A9002745 + A9002745A9002745A9002745A9002745A9002745A9003055D2003055D2005070 + D9003B519C000000000000000000000000000000000000000000334893000430 + C4000430C4000430C4000430C4007B92E0007B92E0007B92E0007B92E0007B92 + E0007B92E0007B92E0007B92E0007B92E0007B92E0000430C4000430C4000430 + C4000430C40033489300000000000000000000000000496CE1001945D800214B + D800264FD800254ED700234CD500214AD3001F48D1001E47D1001B44CE001A43 + CD001841CC00163FCA00143DC800133DC800103AC5000F39C4000E38C3000A34 + C0000933BF000630BD00364A90000000000000000000384F9D005172E000264F + D8002C53D7002A51D6002951D600254DD400234BD300214AD200D3DBF500FFFF + FF00FFFFFF00254CCF00153FCB00133DCA000F3AC8000E39C7000C37C7000833 + C4000632C3004364D10000000000000000000000000000000000000000003C53 + 9D003358D400375CD400375CD400375CD400375CD400375CD400375CD400375C + D400375CD400375CD400375CD400375CD400375CD400375CD400375CD4005271 + DA003C539D000000000000000000000000000000000000000000354A95000532 + C70000000000000000000532C700859BE300859BE300859BE300859BE300859B + E300859BE300859BE300859BE300859BE300859BE3000532C700000000000000 + 00000532C700354A95000000000000000000000000004E72EA002B56E5003961 + E6003D64E5003B62E3003A61E300375EE100365DE000355CDF003259DD003057 + DC002F56DB002C54D9002B53D8002A52D700274FD500264ED400244CD3002149 + D1001E47D0001640CD003A519B0000000000000000003C54A7005879E800375E + E2004267E3004065E2003F64E2003B61E0004569E100D9E0F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D6DDF700365BDA00264ED600244DD600224BD4001E47 + D2001742D0004B6CDB0000000000000000000000000000000000000000003E55 + A1004366D900486AD900486AD900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00486AD900486ADA005776 + DC003E55A1000000000000000000000000000000000000000000394F99000D39 + CB000D39CB000D39CB000D39CB009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA000D39CB000D39CB000D39 + CB000D39CB00394F99000000000000000000000000005176EE00335DEB00436A + EB00486DEB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002C53 + D8002850D7001E48D4003E54A00000000000000000003F58AB005C7DEC003F66 + E7004D71E9004B6FE700496EE7005073E600DBE2F900FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00D8DFF8003158DC002F56DB002D55DA002951 + D900204AD6004E6FDE0000000000000000000000000000000000000000004056 + A2004A6CDB005171DD005171DD00405AB000405AB000405AB000405AB000405A + B000405AB000405AB000405AB000405AB000405AB0005171DD005070DD005977 + DD004056A20000000000000000000000000000000000000000003B519B00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE003B519B000000000000000000000000005378F1003B64EF004D72 + F0005277EF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00385E + DF003259DD00264FDA004157A6000000000000000000415AB1006081F000486D + EC00587BED005679EC005477EC00DDE4FA00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005F7EE6003A60E000395FE000335A + DE002952DC005173E20000000000000000000000000000000000000000004157 + A5005272DD005978DE005978DE005978DE005978DE005978DE005978DE005978 + DE005978DE005978DE005978DE005978DE005978DE005978DE005978DE005D7B + E0004157A50000000000000000000000000000000000000000003E539E001641 + D1001641D1001641D1001641D100728CE300728CE3006783E0006480E000607D + E0005574DD005574DD004D6EDC004568DA004568DA001641D1001641D1001641 + D1001641D1003E539E00000000000000000000000000587CF2004A70F0006283 + F2006989F3006888F3006787F3006485F3006384F3006183F2005F81F2005D80 + F2005C7FF200597CF100587BF100567AF0005478EF005276EE005074EC004E73 + EB00486DEA00365FE700465FB3000000000000000000455EB6006787F300597C + F2006E8DF3006D8CF3006B8AF3005B77D5005772CF005570CD00FFFFFF00FFFF + FF00FFFFFF004C69CB004A68CB004866CA004563C9004564CA004D71E700486D + E9003A62E700597BEA000000000000000000000000000000000000000000435A + A800617FE2006A86E3006A86E300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006A86E3006985E300617E + E100435AA80000000000000000000000000000000000000000004258A2001E48 + D50000000000000000001E48D5004E6FDE004E6FDE004E6FDE004E6FDE004E6F + DE004E6FDE004E6FDE004E6FDE004E6FDE004E6FDE001E48D500000000000000 + 00001E48D5004258A2000000000000000000000000005A7DF2005176F1006C8B + F3007592F4007491F4007290F400708EF4006E8DF3006D8CF3006A8AF3006989 + F3006787F3006485F3006384F3006283F2005F81F2005E80F2005C7FF100597C + F0005176EF003D65EC004962B80000000000000000004660B7006B8AF3006183 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300FFFFFF00FFFF + FF00FFFFFF005671CE006384F3006082F1005C7EF0005B7EF000597CEF005276 + EE004269EB005C7EEE000000000000000000000000000000000000000000445B + AA006985E300728CE500728CE5005A6FB7005A6FB7005A6FB7005A6FB7005A6F + B7005A6FB7005A6FB7005A6FB7005A6FB7005A6FB700728CE500718BE5006481 + E300445BAA0000000000000000000000000000000000000000004359A500234C + D700234CD700234CD700234CD7005978E0005978E0005978E0005978E0005978 + E0005978E0005978E0005978E0005978E0005978E000234CD700234CD700234C + D700234CD7004359A5000000000000000000000000005D80F200587CF2007693 + F400809BF500FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006485 + F3005B7EF200456CF0004C66BD0000000000000000004761B8006E8DF3006A8A + F300849EF500829DF500819BF5007E99F5007C97F4007A96F400FFFFFF00FFFF + FF00FFFFFF005E78CF006D8CF3006C8BF3006888F3006686F3006586F3005E80 + F2004B71F0006082F1000000000000000000000000000000000000000000465D + AB00708BE5007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94 + E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007892E6006683 + E400465DAB000000000000000000000000000000000000000000455BA8002750 + D9002750D9002750D9002750D9006481E4006481E4006481E4006481E4006481 + E4006481E4006481E4006481E4006481E4006481E4002750D9002750D9002750 + D9002750D900455BA8000000000000000000000000006183F2006586F30088A2 + F60096ACF7007F92D2007D90D1007C90D2007A8ED1007A8ED100778CD100758A + D000758AD1007288D1007086D0007086D1006E85D0006C83CF006B82D0007B97 + F4006E8DF3005277F1004F69C00000000000000000004963BA007491F4007995 + F4009BB0F70099AFF70097ADF70093AAF60091A8F60090A8F600FFFFFF00FFFF + FF00FFFFFF007187D100839EF500829CF5007F9AF5007D98F5007B97F400718F + F400597CF2006686F3000000000000000000000000000000000000000000485F + AF007F98EA008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0 + EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB0089A0EB006A86 + E500485FAF0000000000000000000000000000000000000000004A60AD003058 + DE0000000000000000003058DE007A94EA007A94EA007A94EA007A94EA007A94 + EA007A94EA007A94EA007A94EA007A94EA007A94EA003058DE00000000000000 + 00003058DE004A60AD000000000000000000000000006183F2006A8AF3008FA7 + F600A2B6F800A0B4F7009FB3F7009CB1F7009BB0F70099AFF70097ADF70095AC + F70094ABF60091A8F60090A8F6008EA6F6008CA5F6008AA3F60089A2F600849E + F5007693F400577BF200506AC10000000000000000004B64BB007693F4007D98 + F500A6B9F800A4B7F800A2B6F8009FB3F7009DB2F7009BB0F700FFFFFF00FFFF + FF00FFFFFF007B8FD1008EA6F6008CA5F60089A2F60087A1F500859FF5007995 + F4005F81F2006888F30000000000000000000000000000000000000000004960 + B000879EEB0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8 + ED0093A8ED0093A8ED0093A8ED007D8EC9007D8EC9007D8EC9007B8DC9005A73 + C4004960B00000000000000000000000000000000000000000004C62AF00355C + E0000000000000000000355CE000849CEC00849CEC00849CEC00849CEC00849C + EC00849CEC00849CEC00849CEC00849CEC00849CEC00355CE000000000000000 + 0000355CE0004C62AF000000000000000000000000006183F2006989F30091A8 + F600ADBEF800ACBDF800AABCF800A7B9F800A6B9F800A5B8F800A2B6F800A1B5 + F7009FB3F7009CB1F7009BB0F7009AAFF70097ADF70096ACF70094ABF6008CA5 + F6007A96F4005A7DF200516BC20000000000000000004C65BC007C96EF007F9A + F500ADBEF800AFC0F900ADBEF800AABCF800A8BAF800A6B9F800A3B6F800899A + D3008798D2008496D2009AAFF70098AEF70094ABF60092A9F60090A8F6007B97 + F4006283F200718EEE0000000000000000000000000000000000000000004B62 + B2008EA4ED009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAE + EF009BAEEF009BAEEF009BAEEF008494CC00485EAB00485EAB00485EAB005167 + B0004B62B20000000000000000000000000000000000000000004F64B1003960 + E2003960E2003960E2003960E2008FA5EF008FA5EF008FA5EF008FA5EF008FA5 + EF008FA5EF008FA5EF008FA5EF008FA5EF008FA5EF003960E2003960E2003960 + E2003960E2004F64B1000000000000000000000000006581E0006183F200708E + F400A2B6F800A9BBF800ACBDF800ABBDF800AABCF800AABCF800A8BAF800A6B9 + F800A5B8F800A2B6F800A1B5F700A0B4F7009CB1F70099AFF70093AAF6007B97 + F4006283F2005D80F2005570CB0000000000000000007990E3005F77C8008AA2 + F1008AA3F60091A8F60094ABF60094ABF60093AAF60093AAF60090A8F6008EA6 + F6008DA5F6008AA3F60088A2F60086A0F500829DF500809BF5007995F4007391 + F4007D97EF005D74C70000000000000000000000000000000000000000004D65 + B6009BAEF000ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBB + F200ABBBF200ABBBF200ABBBF20092A0CF00C7D2F600AEBEF200718CE7004C65 + B900BFCCF5000000000000000000000000000000000000000000536AB7004267 + E6004267E6004267E6004267E600A2B4F300A2B4F300A2B4F300A2B4F300A2B4 + F300A2B4F300A2B4F300A2B4F300A2B4F300A2B4F3004267E6004267E6004267 + E6004267E600536AB7000000000000000000000000005C75CB006282EC006686 + F3007995F400829CF500849EF50086A0F500859FF500849EF500839EF500829D + F500829CF500809BF5007F9AF5007E99F5007B97F4007894F4007290F4006586 + F3006183F2006583EC007A92E500000000000000000000000000546FCB006078 + C9007C97F400809BF500829DF500839EF500829DF500829DF500819BF500819B + F500809BF5007F9AF5007E99F5007E99F5007B97F4007A96F4007794F400718B + E6005E75C8006680D90000000000000000000000000000000000000000004E66 + B80097ABEF00AEBEF300B1C1F300B2C1F300B2C1F300B2C1F300B2C1F300B2C1 + F300B2C1F300B2C1F300B1C1F30096A3CF00A6B7F100738EE800546DC200BFCC + F500000000000000000000000000000000000000000000000000546BB900466B + E7000000000000000000466BE700AABBF400AABBF400AABBF400AABBF400AABB + F400AABBF400AABBF400AABBF400AABBF400AABBF400466BE700000000000000 + 0000466BE700546BB9000000000000000000000000006983DD006079CB00627E + E0006586F3006888F3006A8AF3006B8AF3006B8AF3006B8AF3006B8AF3006B8A + F3006B8AF3006A8AF3006A8AF3006A8AF3006989F3006888F3006586F3006A88 + EC006380E0005D77CC0000000000000000000000000000000000000000007991 + E3005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C000506A + C3007991E3000000000000000000000000000000000000000000000000004F67 + BA00879FEE009DB0F100A5B6F100A8B9F200A8B9F200A8B9F200A8B9F200A8B9 + F200A8B9F200A7B8F100A5B6F1008898CD006986E7005770C4004F67BD000000 + 0000000000000000000000000000000000000000000000000000576DBB00496E + E9000000000000000000496EE900B2C2F500B2C2F500B2C2F500B2C2F500B2C2 + F500B2C2F500B2C2F500B2C2F500B2C2F500B2C2F500496EE900000000000000 + 0000496EE900576DBB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C000516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516A + BD00516ABD00516ABD00516ABD00516ABD00516AC000BFCDF500000000000000 + 00000000000000000000000000000000000000000000000000007790E100546B + BE005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C100546BBE007790E10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F1006177C500273773002534 + 6A0025346A0027377300364D96006177C5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002D4085003A4A7D0047589300556AB000556A + B000556AB000556AB0004F62A100475893002D4085008195DB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005B74C7004455 + 94004F64AD005062A1004057A900000000000000000000000000000000000000 + 00006780CF005369B3004F64AD005062A1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008297DD00334580005467A7003351B7001134AA002444B1004E68BF004E68 + BF004E68BF004E68BF003C59B9002444B1003351B700506ABE005467A7008297 + DD00000000000000000000000000000000000000000013131300121212001111 + 1100111111001111110011111100111111001111110011111100111111001111 + 1100111111001111110011111100111111001111110011111100121212001212 + 120013131300141414001111110000000000031D3D00093C7B00093C7B00093C + 7B00093C7B00093C7B00093C7B00093C7B00093C7B00093C7B00093C7B00093C + 7B00093C7B00093C7B00093C7B00093C7B00093C7B00093C7B00093C7B00093C + 7B00093C7B00093C7B00010D1D00000000000000000000000000374E9E005671 + CE000B206700435FBF0041569C002A3B75002A3B75002A3B75002A3B75002A3B + 7500364C960010266E000B206700435FBF00D1DAF80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00003A4B8900566DB800415EC100294AB900546FC70093A3DB00E7EBF700E7EB + F700B9BCC600E7EBF700C2CBEA0093A3DB00294AB9001136B100415EC1003A4B + 89005068BB00000000000000000000000000000000003B3B3B003C3C3C003C3C + 3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C + 3C003C3C3C003C3C3C003C3C3C003D3D3D003D3D3D003D3D3D003D3D3D003D3D + 3D003D3D3D003D3D3D001B1B1B00000000000C458B001D54AB001E54A9001E54 + A9001E54AA001E54AA001E54AA001E54AA001E54AA001E54AA001E54AA001E54 + AA001E54AB001E54AB001E54AB001E54AB001E54AB001E54AB001D54AB001D54 + AB001D54AB001C54AE000D468C000000000000000000000000003E58AE00274F + D600021C7100153EC700455DAE000E2D9A000E2D9A000E2D9A000E2D9A000E2D + 9A003A54AE00031E7900021C7100153EC7000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000859A + E0005971C1003253C2000D34B6008999CC00CACFDF00E6EAF800E6EAF800E6EA + F800C9CDD900E6EAF800E6EAF800E6EAF8008999CC00415FC5000D34B6005971 + C1003D4F8F00859AE0000000000000000000000000002A2A2A002E2E2E003939 + 39003939390039393900393939003939390039393900393939003A3A3A003A3A + 3A003A3A3A003A3A3A003A3A3A003A3A3A003A3A3A003A3A3A003A3A3A003A3A + 3A003B3B3B00323232001F1F1F00000000000F47910014439D0014439D001544 + 9E0015449E0015449E0015449E0015449E0015449E0015449E0015449E001544 + 9E0015449E0015449E0015449E0015449E0015449E0015449E0015449E001544 + 9E0015449E003E8AD8000C458B00000000000000000000000000000000006983 + DA00435CB300516CCA0000000000000000000000000000000000000000000000 + 000000000000435CB300435CB3003754B7000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003B53A3005A70 + BB000934C5004B6AD300E1E6F800E5EAF800DADFEC00E5EAF800E5EAF800E5EA + F800E5EAF800E5EAF800E5EAF800E3E8F600E5EAF800E5EAF800E1E6F8000934 + C5004162D1005A70BB0000000000000000000000000032323200343434003C3C + 3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003D3D3D003D3D + 3D003D3D3D003D3D3D003D3D3D003D3D3D003D3D3D003D3D3D003D3D3D003D3D + 3D003E3E3E003838380012121200000000000F47920015459F001546A0001546 + A0001647A1001647A1001647A1001647A1001647A1001647A1001647A1001647 + A1001647A1001647A1001647A1001647A1001647A1001647A1001647A1001647 + A1001647A1001D55AF000C458B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003F56A6001939A600869BE10000000000000000000000 + 000000000000000000000000000000000000000000008A9DE4004E61A8005271 + D8002A50D100CDD6F500E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9002A50 + D100123DCD005271D8008A9DE4000000000000000000272727004E4E4E004040 + 40003F3F3F003F3F3F003F3F3F003F3F3F003F3F3F003F3F3F00404040004040 + 4000404040004040400040404000404040004040400040404000404040004040 + 4000424242004B4B4B0005050500000000000F4892001749A300184CA600194D + A7001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4F + A9001A4FA9001B4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4F + A9001B51AB00448EDA000C458B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A8FDB002D469B004E66BC0000000000000000000000 + 00000000000000000000000000000000000000000000425AAE005B75CA003359 + D9008497D600D2D7E400E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EA + FA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA008497 + D6000938D3003359D900425AAE00000000000000000000000000121212002C2C + 2C00686868006161610055555500464646004646460046464600464646004646 + 46004646460046464600464646004747470049494900535353005E5E5E004A4A + 4A00303030001313130000000000000000000F4893001A4EA8001B51AB001C54 + AE001E57B1001E57B1001E57B1001E57B1001E57B1001E57B1001E57B1001E57 + B1001E57B1001E57B1001E57B1001E57B1001E57B1001E57B1001E57B1001E57 + B1001E57B1004C92DC000B448A000000000000000000465EB3006279C300607C + D900617EDE00617EDE00627EDE00637FDF00637FDF00637FDF00637FDF00637F + DF00627EDE00617EDE00607DDE005F7CDE004F64AB008A9EE500000000000000 + 000000000000000000000000000000000000000000005871C8004268E7000537 + DF00E5EAFB00DFE4F500E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00809AEE000537DF005871C800738BDD000000000000000000000000000202 + 02002F2F2F003C3C3C00525252006A6A6A004F4F4F00494949004A4A4A004A4A + 4A004A4A4A004A4A4A004A4A4A00515151006D6D6D0058585800434343001C1C + 1C0002020200000000000000000000000000104894001A4EA8001B52AC001C55 + AF001E58B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58 + B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58 + B2001E58B2001E58B2000B448A0000000000000000004057A6006B85DC00355B + DA002F54CE003D62DC00365BD3003E63DB00365AD2003357CF00365AD2003256 + CE003E63DC003055CE003A5FDC002B50CD00647CCB00556FC700000000000000 + 000000000000000000000000000000000000000000005C78D8002A56EA000539 + E600E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00E5EBFC00E5EBFC00D5DAE6009C9B9D00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00C2CFF8000539E6005C78D800536ECA000000000000000000000000000000 + 0000020202000F0F0F001E1E1E003A3A3A0065656500585858004D4D4D004D4D + 4D004D4D4D004D4D4D00606060006A6A6A0033333300202020000F0F0F000000 + 000000000000000000000000000000000000104894001A4EA8001B52AC001C55 + AF001E58B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58B2001E58 + B2001E58B2001E58B2001E58B2001E58B200053D8200053D82000D418700053D + 8200053D8200053D8200053D820003254F00000000005066B100758FE600476B + E300032597004A6AD700082A9C004B6BD700082A9C0003259700082A9C000325 + 97004B6BD700032597004768D600032597007B93E100485FAE00000000000000 + 000000000000000000000000000000000000000000005C7CE9001849EC00053A + EB00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00C5CA + D900B8BDCA00C9CCD6009B989800B8B9BF00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E8EDFD00053AEB005C7CE9004862BC000000000000000000000000000000 + 0000000000000000000000000000000000000101010031313100545454005454 + 5400545454004646460026262600010101000000000000000000000000000000 + 000000000000000000000000000000000000114995001A4EA8001C53AD001D56 + B0001F59B3001F59B3001F59B3001F59B3001F59B3001F59B3001F59B3001F59 + B3001F59B3001F59B3001F59B3001F59B3001C54AE003D5978006C715C003458 + 88001C54AE001C54AE001A4FA900053D820000000000657BC5007F9AF1007490 + F0000328A000607DDD000328A000607DDD000328A0000328A0000328A0000328 + A000607DDD000328A000607DDD000328A0007D98F200758BD8005C76D2000000 + 000000000000000000000000000000000000000000006683E9002C59EE001B4B + ED00CBD0DD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E9EEFD00ADAB + A9009C999700E0E4F100E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00CBD0 + DD00BABECB001B4BED006683E9004A63BB000000000000000000000000000000 + 0000000000000000000000000000000000000000000028282800595959005959 + 590059595900444444001B1B1B00000000000000000000000000000000000000 + 000000000000000000000000000000000000114A9600194FA9001C53AD001D57 + B1001F5AB4001F5AB4001F5AB4001F5AB4001F5AB4001F5AB4001F5AB4001F5A + B4001F5AB4001F5AB4001F5AB4001F5AB4001C54AE003F463C0032372C003B45 + 42001A4FA9001A4FA9001A4FA900053D8200000000006C83D3008AA3F500859F + F4000328A4006D87E1000328A4006D87E1000328A4000328A4000328A4000328 + A4006D87E1000328A4006D87E1000328A4007A95F00094A9EF00526AC0000000 + 000000000000000000000000000000000000000000006A88EB003761EF002755 + EE00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00CACA + CB00C3C1C000E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00D8DDEA002755EE006A88EB004B64BC000000000000000000000000000000 + 000000000000000000000000000000000000040404003F3F3F005D5D5D005D5D + 5D005D5D5D005A5A5A003B3B3B00030303000000000000000000000000000000 + 000000000000000000000000000000000000114A97001A4FA9001D54AE001E58 + B200205BB500205BB500205BB500205BB500205BB500205BB500205BB500205B + B500205BB500205BB500205BB500205BB5001C54AE0043586C00D3D6B6003956 + 7B001A4FA9001A4FA9001A4FA900053D820000000000748AD6008DA5F60095AC + F7000328A4007891E3000328A4007891E3000328A4000328A4000328A4000328 + A4007891E3000328A4007891E3000328A4006E88E20095ACF7006A80CB000000 + 00000000000000000000000000000000000000000000708BEB00426AF000335E + EF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD008D8A8800EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00D4D8E600335EEF00708BEB004C66BF000000000000000000000000000000 + 000000000000000000000000000000000000434343005F5F5F00636363006363 + 6300636363006363630060606000333333000000000000000000000000000000 + 000000000000000000000000000000000000114B97001A50AA001D55AF001E59 + B300205CB600205CB600205CB600205CB600205CB600205CB600205CB600205C + B600205CB600205CB600205CB600205CB6005495DE003786D500327DCE00327D + CE00327DCE00327DCF002D77C400032F6500000000007A91E200839EF50094AB + F6000328A4007D94E2000328A4007D94E2000328A4000328A4000328A4000328 + A4007D94E2000328A4007D94E2000328A4007991E20090A8F60098ACF0000000 + 000000000000000000000000000000000000000000006D85D8007391F4004C72 + F100EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE0098959300EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00E9EDFA00EDF1 + FE007588C8004C72F1006D85D8007990E3000000000000000000000000000000 + 0000000000000000000000000000020202004E4E4E0065656500666666006666 + 6600666666006666660066666600414141000000000000000000000000000000 + 000000000000000000000000000000000000124B98001A4FA9001D55AF001F59 + B300215CB600215CB600215CB600215CB600215CB600215CB600215CB600215C + B600215CB600215CB600215CB600215CB600215CB600215CB600215CB600215C + B600215CB6006EA7E8000B4489000000000000000000829BED007290F400849E + F5003C5BC30095AAF2003454BE008EA4ED00173AAF000328A4000D31A9000328 + A4007D94E2000328A4007D94E2000328A4007891E30088A2F60090A8F60092A7 + EC000000000000000000000000000000000000000000647AC700819CF3005E80 + F200C1C6D400CCCFDA00E2E6F100EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2 + FE009E9B9900EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00C1C6 + D4005370D2005E80F2006479C700BFCDF6000000000000000000000000000000 + 0000000000000000000000000000131313005151510068686800696969006969 + 69006969690069696900696969004A4A4A000000000000000000000000000000 + 000000000000000000000000000000000000124C99001A50AA001D56B0001F59 + B300215DB700215DB700215DB700215DB700215DB700215DB700215DB700215D + B700215DB700215DB700215DB700215DB700215DB700215DB700215DB700215D + B700215DB70070A9EA000B44890000000000000000008098E700859FF5008CA5 + F6009AAFF70092A9F60094ABF6008CA5F600859EF1008099EC006E89E100617C + D8009EB3F7003E5DC30095AAF200294AB9007D97EB007D98F5007D98F500617C + D8000000000000000000000000000000000000000000526CC8008399E4007D98 + F5007582AE00D7DAE400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00A8A5A400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE007582 + AE006282EE007E99F500526CC800000000000000000000000000000000000000 + 0000000000000000000000000000222222005B5B5B006F6F6F00707070007070 + 7000707070007070700070707000585858000000000000000000000000000000 + 000000000000000000000000000000000000134C99002661B5003071C2003479 + C900377DCD00377DCD00377DCD00377DCD00377DCD00377DCD00377DCD00377D + CD00377DCD00377DCD00377DCD00377DCD00377DCD00377DCD00377DCD00377C + CD00387ECE002360B9000B448A00000000000000000000000000AFBFF300AFBF + F3007C92E5007C92E5007C92E5005E79D5005E79D500566FC700687ECD006A80 + CD006A80CD00768BD9007B91DB007F97E4008098E600809AEF007893EE006077 + CA0093A7ED000000000000000000000000000000000000000000536EC900889D + E4007F9AF5006377B900D1D5E100F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00DCDDE200F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00D1D5E1007F9A + F50095ACF7008A9FE20000000000000000000000000000000000000000000000 + 00000000000000000000000000001D1D1D005A5A5A0072727200737373007373 + 7300737373007373730073737300555555000000000000000000000000000000 + 000000000000000000000000000000000000134C9A002D6ABC00377ACB003B81 + CF003D84D2003D84D2003D84D2003D84D2003D84D2003D84D2003D84D2003D84 + D2003D84D2003D84D2003D84D2003D84D2003D84D2003D84D2003D84D2003D84 + D2003D84D20074ABEB000B448A00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600AFBFF300859BE9007C93E5007C93E5005E79D6005E79D6005770C8004D6A + CC00647EDA000000000000000000000000000000000000000000BFCDF6006178 + C9009DB2F700869FF1006878B100DDE0E700C8CAD100ECEFF700F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DADDE400C0C5D6006878B1009DB2 + F7009EAFEE005C74C70000000000000000000000000000000000000000000000 + 00000000000000000000000000000D0D0D005E5E5E0075757500767676007676 + 7600767676007676760076767600565656000000000000000000000000000000 + 000000000000000000000000000000000000134D9B001E57B1006AA0E30070A6 + E700225FB90074ABEB0074ABEB00225FB90074ABEB0074ABEB00225FB90074AB + EB0074ABEB00225FB90074ABEB0074ABEB00225FB90074ABEB0074ABEB00225F + B90074ABEB0074ABEB000C458A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006B85DE002C57 + E700647CCD00647CCD005A72CB000000000000000000000000000000000092A7 + EC00A7B8F300A6B9F80094AAF2008A92AF00C9CCD500F4F7FE00F4F7FE00F4F7 + FE00D4D6DD00F4F7FE00F4F7FE00F4F7FE008A92AF007182BB0094AAF200ABBB + F4006279C90092A7EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000039393900696969007C7C7C007C7C + 7C007C7C7C008181810067676700191919000000000000000000000000000000 + 0000000000000000000000000000000000001A529A007FB5F200337ECF003481 + D1003786D5003786D5003786D5003786D5003786D5003786D5003786D5003786 + D5003786D5003786D5003786D5003786D5003786D5003786D5003786D5003786 + D5003786D5007FB5F2000C458B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9005872C9005872C9005872CA00000000000000000000000000000000000000 + 000092A7EC005F77CA009AABE600B5C5F900AEBEF40096A5D7007985AD007985 + AD007985AD007985AD008694C00096A5D700B6C6F900B3C3F8009AACE70092A7 + EC00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000002020200494949008F8F8F008A8A + 8A00898989007070700044444400020202000000000000000000000000000000 + 0000000000000000000000000000000000000D468B001A4FA9001A4FA9001A4F + A9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4F + A9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4FA9001A4F + A9001A4FA9000C458B00010D1C00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005872CD00A0B0EB00B9C8F900BECCFA00BBCAFA00BCCA + FA00BCCAFA00BBCAFA00BDCBFA00BFCDFA00A1B2EB007489D3005872CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000007070700525252005D5D + 5D005D5D5D003535350007070700000000000000000000000000000000000000 + 000000000000000000000000000000000000031C3B000D468B000D468B000D46 + 8B000D468B000D468B000D468C000D468C000D468C000D468C000D478C000D46 + 8C000D468C000D468C000D468C000D468C000D468C000D468C000D468C000D46 + 8C000D468C000D468C0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005874CD007287D1008B9FE100ACBCF400ACBC + F500ADBDF500ACBCF4009DAEEA008C9FE1005874CD0093A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000319F700032A07100319F + 700031A07000319F710032A0710032A0700031A0710032A07000D58F6A00D58F + 6A00D58F6A00D58F6A00D58F6A00D58F6A00D58F6A00000000001560BC001560 + BD001560BD001660BD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000101000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BD8B6B00D39E7A00D39E + 7B00D39E7A00D39E7A00D39E7A00D49E7A00D49E7A00D49E7A00D49E7A00D49E + 7A00D49E7A00D49F7A00D49F7A00D49F7A00D49F7A00D59F7A00D59F7A00D59F + 7A00D59F7A00D59F7A0073513D000000000000000000CC886500EEA97A00EEA9 + 7A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A001361DF001361 + DF001361DF001361DF000F3EB000EEA97A00EEA97A00EEA97A00EEA97A00EEA9 + 7A00EEA97A00EEA97A00CC88650000000000000000000DC9920013B98C0013B9 + 8C0013B98C0013B98C0013B98C0013B98C000EC992002FA17100D58F6A00EBA5 + 7D00E19D7900E19D7900E19D7900E19D7900D58F6A00000000001661BE00076E + E600076EE6000578EA0000000000000000000000000000000000000000000000 + 00000000000000000000000000002A9C75002A9C75002A9C7500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C2937200F5C49C00F3BD + 9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD + 9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD9400F3BD + 9400F3BD9400F5C49C00D09775000201010000000000CC886500EEA97A00E59E + 7500DF977200DF977200DF977200DF977200DF977200DC936F000353DC000353 + DC000352DB000353DB000F3FB100DD946F00DF977200DF977200DF977200DF97 + 7200DF977200E59E7500CC88650000000000000000000DCA930013B98C000DCA + 93000DCA93000DCA94000DCA930013B98C000DCA93002FA27200D58F6A00ECA5 + 7D00E29E7900ECA57D00ECA57C00E29E7900D58F6B00000000001662C000057A + EB000388F000057BEA0000000000000000000000000000000000000000000000 + 000000000000040F0B000000000035CD980015B0810038D19B000D3427000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DDAB8600C5967400F5C9 + A300E8B69000E8B69000E8B69000E8B69000E8B69000E8B69000E8B69000E8B6 + 9000E8B69000E8B68F00E8B68F00E8B68F00E8B68F00E8B68F00E8B68F00E8B6 + 8F00F5C9A300CF9D7A00D09775000202010000000000CD896500EEA97A00DF97 + 7200DF977200DF977200DF977200DF977200DF977200DB916E000455DC000455 + DC000454DC000454DC000E40B300DC926E00DF977200DF977200DF977200DF97 + 7200DF977200DF977200CD89650000000000000000000DCB950013BA8D000DCB + 95000DCC94000DCB94000DCB940013B98C000ECB94002EA27300D68F6A00ECA5 + 7E00E39E7A00ECA67D00ECA67D00E39E7A00D5906B00000000001764C300057C + EB000389F000057CEB0000000000000000000000000000000000000000000000 + 000002090600000000002A9C750013B0820013B0820017B6870025977100030C + 0900000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000F4C49B00F0C19800E7B8 + 9100F7D3B400EBBD9600F5C89F00F5C79E00F5C79E00F5C79E00F5C79E00F5C7 + 9E00F5C79E00F5C79E00F5C79E00F5C79E00F5C79E00F5C79E00EBBC9600D8A6 + 8200ECB89000F2BD9400D09775000202010000000000CE8A6600EEA97B00E19A + 7400ECA77F00ECA77E00ECA77E00ECA87F00ECA87E00E09873000657DE000657 + DE000657DF000657DF000E42B700E2997400ECA77F00ECA77F00ECA77F00ECA7 + 7F00ECA87F00E1997400CE8A660000000000000000000DCD970013BD8F000ECE + 97000ECE97000DCE97000ECE980013BC8E000ECD97002CA57500D6906B00EDA7 + 7F00E5A17B00ECA77E00ECA77E00E6A17B00D6906B00000000001A66C7000581 + ED00038DF1000581ED0000000000000000000000000000000000000000000000 + 00002A9C750032D59F0014B1830010CF9E0010CF9D0012C1910031D39D0023A0 + 78000D3225000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000F5C89E00F5C89E00F4C7 + 9D00D3A58200F8D9BC00F5CAA100F5CAA100F5CAA100F5CAA100F5CAA100F5CA + A100F5CAA100F5CAA100F5CAA100F5CAA100F5CAA100F5CAA100F8D9BC00F1BE + 9600F4C19800F4C19800D09775000202010000000000CF8A6700EEA97C00E39C + 7600EDA98100ECA98000ECA98000ECA98000ECA98000DE9671000759E0000759 + E0000759DF000759E0000D44BA00E0977200ECA88000EDA98000ECA98000EDA9 + 8000EDA98000E39C7600CF8B670000000000000000000ECF990012C090000ECF + 98000ECF99000ECF99000ECF990012BF8F000ECF99002BA67500D6906C00EDA8 + 7F00E7A27C00ECA87F00ECA87F00E7A27C00D6906B00000000001A68CB000482 + ED00038EF1000483EE0000000000000000000000000000000000000000000223 + 1A002BD19C0014B2840013B2840016D2A10011D09E0010D09E0016B6870027CB + 9900259670000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000F5C89E00F5C89E00F5C8 + 9E00F3C59C00DBAD8800F9DFC500F2C59D00F2C59D00F2C59D00F2C59D00F2C5 + 9D00F2C59D00F2C59D00F2C59D00F2C59D00F2C59D00F9DFC700E2B38D00F4C4 + 9B00F4C49B00F4C49B00D09775000302010000000000D08B6800EEA97D00E49F + 7800EEAA8100EEAB8200EDAA8200EDAB8200EDAA8200DC936F00095AE100095A + E100085AE100095AE1000D45BD00DD947000EEAB8100EDAA8200EEAA8100EDAB + 8200EEAA8100E49F7800CF8B670000000000000000000ED09A0011C392000ED0 + 9A000ED09A000ED09A000ED09A0011C191000FD09A002AA67700D7906C00EDA9 + 8000E8A47D00EDA98000EDA98000E8A47D00D7906B00000000001B6ACD000486 + EF00038FF2000486EE000000000000000000000000000000000001150F002AA0 + 750015B3840013B283000FCE9B0080EFD0006EE5BF000FD19E0013B7880024C9 + 96001FB78A000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000F6CDA400F6CDA400F6CD + A400F5CCA300F5CCA300F5CCA300FBE8D400E9B79000E9B79000E9B79000E9B7 + 9000E9B79000E9B79000E9B79000E9B79000ECBF9700F5C89F00F5C89F00F5C8 + 9E00F5C89E00F5C89E00D09775000302010000000000D28E6900EFAE8200ECA9 + 8100F0B08600F0B08600F0B08600F0AF8600F0AF8600D68A68000D60E4000D60 + E4000D60E4000D60E5000E4DC800D78B6900F0B08600F0B08600F0B08600F0AF + 8600F0AF8600ECAA8100D28D6900000000000000000013D59F0010CB97000ED3 + 9C000FD39D000ED39D000ED39D0010C9960014D5A00027AA7800D7916D00EDAB + 8100EBA88000EDAA8200EEAA8200ECA88000D8926C00000000001E6ED200048C + F1000391F300048BF1000000000000000000000000002AA078001BD09D001DD2 + 9F000FD09E0016D4A3005DE7BF0040AC890033A37E0055DCB3000FD29F0011C0 + 90001ACC99002598710002090700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000F6D0A700F6D0A700F6D0 + A700F6CFA600F6CFA600F6CFA600FDF2E600FDF4EA00FBEBD900FBEBD900FBEB + D900FBEBD900FBEBD900FDF4EA00FDF4EA00F5CBA200F5CBA200F5CBA200F5CA + A100F5CAA100F5CAA100D09775000302010000000000D38E6900EAA77D00E8A5 + 7E00EBA88000EBA88000EBA88000EBA88000EBA88000D38564000E62E6000E62 + E6000E61E5000E62E6000E50CC00D3866500EBA88100EAA98100EBA88000EBA8 + 8000EBA88000E8A57D00D38E6A00000000000000000016D7A20010CE9A000FD4 + 9E000ED59E000FD59E000ED49E0010CC990017D7A20026AA7900D8926D00EDAB + 8300EDAC8200EEAC8200EEAB8300EEAC8200D8926D00000000001F6FD400038E + F1000393F200038EF10000000000000000000001010018CF9C001CD4A00010D3 + A00016D5A3005CE8C00046CFA80000000000071E1600269F770047E4B9000FD3 + A0000FD3A0001DB78A001B725500000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000F7D3AA00F7D3AA00F7D3 + AA00F6D2A900F6D2A900F6D3AA003786A9000685C4000685C5000299E8000299 + EC000299EF00038FE300038FE3004FA4D400F6D0A800F6CEA500F6CEA500F6CD + A400F6CDA400F6CDA400D09775000302010000000000D48F6A00DB926E00DA90 + 6E00DB926E00DB926E00DB926E00DB926E00DB926E00CE7F5F001064E7001064 + E7001064E7001064E7001054D000CE806000DB916E00DB926E00DB926E00DB92 + 6E00DB916E00DB926E00D48F6B0000000000000000001AD9A5000FD29D000ED5 + A0000FD5A0000FD6A0000FD69F0010D19C001BD9A60025AC7A00D9936D00EEAE + 8400EDAC8300EEAC8300EEAC8300EEAC8300D9926D00000000002071D7000393 + F3000393F3000393F30000000000000000002AA379001AD5A10010D4A1000FD4 + A1005BEAC1004CD7B1002CAA7F000000000000000000071E160051DCB30044E4 + B8000FD3A1001DD3A10023A178000C2F23000000000000000000000000000000 + 00000000000000000000000000000000000000000000F7D5AD00F7D5AD00F7D5 + AD00F7D7B100F9E2CA000C8ABA00069AD60004AFF20003AFF50003ACF60002AA + F60002A8F60002A3F60001A2F70001A0F700019DF700F9E2CA00F2D7B600F7D3 + AA00F7D3AA00F7D3AA00D09775000302010000000000D6916C00CC7C5D00CC7C + 5D00CC7C5D00CC7C5D00CC7C5D00CC7C5D00CC7C5D00CC7C5D001368E9001368 + E9001367EA001367EA00125BD900CC7C5D00CC7C5D00CC7C5D00CC7C5D00CC7C + 5D00CC7C5D00CC7C5D00D6906C00000000000000000022DDAB000ED9A3000FD9 + A3000FD9A3000ED8A3000ED9A2000FD8A30025DFAC0022B07E00D9946E00F0B2 + 8A00EFAE8500EEAE8500EFAE8400EFAE8400D9946E00000000001584EA005DC7 + FB005DC7FB005DC7FB00000000000000000006140F003BCDA1003EE2B60056E9 + C0002EAF830000020100000000000000000000000000000000000820180027A4 + 7A004DDCB2000FD5A10015D5A1001CB88B000000000000000000000000000000 + 00000000000000000000000000000000000000000000F7D5AD00F7D5AD00F7D5 + AD00F8DFC3000997CA000999CE0005B5F40005B5F50004B4F50004B1F50003AE + F50003ACF60002A8F60002A7F60002A5F60001A0F700019FF700F8DFC300F7D8 + B200F7D5AD00F7D5AD00D09775000302010000000000F4B78D00F5B88D00F4B8 + 8D00F4B78D00F4B78D00F4B88D00F4B88D00F4B88D00F0AF86001469EB001469 + EB00166BEB001369EB00135EDD00F2B28900F4B78D00F4B78D00F4B88D00F4B8 + 8D00F4B88D00F5B78D00F5BC9300D7916C000000000027E0AE000EDAA4000EDA + A5000FDBA4000FDAA4000FDAA5000FDAA40029E0AE0022B17F00D9946E00EFB4 + 8C00EFAF8600EEAF8500EFAF8500EFAF8600DA936E0000000000000000001584 + EA001584EA001584EA00000000000000000000000000259E760087EBCD00FFFF + FF00010504000000000000000000000000000000000000000000000000000821 + 180027A67A0036E0B30010D5A20013D4A1000C2E230000000000000000000000 + 00000000000000000000000000000000000000000000F7D5AD00F7D5AD00EED2 + B0000B9BCA000AA5D60009AFE40006B9F50006B8F50005B6F50005B5F50004B2 + F50004B1F50003ACF50002ABF60002AAF60002A5F60002A3F60001A2F700F5D7 + B500F4D6B400F7D5AD00D09775000302010000000000F5B98F00EFB08700EFB0 + 8700EFB08700EFB08700EFB08700EFAF8700EFB08700E8A57E00146BEC00146B + EC002073EE00156AEC001462E000EAA78000EFB08700EFB08700EFB08700EFB0 + 8700EFB08700EFB08700F5BD9400D8926D00000000002CE2B1000FDBA6000FDC + A5000FDBA6000FDBA6000FDCA6000FDCA6002EE3B10021B38100DA946E00F0B7 + 8F00EFAF8600EFB08600EFB08600EFB08600DA946F0000000000000000000000 + 0000000000000000000000000000000000000000000004100C0028A1790028A2 + 7A00000000000000000000000000000000000000000000000000000000000000 + 00000822190049DCB10033E0B2000FD6A300259C740002090600000000000000 + 00000000000000000000000000000000000000000000F1D3B300F5D8B700C9A5 + 8A0035C4E7000BC3F4000BC3F4000AC1F40009C0F40008BEF40007BCF50006B9 + F50006B8F50005B5F50004B4F50004B2F50036AAD700A89D9000C3A28900E1B5 + 9300F5D8B700F5D8B700DFB090000302010000000000F7C79F00F2B58C00F6BB + 9000F6BC9000F6BB9000F6BB9100F6BB9000F6BB9000EAA78000176DEE00176D + EE005196F400176EED001568E700EAA78000F6BB9000F7BB9100F6BB9100F6BB + 9100F6BB9000F6BB9000F7C7A000D9936E000000000037E6B5000FDEA9000FDE + A8000FDEA9000FDEA90010DEA9000FDEA90039E6B60020B88500DB956F00F1BD + 9400F0B18800EFB18800EFB18700EFB18700DB956F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000008231A0027A77E0046DDB10010D6A30026A97E000C2E22000000 + 00000000000000000000000000000000000000000000E8C2A200E6BA9600E0B2 + 90009EA5980055D2EA000CC5F3000BC3F4000BC3F4000AC2F40009C0F40008BD + F40007BCF50006B8F50005B6F5000AB6F300BE9F8800CDA88C00DEB59300E8BB + 9700E8BC9700E8BC9700C39071000000000000000000F8CCA600F3B78D00F6BC + 9100F7BC9100F7BC9100F7BC9100F6BC9100F6BD9100EAA88100176EEE001970 + EE0069A8F700176FEE00166BEA00E6A27C00F7BC9100F7BD9100F7BC9100F6BC + 9100F6BC9200F6BC9100F8CCA600DA946E00000000003DE8B8000FE0A9000FDF + AA000FDFAA0010E0A9000FE0AA000FDFA9003EE8B9001FB98600DB957000F2C0 + 9700F0B18800F0B18700EFB28800F0B18800DB956F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000009241B0028AA7F002BDFAF0014D09E0027A177000000 + 00000000000000000000000000000000000000000000DAA88600ECCAAC00E7BB + 9800D7AE9000B3A7930074D9EA000CC5F3000BC3F3000BC3F4000BC3F4000AC1 + F40009C0F40007BCF40021B7E60097A49D00D8B29200E4B99600E9BD9900E9BE + 9900E9BE9A00EECFB100564235000000000000000000F9DFC700F7BE9300F7BE + 9300F7BE9300F7BE9300F7BE9300F7BE9300F7BE9300E7A47E00186FEF00277A + F1007AB4F900186FEF00186EEE00E7A47E00F7BE9300F7BE9300F7BE9300F7BE + 9300F7BE9300F7BE9300FAE8D800DA946F000000000041E9BA000FE1AB000FE1 + AC000FE0AB0010E0AB0010E1AB000FE1AB0043EABB001EBB8800DC956F00F2C2 + 9900F0B28800EFB38900EFB28800F0B28800DC956F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000009241B0044DDB10028DFAF001DBC8E000000 + 000000000000000000000000000000000000000000000000000055413400DAA8 + 8600EAC09B00E9BE9900E5BB98009CE8F30011CDF2000FCAF3000DC8F3000CC5 + F3000EC9F400C1A78F00DAB59500E8BF9C00ECC29D00ECC29D00ECC39D00F2D6 + B900DEAE8D0056423500000000000000000000000000DA957000AE8989003648 + 99001E359200454C910061517800B67E6200BF82600095654A00146BEC00146B + EC00146BEC00146BEC00BF82600095654A00B67E63008C6B70007F708E00203E + 9A001A3B9B00374E9D00DA9570008D654A00000000004CECBE0010E3AE000FE3 + AD0010E2AE000FE2AD000FE3AE0010E3AD004EECBF001DBE8B00DC967000F5F9 + F700F7E1BA00F7E1BA00F7E1BA00F7E1BA00DC96700000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A261C002AAC7F0040DCB00029A4 + 7A00020806000000000000000000000000000000000000000000000000005541 + 3400F2D8BD00ECC19E00EBC19C00CBB99E00AFEEF80012CEF20010CCF30013CE + F3005CBFC800E3BD9A00ECC39E00EEC59F00EEC59F00EEC59F00EEC5A000DFB0 + 8E00574335000000000000000000000000000000000017234F000E33A0001F5D + CE000D46BB000B4ECB000A44BB000C2890001C3796005B568400062E9E00062E + 9E00062E9E00062E9E00947272005C5984000F379E000D3FAD000C4CC4000E48 + BE001662DF002063D400615A7500000000000000000051EDC0000FE3AF0010E4 + AF0010E4AE0010E4AF0010E3AF0010E4AE0053EDC1001DC18D0054392B00D796 + 7000F2AF8500F3AE8500F2AE8500F2AE850035261D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000A271D002BAC800026C1 + 94001B7256000000000000000000000000000000000000000000000000000000 + 0000DCAA8800F5DBC100EDC59F00ECC39D00CDC2A600BFF1FA0015D3F2005AC7 + CE00DCB99800EEC7A100EEC7A100EFC8A200EFC8A200EFC8A200F4DBC0005844 + 360000000000000000000000000000000000000000000C317F001653C5003880 + ED000E50CC000C5FE3000448CE000E35A5000E34A4000D35A600103CAD004990 + F1004990F100103CAD001345B2000E36A3000E35A5000E35A5000D40B5000E50 + CC00387BEC003880ED000C317F00000000000000000056EEC20010E5AF000FE5 + B00010E5B00010E4AF0010E5B00010E5B00058EEC2001CC28F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000A271D003ADB + AD002BB285000B2C210000000000000000000000000000000000000000000000 + 00000000000058443600DDAD8B00F0CAA300F1CBA400F1CBA400F0CBA400F1CC + A400F2CCA500F2CDA500F2CDA500F3CEA600F5DDC300E1B593005B4637000000 + 000000000000000000000000000000000000000000000B317F00215BCA005195 + F8000C5BDD000C5FE3000E60E3002672E6002A6CDD00124FCB00123AA300173F + A5001241AE001241AB000E45B6000D4CCB00206CE4002270E7000E60E3000C5B + DD005091F6005195F8000B317F0000000000000000005FEFC40010E7B10010E7 + B10010E6B10010E7B10010E6B10010E6B10061EFC5001CC59100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000A29 + 1E002CAF840032C0930000000000000000000000000000000000000000000000 + 000000000000000000005A453700F7DFC600F7DEC200F7DEC200F7DEC200F7DE + C200F7DFC200F7DFC300F7DFC300F8DFC300E2B695005D473800000000000000 + 00000000000000000000000000000000000000000000092869002158C700579B + FD001C6CE6003781EC00478AEB000D48C8000D40B8000D34A000000001000000 + 00000000000000000200061B48000F3EA5000D49C8002464D800478AEB001C6C + E6005698FC00579BFD0009286900000000000000000063F0C50010E7B20010E7 + B20010E7B20010E7B20010E7B20010E7B20065F0C5001CC79200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000B291F002CB1850013392C00000000000000000000000000000000000000 + 0000000000000000000000000000B28B6F00E8BC9800E8BC9800E8BC9800E8BD + 9800E8BD9900E8BE9900E8BE9900E9BE99005E48380000000000000000000000 + 00000000000000000000000000000000000000000000061C4A001B50BE00599C + FD0097C3FA001859D4000D47C7000D36A4000820620000030B00000000000000 + 000000000000000000000000000001040B000F40A9000E46BC000D48C70097C3 + FA009BC8FD00599CFD00061C4A00000000000000000068F0C70010E7B20010E7 + B20010E7B20010E7B20010E7B20010E7B20068F0C7001DC89400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000B2B20002FAE8400020806000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000092963001143 + B8000C329600071C570001030C00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000001040C000C3A + 9A000E42B0001249BB000000020000000000000000001BCB970020CA970021CB + 980021CB980021CB980021CB98001FCB970018C3900000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000B2B20002EAE83000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009D9E9E009D9E9E009D9E + 9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E + 9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E9E009D9E + 9E009D9E9E009D9E9E0000000000000000000000000000000000000000000534 + 6A0012589F0012589F0012589F0012589F0012589F0012589F0012589F001258 + 9F0012589F0012589F0012589F0012589F0012589F0012589F0012589F001258 + 9F0005346A000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4003569DC003569DC003569DC003569DC00173BB60006338400093889000938 + 8900093889000C3C8F0006338400173BB6003568DC003568DC003568DC003568 + DC002E54D40000000000000000000000000000000000CCCCCC00CCCCCC00CCCC + CC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCC + CC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCC + CC00CCCCCC00CCCCCC0000000000000000000000000000000000000000000534 + 6A000F509400073B7500073A7400073973000739720007387100063770000637 + 6F0006376F0006366E0006356D0005356D0005356C0005346B0005346B000E50 + 940005346A000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D400366DDD00366DDD00366DDD00366CDD00173BB6000633840013469D001346 + 9D0013469D000E3E920006338400173BB600366CDD00366CDD00366CDD00366C + DD002E54D40000000000000000000000000000000000CCCCCC00CCCCCC00CCCC + CC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCC + CC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCCCC00CCCC + CC00CCCCCC00CCCCCC0000000000000000000000000000000000000000000534 + 6A000F519500F6DDB600F6DDB500F6DDB400F6DDB400F6DCB300F6DCB300F6DC + B300F6DCB200F6DCB200F6DCB200F9E9C100FAEDD200F9E9CD00F7E1BD000F51 + 950005346A000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4005799EB005799EB005799EB0072B7FF00173BB600063384001548A0001448 + A00014489F001142970006338400173BB6005799EB005799EB005799EB005799 + EB002E54D40000000000000000000000000000000000CDCDCD00CCCCCC00DF98 + 7100EBA27900EBA27900EAA27900EAA27900EAA27900EAA27900EAA27900FCC8 + A500EAA27900EAA27900EBA27900EAA27900EAA27900EAA27900EAA27900DF98 + 7100CCCCCC00CCCCCC0000000000000000000000000000000000000000000534 + 6A0011549900F6DFB900F6DFB800F6DEB700F6DEB700F6DDB500F6DDB400F6DD + B400F6DDB400F6DDB400F6DDB400F6DDB400F8E5BB00FCF5D300FDF6DD001154 + 990005346A0000000000000000000000000000000000BD846200E8A97F00EEA9 + 7A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00EEA9 + 7A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00EEA97A00D595 + 7000140E0B000000000000000000000000000000000000000000000000000000 + 0000D4D4D400BFBFBF00BFBFBF00BFBFBF009C9C9C0006338400194FA700184E + A700184EA700184EA500063384009C9C9C00BFBFBF00BFBFBF00C3C3C300B3B3 + B3000000000000000000000000000000000000000000CECECE00CDCDCD00DE97 + 7100EBA37A00EBA27A00EAA37A00E9A17800EAA17900EBA37A00EAA27A00FCC8 + A500EAA27A00EAA27900EBA37900EBA27A00EAA37A00EBA37A00EBA27A00DF98 + 7100CDCDCD00CDCDCD0000000000000000000000000000000000000000000535 + 6B0011559B00F6E0BB00F6DFB900F6DFB800F6DEB800F6DEB700F6DDB600F6DD + B600F6DDB500F6DDB400F6DDB400F6DDB400F6DDB400F7DFB700FBF1CC001155 + 9A0005356B0000000000000000000000000000000000B57D5B00F6BB9100E09B + 7300D5916A00D6926B00D8946C00D8956D00D9956D00DA966F00DB976F00DB97 + 6F00DB976F00DD997100DE997100DE997100E09A7200E09A7200E09B7300E09C + 7400B07C5E000000000000000000000000000000000000000000000000000000 + 0000D4D5D500BFBFBF00CBCBCB00CDCDCD009C9C9C0006338400093889000938 + 8900093889001951AA00063384009C9C9C00CBCBCB00CBCBCB00BFBFBF00B3B3 + B3000000000000000000000000000000000000000000CFCFCF00CECECE00DB94 + 6E00EBA37A00EAA37A00E8A17800DC977000E0997100E8A07900EAA37A00FCC8 + A500EBA47A00EBA37A00EBA37B00EBA37A00EBA37A00EBA37A00EAA47B00DF98 + 7100CECECE00CECECE0000000000000000000000000000000000000000000535 + 6C0012569D00F6E0BC00F6E0BB00F6E0BA00F6E0BA00F6DFB900F6DEB700F6DE + B700F6DEB700F6DDB600F6DDB500F6DDB500F6DDB500F6DDB500F6DEB5001256 + 9D0006356C0000000000000000000000000000000000B67E5C00FDEFE200EDAC + 8300E9A37A00E9A37A00E9A37A00E9A37A00E9A37A00E9A37A00E9A37A00E9A3 + 7A00E9A47A00E9A47A00E9A47B00E9A47B00E9A47B00E9A47B00E9A47B00E19C + 7400D3946F000000000000000000000000000000000000000000000000000000 + 0000D6D6D600C3C3C300D3D3D300D6D6D6009C9C9C00063384001D58B0001D57 + B0001D57AF0011449800063384009C9C9C00D6D6D600D3D3D300BFBFBF00B3B3 + B3000000000000000000000000000000000000000000D1D1D100D0D0D000CC87 + 6300D18C6800CF896500CA856200CE9B8100C7825F00D18C6800EBA47B00FCC8 + A500ECA57C00ECA57C00E8A37B00E9A27A00EBA57C00EBA57C00ECA57C00DF9A + 7300D0D0D000D0D0D00000000000000000000000000000000000000000000637 + 6F001359A000F7E2C000F7E2BF00F7E2BE00F7E2BE00F6E0BD00F6E0BB00F6E0 + BB00F6E0BB00F6DFBA00F6DFB900F6DFB900F6DFB900F6DEB800F6DEB8001359 + A10006366F0000000000000000000000000000000000B67E5D00F4C19600EDB1 + 8700E19C7400EAA57C00EAA57C00EAA67D00EAA67D00EAA67D00EAA67D00EAA6 + 7D00EAA67D00EBA77D00EBA77E00EBA77E00EBA87E00EBA87E00EBA87E00EAA7 + 7E00E6A57B00C88D6B0000000000000000000000000000000000000000000000 + 0000D9D9D900D0CFCF00D8D8D900D8D9D9009C9C9C0006338400215EB800205D + B700205EB7001952A900063384009C9C9C00D9D8D800D9D8D800C4C4C400B3B3 + B3000000000000000000000000000000000000000000D2D2D200D1D1D100D7A7 + 8E00C7836000CD8E6F00DBBCAC00E4E2E100D49E8100C9846100E59F7800FBC7 + A400EBA67D00E6A27900DE9A7300DC977000EAA57D00ECA67D00ECA67D00DF9A + 7300D1D1D100D1D1D10000000000000000000000000000000000000000000737 + 7000135AA300F7E3C100F7E2C000F7E2C000F7E2C000F7E2BF00F7E1BE00F7DF + BC00F7E0BA00F7E1BB00F7E0BA00F7E0BA00F7E0BB00F7E0BA00F7E0BA00135B + A3000737710000000000000000000000000000000000B7805E00F3C29700CC8F + 6900E19E7600EAA67D00EBA87E00EBA87E00EBA87E00EBA87F00ECA97F00ECA9 + 7F00ECA97F00ECA97F00ECAA8000ECAA8000ECAA8000ECAA8000EDAA8000EDAB + 8100E9A77E00DB9C760000000000000000000000000000000000000000000000 + 0000DADADA00D6D6D600DADADA00DADADB009C9C9C00063384003786D5003786 + D5003786D5001E5AB200063384009C9C9C00DADADA00DADADA00CCCCCC00B3B3 + B3000000000000000000000000000000000000000000D3D3D300D2D2D200E6E4 + E300DFC4B500E6E4E300E6D6CC00E8BBA100E5DED900CE906F00DA956F00F5BF + 9D00EAA57D00D9946D00CB876300CA866300E8A37A00EBA77E00ECA77E00E09B + 7400D2D2D200D2D2D20000000000000000000000000000000000000000000738 + 7200145BA400F8E3C300F7E3C200F7E3C100F7E3C100F7E2C000F7E2BF00F7E1 + BD00F6DFBA00F7DFBA00F7E1BB00F7E1BC00F7E1BC00F7E0BB00F7E0BB00145C + A5000738720000000000000000000000000000000000B77F5E00F3C39700C286 + 6100E8AB8200E5A47A00ECAA8000EDAA8000EDAB8100EDAB8100EDAB8100EDAB + 8100EDAC8200EDAC8200EDAC8200EEAC8300EEAD8300EEAD8300EEAD8400EEAD + 8400EDAD8300E9AA800000000000000000000000000000000000000000000606 + 0600DCDBDB00DCDCDB00DBDCDB00DBDBDC009C9C9C00063384002260BA002260 + BA002260BA002260BA00063384009C9C9C00DBDBDB00DBDBDC00D3D3D300ADAD + AD002C2C2C0000000000000000000000000000000000D5D5D500D4D4D400E19C + 7500ECA98000ECA98000EDA98000EDA98000ECAA8200E9DAD100CA866200CE8D + 6B00CB876400E4D5CE00E9E5E300DFBFAE00D08D6800E29F7700ECA87F00E09C + 7500D4D4D400D4D4D4000000000000000000000000000000000000000000073A + 7600155EA900F8E5C400F8E4C300F8E4C300F8E4C300F8E4C300F7E3C200F7E2 + C100F6E1BE00F5DAB400F5DCB300F6DEB900F7E3C000F7E2BF00F7E2BE00155F + A900083A760000000000000000000000000000000000B7806000F2C49900CC90 + 6A00EEC49900EBAC8300EDAD8400F0B08600F0B18700F0B18700F1B18800F1B1 + 8800F1B28800F1B38800F1B38900F1B38900F1B48900F1B48900F2B48A00F2B4 + 8B00F2B48B00F3B58B00936A5000000000000000000000000000000000001935 + BF009F9F9F00D4D4D500DEDFDE00DFDEDE009C9C9C003786D5003786D5003786 + D5003786D5003786D5003786D5009C9C9C00DEDEDF00DEDEDF00D1D0D000A3A3 + A3001226AD0000000000000000000000000000000000D7D7D700D6D6D600EBB1 + 8F00FCC9A600FCC9A600FCC9A600FCC9A600FCC9A600F9CAAB00DEB49D00C887 + 6500D6A99100EBCDBA00F4C4A600ECE7E400CC8B6900DCA07E00F3BD9B00EBB1 + 8F00D5D5D500D5D5D5000000000000000000000000000000000000000000083B + 78001660AB00F8E5C700F8E5C500F8E5C400F8E5C400F8E4C300F8E4C300F8E4 + C300F8E3C200F5DFB700F5DBB200F5DCB400F7E1BE00F7E3C000F7E3C0001660 + AB00083C780000000000000000000000000000000000B8816000F2C79A00D195 + 6E00E5B28700EFC09400ECAF8500F2B48A00F2B48A00F2B48B00F3B58B00F3B6 + 8B00F3B68B00F3B68B00F3B68C00F3B68C00F4B78D00F4B78D00F4B78D00F4B8 + 8E00F4B88E00F4B88E00CA926F00000000000000000000000000000000001935 + BF00A1A1A1009F9F9F00D5D5D500E0DFDF00DFE0E000E0DFE0002A8F60000CC7 + 90002A8F6000E0E0E000E0DFE000E0E0DF00DFE0E000D2D2D2009C9C9C004275 + DB001226AD0000000000000000000000000000000000D8D8D800D7D7D700E19E + 7700EDAB8200EEAB8200EEAB8200EDAB8200EDAB8200EDAB8200EEE9E700E7D1 + C300ECE3DE00EBA98100EDAB8200EBB99A00D29B7E00CA866300DB977200E19E + 7700D7D7D700D7D7D7000000000000000000000000000000000000000000093C + 7A001662AD00F8E6C900F8E5C800F8E5C700F8E5C700F8E5C500F8E4C400F8E4 + C300F8E4C300F8E1BF00F5DFB800F4DAB000F5DFBA00F7E1BF00F7E3C2001661 + AD00093D7A0000000000000000000000000000000000B8826100F1C89B00D69A + 7200D79B7300F0C99C00F2B58B00F4B78D00F4B88D00F4B88E00F4B88E00F4B9 + 8E00F4B98E00F5B98F00F5B98F00F5BA8F00F6BA9000F6BB9000F6BB9000F6BB + 9000F6BB9000F6BB9000E8AD8500624836000000000000000000000000001935 + BF004275DB00A2A2A2009F9F9F00E1E1E100E1E1E100E1E1E1000CC790002A8F + 60002E54D4002A8F6000E1E1E100E1E1E100D2D2D2009D9D9D00A4A5A5004A8D + EB001226AD0000000000000000000000000000000000DADADA00D9D9D900E19F + 7800EEAD8400EEAD8400EEAD8400EEAD8400EEAD8400EEAD8400EEAD8400FCC8 + A500EEAD8500EEAD8400EEAD8400EEAD8400EFD7C800ECD9CF00CA866300DA98 + 7200D9D9D900D9D9D90000000000000000000000000000000000000000000A3F + 7E001864B200F8E7CB00F8E7CA00F8E7CA00F8E7CA00F8E6C900F8E5C800F8E5 + C800F8E5C800F8E5C500F8E4C400F8E2C100F6DBB400F5DBB300F7E0BD001864 + B1000A3F7E0000000000000000000000000000000000B8836200EFC99C00DFA3 + 7B00DFA37B00E2A77F00FFFAF100FDF1DF00FDEFDB00FDEDD900FCEAD200FBE9 + CF00FAE7CC00F9E2C400F9E1C100F8DFBE00F8DDBA00F7DCB800F7DCB800F6DB + B700F6DAB600F6DAB600F5D9B500D7A481000000000000000000000000001935 + BF003562DA005092EF004275DB00A0A0A000D8D9D900E4E3E300154BA300F1B1 + 8700F1B18700E4E4E300E3E3E300D5D5D500A4A4A5004275DB004B8EEC001934 + BF001226AD0000000000000000000000000000000000DBDBDB00DADADA00E2A0 + 7900EFAE8500EEAE8500EFAE8500EEAE8500EFAE8500EFAE8500EEAE8500FCC9 + A600EEAE8500EFAE8500EEAE8500EFAE8500ECAE8700F2E4DC00E5C7B500D28E + 6A00DADADA00DADADA0000000000000000000000000000000000000000000A41 + 81001965B300F8E8CC00F8E7CB00F8E7CB00F8E7CB00F8E7CA00F8E6C900F8E6 + C900F8E6C900F8E5C800F8E5C700F8E5C700F6E0BB00F5DAB300F6DCB6001865 + B3000A40810000000000000000000000000000000000B9836300EFCA9C00E3A8 + 7F00E3A87F00E3A87F00E7AE8700E9AF8500E9AF8500E9AF8500E9AF8500E9AF + 8500E9AF8500E9AF8500E9AF8500E9AF8500E9AF8500E9AF8500E9AF8500DBA0 + 790091674E008A624A00886149003D2C21000000000000000000000000000C17 + 3A002E54D4003563DA005699F100A1A1A300A0A0A000DADAD900154BA300F1B1 + 8700F1B18700E5E5E500D5D5D6009D9D9D004275DB004B8EEC002447CA001226 + AD00060E340000000000000000000000000000000000DCDCDC00DBDBDB00E2A1 + 7900EFAF8600EEAF8600EEAE8500EFAF8600EFAF8600EFAF8600EFAF8600FCC9 + A600EEAE8600EEAF8600EFAF8600EFAF8600EFAF8600ECB58F00F5EFEB00CC88 + 6400DBDBDB00DBDBDB0000000000000000000000000000000000000000000B41 + 82001966B500F8E8CE00F8E8CD00F8E8CC00F8E8CC00F8E7CB00F8E7CA00F8E7 + CA00F8E7CA00F8E6C900F8E5C800F8E5C800F8E2C300F6E0BC00F5DDB5001967 + B5000B42820000000000000000000000000000000000B8846300EFCA9D00E8AD + 8400EFB58A00EFB58B00EFB58B00EFB48A00EEB48A00EEB48A00EDB38900EDB3 + 8900EDB38900ECB28800ECB18800ECB18700EBB08600EAB08600EAAF8600DCA0 + 790017100B000000000000000000000000000000000000000000000000000000 + 00001935BF002E54D4003664DA004275DB00A1A1A300A0A0A000063384000633 + 840006338400D6D6D6009D9D9D00A4A5A5005093EF00244ACB001934BF00060E + 33000000000000000000000000000000000000000000DEDEDE00DDDDDD00E3A1 + 7A00EFB18700EFB18800EFB08700EFB08800EFB18700EFB18700EFB18800FCCA + A700EFB18700EFB18700EFB18800F0B18800EFB18800EFB08800EFB08800F5EA + E300DDDDDD00DDDDDD0000000000000000000000000000000000000000000C44 + 87001B69B900F9E9D000F8E9CF009B9280009B9280009B927F009B927F009B92 + 7F009B927E009B917E009B917D009B917D009B917D00BFB29900F8E5C7001B69 + B8000C44870000000000000000000000000000000000BA866500EECC9F00F6BC + 9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC + 9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100E2A7 + 7F00140E0A000000000000000000000000000000000000000000000000000000 + 0000000000000B1535001935BF003664DB00579BF2004275DB00A0A0A000DBDC + DB00D8D7D800A3A4A7004275DB00579AF100878CA6001226AD00060D2F000000 + 00000000000000000000000000000000000000000000DFDFDF00DEDEDE00E3A3 + 7B00EFB28800F0B18800EFB28800F0B18800EFB18800EFB18800F0B28800FCCA + A700EFB28800F0B18800EFB28800EFB28900F0B18800EFB18800F0B18800EFD1 + BD00DEDEDE00DEDEDE0000000000000000000000000000000000000000000D45 + 8A001B6AB900F9EAD100F9E9D000565544005755450057554400575644005755 + 44005655440057554500575544005756440086806C009B917D00F8E7CA001B69 + BA000D45890000000000000000000000000000000000BC886700EDCC9F00F6BC + 9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100FADDB800FADD + B800FADDB800FADDB800FADDB800FADDB800FADDB800FADDB800FADDB800D198 + 7300050302000000000000000000000000000000000000000000000000000000 + 000000000000000000000B1432002E54D4003664DB00589BF200A0A1A400A0A0 + A0009D9D9D004275DB00579BF200061D9400ABABAB00050C2D00000000000000 + 00000000000000000000000000000000000000000000E1E1E100E0E0E000E2A3 + 7B00EFB28900F0B28900F0B28900F0B28900F0B28800F0B28900EFB28900FCCA + A700F0B28900EFB28900EFB28900EFB28900EFB28900EFB28900F0B28900E9B7 + 9800DFDFDF00DFDFDF0000000000000000000000000000000000000000000D47 + 8C001C6BBB00F9EAD200F9EAD100908974009089740090897400908974009089 + 7400908974009089740090897400908974005A5A48009B917E00F8E7CB001C6A + BB000D468C0000000000000000000000000000000000BF8A6900EDCD9F00F6BC + 9100F6BC9100F6BC9100F6BC9100F6BC9100F6BC9100F3D2AE00DDAC8E00DDAC + 8E00DDAC8E00DDAC8E00DDAC8E00DDAC8E00DDAC8E00DDAC8E00DDAC8E003B2B + 2000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001935BF002E54D4003664DB004275DB009FA1 + A5009D9FA700589CF200061D9400A0A5BF00ABABAB0000000000000000000000 + 00000000000000000000000000000000000000000000E3E3E300E2E2E200E3A3 + 7C00E3A37C00E3A37C00E3A37C00E3A37C00E3A37C00E3A37C00E3A37C00EBB2 + 9000E3A37C00E3A37C00E3A37C00E3A37C00E3A37C00E3A37C00E3A37C00E3A3 + 7C00E2E2E200E2E2E20000000000000000000000000000000000000000000E49 + 90003786D5003786D5003786D500F5F6EF00E3E5D200D3D6B600D3D6B600D3D6 + B600D3D6B600D3D6B600D3D6B600DDDFC70064634F002F5B83003786D5003786 + D5000E4990000000000000000000000000000000000087634C00D9A68600D89D + 7800D69C7700D69B7700D69B7700D49A7500C18B6900271C1500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A122E001935BF003563DA0072B7 + FF0072B7FF001934BF00ABABAB00CCCCCC00ABABAB0000000000000000000000 + 00000000000000000000000000000000000000000000E4E4E400E3E3E300E3E3 + E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3 + E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3 + E300E3E3E300E3E3E30000000000000000000000000000000000000000000B39 + 71000E4A93000E4B92000F4A920068675400686754006867540072725E007272 + 5E0072725E0072725E006868540068675400455C6D00183A5E000E4B92000F4A + 92000B3971000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000009112C002E54D4003F82 + E6003F82E6001226AD00ABABAB00CCCCCC00ABABAB0000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006C6B5700646351006463 + 510064635100646351006D6C5800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001935BF003F82 + E6003F82E600050A2600ABABAB00E4EBEB00ABABAB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004545380073725D007372 + 5D0073725D0073725D0045453800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000509 + 1800020616000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448900BECAF4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000026366A007D94E1004256 + 9C00687FCF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3E90029396C003B4A7E0043549300485C9E00485C + 9E00485C9E00435493003B4B80002A396E00A3B3E90000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCCC + CC003E5291002B3767002A386800445799004D60A1005166AC005267AC005166 + AE005267AB005064A8004E63A7004A5D9B002F3D6E0029366400293665009FAD + DC00D3D3D3000000000000000000000000000000000034343300232323002222 + 220022222200212121002121210020202000202020001F1F1F001F1F1F001E1E + 1E001E1E1E001D1D1D001D1D1D001D1D1D001C1C1C001C1C1C001B1B1B001B1B + 1B001B1B1B001A1A1A0034343300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387000869FF1007D95 + E6004A5DA0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E55A3002F3E7400455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF002F3E74003E55A300000000000000 + 0000000000000000000000000000000000000000000000000000CBCBCB0093A2 + D800475891005166B1004E60A2004E69C0003B58BA003856B9003B58B9003754 + B7003653B6003552B300304DAF003551AE003545790047568D004C60A3002A37 + 670092A1D7000000000000000000000000000000000036363500F4E0BD00F7E2 + BF00F7E2BE00F7E2BE00F7E1BD00F7E1BC00F7E1BC00F7E0BB00F7E0BB00F7E0 + BA00F7E0BA00F7E0BA00F7E0BA00F7E0BA00FAEFCC00F9EED000F7EBCF00F5E5 + C900F2DFC000F2DAB60034343300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3B75008BA1EB00829A + EA006A87EB003349900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293D85003D4E8900465FB0000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA100465FB0003D4E8900293D85000000 + 0000000000000000000000000000000000000000000000000000000000004860 + B200506BC8003B5BC4005570CA005E78D1003D5DC8004664CA004563C9004563 + C9004361C7003F5DC3003B5AC0003151BA0049598E004E67B800324EAE004A5A + 93004157A4000000000000000000000000000000000039393700F7E3C100F7E3 + C100F7E2C000F7E2BF00F7E2BE00F7E2BE00F7E2BE00F7E1BD00F7E1BC00F7E0 + BB00F7E0BB00F7E0BA00F7E0BA00F7E0BA00F8E3BC00FCF3CE00FDF7D800FEF9 + E400FEF9E700F3DEBB0034343300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000304180009CAEED007F96 + E1004B67C7004368E40030418000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002D41 + 8A003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9002D41 + 8A00000000000000000000000000000000000000000000000000000000003C52 + 9E005978E100617FE4006F8BE800859DED006D89E9006E8AEA006C89E9006B88 + E8006986E7006481E300617EE1005C7ADE007F93D4005270D3004362CB005971 + C10033458400000000000000000000000000000000003E3D3B00F8E4C400F8E4 + C400F7E4C300F7E4C300F7E3C200F7E3C100D8C7A9008C817100F7E2BF00F7E2 + BE00F7E2BE00B4A48C00756C5D00736A5C00F5DEBA00F7E0BB00F7E0BB00FCF5 + D300FDF7DB00F8EBD00034343300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000334486009EB0EE007F96 + E1004B67C7004468E40033448600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000445DAE004154 + 9500082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004154 + 9500445DAE00000000000000000000000000000000000000000000000000435B + AD006E8CEF007994F1007C97F3008DA5F500819BF400829CF500809AF4007F9A + F4007C97F3007692EF00738FED006F8BEB007F98E9005F7DE0005876DB006079 + CC00384C90000000000000000000000000000000000040403C00F8E5C700F8E5 + C700F8E4C500F8E4C400F7E4C300F7E4C300B7AA940026262600F7E3C100F7E2 + C000F7E2C0001D1D1D001C1C1C001F1F1E00615A4E00F5DFBB00F7E1BC00F7E1 + BC00FBEFCC00FAF1D20034343300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000035488B009FB1EE007F96 + E1004B67C7004468E40035488B00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A7B6EC00384987004863 + BE00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004863 + BE0038498700A7B6EC0000000000000000000000000000000000000000004862 + B9007A96F4008AA3F6008EA6F60092A9F60093AAF60093AAF60092A9F60091A8 + F6008EA6F60088A2F600839DF400809AF4007591EF006F8BEB006784E700637E + D5003D539C000000000000000000000000000000000042423E00F8E6C900F8E6 + C900F8E5C800F8E5C700F8E4C500F8E4C400B9AB950029292900F7E4C300F7E3 + C200E2D0B20025252400C9B79D00EDD9B7001B1B1B00AA9C8500F7E2BE00F7E1 + BD00F7E1BC00F9E9C30034343300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A4F9700A0B2EE007F96 + E1004B67C7004469E5003A4F9700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000394B8E004A67C800133A + BF000C35BE000C35BE000C35BE00FFFFFF00FFFFFF00A2B2E5000C35BE000C35 + BE000C35BE00A2B2E500FFFFFF00FFFFFF000C35BE000C35BE000C35BE001239 + BE004A67C800394B8E0000000000000000000000000000000000000000006F89 + DE00859FF5009FB3F700B2C2F900B7C7F900B8C7F900B9C8F900B7C7F900B5C5 + F900B3C3F900ABBDF800A6B9F800A0B4F70094ABF6008CA5F6007894F400617A + CE006B85DA000000000000000000000000000000000047474200F8E7CC00F8E7 + CC00F8E7CB00F8E7CB00F8E6CA00F8E6C900BBAF9A0030303000F8E5C700F8E4 + C500F8E4C500F7E4C300F7E4C300F7E4C30022222200766E6100F7E3C100F7E2 + C000F7E2BF00F7E2BF0034343300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D539E00A0B2EE007F96 + E1004B67C7004469E5003D539E00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004A5DA500395BCD00153D + C400173FC400173FC400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173F + C400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173FC400173FC400153D + C400395BCD004A5DA5000000000000000000000000000000000000000000D3DB + F8007C95E8009DB2F700B2C2F900C9D5FB00BAC5E800AEB8D800A1AAC900A0A9 + C8009DA7C8009AA6CE009CAAD700A1B1E6009FB3F7008CA5F6007E99F500556E + C200D2DBF800000000000000000000000000000000004A494400F8E8CE00F8E8 + CE00F8E7CD00F8E7CC00F8E7CB00F8E7CB00BCB09D0033333300F8E6C900F8E5 + C800F6E3C50056524C00BDAF9900C9B9A10026262600AB9F8B00F7E4C300F7E3 + C200F7E3C100F7E3C10034343300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004056A300A1B3EE007F96 + E1004B67C7004569E5004056A300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005169BD003357CF002148 + CB00234ACB00234ACB00234ACB009DA9D000FFFFFF00FFFFFF00ABBAEB00234A + CB00ABBAEB00FFFFFF00FFFFFF009DA9D000234ACB00234ACB00234ACB002148 + CB003357CF005169BD0000000000000000000000000000000000000000000000 + 00005E76C700869DE9009CB1F700A2AFD900ADB5CF00D6D9E100EDECEB00ECEB + EA00ECEBEA00E4E4E800D2D5E100A2ACCE0097ADF70088A2F6007791E70092A5 + EC0000000000000000000000000000000000000000004C4C4600F9E9CF00F9E9 + CF00F8E8CE00F8E8CE00F8E7CD00F6E5CA00BDB19F0037373700F8E7CB00F8E6 + CA00F8E6CA002E2E2E002D2D2D002C2C2C006E685E00F7E3C300F8E4C400F7E4 + C300F7E4C300F7E4C30034343300000000000000000000000000000000000000 + 0000000000000000000000000000000000004962B9006B82CC00B4C4F900A7B9 + F80098AEF7007692F2006279CA00465EB3000000000000000000000000000000 + 000000000000000000000000000000000000000000005D78D5002D54D500365B + D700395ED800395ED800395ED800395ED8003353BE00A4AFD400FFFFFF00FFFF + FF00FFFFFF00A4AFD4003353BE00395ED800395ED800395ED800395ED800385D + D8002E54D5005F79D50000000000000000000000000000000000000000000000 + 000000000000CED8F7006B84DB005C72BD00C7CBDB00CDCBCA00A19F9E009997 + 960099989600B8B7B500D1D0CE00CACEDE005972C5006B84DB00CED8F7000000 + 0000000000000000000000000000000000000000000051514900F9EAD200F9EA + D200F9E9D100F9E9D100F9E9D000464544003E3E3E003D3D3D00F8E8CE00F8E7 + CD00F8E7CD00353535009E948500E2D3B900E2D2B800F3E2C400F8E6C900F8E5 + C800F8E5C700F8E5C70036363400000000000000000000000000000000000000 + 0000000000000000000000000000516AC4006980CD0087A0F3009DB1F3008AA3 + F4007993ED005C7AE0006081EE006078CC00BFCCF50000000000000000000000 + 00000000000000000000000000000000000000000000607BD800365CDC004266 + DE004569DF004569DF004569DF004569DF004569DF003D5CC300FFFFFF00FFFF + FF00FFFFFF003D5CC3004569DF004569DF004569DF004569DF004569DF004468 + DF003A5FDC006681DB0000000000000000000000000000000000000000000000 + 000000000000000000000000000093A7ED006475AC0083879400ACAAA900C3C1 + C000C7C5C4009896950081879B006879B4000000000000000000000000000000 + 0000000000000000000000000000000000000000000053534B00F9EBD400F9EB + D400F9EAD300F9EAD200F9E9D100E1D3BD005D5B570041414100F9E9CF00F8E8 + CE00F8E8CE0039393900383838003636360033333300CBBDA700F8E7CB00F8E6 + CA00F8E6C900F8E6C90036363500000000000000000000000000000000000000 + 0000000000000000000000000000677FD0007A95F1008CA1E80096ACF500839D + F100728DEA004F6ED7004667D4005276EC004D65BE00BFCDF600000000000000 + 00000000000000000000000000000000000000000000657FDC003F64E1004D70 + E3005173E3005173E3005173E3005173E3005173E300BCC9F400FFFFFF00FFFF + FF00FFFFFF00BCC9F4005173E3005173E3005173E3005173E3005173E3004F71 + E3004368E1006C85DE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009D9D9D005D5C5C00A9A7A500AFAD + AB00B7B5B300C0BEBD00646363009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000053534B00F9ECD500F9EC + D500F9EBD400F9EBD400F9EAD300F9EAD200DACEB900504F4D00F9E9D100F9E9 + D000F9E9D0006B6760006A66600069655F0067635C00D7C9B100F8E7CC00F8E7 + CB00F8E7CB00F8E7CB0038383600000000000000000000000000000000000000 + 000000000000556FCD00637CD1006B85D9008096E1009CAEED0088A1F3007792 + EC006582E4004363CF003354C3002446B5003C63E8005B75CF00506AC3000000 + 000000000000000000000000000000000000000000006680D6006080EC006080 + EB006886EC006886EC006886EC00C5D1F800FFFFFF00FFFFFF00B2BBDA005670 + C400B2BBDA00FFFFFF00FFFFFF00C5D1F8006886EC006886EC006886EC006181 + EB006181EC006780D60000000000000000000000000000000000000000000000 + 000000000000000000000000000059595900ACABAA00C2C1C000BDBCBA00B7B6 + B400AFADAB00A8A6A500B7B5B400AEADAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000058584F000C5DDD000B5C + DC000A5ADA000959D9000958D8000855D6000754D5000653D4000551D2000550 + D100044FD100034DCF00034DCE00024CCE00024BCD00024BCD00024BCD00024B + CD00024BCD00024BCD003A3A3800000000000000000000000000000000000000 + 00005671CD00637CD1005C7DEC006E86D7008A9FE500A1B3F000819BF000718C + E9005F7DE1003D5ECB002D4EBD001F41B0001033A500375FE7005C76D000BFCD + F60000000000000000000000000000000000000000006279C8006E8CF0006887 + EF007491F1007491F1007491F100FFFFFF00FFFFFF00FFFFFF00657FD3007491 + F100657FD300FFFFFF00FFFFFF00FFFFFF007491F1007491F1007491F1006988 + EF006E8CF0006279C80000000000000000000000000000000000000000000000 + 00000000000000000000000000007E7E7D00D1D0D000D2D2D100CDCCCB00C7C6 + C500BFBDBC00A8A6A400A8A6A400B9B7B600AAAAAA0000000000000000000000 + 000000000000000000000000000000000000000000005A5A50000C5EDE000C5D + DE000B5BDC000A5ADB000A59DA000957D8000856D7000755D6000653D4000652 + D3000551D200044FD000044ED000034DCF00024CCE00024BCD00024BCD00024B + CD00024BCD00024BCD003C3C3900000000000000000000000000000000000000 + 0000607AD1005375EB004D69C8007990DD0094A8EA00A0B3F3007B96EE006A86 + E6005977DD003758C600284AB9001A3CAB0004248F000C2E9F00375FE700526C + C500BFCDF600000000000000000000000000000000005169BB007E97F0006F8D + F300819BF500819BF500819BF500FFFFFF00FFFFFF00BAC2DC00819BF500819B + F500819BF500BAC2DC00FFFFFF00FFFFFF00819BF500819BF500819BF5007290 + F4007E98F1005169BB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C2C1C100E0DFDE00E1E0E000DBDBDA00D5D4 + D300CCCBCA00B4B3B100A6A4A300ACAAA8006969690000000000000000000000 + 000000000000000000000000000000000000000000005D5C52000D5FE0000D5F + DF000C5DDD000B5CDD000B5BDC000A59DA000958D9000857D8000754D6000753 + D5000652D4000550D200044FD100044ED000034DCE00034CCE00024BCD00024B + CD00024BCD00024BCD003E3E3B000000000000000000000000005973CF005F79 + D2003251B7003F5BB8005772C9008DA2E700A1B3F10092A9F4006F8BE8005D7B + E0004C6CD5002C4DBC001E40AF001031A00003238D0003238D0003238D00375F + E7005E78D200536EC700000000000000000000000000AEBDF200586EBF00869E + F0008FA7F60096ACF70096ACF7008497D8008497D80096ACF70096ACF70096AC + F70096ACF70096ACF7008497D8008497D80096ACF70096ACF70091A8F60089A1 + F000586FBF00AEBDF20000000000000000000000000000000000000000000000 + 0000000000000000000000000000A9A9A8004D4D4D00F7F6F600F1F1F100EBEA + EA00E2E1E000C8C7C600B9B7B60070706F004D4D4D0000000000000000000000 + 00000000000000000000000000000000000000000000626156000E61E1000E61 + E1000D60E0002A70E4003D79E6003270E0000B5BDC000A5ADB000958D9000857 + D8000856D7000753D5000652D4002769DF003B77E500306CDD00044ECF00034C + CE00024BCD00024BCD0043433F0000000000000000005973CF005F78D3004068 + EE003B59BF00516DCB006882D8009CAFEE00A3B5F40091A8F400708CE900607E + E3005070DA003255C7002447BC00183BB1001033A6001033A6001033A600193E + B8003B64ED005F78D300C1CDF6000000000000000000000000005C76D2006980 + CE008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F7008FA7F6006F85 + D0005C76D2000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00FDFDFD00F8F8F800F2F1 + F100E9E8E800CFCECD00B9B7B6004D4D4D004D4D4D0000000000000000000000 + 00000000000000000000000000000000000000000000646458000E61E1000E61 + E1001F6BE4002E65D00013389600133896002A5CBF000B5CDC000A5ADA000959 + D9000957D8000855D6001B62DC002D63CE0017327100133896002A5EC500034D + CF00034CCE00024CCE004545400000000000000000005F79D3003C65EE00426A + F0006183F2007491F40088A2F600B3C3F900ADBEF8009EB3F700829CF5007491 + F4006787F3004F74F100446BF0003B64EF003761EF003761EF003761EF003761 + EF003761EF003B64ED005872CD00000000000000000000000000000000004E68 + C30094ABF60097ADF700A8BAF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF70095ACF7004E68 + C300000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00BCBCBC00E6E6E600CBCB + CB00BABAB9009A9999007A7A79004D4D4D006969690000000000000000000000 + 0000000000000000000000000000000000000000000067665A000E61E1000E61 + E1001565E200133CA000526D9700506C9700163A8B000C59D5000B5BDC000A5A + DB000A59DA000957D800115BD900123BA0004774C500506C97001742A400044E + D000034ECF00034DCF004848420000000000000000003761EF000936CC00214A + D4005475E4006E8AE900869EEF0098ADF50088A1F5007B96F0005C7BE2004E6E + DA003F60CF002648B900193BAB000E2F9E000324930003269A000328A000042B + AD00042DB500042EBB005872C900000000000000000000000000000000000000 + 00004F6AC500758AD3009EB2F400A8BAF800B2C2F900B7C7F900BCCAFA00BCCA + FA00BBCAFA00B6C6F900B1C1F900A7B9F80098ADF2006F85D1004F6AC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000515151004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 000000000000000000000000000000000000000000006B6B5D00579BF000579B + F000579BF000579BF00046453D0048473F00345E98004C89D600579BF000579B + F000579BF000579BF000579BF000579BF0003D3C360048473F00345E9800579B + F000579BF000579BF0004B4B45000000000000000000486CE800496DE8005477 + EA006D8AED007994EE00849DF0008BA2F000849DF0007E98EE00708DED006A88 + ED006483EB005678EA005174EA004C70E800486CE800486CE800486CE800486C + E800486CE800486CE8005872C900000000000000000000000000000000000000 + 0000000000005E79D3005F76C5009FB3F500A3B6F800A4B7F8009FB3F7009FB3 + F7009FB3F700A3B6F800A0B4F7009FB3F5005F76C5005E79D300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 000000000000000000000000000000000000000000006E6D5F004078AF002380 + E4002380E4002380E4003D3C36003D3C3600164883001F6EC5002380E4002380 + E4002380E4002380E4002380E4002380E4003D3C36003D3C3600164883002380 + E4002380E4003770A9004F4E470000000000000000005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 00000000000000000000AEBEF2005C74C500768CD500859AE40090A6F10091A7 + F10090A6F100839AE500758AD5005C73C400AEBEF20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D00AAAAAA000000000000000000000000000000 + 000000000000000000000000000000000000000000006E6D5F006C6C5E006B6B + 5D006A695C0069685B00A9A98A00B8B9980032363F0052544F00636257006261 + 5600626156005F5F54005E5E53005E5D5300D4D4AB00B8B998002C313B005858 + 4F0058584F0057564E0079786D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000051504400515044000000000000000000000000000000 + 0000000000000000000000000000000000006867580051504400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CDD6F6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000038477E0041486200404761003E455F003D44 + 5F003C435E003B435D003B425D003A415C000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B6C3F0002939 + 740027366B000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002737730027377300B6C5F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F00027377300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000474E6A007A8ABF0013339F0013339F001333 + 9F0013339F0013339F0013339F007988BD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7C5F1004A5B99003E59 + B1003E59B1002C3B73008195DB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000273770003F519200283B7A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F1002B3E7C004E5E9400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000048516E007B8BC10003279E0003279E000327 + 9E0003279E0003279E0003279E007B8BC0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B9C6F1002E4281003F5AB6000F31 + A3000F31A3004A5D9E002D3E79008196DC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002A3C7800435EB90040549800B9C6F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002E4282004B5D9F004961B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004B5472007C8CC3000328A2000328A2000328 + A2000328A2000328A2000328A2007B8BC3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C6F100304285004C5FA1000F33A9000328 + A4000328A4003E5AB9004C5FA1002F417E000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000304486004260C5001E42BA00445AA50032468E00BAC7F2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC7F200354990003F5EC4001E42BA004A65BD00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000515978007D8EC800042AAB00042AAB00042A + AB00042AAB00042AAB00042AAB007B8CC7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC7F2004E62AA003E5CC2001035B400042BB000042B + B000042BB000042BB0001035B4003E5CC200344688008499DF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034488E004363CC00143BBF003F5FCB00455DAC00354A95000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BCC8F300384D97004F66B1001038BF00143BBF004C67C400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000535C7C007C8ECB00042CB100042CB100042C + B100042CB100042CB100042CB1007B8DCA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC7F200374B94003F5EC7001037B900042DB600042DB600042D + B600042DB600042DB600042DB6001037B9004F65AF0036498C00859AE1000000 + 00000000000000000000000000000000000000000000374C9500374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004364D300143DC700103AC6003E60D1004760B300BDC9 + F400000000000000000000000000000000000000000000000000000000000000 + 00003A519D005169B8003E60D1000430C300143DC7004D6AC900374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004259AC00000000000000000000000000000000000000 + 0000000000000000000000000000555E7F007D8FCE00042DB600042DB600042D + B600042DB600042DB600042DB6007C8ECD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BCC8F300394F98005167B200153CC0000932BC000932BC000932BC000932 + BC000932BC000932BC000932BC000932BC004161CC005167B200394C91000000 + 000000000000000000000000000000000000000000004D6DD6001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001441D8001441D8000838D5000535D5000535D500103ED7004C67 + C1003F57AA00BECCF50000000000000000000000000000000000BECCF5004159 + AB003E63DE00103ED7000535D5000535D5000838D5001441D8001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001F4AD9003E55A500000000000000000000000000000000000000 + 00000000000000000000000000005A6488007E92D400042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF007C90D2000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F400536BBC00496AD7002C51D000284ECE002A50D0002048CD001C44CC001C44 + CC001C44CC001C44CC001C44CC002A50D000254CCE002C51D000496AD7003D52 + 9C00899EE400000000000000000000000000000000004F70DD000637DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD004167 + E6004F6AC700435BB100000000000000000000000000BECCF500455EB2005871 + CB001141DF000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DE001544DF004259AD00000000000000000000000000000000000000 + 00000000000000000000000000005E678B007F92D5000531C4000531C3000531 + C3000531C3000531C3000531C4007D91D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003D56 + A500506ED2005370D2005673D3005B77D4005A78DC002B52D400254DD300254D + D300254DD300254DD300244CD3005A78DC005974D3005673D3005370D2005D72 + B9004056A000D1DAF8000000000000000000000000005677E4001848E7001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8002552 + E9004B70ED00536FCE00BFCCF50000000000000000004962BA005C77D2004A6F + ED001C4BE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001C4BE8002653E900455EB500000000000000000000000000000000000000 + 0000000000000000000000000000606A8F008295D800113CCB00153FCC00153F + CC00153FCC00153FCC00123DCC008094D7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + AF003F56A5003F56A5003F56A5003F56A5005D79D8002A52D9002F56DA002F56 + DA002F56DA002F56DA002951D9005D79D7003F56A5003F56A5003F56A5003F56 + A5003F58AA00000000000000000000000000000000006785EA00496FF0005479 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005176 + F1004B71F1005A7DF2004A64BD0000000000000000005E79D600577BF200466D + F0005479F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005479F1005176F1004A64BB00000000000000000000000000000000000000 + 0000000000000000000000000000657097008C9EE000365CDB003F64DC003F64 + DC003F64DC003F64DC00365CDB008A9DDF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445DB100607DE000375FE5004167E6004167 + E6004167E6004167E600375FE500607DE0000000000000000000000000000000 + 000000000000000000000000000000000000000000006E8AEA005E80F200708E + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF4006989 + F3006E8DF300607AD600BFCCF50000000000000000004E67C0006681D9006A8A + F3006E8DF300718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F4006F8DF3006586F3004B65BC00000000000000000000000000000000000000 + 00000000000000000000000000006973990091A4E300466AE1005475E4005475 + E4005475E4005475E400466AE1008FA1E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004760B5006381E5003E65EA004A6FEB004A6F + EB004A6FEB004A6FEB003E65EA006280E5000000000000000000000000000000 + 00000000000000000000000000000000000000000000738EEB006D8CF30087A1 + F5008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008BA4F6007F9A + F500657FD7004C66C000000000000000000000000000BFCDF6004F68C2006C86 + D9007E99F50089A2F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F600849EF5007391F4004C66BD00000000000000000000000000000000000000 + 00000000000000000000000000006B769E0096A8E5005879E7006684E9006684 + E9006684E9006684E9005879E70094A5E4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004964BB006683E800466DEE005478F0005478 + F0005478F0005478F000456CEE006582E8000000000000000000000000000000 + 000000000000000000000000000000000000000000006985E300738EEB007C96 + EC00829BED00829BED00829BED00829BED00829BED00829BED00829BED00829B + ED00839CED0096ABEF00B8C7F900C5D1FA00C1CEFA00ACBDF8008CA5F6004F69 + C200BFCDF600000000000000000000000000000000000000000000000000BFCD + F6006D86DA0086A0F500A0B4F700C3D0FA00C1CEFA00B4C4F800869EED00839C + ED00829BED00829BED00829BED00829BED00829BED00829BED00829BED008099 + ED007B95EC00728EEB004F69C00000000000000000000000000000000000717F + AF00889FE90091A6EA009AACEB00A8B8ED00B0C0F4008BA3F20087A0F20087A0 + F20087A0F20087A0F200849EF200AFBFF4009DAEE90097AAE90090A4E8008E9A + C200616D9500CDD7F70000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BE006B88EA005479F1006686F3006686 + F3006686F3006686F3005479F1006A87EA000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC1009BB0F700BDCBFA00B5C5F90096ACF7006882D800BFCD + F600000000000000000000000000000000000000000000000000000000000000 + 0000536CC5006E87DB0088A2F600B9C8F900B2C2F9009DB0F000506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC30000000000000000000000000000000000BAC6 + F40093A2D8008BA4F5007693F30092A9F500A0B4F6009AAFF60098AEF60098AE + F60098AEF60098AEF60097ADF6009FB3F6007E99F4007592F3008CA4F5006571 + 9900869CE0000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BF006D8AEA005C7FF200708EF400708E + F400708EF400708EF4005C7FF2006D8AEA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC20088A2F600A3B6F80098AEF7006F87DA00516BC4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCDF600536DC6006E88DB0095ACF70092A9F6008AA1EE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007684B5009BA9D90099AFF7009AAFF700A6B9F800A7B9F800A7B9F800A7B9 + F800A7B9F800A7B9F800A7B9F800A6B9F80087A1F50099AFF70092A0D100879C + E100000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004E68C000708CEA006485F3007995F4007995 + F4007995F4007995F4006485F300708BEA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006A8AF3007693F400536DC600BFCDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600708ADD006C8BF300708CEC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC6F4007683B400B3C3F900B2C2F900BDCBFA00C0CEFA00C0CE + FA00C0CEFA00C0CEFA00BDCBFA00B2C2F9009DA9D5006A76A000889CE2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000506AC1007590EC007491F4008CA5F6008CA5 + F6008CA5F6008BA4F6007491F400748FEC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600577BF200657FDB00BFCDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C8006B85DD006181EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F400A1AEDA00B2C2F900B6C6F900CBD6FB00CBD6 + FB00CBD6FB00C8D4FB00B8C7F900B2C2F9006C77A100889DE200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC2007892EC007B97F40095ACF70095AC + F70095ACF70095ACF7007B97F4007691EC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005670C7005B78DA005670C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005871C9006D86D800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007482B2009EABD900B4C4F900D1DBFB00D5DE + FC00D5DEFC00C5D1FA00B6C6F9009AA8D5008A9DE30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000526CC3007994EC00829CF5009EB3F7009EB3 + F7009EB3F7009EB3F700819BF5007993EC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC6F4007381B200C1CEFA00C1CE + FA00C1CEFA00A7B2D900717DA7008A9EE3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000546EC5007A94ED00829CF500B0C0F900B0C0 + F900B0C0F900A9BBF800829CF5007993ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F300A6B1DA00B3C3 + F900B3C3F900737EA8008B9EE400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556FC600738FEC007693F400A3B6F800A6B9 + F800A6B9F80098AEF7007693F400728EEC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007181B0009DAA + D8009CA9D7008B9FE40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C7006D88E5007590ED00859DEE00869E + EE00869EEE00829AEE007691ED006C88E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED8F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008D8B8B00918F8D00918F8D00918F8D00918F8D00918F + 8D00918F8D00918F8D00918F8D00918F8D00918F8D008D8B8B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000082807F00F7F7F700B2B2B200B2B2B200B2B2B200B2B2 + B200B2B2B200B2B2B200B2B2B200B2B2B200F7F7F70082807F00000000000000 + 000000000000000000000000000000000000000000000000000000000000AEBD + EC007A87B4008E9ED100808EBC00F0EFEF00EFEEEE00EDEDEC00EBEAEA00E9E9 + E800E8E7E700E5E5E400E4E3E3008E99BE008E9AC3008E9AC300808EBC008293 + CC008293CC008293CE0000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030458D0025356E004B494900717170007171700071717000717170007171 + 700071717000717170007171700071717000717170004B49490025356E000000 + 0000000000000000000000000000000000000000000000000000BAC6F2002E42 + 8700798ED2002446B60003228900031E7B000322890003228900BCBAB900B7B5 + B400B2B0AF00A7A5A400A2A09E00031E7B00032289000322890003228900042A + AB00042AAB008194D50000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029386E00283564004D4C4B00767675006261600062616000626160006261 + 600062616000626160006261600062616000767675004D4C4B0028356400768C + CF000000000000000000000000000000000000000000BAC6F20031458C006A79 + B2001B40B8001D41B90003238D00031F7F0003238D0003238D00CAC8C700C5C3 + C200C0BEBD00B6B4B300B1AFAD00031F7F0003238D0003238D0003238D00042C + B100042CB1008195D70000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F000000000000000000000000000000000000000000344892004358A100425F + BF00425FBF0041528C0076757500ACACAC00ACACAC00ACACAC00ACACAC00ACAC + AC00ACACAC00ACACAC00ACACAC00ACACAC00ACACAC007675750041528C00425F + BF00425FBF004358A10000000000000000000000000034488F00879BDD00264B + C3001038BD00284CC4000D2D98000C2888000D2D98000D2D9800E0DFDF00DDDB + DB00D9D7D700D1CFCE00CDCBCA000C2888000D2D98000D2D98000D2D98001038 + BD001038BD00869ADE0000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB10000000000000000000000000000000000324588004260C5001036 + B600042CB200021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A + 6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00042C + B2001036B6004260C500000000000000000000000000364B9400889DE100183F + C300183FC3002F53CA0013339C00112D8C0013339C0013339C00EBEAE900E7E6 + E600E3E2E200DCDBDA00D8D7D600112D8C0013339C0013339C0013339C00183F + C300183FC300889DE100000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED00000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED00000000000000000000000000354A8F004362CB00042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB90003269C000325 + 940003269C004362CB00000000000000000000000000394F99008A9FE3002047 + CA002047CA003559CF001938A100173391001733910017339100F4F3F300F1F0 + F000EDEDEC00E6E5E500E3E2E100173391001938A1001938A1001938A1002047 + CA002047CA008A9FE3000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F5194000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35 + BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F5194000000000000000000000000003C529D004C6CD8002048 + CE00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234A + CF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002243B2002343 + AC001F41B1004B6BD8000000000000000000000000003E55A30091A6EA003157 + D6003157D6004668D8003350B2002D4BAE002D4BAE002D4BAE002D4BAE002D4B + AE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE003350B2003157 + D6003157D60090A5EA000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000004157A4005373DE00385D + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D900365BD8005272DE000000000000000000000000004058A90094A9ED003A5F + DD003A5FDD004669DF004E70E0004E70E0004E70E0004E70E0004E70E0004E70 + E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0003A5F + DD003A5FDD0093A8ED000000000000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE00000000000000000000000000445BAB005B7BE4005072 + E2005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3004C6FE1005979E400000000000000000000000000435CAF0097ACF0004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E30097ACF0000000000000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D3000000000000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D3000000000000000000000000004C65BA006A89EF007E99 + F100A4B6F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BA + F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF50090A7 + F3007A95F1006786EF000000000000000000000000004862B9009EB2F600587B + F000587BF0005070D9004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6E + D7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED700587B + F000587BF0009DB2F6000000000000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D7000000000000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D700000000000000000000000000506AC1006F8DF30090A7 + F5008C90A3006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A + 6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A00B6C6 + F8008AA3F5006B8AF3000000000000000000000000004A64BB00A1B5F7006183 + F2006183F2005876DA00BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9 + F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F1006183 + F2006183F200A0B4F7000000000000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB00000000000000000000000000526CC3006C8BF3009CB1 + F700959392009593920095939200959392009593920095939200959392009593 + 920095939200959392009593920095939200959392009593920095939200C6D2 + FA0092A9F6006787F3000000000000000000000000004B65BC00A4B7F8006A8A + F3006A8AF300607CDA00C4CEF1009DAEE8009DAEE8009DAEE8009DAEE8009DAE + E8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8006A8A + F3006A8AF300A3B6F8000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00FFFFFF00FFFF + FF00FFFFFF006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D5000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC006886EC006886 + EC006886EC006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D500000000000000000000000000000000005974CF006782 + DB009C9A9900A09D9C0096939200969392009693920096939200969392009693 + 9200969392009693920096939200969392009693920096939200A09D9C007A94 + ED006681DB005974CF000000000000000000000000004D67BE00AABCF8007C97 + F4007C97F4006F88DC00D1D9F400B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0 + EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC007C97 + F4007C97F400A9BBF8000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA0000000000000000000000000000000000000000005A75 + D1006B6968009D9A9900615F5F00BFBFBE00BCBCBB00BAB9B800B4B3B200B1B0 + AE00ADACAB00A6A5A400A2A1A0009F9D9C0097959300615F5F009D9A99005771 + C8005A75D100000000000000000000000000000000004E68BF00ADBEF800849E + F500849EF500778EDC00D7DEF400BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8 + EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00849E + F500849EF500ACBDF800000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC200000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 000074727100A3A09F0067656500E2E1E100DFDFDE00DDDCDC00D7D7D600D5D4 + D300D1D1D000CBCAC900C8C7C600C4C3C200BCBBBA0067656500A3A09F000000 + 000000000000000000000000000000000000000000004F69C000B0C0F9008DA5 + F6008DA5F6007F95DD00DDE2F600C6D0F000C6D0F000C6D0F000C6D0F000C6D0 + F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F0008DA5 + F6008DA5F600AFC0F900000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700798AC500798A + C5007F92D10096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF300000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF70096ACF70096AC + F70096ACF70096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 000085838200AFADAB0073717000F2F2F200F1F1F000F0EFEF00EDECEC00EBEB + EA00E9E9E900E5E5E500E3E3E200E1E0E000DCDBDB0073717000AFADAB000000 + 00000000000000000000000000000000000000000000516BC200B5C5F9009EB3 + F7009EB3F7008EA0DE00E5EAF700D5DCF200D5DCF200D5DCF200D5DCF200D5DC + F200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF2009EB3 + F7009EB3F700B4C4F90000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 00008E8C8A00B5B3B10079777600F6F6F600F5F5F500F5F5F400F3F3F300F2F2 + F200F1F0F000EEEEEE00ECECEC00EBEAEA00E7E7E60079777600B5B3B1000000 + 00000000000000000000000000000000000000000000526CC300B8C7F900A7B9 + F800A7B9F80096A6DF00E9EDF800DCE1F400DCE1F400DCE1F400DCE1F400DCE1 + F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400A7B9 + F800A7B9F800B6C6F9000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA0000000000000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000908F8E00959391007F7D7C00F7F7F700F7F7F700F7F7F700F6F6F600F6F6 + F600F5F5F500F4F4F400F3F3F200F2F1F100EFEFEF007F7D7C00959391000000 + 00000000000000000000000000000000000000000000536DC400BAC9FA00B0C0 + F900B0C0F9009DADDF00EDF0F900E3E8F600E3E8F600E3E8F600E3E8F600E3E8 + F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600B0C0 + F900B0C0F900B9C8F90000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008B898800EBEBEA00EDECEC00EEEEED00F1F1F100F3F2 + F200F4F4F400F6F6F600F7F7F700F7F7F700F7F7F7008B898800000000000000 + 00000000000000000000000000000000000000000000556FC600BECCFA00C0CE + FA00C0CEFA00ADB9E100F4F6FA00EDF0F800EDF0F800EDF0F800EDF0F800EDF0 + F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800C0CE + FA00C0CEFA00BDCBFA0000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000918F8D00E4E4E300E6E5E400E7E7E600EAEAE900ECEB + EB00EDEDEC00F0EFEF00F1F1F100F3F2F200F5F5F500918F8D00000000000000 + 000000000000000000000000000000000000000000005670C700A6B9F800C1CE + FA00C3D0FA00BCC8EE00F9FAFE00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6 + FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00C3D0 + FA00C0CEFA00A4B7F80000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000908F8E00959391009593910095939100959391009593 + 91009593910095939100959391009593910095939100908F8E00000000000000 + 000000000000000000000000000000000000000000005771C9005771C8005771 + C8005771C8005771C800ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8 + E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E3005771 + C8005771C8005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000339F7000339F7000339F7000339F7000339F7000339F + 7000339F7000339F7000339F7000339F7000339F7000339F7000000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000E332400339F + 70000E3324000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293662002531 + 5800253158002633600032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000032A0720012BC8E0012BC8E0012BC8E0012BC8E0012BC + 8E0012BC8D0012BC8E0012BC8D0012BC8E003CD7A70032A17200000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424003AD6A60013BA + 8C003AD6A6000F34240000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046599700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004659970035457A004259A7000000 + 00000000000000000000000000000000000000000000000000007E7E7E003C3C + 3C007B7B7B008A8A8A00D8D8D800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000031A1720012BD8E0012BC8E0012BD8E0012BC8E0012BD + 8E0012BC8E0012BD8E0012BD8E0012BD8E003CD7A70031A17200000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34240032A1710013BA8C0013BA + 8C0013BA8C0031A071000F342400000402000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F1000000000000000000000000000000000000000000000000009E9E9E005959 + 5900333333006B6B6B0088888800C6C6C6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000030A2730011C090000DCB95000CCA94000DCB94000CCB + 95000CCB94000CCB95000CCA95000CCB95003CD7A70030A27300000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34240030A1720035D5A50011BE8E0012BD + 8E0013BB8D0035D5A50030A172000F3424000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002F4284004D609E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000007676 + 76003C3C3C00ADACAC00C4C3C2008D8D8D0080808000B0B0B000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002DA5750011C291000CCD97000DCD97000CCC96000CCC + 96000CCC97000DCC96000DCC96000DCC97003BD7A7002EA57400000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34240030D4A30012BD8E0012BD8E000DCB95000DCB + 96000DCB950012BD8E0012BD8E0030D4A3000F34240000040200000000000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046599A00475FB10000000000000000000000000000000000000000000000 + 0000E0DFDF00CECCCC00C0BEBD00A09E9D00605F5E006F6F6E0027377200B6C3 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002CA6760011C392000DCE98000DCE98000DCD97000DCE + 97000DCD98000DCE98000DCD97000CCE97003BD7A7002CA67600011C14000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000F3424002DA5750012BE8F0012BE8F000ECC97000ECC96000DCC + 96000ECC96000ECD970012BE8E0012BF8F002DA575000F342400000000000000 + 0000000000000000000000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100A0AFE100A0AF + E100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000000000000000 + 0000CBCACA00DAD9D900C7C6C500767574007777760071737A003E508B002738 + 7300B6C5F0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002BA7760010C492000DCE98000DCF99000DCF99000DCE + 98000DCF99000DCE99000DCE99000DCF99003AD7A6002BA87700000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000F3424002CA676002AD3A20011C090000ECD98000ECD98000ECE97000ECD + 98000DCE97000ECE98000ECD980011C190002AD4A1002CA676000F3424000000 + 0000000000000000000000000000000000000000000000000000455CAE004C63 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF009FAFE200042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C63AD0000000000000000000000000000000000000000000000 + 00009A999900E3E2E200C8C7C6009291910085888F001F3A95003E57A9003E50 + 8B00283873000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000028AA790010C794000DD19B000DD19B000ED19B000DD1 + 9B000ED19B000DD19B000ED19B000DD19A0038D7A60028AA7900000E0B000000 + 0000000000000000000000000000000000000000000000000000000000000F34 + 240024D4A10010C9950010C995000ED09B000ED09A000ED09A000ED09B000ED0 + 9A000ED09A000ED09A000ED09A000ED09A0010C9960010C9950024D4A1000F34 + 24000000000000000000000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400A6B6E800FFFFFF00FFFFFF00FFFF + FF00FFFFFF00A6B6E800173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD006C83D400000000000000000000000000000000000000 + 0000B0B0B00093929200B3B2B2006883E0005070DC003B5CCB00092A99000F2D + 93003E57A900293A7500B6C5F100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000027AC7A0010C795000DD29C000ED29C000ED29C000ED2 + 9C000ED29C000DD29D000DD29D000DD29C0037D6A60026AB7A00000E0B000000 + 00000000000000000000000000000000000000000000000000000F34240027AB + 7A000FCC98000FCC97000ED19C000ED19C000ED19C000ED19B000FD19C000ED2 + 9C000ED19C000ED29B000ED19C000ED29C000ED19B000FCB97000FCC980027AA + 7A000F342400000000000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00ABBAEB00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00ABBAEB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B600000000000000000000000000000000000000 + 0000000000006F75900091939D006E8CF2006A88EC005574DD002143B300092A + 99000F2D930040528C002A3B7500B6C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000025AD7B0011C996000ED39D000DD39D000ED39E000DD3 + 9E000ED39D000DD39E000ED39D000DD49D0036D6A60025AD7B00000E0B000000 + 000000000000000000000000000000000000000000000F34240026AC7B001ED4 + A1000FCF9A000ED39D000ED39D000ED29D000ED39D000ED29D000FD39D000ED3 + 9D000ED29D000ED39D000ED39D000ED39D000FD29D000ED39C0010CE99001ED4 + A10026AC7A000F3424000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A200000000000000000000000000000000000000 + 000000000000BECCF500455FB900829DF5007B97F4006C89EC003B5CCB002143 + B300092A99003E57A90040528D002A3C76000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000022B17E0010CB98000ED6A0000ED69F000ED6A0000ED6 + A0000ED6A0000ED6A0000ED6A0000ED6A00033D7A60022B07D00000000000000 + 0000000000000000000000000000000000000F342400D0F5EB0057E7BE0057E7 + BE0056E9BF0057EABF00CEF5EB000ED59F000ED5A0000ED5A0000ED5A0000ED6 + A0000ED5A0000FD6A0000ED59F000ED59F0023DBA900CEF5EB0056EABF0057E7 + BE0057E7BE00D0F5EB000F34240000000000000000004158A600627DD900365C + DC004569DF003C5BC200B4BFE200FFFFFF00FFFFFF00FFFFFF003D5CC3003854 + B200B4BFE200FFFFFF00FFFFFF00FFFFFF00B8C6F2004569DF004569DF004569 + DF004468DF003A5FDC004158A600000000000000000000000000000000000000 + 00000000000000000000000000004762BB00627BD4007D98F5006B89EC005574 + DD003B5CCB00092A99000F2D93003E57A9002C3D7800B6C5F100000000000000 + 00000000000000000000000000000000000020B27F0021B27F0021B27F0021B2 + 7F0020B27F0021B27F0021B27F0010CC99000ED7A2000ED7A1000FD7A1000ED7 + A1000ED8A1000ED7A1000ED7A1000ED7A10031D7A60021B27F0020B27F0021B2 + 7F0020B27F0020B27F0021B27F000000000021B17E0021B17F0021B17F0020B1 + 7F0021B17F0021B17F0019B885000FD7A2000ED7A1000ED7A1000FD7A1000FD6 + A1000FD7A2000FD6A1000FD7A1000ED7A10027DEAC0018B9850021B07E0021B1 + 7F0021B17E0021B17E0021B17F000000000000000000435BAB006681DE003F64 + E1005173E3004764C700415CB600FFFFFF00FFFFFF00BECBF5005173E3004764 + C700415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00BCC9F4005173E3005173 + E3004F71E3004368E100435BAB00000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BC00627CD5007894F4006D8A + EC005574DD002143B300092A99000F2D930042548E002C3E7900B6C5F1000000 + 00000000000000000000000000000000000005291D0042E6B8003EDCB0003EDC + B0003EDCB0003EDCB0003EDCB00011CE9B000ED9A3000ED8A2000ED8A3000ED8 + A3000ED8A2000ED8A2000ED8A3000FD9A2003EDCB0003EDCB0003EDCB0003EDC + B0003EDCB00038E3B40005291D00000000000000000000000000000000000000 + 0000000000000000000017BB87000FD8A3000FD8A3000FD8A3000FD8A2000FD9 + A3000FD8A2000FD8A2000ED9A3000ED8A3002CE0AE0017BA8700000000000000 + 00000000000000000000000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE800526ECB00BCC5E500C2CEF6005C7CE8005C7CE8005C7C + E800526ECB00BCC5E500FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0CCF5005C7C + E800597AE8005375E700475EB400000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004A64BD007E99F5007E99 + F5006D8AEC003B5CCB002143B300092A99003E57A90042548F002D3E79000000 + 0000000000000000000000000000000000000000000005291D001CB7830052EB + C0000FDAA5000EDBA5000EDAA4000FDBA5000EDBA5000FDAA5000EDBA5000FDB + A5000FDBA5000EDBA5000FDBA5000FDBA5000FDBA4000EDBA5000EDBA50049E9 + BC001CB7830005291D0000000000000000000000000000000000000000000000 + 0000000000000000000014BD8A000FDBA5000FDBA6000FDBA6000FDBA6000FDA + A5000FDBA6000FDBA5000FDAA6000FDBA50035E4B40014BD8A00000000000000 + 000000000000000000000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F100657FD3005C73C000C3CBE800FFFFFF00FFFFFF00FFFFFF007491 + F1006988EF006E8CF0007790E100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67C0006C85 + D80088A2F6006D8AEC005574DD003B5CCB00092A99000F2D93003E57A9002E40 + 7B00B6C5F100000000000000000000000000000000000000000005291D001AB8 + 84000FDCA6000FDCA6000FDCA6000EDCA7000EDCA6000FDCA6000FDCA6000FDC + A6000EDCA6000FDCA6000EDDA6000FDCA6000FDCA6000FDCA6000FDCA6001AB8 + 840005291D000000000000000000000000000000000000000000000000000000 + 0000000000000000000013BF8B000FDCA7000FDCA7000FDCA7000FDCA7000FDC + A6000FDCA60010DCA7000FDCA6000FDCA70039E6B70013BF8B00000000000000 + 00000000000000000000000000000000000000000000CED8F7005971C3007E98 + F1007D98F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5007088D600677CC400FFFFFF00FFFFFF00CFD9FA007E99 + F5007290F4007E98F100CED8F700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006D85D9007E99F5006D8AEC005574DD002143B300092A99000F2D93004354 + 8D004C526E00AFBEEE0000000000000000000000000000000000000000000529 + 1D0060F0C7000FDDA7000EDDA7000FDDA7000FDDA7000EDDA7000FDEA7000FDD + A7000FDDA7000EDDA8000FDEA7000FDDA7000FDDA7000EDDA8005AEEC4000529 + 1D00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000012C08C000FDDA8000FDDA80010DDA8000FDDA8000FDD + A8000FDDA8000FDEA8000FDEA8000FDDA8003DE7BA0012C08C00000000000000 + 00000000000000000000000000000000000000000000000000005975D100758C + DD007F9AF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6008BA4F6008BA4F6007A8FD700C9D0E800D4DDFC008BA4F600819B + F500809BF500768DDD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6004F69C2007E99F5007894F4006B89EC003B5CCB002143B300092A99007B7E + 8F00686769005557690000000000000000000000000000000000000000000000 + 000005291D0017BD87006FF3CD000FE0AA000FDFAA000FE0AA000FDFA90010DF + AA000FDFAA000FDFA9000FE0A9000FE0A9006AF2CB0017BD880005291D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000010C28D0010E0AB0010E0AB000FE0AB000FE0AA0010E0 + AA0010E0AA000FDFAA000FE0AB000FDFAA0045EBBD0010C28D00000000000000 + 000000000000000000000000000000000000000000000000000000000000607A + D7008CA4F4008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F70092A9 + F400758AD500607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC4006881D9007D98F5006C89EC005674D700949AAF00F4F4 + F400E3E2E200B1B2B800697CC200000000000000000000000000000000000000 + 00000000000005291D0015BE880010E0AA000FE0AA000FE1AB000FE0AA000FE1 + AB000FE0AA0010E1AB000FE1AA000FE1AB0015BE880005291D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000FC38E000FE1AC000FE1AB000FE1AC0010E1AC000FE1 + AC000FE1AC000FE1AB0010E1AB000FE1AC004AECC0000FC38E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008599E00094ABF60097ADF700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF7008CA0 + E100546FCA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600536DC6006882DA007A95ED00B9BFD400BFBEBC00EEEE + ED00CDCED400898D9C005A638700000000000000000000000000000000000000 + 0000000000000000000005291D007BF6D2000FE1AC0010E1AB000FE1AC000FE1 + AB000FE2AB000FE1AB000FE2AC0078F5D10005291D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000FC38E000FE2AD0010E2AD000FE2AD000FE2AD000FE2 + AD0010E2AD0010E2AD0010E2AD0010E2AD004DEDC1000FC38E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000576FC80090A3E300A0B4F600ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900A9BBF8009CB1F70098ADF5005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600536EC700ADB2C100EDECEC00EDECEC00BFC0 + C6008F93A2008F93A2006A6E7E00000000000000000000000000000000000000 + 000000000000000000000000000005291D0013C28B0086F8D60010E4AD000FE3 + AD000FE4AE0084F7D50012C18B0005291D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48F0010E4AF0010E4AF0010E4AF0010E4AF0010E4 + AE0010E4AF0010E4AF0010E4AF000FE4AF0053EFC5000EC48F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE3009FB3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700859BE200667DCC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000787D9300B5B5B900C9CAD000AFB4 + C300B3B8C800B3B9C8007286CC00000000000000000000000000000000000000 + 00000000000000000000000000000000000005291D0012C38C0010E4AE0010E4 + AE0010E4AE0011C38C0005291D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48F0010E5B00010E5B00010E5B00010E5B00010E5 + B00010E5B00010E5B0000FE5B0000FE4B00055F0C5000EC48F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000869CE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006974A1009095A500BCC1 + D000BCC1D100A3A8B80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000005291D008DF9D80010E4 + AF008DF9D80005291D0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48F000FE5B10010E6B00010E6B00010E5B0000FE5 + B10010E6B10010E5B00010E6B10010E6B10057F0C8000EC48F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007489C8008E92 + A200828BAF007A8ED40000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000005291D000FC5 + 8E0005291D000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48F000EC48F000EC48F000EC48F000EC48F000EC4 + 8F000EC48F000EC48F000EC48F000EC48F000EC48F000EC48F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000339F70000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000F342400339F + 7000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FED6AE00FED6AE00FED6AE00FED7B000FED7 + B000FED8B100FED9B400FEDAB600FEDAB600FEDCB900FEDCB900000000000000 + 0000000000000000000000000000000000000000000025242200262624002625 + 23000E86F2000E86F2000E86F2000E86F2000E86F2000E86F2000E86F2000E86 + F2000E86F2000E86F2000E86F2000E86F2000E86F2000E86F2000E86F2000E86 + F200262524002625240000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032A0710032A071000F342400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424003CD7A70032A0 + 7100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000001111110014141400FED4AA00FED4AA00FED4AA00FED5AC00FED5 + AE00FED6AF00FED8B200FED8B200FED9B400FEDAB700FFDBB900111111000000 + 0000000000000000000000000000000000000000000026252300282724002727 + 2400037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037F + EE00037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037F + EE00272625000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031A172003BD7A70030A271000F3424000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34240030A2710017CA950031A1 + 7200000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003F3F3F00ACAC + AC00ACACAC00ACACAC0063626200FFCD9D00FFCD9D00FFCE9F00FFD0A300FFD2 + A600FFD4AA00FFD7AF00FFD8B100FFD9B500FFDDBC00FFDDBC0063636300ACAC + AC00ACACAC004B4B4B0000000000000000000000000027262400292826002929 + 2600037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037F + EE00037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037FEE00037F + EE002A2927002928260000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030A3730010BF8E0039D6A60030A373000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34240030A3730039D6A6001FCE9A0030A3 + 7300000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000ACACAC00D1D1D100D1D1 + D100D1D1D100D1D1D10032323200C49F7B00C4A07E00C4A17F00C4A38300C4A5 + 8700C4A68800C4A78B00C4A88E00C4A99100C4AC9600C4AC960032323200CCCC + CC00CCCCCC00CCCCCC00000000000000000000000000292927002E2D2A002E2D + 2A00FBE7D000FBE6D000FBE7CF00FCE6CF00FBE7D000FBE7D000FBE6D000FCE7 + D000FBE6CF00FBE6CF00FBE7D000FCE7CF00FBE6D000FBE6CF00FBE7CF00FBE6 + CF002D2C2A002D2C2A0000000000000000000003020000040300000403000004 + 0300000403000004030000090600000403000004030000040300000403000000 + 00002DA5750010BF8E0010BF8E0010BF8E002DA575000F342400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34240034D5A40010BF8E0010BF8E0030D4A2002DA5 + 7500000000000004030000040300000403000004030000090600000403000004 + 03000004030000040300000403000003020000000000ACACAC00D4D4D400D4D4 + D400D4D4D400D4D4D400333131009E8373009E8373009E8373009E8474009E84 + 74009E8475009E8576009E8576009E8577009E8577009E85770033313100C8CC + CA00CECECE00CECECE000000000000000000000000002B292700302E2C00302E + 2D00FBE7D000FCE7D000FCE7D000FBE7D100FBE7D100FCE7D000FBE7D100FBE7 + D100FBE7D000FBE7D100FBE7D000FBE7D000FCE7D100FBE7D100FCE7D000FBE7 + D000302E2C00302F2C0000000000000000002CA676002CA776002CA676002CA6 + 75002CA675002BA676002BA675002CA675002BA676002CA676002CA676002CA6 + 76002BA7760010BF8E000DCA940010C08E0031D4A3002CA675000F3424000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000805000F3424002CA6750010C08F0010C08E000DCA940037D6A5002BA7 + 76002CA676002CA676002CA676002BA676002BA676002BA675002BA676002CA6 + 76002CA675002CA676002BA675002CA6760000000000ACACAC00D7D7D700D7D7 + D700D7D7D700D7D7D700D6D6D600D6D6D600D5D5D500D5D5D500D5D5D500D4D4 + D400D4D4D400D4D4D400D3D3D300D3D3D300D3D3D300D2D2D200D2D2D20039A4 + 7600C4CDCA00D1D1D1000000000000000000000000002C2A290033312E003231 + 2F00C4D1D700C4D0D700C4D0D700C4D0D700C4D0D800C4D0D700C4D1D700C4D1 + D800C4D1D700C4D1D700C4D1D800C4D0D800C4D0D800C4D1D700C4D0D800C4D0 + D70033302F0033302F0000000000000000002AA777003CD7A7003CD7A7003CD7 + A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7 + A7003CD7A70010BF8E000DCB95000DCC95000FC18F002ED4A2002BA777000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000F3424002BA777002ED4A20010C18F000DCC95000DCB95000DCB95003CD7 + A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7A7003CD7 + A7003CD7A7003CD7A7003CD7A7002AA7770000000000ACACAC00DCDCDC00EDED + ED00269B6A00279B6A00279B6A00279B6900279A6900289A6900289A6800289A + 6800289A6800289968002899680028996800289968002899680028996800CBE8 + DC00EAEAEA00D7D7D7000000000000000000000000002F2E2B00373534003735 + 3400FBE8D400FBE9D300FCE9D400FBE8D400FCE9D300FCE8D400FBE8D300FCE9 + D400FBE9D400FBE8D300FBE9D300FBE8D300FCE9D300FBE9D400FCE8D400FCE8 + D4003836340037363300000000000000000028AA7A0010C18F0010C18F0010C1 + 8F0010C18F0010C18F0010C18F0010C18F0010C18F0010C18F0010C18F0010C1 + 8F0010C18F000FC793000ECE98000DCE98000DCE98000DCE98000FC4920027AA + 7A000F3424000006040000000000000000000000000000000000000604000F34 + 240019C895000FC492000DCE98000DCF98000DCE98000ECE980010C18F0010C1 + 8F0010C18F0010C18F0010C18F0010C18F0010C18F0010C18F0010C18F0010C1 + 8F0010C18F0010C18F0019D29F0028AA7A0000000000A3A3A300E0E0E000F9FC + FB004ACC9F004ACC9F004ACC9F004ACC9F004ACC9F004ACC9F004ACC9F004ACC + 9F004ACC9F004ACC9F004ACC9F004ACC9F004ACC9F004ACC9F004ACC9F002899 + 6800FFFFFF00DADADA00000000000000000000000000302E2C003A3836003A38 + 3600C4D2DA00C4D2DA00C4D2DA00C4D2DA00C4D3DA00C4D2DA00C4D2DA00C4D2 + DA00C4D2DA00C4D3DA00C4D2DA00C4D2DA00C4D2DA00C4D2DA00C4D2DA00C4D2 + DA003A3836003A383600000000000000000026AB7B000FC3900010C18F000EC9 + 95000ECF99000DD099000DD09A000DD099000DCF9A000DD09A000DD099000DD0 + 99000ED099000DCF9A000ED09A000ED099000ED09A000ECF9A000DCF990019C9 + 970026AC7B000F342400000000000000000000000000000000000F34240026AC + 7B000FC793000DCF99000ECF9A000DD099000ED099000ED09A000DD099000ED0 + 99000DD099000ED099000DD09A000DCF9A000DCF9A000DD09A000DD099000DD0 + 9A000EC9950010C18F0020D6A20026AB7B0000000000A1A1A100EAEAEA00F4FA + F70047CA9D0023A6740023A6740024A4720024A4720024A4720024A4720024A4 + 720024A4720024A4720024A4720024A4720024A4720024A4720023A67400279B + 6B00FFFFFF00E5E5E500000000000000000000000000312F2E003D3B38003C3A + 3900FCE9D500FCEAD500FCE9D500FBEAD600FCEAD500FCE9D500FCE9D600FCEA + D500FCEAD600FCEAD500FCEAD500FCEAD600FBEAD600FCE9D500FCEAD600FBE9 + D5003D3B39003D3B3900000000000000000024AD7C000FC492000ECA96000DD1 + 9B000DD29B000ED29B000DD19B000ED19A000DD19B000DD19B000ED29B000ED1 + 9B000DD29B000ED19B000DD19A000DD19B000DD19B000ED19B000ED19B000FC9 + 950019CB990024AD7C000004030000000000000000000F34240024AD7C0019CB + 99000DD19B000ED19B000ED19B000ED19B000DD19B000DD19A000DD19B000DD2 + 9B000ED19B000ED19B000DD19B000DD19B000DD29B000DD19B000ED29B000ED1 + 9B000DD19B000ECA960027D9A60024AD7C0000000000A7A7A700FFFFFF00EEFA + F5005AE0B60026C18F0026C8950026C8950026C8950026C8950026C8950026C8 + 950026C8950026C8950026C8950026C8950026C8950026C8950026C08E0023A2 + 7000FFFFFF00FFFFFF000000000000000000000000003533310043403E004240 + 3E00C4D3DC00C4D4DC00C4D4DC00C4D4DC00C4D4DB00C4D3DC00C4D4DC00C4D4 + DC00C4D4DC00C4D3DC00C4D3DC00C4D4DC00C4D4DC00C4D4DC00C4D3DB00C4D3 + DC0042403E0043403E00000000000000000021B17F000FC995000ED49E000ED4 + 9E000DD49E000DD49E000ED49E000ED49E000ED49E000DD49E000ED49E000ED4 + 9D000ED49E000ED49E000ED49E000ED49E000ED49E000DD49E000ED49E000ED5 + 9E000ED49E000FCF9A0022B07F000F3424000F34240017D09C000FCF9A000ED4 + 9E000DD49E000ED49E000DD49E000ED49E000ED49E000ED49E000ED49E000ED4 + 9E000ED49D000ED49E000DD49E000ED49E000ED49E000ED49E000DD49E000ED4 + 9E000ED49E000ED49E0034DFB00021B17F0000000000A8A8A800FFFFFF00E6F8 + F2006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEE + C8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC80021A7 + 7400FFFFFF00FFFFFF0000000000000000000000000036343200454341004643 + 4000FBEAD700FCEBD800FCEBD800FCEBD700FCEBD800FCEBD800FCEBD700FCEB + D700FCEBD700FCEBD700FCEBD800FCEBD800FCEBD800FCEBD800FCEAD800FCEB + D8004543410045434100000000000000000020B280000FCC98000ED5A0000ED6 + A0000ED69F000ED5A0000ED59F000ED6A0000ED69F000ED59F000ED5A0000ED6 + 9F000ED5A0000ED69F000ED69F000ED69F000ED69F000ED59F000ED6A0000ED5 + A0000ED69F000ED5A0002ADEAC0020B27F0020B27F000ED6A0000ED5A0000ED6 + 9F000ED69F000ED6A0000ED59F000ED69F000ED69F000ED69F000ED5A0000ED5 + A0000ED69F000ED59F000ED59F000ED69F000ED5A0000ED59F000ED5A0000ED6 + 9F000ED6A0000ED5A0003CE2B40020B2800000000000A0A0A000FFFFFF00DDF7 + EF006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEE + C8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8006CEEC8001EAB + 7800FFFFFF00FFFFFF0000000000000000000000000038363400484643004846 + 4300FCEBD800FCEBD800FCEBD800FCEBD800FCEBD800FCEBD800FCEBD800FCEB + D800FCEBD800FCEBD800FCEBD800FCEBD800FCEBD800FCEBD800FCEBD800B2A6 + 9A00484543004845430000000000000000001FB381000FCF9A000ED7A1000ED7 + A1000ED7A1000ED7A1000ED7A1000ED6A1000ED7A2000ED7A1000ED7A1000ED7 + A1000ED7A1000ED7A1000ED6A1000ED7A1000ED7A1000ED7A1000ED7A1000ED7 + A1000ED7A1000FD7A1001EB38100063C2C00063C2C0033E1B1000FD7A1000ED7 + A1000FD7A1000ED7A1000ED7A1000ED7A1000ED7A1000ED6A1000ED7A1000ED7 + A1000ED7A1000ED7A1000ED7A1000ED7A2000ED7A1000ED7A1000ED7A1000FD6 + A1000ED7A1000ED7A10042E5B7001FB38100000000007B7B7B00EFEFEF00F6FC + FA005CE7BD0023C08D00ECBD9600ECBE9700ECBE9700ECBE9700ECBE9700ECBE + 9700ECBE9700ECBE9700ECBE9700ECBE9700ECBE9700ECBE970024BD8B0019B3 + 7F00FFFFFF00F3F3F3000000000000000000000000003B3836004E4B49004E4A + 49004E4B49004E4B49004E4B48003D3A39003C3A39003C3A39003C3A38003D3A + 39003C3A39003D3A38003C3A39003C3A39003D3A38003D3A39003C3A39004E4B + 49004E4A48004D4A490000000000000000001BB783000FD5A1000FDAA4000EDA + A4000EDAA4000FDAA4000FDAA4000FDAA4000EDAA4000EDAA4000EDAA4000FDA + A4000EDAA4000FD9A4000ED9A4000EDAA5000FDAA4000EDAA4000FDAA4000EDA + A40046E7BA001BB68400000000000000000000000000063C2C001BB6840046E7 + BA000FDAA4000FDAA4000EDAA4000EDAA4000EDAA5000ED9A4000FDAA4000EDA + A4000FDAA4000EDAA4000EDAA4000EDAA4000FDAA4000FDAA4000FDAA4000FDA + A4000EDAA4000FDAA4004EE9BE001BB78300000000000D0D0D0095959500C3CE + CA0054BF9E0048B48F00F1C9A000F3CCA300F3CCA300F3CCA300F3CCA300F3CC + A300F3CCA300F3CCA300F3CCA300F3CCA300F3CCA300F3CBA20046B28C0018B7 + 8300BDBDBD009B9B9B000000000000000000000000003C393800504D4B00504E + 4B006D6B6A005F5B58005F5B5800E8E8C200E8E8C200E8E8C200E8E8C200E8E8 + C200E8E8C200E8E8C200E8E8C200E8E8C200E8E8C200E8E8C2003E3C3A00504D + 4B00504D4B00504D4B00000000000000000019B884000ED8A3000EDBA6000FDB + A6000EDBA6000FDBA6000EDBA5000FDCA6000EDCA6000EDBA5000FDBA5000FDC + A5000EDBA6000EDBA6000FDCA6000FDCA5000FDBA6000FDBA6000FDBA6004FEA + BF001AB88500063C2C0000000000000000000000000000000000063C2C001AB8 + 85000EDBA5000FDBA6000FDBA6000FDBA5000FDCA5000FDCA6000EDBA5000EDB + A6000FDCA5000FDBA6000EDBA5000EDCA6000FDCA6000EDBA5000FDBA6000FDB + A6000FDBA6000EDBA60053EBC10019B884000000000000000000000000002222 + 22001616160000000000F5D1AB00F9D8B200F8D8B200F9D8B200F8D8B100F9D8 + B200F9D8B200F8D8B100F9D8B100F9D8B200F9D8B100F7D5AF00161817001616 + 160010101000000000000000000000000000000000003D3A3900534F4D005350 + 4D005F5B58004A4645004A464500E9E8C400E9E9C400E9E9C400E9E9C500E8E9 + C400E8E9C400E9E8C4002F2E2C0047434100E9E9C500E9E9C500413D3C00534F + 4D0053504D0053504E00000000000000000018B985000FDCA6000FDDA7000EDD + A7000FDDA7000EDDA7000FDCA7000FDDA7000EDDA7000FDDA7000FDCA7000FDD + A7000EDDA7000FDDA7000FDCA7000FDDA7000FDCA7000FDDA7000FDCA70018BA + 8500063C2C00000000000000000000000000000000000000000000000000063C + 2C0058EDC3000FDCA7000FDDA7000FDDA7000FDDA7000FDCA7000EDCA7000EDD + A7000FDDA7000EDDA7000FDDA7000EDDA7000FDCA7000FDCA7000EDDA7000FDD + A7000EDDA7000FDDA70056EDC20018B985000000000000000000000000000000 + 00000000000000000000F3CEA900FADBB700FADBB700F9DAB700FADBB700F9DB + B700F9DBB700F9DBB700F9DAB700FADBB700F9DBB700F5D2AE00000000000000 + 00000000000000000000000000000000000000000000403E3C00575452005754 + 52005F5B58004A46450057545200EBEBCD00EBEBCC00EBEBCC00EBEBCC00EBEC + CC00EBEBCC00EBEBCC002F2E2C0047434100EBEBCC00EBEBCC00444140005754 + 52005754520057545200000000000000000013C08A0013C08A0013C08A0013C0 + 8A0013C08A0013C08A0013C08A0013C08A0013C08A0013C08A0013C08A0013C0 + 8A0016BC89000FE0AA000FDFAA000FE0AA000FE0A9006BF2CC0016BC88000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000063C2C0016BC88006BF2CC000FDFA9000FE0AA000FDFAA0021E3B10016BC + 890013C08A0013C08A0013C08A0013C08A0013C08A0013C08A0013C08A0013C0 + 8A0013C08A0013C08A0013C08A0013C08A000000000000000000000000000000 + 00000000000000000000F2CCA800FADDBA00FADCBA00FADCBA00FADDBA00F9DC + BA00FADDBA00FADCBA00F9DCBA00FADCBA00FADCB900F4D0AD00000000000000 + 00000000000000000000000000000000000000000000413E3D005A5654005A56 + 54005F5B58004A4645005A565400EDECD000EDEDD100EDEDD000EDEDD100ECEC + D000EDEDD000ECEDD0002F2E2C0047434100ECEDD000ECECD100464341005A56 + 54005A5654005955540000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000014BD89000FE1AB0010E0AB0010E1AB0073F4CF0014BD8900063C2C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000063C2C0014BD890010E0AB0010E1AB0010E0AB002DE6B60014BD + 8900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F1CBA600FADEBC00FADEBD00FADDBC00FADDBC00FADE + BD00FADEBD00FADDBD00FADEBC00FADEBD00FADDBD00F3CFAC00000000000000 + 0000000000000000000000000000000000000000000042403E005B5855005B57 + 56005F5B58004A4645005C585500EEEED500EEEED500EEEED500EEEED500EEEE + D500EEEED500EEEED5002F2E2C0047434100EEEED500EEEED500484442005B57 + 56005C5856005B58560000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000013BE8B000FE2AC0010E1AD000FE2AC0013BF8A00063C2C00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000063C2C007CF5D2000FE2AC0010E1AD003AEABB0013BE + 8B00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC8A400FAE0C100FBE0C200FAE0C100FBE0C200FAE0 + C200FAE0C200FAE0C200FAE0C100FBE0C100FAE0C200F1CBA800000000000000 + 00000000000000000000000000000000000000000000444140005F5A58005F5B + 58005F5B58004A4645005E5B5900F0F1DE00F1F1DD00F1F1DE00F1F1DE00F0F1 + DE00F1F1DE00F0F1DE002F2E2C002F2E2C00F1F1DD00F0F1DE00494645005F5A + 59005F5B59006D6B6A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000012C18C0010E3AF0089F8D70011C18C000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000063C2C0011C18C0089F8D70050EEC40012C1 + 8C00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EEC7A400FBE2C300FAE1C400FBE1C300FAE2C300FBE1 + C400FAE1C400FBE1C400FBE1C300FBE1C300FBE1C400EFC8A600000000000000 + 00000000000000000000000000000000000000000000454241008D8C8B006D6B + 6A005F5B58004A4645006D6B6A00FBFBF500FBFBF500FBFBF500FBFBF500FBFB + F500FBFBF500FBFBF500FBFBF500FBFBF500FBFBF500FBFBF500555353006D6B + 6A008D8C8B004542400000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000011C28D008EF9D80010C28D00063C2C000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000063C2C0010C28D0057F0C70011C2 + 8D00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC7A400EFC7A400EFC7A400EFC7A400EFC7A400EFC7 + A400EFC7A400EFC7A400EFC7A400EFC7A400EFC7A400EFC7A500000000000000 + 000000000000000000000000000000000000000000003A373600454241004542 + 40005F5B58004A46450045424100C3C3B500C3C3B500C3C3B500C3C3B500C3C3 + B500C3C3B500C3C3B500C3C3B500C3C3B500C3C3B500F4F3E400363333004542 + 4100454240001F1D1D0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000010C28D000FC28D00063C2C00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000063C2C00F5F9F70010C2 + 8D00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000EC48F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000EC4 + 8F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000020202000A0A0900000000000000000000000000000000000000 + 0000000000000000000000000000000000000A0A090002020200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008E8F82008E8F82008E8F82008E8F82008E8F + 82008E8F82008E8F82008E8F82008E8F82001313120002020200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000349E6F00349E6F00349E6F00349E6F00349E + 6F00349E6F00349E6F00349E6F00349E6F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A5A69B00C2C3B400C2C3B400C2C3B400C2C3 + B400C2C3B400C2C3B400C2C3B400A5A69B000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000E2B79800E1B69600E1B69600E1B69600E1B69600E1B69600E1B69600E1B6 + 9600E1B69600E1B69600E1B69600E1B69600E1B69600E1B69600E1B69600E1B6 + 9600E1B69600E1B6960000000000000000000000000000000000000000000000 + 000000000000000000000000000033A070003CD7A70013B98C0013B98C0013B9 + 8C0013B98C0013B98C003CD7A700329F70000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A5A5A500CECECE00E7E7E700E7E7E700E7E7E700E7E7E700E7E7 + E700E7E7E700E7E7E700E7E7E700E7E7E700E7E7E700E7E7E700CCCCCC002525 + 2500000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C2C3B400F0F0EC00F0F0EC00F0F0EC00F0F0 + EC00F0F0EC00F0F0EC00F0F0EC00C2C3B4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000F9E5C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5 + C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5C400F9E5 + C400F9E5C400E2B7970000000000000000000000000000000000000000000000 + 000000000000000000000000000031A1710039D7A6000CC78F000CC78F000CC7 + 8F000CC78F000CC78F0039D7A60032A171000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000F0F0F00B3B3B300CECECE00E4E4E400E4E4E400E4E4E400E3E3E300E3E3 + E300E3E3E300F2F2F200D4DDD900E2E2E200E1E1E100EFEFEF00CCCCCC005B5B + 5B00000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A5A69B00C2C3B400C2C3B400C2C3 + B400C2C3B400C2C3B400A5A69B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000F8E2BB00F3D6B100F3D6B100F3D6B100F3D6B100F3D6B100F3D6B100F3D6 + B100F3D6B100F3D6B100F3D6B100F3D6B100F3D6B100F3D6B100F3D6B100F3D6 + B100F8E0BA00E2B8980000000000000000000000000000000000000000000000 + 000000000000000000000000000030A2720034D5A4000CC790000CC790000CC7 + 90000CC790000CC7900034D6A50031A272000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000033333300C2C2C200D5D5D500E4E4E400F3F3F300F3F3F300F3F3F300F3F3 + F300E3E3E3005DB59100BFD7CD00F3F3F300F2F2F200EDEDED00D5D5D5008383 + 8300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008182770081827700818277008182 + 7700818277008182770081827700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000F8E1BE00F3D6B100F5DAB500F8E1BB00F8E0BB00F8E1BB00F8E1BB00F8E1 + BB00F8E1BB00F8E1BC00F8E1BB00F8E1BB00F9E1BC00F8E1BB00F8E1BB00F4D7 + B200F8E1BB00E3B99A0000000000000000000000000000000000000000000000 + 00000000000000000000000000002DA4740029D3A1000DCA92000DCA92000DCA + 92000DCA92000DCA920029D3A1002EA473000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008C8C8C00CFCFCF00E8E8E8006CC0A00038B2840039B083003BB083003AAE + 820078C0A4003EAC80003BAC81003DAB7F003DAA7D00D1DFD800E9E9E900ACAC + AC0000000000000000000000000000000000A5A69B00A5A69B00A5A69B00A5A6 + 9B00A5A69B00A5A69B00A5A69B00A5A69B00A5A69B00A5A69B00A5A69B00A5A6 + 9B00A5A69B00A5A69B00A5A69B00A5A69B00A5A69B00A5A69B00A5A69B00A5A6 + 9B00A5A69B00A5A69B00A5A69B00A5A69B000000000000000000000000000000 + 0000F8E2BF00F3D7B200F8E2BC00F8E1BC00F8E1BC00F8E1BC00F8E2BC00F8E1 + BC00F8E1BC00F8E1BC00F8E2BC00F8E1BC00F8E1BC00F9E1BC00F8E1BC00F5DA + B500F8E1BC00E3BA9B0000000000000000000000000000000000000000000000 + 00000000000000000000000000002CA6750023D29F000DCB93000DCB93000DCB + 93000DCB93000DCB930023D19F002DA574000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9D9D00D0D0D000EFEFEF0039B2850039B184005DBC980064BC9B0058B8 + 9400DEE3E1003CAB800092CAB30084C4AA003EAA7E0096C9B300EEEEEE00B9B9 + B90002020200000000000000000000000000A5A69B00C3C4B500C2C3B500C2C4 + B500C3C4B400C2C4B500C3C4B500C3C3B500C2C4B500C3C4B500C3C3B400C3C3 + B500C3C3B500C3C4B500C3C3B500C2C4B500C3C4B500C3C3B400C3C4B400C3C4 + B500C3C3B400C2C4B500C3C3B500A5A69B000000000000000000000000000000 + 0000F8E3BF00F4D8B300F8E2BD00F8E2BD00F8E2BD00F8E1BD00F9E2BC00F8E2 + BD00F8E2BD00F8E2BD00F8E2BD00F8E2BC00F8E1BD00F8E1BC00F8E2BD00F5DB + B600F8E1BD00E3BC9C0000000000000000000000000000000000000000000000 + 00000000000000000000000000002BA676001DD09D000DCC94000DCC94000DCC + 94000DCC94000DCC94001DD19C002BA676000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000ACACAC00D0D0D000F1F1F10044B98E0038B2850041B28800CFDFD900E6E6 + E600E6E6E60058B69100A5D0BE00B9D7CC003BAA7D00AED1C200F0F0F000C4C4 + C40025252500000000000000000000000000A5A69B00E4E3DB00E4E3DB00E5E6 + DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6 + DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6DF00E5E6 + DF00E5E6DF00E5E6DF00C7C7B800A5A69B000000000000000000000000000000 + 0000F9E4C300F4DAB500F8E2BF00F8E3BF00F8E3BF00F9E3BF00F8E2BE00F8E3 + BE00F9E3BF00F8E2BF00F8E2BF00F8E3BF00F8E2BF00F8E2BE00F8E3BE00F5DC + B800F8E2BF00E5BE9F00000000000000000028AA7A0028AA7A0027AA790028AA + 790028AA790028AA790028AA790027AA790014CE99000DCF98000DCF98000DCF + 98000DCF98000DCF980013CF990028A9790029A9780028A9790028A9780029A9 + 780028A9780029A9780029A97800000000000000000000000000000000000000 + 0000CACACA00DADADA00F2F2F200E0E7E40045B98F0035B486008DCDB500E8E8 + E800E8E8E800E6E6E6006FC0A1003BAE8200D7E1DC00E5E5E500EEEEEE00CDCD + CD0083838300000000000000000000000000A5A69B00D6977300D7977400D797 + 7400D7977400D7977400D7977400D7977400D7977400D7977400D7977400D797 + 7400D7977400D7977400D7977400D7977400D7977400D7977400D7977400D797 + 7400D7977400D7977400C7C9B900A5A69B000000000000000000000000000000 + 0000F8E4C500F6DEBA00F9E3BF00F8E2BF00F8E3C000F8E3C000F8E3C000F9E3 + C000F8E2C000F8E3C000F8E3BF00F8E3C000F9E3C000F7E2BE00F9E1BE00F6DD + B900F7E1BD00E5BFA000000000000000000026AC7B003EDCB0003EDCB0003EDC + B0003EDCB0003EDCB0003EDCB0003EDCB00011CE98000DD099000DD099000DD0 + 99000DD099000DD0990011CE98003EDCB0003EDCB0003EDCB0003EDCB0003EDC + B0003EDCB0003EDCB00027AA7900000000000000000000000000000000000000 + 0000D0D0D000E5E5E500EFEFEF0059C09C0039B88B0035B58700E7E9E800E6E8 + E700E8E8E800E8E8E800E5E6E60080C7AC00E6E6E600E6E6E600EBEBEB00CFCF + CF009A9A9A00000000000000000000000000A5A69B00E6A47E00E8A57F00E8A5 + 7F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A5 + 7F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A5 + 7F00E8A57F00E8A57F00C9CABB00A5A69B000000000000000000000000000000 + 0000F9E5C500F7DFBD00F8E3C000F9E3C000F9E3C100F8E3C000F8E3C000F9E3 + C000F9E3C000F8E2C000F9E3C100F9E4C100F7E2C000F8E3BF00F7E2BF00F5DD + BA00F7E0BE00E6C0A300000000000000000024AE7C0011C9960011C9960011C9 + 960011C9960011C9960011C9960011C9960011C996000DD29B000DD29B000DD2 + 9B000DD29B000DD29B000DD29B0011C9960011C9960011C9960011C9960011C9 + 960011C9960011C9960026AC7B00000000000000000000000000000000000000 + 0000D2D2D200EDEDED00EDEDED00EAEAEA00EAEAEA00DCE6E2003EB88C0081CB + AF00E5E8E70048B78E0037AF82007FC5AA00E7E7E700E6E6E600E8E8E800CFCF + CF00A8A8A800000000000000000000000000A5A69B00E6A37D00E8A57F00E8A5 + 7F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A5 + 7F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A5 + 7F00E8A57F00E8A57F00CCCDBE00A5A69B000000000000000000000000000000 + 0000F9E6C900F7E1BF00F9E4C200F8E4C300F8E4C200F9E4C200F8E4C200F9E4 + C200F7E3C200F7E1BF00F5DEBD00F5DFBD00F5DFBE00F5DEBE00F5DEBD00F3DC + BA00F3DCBC00E8C3A500000000000000000021B17F000ED59E000ED59E000ED5 + 9E000ED59E000ED59E000ED59E000ED59E000ED59E000ED59E000ED59E000ED5 + 9E000ED59E000ED59E000ED59E000ED59E000ED59E000ED59E000ED59E000ED5 + 9E000ED59E000ED59E0022AF7D00000000000000000000000000000000000B0B + 0B00D3D3D300F4F4F400EBEBEB00EBEBEB00EBEBEB00EBEBEB0031B6860035B5 + 870094D1BA0036B385003DB388002EAE8000E9E9E900E8E8E800E8E8E800D0D0 + D000C6C6C6002C2C2C000000000000000000A5A69B00E5A37D00E8A57F00E8A5 + 7F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A5 + 7F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A57F00E8A5 + 7F00E8A57F00E8A57F00CCCEBF00A5A69B000000000000000000000000000000 + 0000F9E7CA00F7E2C000F9E5C400F8E4C300F9E5C400F8E5C400F9E5C300F9E4 + C400F8E3C100F4DEBE00F2DCBC00F3DDBD00F4DDBE00F5DEBE00F4DEBD00F4DD + BA00F4DEBD00E8C5A70000000000000000001FB280000ED6A0000ED6A0000ED6 + A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6 + A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6A0000ED6 + A0000ED6A0000ED6A00020B17F00000000000000000000000000000000002C2C + 2C00D6D6D600F5F5F500ECECEC00EBEBEB00EBEBEB00EBEBEB007CCCAF0034B6 + 880035B5870038B58700CEE2DA0096D0B800E9E9E900E9E9E900E9E9E900D6D6 + D600CDCDCD005C5C5C000000000000000000A5A69B00E5A37E00E9A68000E8A6 + 8000E9A68000E8A68000E8A68000E9A68000E9A68000E9A68000E8A68000E8A6 + 8000E8A78000E8A68000E8A78000E9A68000E9A78000E9A68000E9A68100E8A6 + 8000E8A78000E8A68000CECFC000A5A69B000000000000000000000000000000 + 0000F9E8CC00F8E5C400F9E5C500F9E5C500F9E5C500F9E5C400F8E5C400F8E4 + C400F8E3C200F2DCBD00F3DCBD00F2DBBA00F2DBBB00F2DCBC00F3DCBC00F3DD + BC00F3DCBD00E9C7A90000000000000000001EB4820010D8A10010D8A10010D8 + A10010D8A1000FD8A1000FD8A1000FD8A1000FD8A1000FD8A1000ED8A1000ED8 + A1000ED8A1000ED8A1000ED8A1000ED8A1000ED8A1000ED8A1000ED8A1000ED8 + A1000ED8A1000ED8A10020B28000000000000000000000000000000000005B5B + 5B00D1D1D100E4E4E400DDDDDD00DCDCDC00DCDCDC00DCDCDC00D9DBDA0030AB + 800030AA7F002AA77B00DADBDA00DBDBDB00DADADA00D9D9D900D9D9D900D1D1 + D100C2C2C200797979000000000000000000A5A69B00E6A68100EAAA8400EAA9 + 8400EBA98300EBA98300EBA98400EAAA8300EAAA8300EBA98300EAAA8300EBAA + 8300EAAA8400EAAA8300EBA98300EAA98300EAAA8400EBAA8300EBA98300EAAA + 8300EAAA8400EAAA8300D1D2C300A5A69B000000000000000000000000000000 + 0000F9E8CD00F8E6C700F9E6C800F9E5C800F8E6C800F9E5C700F9E6C800F7E4 + C500F6E1C300EDD5B700EACFB100E8CCAF00E7CBAC00E6CBAD00E7CBAC00E8CC + AF00DEBEA300E7C3A80001010100000000001AB7840016DBA60016DBA60016DB + A60016DBA60015DBA60015DBA60015DBA60014DBA60014DBA60014DBA60014DB + A60013DBA60013DBA60013DBA60013DBA60013DBA60013DBA60013DBA60013DB + A50013DBA50012DBA5001CB68300000000000000000000000000000000007171 + 7100A4A4A4009494940092929200929292009292920092929200929292009191 + 910091919100909090009090900090909000909090009090900090909000A3A3 + A3008B8B8B00767676000000000000000000A5A69B00E6A88100ECAB8500ECAC + 8600EBAC8500EBAB8500EBAB8500ECAB8500EBAC8500ECAC8500EBAC8500EBAC + 8500ECAB8500EBAC8500EBAC8500ECAC8500EBAB8500ECAC8500ECAB8500ECAC + 8500ECAC8500EBAC8500D3D4C500A5A69B000000000000000000000000000000 + 0000F9E9CF00F8E6C800F9E7C800F9E6C800F9E6C800F8E6C900F9E7C900F8E5 + C700F5E1C300EACFB300E4C5AA00E2C0A500DBB89C00DBB89C00D9B69B00D9B7 + 9B00E8CDAE00E7C3A800000000000000000018B8850090F9D90090F9D90090F9 + D90090F9D90090F9D90090F9D900F5F9F7001FDDA90019DCA70019DCA70019DC + A70018DCA70018DCA7001DDDA900F5F9F70090F9D90090F9D90090F9D90090F9 + D90090F9D90090F9D9001AB7840000000000000000000E7C5A0021B17F0021B1 + 7F0021B17F0021B17F0021B17F0021B17F0021B17F0021B17F0021B17F0021B1 + 7F0021B17F0021B17F0021B17F0021B17F0021B17F0021B17F0021B17F0021B1 + 7F0021B17F0021B17F000E7C5A0000000000A5A69B00E8A98300ECAE8700ECAE + 8700EDAE8700EDAE8700ECAE8700ECAD8700ECAE8700EDAE8700EDAE8800EDAE + 8700ECAE8800EDAE8700EDAE8700ECAD8700EDAE8700ECAE8700ECAE8700ECAE + 8700ECAE8800ECAE8700D4D5C800A5A69B000000000000000000000000000000 + 0000F9E9CF00F8E7C900F8E7C900F9E7C900F8E6C900F9E7CA00F9E6C900F8E5 + C800F4E0C100E8CBAF00E2C2A700E4C7AE00DFBFA600E1C3A800EAD2B600F5DF + BC00E8C5AA00483B3200000000000000000017BA870017BB870017BA860017BA + 860018BA870017B9860017BA870017BA86002AE0AD001DDDA9001DDDA9001DDD + A9001CDDA9001CDDA90028E0AD0018B9860018B9860018B9860018B9860018B9 + 860018B9860019B9850019B98500000000000000000021B17F001AC995001AC9 + 95001AC995001AC995001AC995001AC995001AC995001AC995001AC995001AC9 + 95001AC995001AC995001AC995001AC995001AC995001AC995001AC995001AC9 + 95001AC995001AC9950021B17F0000000000A5A69B00E8AC8600EFB38C00EFB3 + 8C00EFB28C00EFB28C00EFB28C00EFB38C00EFB28C00EFB38B00EFB28C00EFB3 + 8C00EFB28B00EFB28C00EFB28C00EFB28C00EFB38C00EFB38B00EFB28C00EFB3 + 8B00EFB38B00EFB28C00D7D7CB00A5A69B000000000000000000000000000000 + 0000F9EAD100F9E7CB00F9E8CB00F9E8CB00F9E7CC00F9E8CB00F9E8CB00F6E6 + C900F1DDC000FCF9F700F8F2EC00FDF7EE00FAECD500F8E3C300F7E0BB00483D + 3300000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000014BC88003FE4B30026DEAB0025DEAB0025DE + AB0025DEAB0024DEAB003CE3B20015BC88000000000000000000000000000000 + 0000000000000000000000000000000000000000000021B17F0012C28E0012C2 + 8E0013C28D0013C38E0012C28E0012C28E0012C28D0013C28E0012C28E0012C2 + 8E0012C38D0013C28E0012C38E0012C38E0012C38E0012C28E0013C28E0013C2 + 8E0012C38E0013C38E0021B17F0000000000A5A69B00E9AD8700F1B58E00F1B5 + 8E00F1B58E00F0B58E00F0B58D00F0B58E00F0B58E00F1B58E00F1B58E00F0B5 + 8E00F1B58E00F1B58D00F1B58E00F1B58E00F0B58D00F1B58D00F0B58D00F0B5 + 8D00F0B58E00F1B58E00D7D8CC00A5A69B000000000000000000000000000000 + 0000F9EBD200F9E8CC00F8E7CC00F9E8CC00F9E7CC00F9E8CC00F8E7CB00F7E4 + C800F2DDC000FEFAF500FCF6EC00FBF0DD00F8E3C200F7DFBA00EDD0B4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000013BE8A0046E5B5002ADEAB0029DEAB0029DE + AB0029DEAB0029DEAB0045E5B50014BE89000000000000000000000000000000 + 0000000000000000000000000000000000000000000021B17F0012C4900011C4 + 8F0012C48F0012C48F0011C48F0011C48F0011C48F0012C48F0012C48F0012C4 + 8F0011C48F0012C48F0012C48F0012C48F0011C48F0011C38F0012C48F0012C4 + 8F0011C48F0011C48F0021B17F0000000000A5A69B00EAAF8900F1B78F00F1B7 + 9000F1B89000F1B79000F2B79000F2B89000F1B79000F1B79000F1B89000F1B8 + 9000F2B89000F2B89000F2B79000F1B79000F2B79000F2B89000F2B78F00F2B7 + 8F00F2B79000F1B79000D8DACE00A5A69B000000000000000000000000000000 + 0000F9EBD200F9E8CD00F9E8CD00F9E8CC00F9E8CD00F8E8CD00F9E7CB00F6E4 + C900F1DCBF00FCF4E700FBEFDC00F9E8CE00F7DFB900EFD3B700493E35000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000013BF8B004CE6B7002EDEAB002EDEAB002DDE + AB002DDEAB002DDEAC004BE6B70013BF8B000000000000000000000000000000 + 0000000000000000000000000000000000000000000021B17F0011C5900011C5 + 900011C5900011C5900011C5900011C5900011C5900011C5900011C5900011C5 + 900011C5900011C5900011C5900011C5900011C5900011C5900011C5900011C5 + 900011C5900011C5900021B17F0000000000A5A69B00EBB18B00F4BB9300F3BB + 9400F3BB9400F3BB9400F4BB9300F4BB9400F4BB9300F4BB9400F3BB9400F3BB + 9400F3BC9400F4BB9400F3BB9400F3BB9300F4BC9300F3BB9400F4BB9300F4BB + 9400F4BB9400F4BB9400DBDBD000A5A69B000000000000000000000000000000 + 0000F9EBD400F9E8CE00F9E8CE00F9E8CE00F9E9CE00F9E9CE00F7E6CD00F5E1 + C800F0DABE00F7E2C000F7E1BE00F7DFB90051463C0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000011C28C0053E8B90035DDAB0034DDAB0034DD + AB0034DEAB0034DEAB0053E8B90011C18C000000000000000000000000000000 + 0000000000000000000000000000000000000000000016BD880017E8B40017E8 + B40017E8B40017E8B40017E8B40017E8B40017E8B40017E8B40017E8B40017E8 + B40017E8B40017E8B40017E8B40017E8B40017E8B40017E8B40017E8B40017E8 + B40017E8B40017E8B40016BD880001060400A5A69B00EBB28C00F4BD9400F4BC + 9500F4BC9500F4BC9500F5BD9500F4BD9500F4BC9500F4BD9500F4BD9500F5BD + 9500F4BC9500F4BD9500F4BD9500F5BD9500F5BD9500F4BD9500F4BD9500F4BD + 9500F4BD9400F5BD9400DBDCD000A5A69B000000000000000000000000000000 + 0000FAECD400F9E8CE00F9E9CF00F9E9CE00F9E9CF00F9E8CD00F7E5CC00F4E2 + C700F0DABF00F7DFB900F7DFB900F1D8BC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000FC38D0054E9BA0037DDAB0037DDAB0037DD + AB0037DDAB0037DDAB0054E9BA0010C28D000000000000000000000000000000 + 000000000000000000000000000000000000000000000E382C0016BD880017E8 + B400299065002892660025A1710025A1710025A1710025A1710025A1710025A1 + 710025A1710025A1710025A1710025A1710025A1710025A1710025A171000CBE + 890046E7B50017E8B4000E372A0000000000A5A69B00C98C6B00C98C6B00C98C + 6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C + 6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C6B00C98C + 6B00C98C6B00C98C6B00DCDDD100A5A69B000000000000000000000000000000 + 0000FAECD500F9E9CF00F9E9CF00F9E9CF00F9E9CF00F9E9CE00F7E6CC00F6E3 + C900F1DDC200F4DCB800F1D8BC006A5E50000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000EC38E0079EDC8003ADCAB0039DCAB0039DC + AB0039DCAB0039DDAB0079EDC8000FC38E000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000F3C2E0016BD + 880048E6B5002990650025A1710025A1710025A1710025A1710025A1710025A1 + 710025A1710025A1710025A1710025A1710025A1710025A1710025A171004DEC + BA0017E8B40016BD88000000000000000000C2C3B400C2C3B400C2C3B400C2C3 + B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3 + B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3B400C2C3 + B400C2C3B400C2C3B400C2C3B400C2C3B4000000000000000000000000000000 + 0000F1D8BC00F1D8BC00F1D8BC00F1D8BC00F1D8BC00F1D8BC00F1D8BC00F1D8 + BC00F1D8BC007266580000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000EC48F000EC48F000EC48F000EC48F000EC4 + 8F000EC48F000EC48F000EC48F000EC48F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000001 + 010017DCA70010D1970010D1970010D1970010D1970010D1970010D1970010D1 + 970010D1970010D1970010D1970010D1970010D1970010D1970010D1970016CE + 99000F3A2D00000101000000000000000000424D3E000000000000003E000000 + 2800000060000000A00500000100010000000000804300000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000FFFFFF8007FF00003F000000FFFFFF80FFFF8000FF000000010101807FFF + 8000FF000000010101803FFF8000FF800001010101801FFF8000FF8000030101 + 01800FFF8000FFC000030101018007FF8000FFE00007010101E003FF8000FFE0 + 0007010101F001FF8000FFF0000FEFEFEFF000FF8000F8F0001FEFEFEFFC007F + 8000F8F0001FE0000FFE00078000F8F8001FFFEFFFFE0003FFE3F8FC003FFE00 + FFFF8001FFE3F8FE007FFE00FFFFC000FFE3F8FE007FFE00FFFFC000FFE1F0FE + 00FFFE00FFFFF020FFE1F0FF00FFFE00FFFFF070FFE0E0FF00FFFE00FFFFF038 + FFF001FFC1FFFE00FFFFF01CFFF803FFC3FFFE00FFFFF81FFFFC07FFC7FFFE00 + FFFFF80FFFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFC00007FFFFFFFFFFFFC0000FE0001F800001000000C0000FE0001F000000 + 800003C0000FE0001F000000800003C0000FE0001F000000800003C0000FE000 + 1F000000800003C0000FE0001F000000800003C0FC0FE0001F000000800003C0 + FC0FE0001F000000800003C0FC0FE0001F000000800001C0FC0FE0001F000000 + 800001C0FC0FE0001F000000800001C0FC0FE0001F000000800001C0C000E000 + 1F000000800001C0C000E0001F000000800001C0C000E0001F000000FE007FC0 + F003E0001F000000FE007FC0F803800007000000FE007FC0F807800007000000 + FFFFFFC0FE1F800007800003FFFFFFE1FF1F800007FFFFFFFFFFFFFFFF1FC000 + 0FFFFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF801FFFFFFFFFFFFFC00001FFE0FFFE003FFFFFFFC00001FFC07FFE003F + FFFFFFC00001FFC03FFFC0FFFFFFFFC00001FF001FFFC1FFFFFFFFC00001FE00 + 0FFFC1FFFFFFFFC00001FE0007FFC1FFFFFFFFC00001F80003FFC1FF800003C0 + 0001F00001FFC1FF800003C00001F00000FFC1FF800003C00001C00001FFC1FF + E00007C00001800003FFC1FFE00007C00001800003FFC1FFF0000FC000018000 + 0FFFC1FFF0000FC0000180001FFFC1FFF0000FC0000180001FFFC1FFF0000FC0 + 000182007FF3C1E3F0001FC000018200FFF1C1E3F8001FC000018000FFF1C1C3 + FFFFFFFFFFFFC003FFF00003FFFFFFFFFFFFE007FFF00003FFFFFFFFFFFFF007 + FFF00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFF + 000FF01C07F8001FFF87FFFFFC3FF07F0FF0000FFF87FFFFF83FF83E1FE00007 + FF87FFFFF83FF8181FC00003F8007FFFE03FFC001F800001F8007FFFC03FFC00 + 1F000000F8007FFC003FFC001F000000FF03FFF0001FFE003F000000FE00FFF0 + 001FFE001F000000FC00FFF0000FF8001F000000F0003FF0000FE00003000000 + F0303FF0000FC00003000000F0781FF0000F800000000000F0FC1FF0001F8000 + 00000000F1FE1FF0001FFF80FF000000F1FE1FF0003FFF80FF000000F0FC1FFF + C03FFFC1FF000000F0781FFFE03FFFC1FF800001F0303FFFF03FFFC3FF800003 + F8007FFFF83FFFC3FFE00007FC00FFFFFC3FFFE7FFF0000FFE00FFFFFE3FFFE7 + FFF0001FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFE00FFFFFFFFC0000FE0 + 0007FF81FFFFFFFF80001FF8003FFE00FFFC0FFF80001FF8003FFE007FF007FF + 80001FF8003FFE007FF003FF80001FF8003FF8001FC000FFF0001FF8003FF000 + 1FC0C0FFF0001FF8003FF0001F81E0FFF0001FF8003FF0000F83F0FFF0001FF8 + 003FE0000787F8FFF0001FF8003FE0000787F8FFF0001FF8003FC0000383F0FF + F0001FF8003FC0000381E0FFF0001FF8003FC00003C0C0C7F0001FF8003FC000 + 03E00047F0001FF8003FC00003F00007F0001FF8003FC00003F00007F00003F8 + 003FC00003FFF807F00003F8003FC00003FFF807F00003F8003FC00003FFE007 + F00003F8003FFF81FFFFE007F00003F8003FFFC3FFFFE007F80003F8003FFFC7 + FFFFFFFFFFFFFFF8003FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3FFC00003FFFFFFFFFFFFFF80E3800003 + FFFFFFFFFFFFFF00C38000039FFFFFFFFFFFFE00018000039FE001FFFFFFFC00 + 018000038FE001FFFFFFF800018000038FF001800001F0000380000387F80180 + 0001E0000380000383F801800001E00003800003806001800001800001800003 + C00001800001800001800003C00001800001800001800003E000018000018000 + 01800003F00001800001800001800003F00001800001800001800003F80019FF + FFFF800001800003FC003FFFFFFF800001800003FE007FFFFFFF800001800003 + FFFFFFFFFFFF801803800003FFFFFFFFFFFFC03803C00003FFFFFFFFFFFFF03E + 07E00007FFFFFFFFFFFFFFFFFFFFFFFF800001FFFFFFFFFFFFFFFFFFF0000780 + 0001FFFFFFFFFFFFF00007C00003F07FFF80007FF00007C00003E03FFF80007F + F00007C00003C01FFF80007FF00007C000038007FF800063F00007C000038007 + FF800043F00007C000038003FF800041F00007C000038000FFC20001F00007C0 + 00038000FFE30001F00007C00003C0007FFF0001F00007C00003E0001FC20001 + F00007C00003F0001F800001F00007C00003F0000F800001F00007C00003FC00 + 07800063F00007C00003FE000380007FF00007C00003FE000380007FF00007C0 + 0003FF800380007FF00007C00003FFC003FE07FFF00007C00003FFC003FC03FF + F00007C00003FFF007F801FFF00007C00003FFF80FF801FFFE493FC00003FFFC + 1FF801FFFE493FFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFE001FFFFFFFFFFFFF800003FFF8FFFE0003FFFFFF800003FFF0FFFC0003 + FC003F800003FFE0FFF80003000000800003FFC0FFF00003000000800003FF80 + C7E00003000000800003F00083E00003000000800003C00003E00003FC003F80 + 0003C00003E00003FF00FF800003C00003E00003FF00FF800003C00007E00003 + FF00FF800003C00007E00003FF00FFFC0003C00003E00003FFC3FFFC0003C000 + 03E00003FFC3FFFC0003C00003E00003FFC3FFFC0003E00003E00003FFC3FFFC + 0003FF80C7E00003FFC3FFFC0003FFC0FFE00003FFC3FFFC0003FFC0FFE00003 + FFC3FFFC0003FFF0FFE00003FFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFF8 + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003FC00FFFF00007FF + FFFFFFC3FFC07FFFFC001FFFFFFFFF00FF807FFFFC001FFFFFFFFE00FF807FFF + FC001FF8000FFE007F807E1FFC001FFF181FFE007F807807FC001FFF181FFF81 + FFC07807FC001FFE101FF381CFE07807FC001FFE007FE381C3F87807FC001FFE + 00FFC00003F87807FC001FFC00FF800001F87C07FC001FF8007F000000F87F07 + FC001FF8003F000000F87F87FC001FF0003F000000F87F87FC001FF000FF8000 + 03F87F87FC001FF003FFC381C3F80F87FC001FF007FFE381C7F80187FC001FE0 + 3FFFFF81FFF80007FC001FC0FFFFFE007FF80007FC001FC3FFFFFE007FF80007 + FC001FFFFFFFFE00FFFC0007FC001FFFFFFFFF00FFFF0007FC001FFFFFFFFF81 + FFFFE007FFFFFFFFFFFFFFC7FFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF80000383FFFFFFFFFFFFFFFF80000381FFFFFFFFFF + FFFFFF80000381FFFFFFFFFFFFFFFF800003C07FFF800001800001800003E03F + FF800001800001800003F03FFF800001800001800003F80FFF80000180000180 + 0003FC07FF800001800001800003FE07FF800001800001800003FF00CF800001 + 800001800003FF8007800001800001800003FFC007800001800001800003FFE0 + 03800001800001800003FFE001800001EFFFFF800003FFE001800001E0000380 + 0003FFF803800001FFFFFF800003FFF803800001FFFFFF800003FFF003800001 + FFFFFFFFFFFFFFF003800001FFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFF + 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00007FFFFFF800003FF + FFFFF0000FFFFFFFE00007FC007FF0000FF8001FE00007F8003FF0000FF8001F + E00007F0001FF0000FF8001FE00007E0000FF0000FF8001FE00007C00007F000 + 0FF8001FE00007800003F0000FF8001FE00007800003F0000FF8001FE0000780 + 0003F0000FF8001F800001800003F0000FF8001F800001800003F0000FF8001F + 800001800003F0000FF8001F800001800003F0000FF8001FC00003800003F000 + 0FF8001FE00007800003F0000FF8001FF0000F800003F0000FF8001FF8000F80 + 0003F0000FF8001FFC0007C00007F0000FF8001FFE0007E0000FF0000FF8001F + FF00FFF0001FF0000FF8001FFF81FFF8003FF0000FF8001FFFC3FFFC007FF000 + 0FF8001FFFFFFFFFFFFFF8001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFF + FFFFFC003FFE00FFF8001FFFFFFFFF81FFF6004FF0001FFFFFFFFF00FFE80003 + F0000FFFFFFFFE00FFC0001BC00003000000FC003FA00005C00003000000F800 + 1FE00005800003000000F0001FC00001800001000000E0000F803C0180000100 + 0000E00007807E01800001000000C0000380FF0180000100000080000380FF01 + 80000100000080000380FF0180000100000080000180FF018000010000008000 + 01807E01800001800001800001803C01800003800003800001C00001C00003E0 + 0007800001E00007C00003F0000F800001E00007E00007FFFFFF800001B0000F + F0001FFFFFFFC03803D80013F8001FFFFFFFF03E07CE0067FE007FFFFFFFFFFF + FFF300CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 + 00FFFFBFFFF0001F807E03F1FFFFFF8FFFF8001F807E03F1FFFFFF8FFFF8001F + 80FF03F1FFFFFF87FFF8001F807E03F1FFFFFF87FFC00003803C03F1FFFFFF83 + FF800003803803F1FFFFFFC3FF800003880013F1FFFFFFC0FFC03C03FC003FF1 + FFFFFFC0FFC07E03FE007FF1FFFFFFC0FF80FF03FF00FFF00003FE007F81FF01 + FF00FFF00003FE003F81FF01FE00FFF00003FE003F80FF01FC003FF00003FE00 + 1FC07E03880013F00003FE001FC03C03801803F00003FE01FF801803803C03F0 + 0003FE00FF800003807E03F00003FE00FFC0000380FF03F00003FE00FFF8001F + 807E03F00003FE007FF8001F807E03F001F3FE003FF8001F807E03F0FFFFFE00 + 3FFCC33FFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000FFFFFFFF03E0780 + 0001F0001FFFFFFFE07E07E00007F0001F800001C03C03E00007F0001F800001 + 803803E00007F0001F800001800001E00007F0001F800001800001E00007F000 + 1F800001800001E00007F0001F800001C00003E00007F0001F800001E00007E0 + 0007F0001F800001F0000FE00007F0001F800001F8001FE00007F0001F800001 + F8001FE00007F0001F800001F0001FE00007F0001F800001E00007E00007F000 + 1F800001C00003E00007F0001F800001800003E00007F0001F800001800001E0 + 0007F0001F800001800001E00007F0001F803FFF801801E00007F0001F803FFF + C03C03E00007F0001F80FFFFE07E07E0000FF0001FFFFFFFF0FF0FE0001FF000 + 1FFFFFFFFFFFFFE0003FF0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800001FF + F0E3FF00FFFFFFFFE00007FFF003FC001FE0000FE00007FFF003F0000FE0000F + E00007FFF003F00007E0000FE00007FE001FE00003E0000FE00007FE001FC000 + 03E0000FE00007FE001FC00003E0000FE00007C0021F800001E0000FE00007C0 + 021F800001E0000FE00007C0021F800001E0000FE00007C0021F800001E0000F + E00007C0021F800001E0000FE00007C0021F800001E0000FE00007C0021F8000 + 01E0000FE00007C0021F800001E0000FE00007C0021FC00003E0000FE00007C0 + 021FE00003E0000FE00007C0021FF00007E0000FE00007C0021FF00007E0000F + E00007FE001FFC001FE0000FF0000FFE001FFE003FE0000FFE00FFFE001FFF00 + FFF0001FFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8001FFFFFFFFFFFFFFF + FFFFFC003FFFFFFFFFFFFF800003F0000FFC03FF840023800003E00007F803FF + 840021800003C00003F003FF840021800003800003E001FF8E00618000038000 + 01C001FF840021800003800001C001FF800001800003000000E000FF80000180 + 0003000000F040FF800001800003000800F0C0FF800001800003003800FFE07F + 800001800003003C00FFE03F800001800003003800FFF03F8000018000030000 + 00FFF81F800001E00007000000FFF81F800001E00007000000FFFC0F800001E0 + 0007800001FFFF03800001FFFFFF800003FFFF03800001FFFFFF800003FFFF83 + FFFFFFFFFFFFE00007FFFFE1FFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF000 + 1FFFFFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0003FFFFFFF8001F80001FC00007FFFFFFF8001F80000FC00007800003F0000F + 800007C00007800001F00007800003C00007800001E00003800003C000078000 + 01C01E03800003C00007800001C00F03800003C00007800001800781800003C0 + 00078000018003C1800003C000078000018001C1800003C000078000018100C1 + 800003C00007800001818041800003C0000780000181C001800003C000078000 + 0181E001800003C0000780000181F001800003C00007800003C0F803800003C0 + 0007E00007E00003800003C00007F8001FE00007800003C00007FFC01FF00007 + 800003C00007FFFFFFF8001F800003C00007FFFFFFFE003FFFFFFFC00007FFFF + FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFFFFFFFFFFFFFF80001FF9F3FFFF + FFFFFFFFFFC00003F8E3FF000000FFFFFFC00007F843FF000000800003C00007 + F803FF000000800003C00007F803FF000000800003C00007F803FF0000008000 + 03C00007F803FF000000800003C00007F803FF000000800003C00007F803FF00 + 0000800003C00007F803FF000000800003C00007F803FF000000800003C00007 + F803FF000000800003C00007F8001F000000800003C00007F8001F0000008000 + 03C00007F8001F000000800003C00007F8001F000000800003C00007F8001F00 + 0000800003C0001FF8001F800001800003C0001FF8001FFE3CFF800003C001FF + F8001FFE00FFFFFFFFC001FFF8001FFE00FFFFFFFFC001FFF8001FFE00FFFFFF + FFC001FFFE007FFFFFFFFFFFFFF007FFFFF7FFFFFFFFFFFFFFFFFFFFFFC1FFFF + FFFFF8001FFFFFFFFE003FFE7E7FFE00FFE00007FC001FF83C1FFE18FFC00003 + F8000FF03C1FFE38FFC00003F00003F0181FFE3CFFC00003C0C181F8181FFC38 + FFC00003C1C1C1F8001FFC38FFC00003C1C1C1FE007FFC38FFC00003C1C1E1FE + 007FFC38FFC00003C3E3E1FE00FFFC38FFC00003CFE3F9800001FC38FF800001 + CFE3FD800001FC38FF800001FF80FF800001FC38FF800001FF80FF800001FC38 + FF800001FFE3FFFE00FFFC30FFFFC7FFFFC1FFFE007FFC30FFFFC7FFFF80FFFC + 003FFC00FFFFC7FFFF80FFFC001FFC84FFFFC7FFFF88FFF8181FFCFCFFFFC7FF + FF80FFF0381FFC38FFFFC7FFFF80FFF03C1FFC00FFFFC7FFFFC0FFF83C1FFE00 + FFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FC + 001FC0001FE0000FFFFF01FF00FFC00007E0000FFFFF01FF00FFC00007E0000F + FFFE01FF00FFC00007E0000FFFF801FF00FFC00007C00007FFF803FF00FFC000 + 07C00007FFF003FF00FFC00007800003FFE00F800000C00007800003F0001F80 + 0000C00007800003E0001F800000C0000780000380007F800000C00007800003 + 8000FF800000C000078000038001FF800000C000078000030001FF800000C000 + 078000030001FF800000C000078000030001FF800000C0000780000300001FFF + 00FFC0000780000300001FFF00FFC0000780000300001FFF00FFC00007800003 + 8003FFFF00FFC000078000038007FFFF00FFC00007C06C07C007FFFF00FFC000 + 07F0C60FF03FFFFF00FFFFFFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFE0 + 7FFFFFFFFFFFFFFFFFFFFF803FFF800003F0001FFFFFFF801FFFE0000FFC003F + FFFFFF860FFFE0000FFC003F8007F98F07FFE0000FFF00FF8007F18707FFE000 + 0F0000008007F18207FFE0000F000000801FE1C007FFE0000F000000803FC3E0 + 07FFE0000F000000801F03F003FFE0000F000000800003F8001FE0000F000000 + 800003FC000FE0000F000000800007FFC007F0001F00000080000FFFE003F8FE + 3F00000080000FFFE001F8FE3F00000080001FFFE061F8FE3F000000FC003FFF + F0F0F87C3F000000FE00FFFFF070F87C3F000000FF01FFFFF820F8383F000000 + FFFFFFFFFC01FC007F000000FFFFFFFFFE03FE00FF000000FFFFFFFFFF03FF01 + FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00003F0 + 3E0FE00003E00003FC001FF07F07FC001FFC001FF0000FF07F07F0000FF0000F + F00007F03E07F00007F00007E00003F03C27E00003E00003C00003F01847C000 + 03C00003C00003F00807C00003C00003800001F0000F800001800001800001F8 + 001F800001800001800001FE003F800001800001800001FF80FF800001800001 + 800001FF80FF800001800001800001FF00FF800001800001800001FE087F8000 + 01800001800001FE183F800001800001C00003FE183FC00003C00003E00003FC + 3E1FE00003E00003F00007F87F1FF00007F00007F00007F07F0FF00007F00007 + FC001FF1FF8FFC001FFC001FFE003FF1FFCFFE003FFE003FFF00FFF3FFEFFF00 + FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF8007FFE00003FFFFFFFFFFFF83FFFFFC001F800000800001C1FFFFF0000F + 800000800003E0FFFFF00007900081800003F03E7FE00003900081800003F03C + 7FC00003900081800003F0187FC00003900081800003FC007F80000190008180 + 0003FE007F800001900081800003FE007F8000019000FF800003FF803F800001 + 9000FF800003FF001F8000019000FF800003FE001F8000019000FF800003FC00 + 078000019FC0FF800003FC00038000019FC0FF800003FC0000C000039FC0FF80 + 0003FFF800E000039FC0FF800003FFF801F000079FC0FF800003FFFC03F00007 + 9FC0FFFFFFFFFFFF07FC001F9FC0FFFFFFFFFFFF0FFE003F9FFFFFFFFFFFFFFF + 1FFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFF03FFFFFE00300000080007FC01FFFFFFF0180000183FFFF800FFFFFFF01 + 80000183FFFF8207FFFFFE0180000181FFFF8F87FFFFF801800001807FFF8FC7 + FFFFF803800001C03FFF8FC7FFFFF003800001F00FFF8F07FFFFE00F800001F0 + 00FF8207FFF0001F800001F8003F8003FFE0001F800001FE001FE000FF80007F + 800001FE0007F000FF8000FF800001FF0003FFC07F8001FF800001FF0003FFF0 + 1F0001FF800001FF0003FFF81F0001FF800001FF0203FFF80F0001FF800001FF + 8703FFFE030001FF800001FF8707FFFF030001FF803FFFFFC20FFFFF010001FF + 807FFFFFE01FFFFF008003FF80FFFFFFE03FFFFF008007FFFFFFFFFFF07FFFFF + 00C007FFFFFFFFFFFFFFFFFFC7F03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF800003800001FFF1FFC00003E00007CC0033FFE1FF800003E00007CC0033 + FFE1FF800003E00007C00003FFC1FF800003E00007C00003C00003800003E000 + 07CC0033800003800003E00007CC0033800001800003E00007C0000380000180 + 0003E00007C00003800001800003E00007CC0033800001800003E00007C00003 + 800001800003E00007C00003800001800003E00007C00003800001800003E000 + 07CC0033800001800003E00007C00003800001800003E00007C0000380000180 + 0003E00007CC0033800001800003E00007CC0033800001800003E00007C00003 + 800001800003E00007C00003800001C00003E0000FCC0033800003E00007E000 + 1FCC0033FFFFFFFFFFFFE0003FC00003FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF + FFFFFFFFFFFE003F000000000000C1F0FFF0000F000001000001C0007FF00007 + 800001000001C000FFE00003800001000001E3F8FFC00003800001000001FFFC + 7F800001800001000001FFFC7F800001C0000300000180003F800000E0000700 + 000180003F800000F0000F00000080003F800000FF00FF00000080001F800000 + FF81FF00000080001F800000FF00FF00000080001F800000FF00FF0000008000 + 1F800000FE00FF00000180000F800000FE00FF00000180000F800001FE00FF00 + 0001C00007C00003FE00FF000001FFE007C00003FE00FF000001FFFFC1E00003 + FF00FF000001FFFFE1F0000FFF00FF000001FFFFFFF8001FFF81FF000001FFFF + FFFE003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000001FFFFFF00000000 + 0000000041FE000F800001800001800041FC0007800000800001800041FA000F + 800000800001800041F00FFF800000800001800041F007FF8000008000018000 + 41E003FF8000008000018000418003FF8000008000018000418001FF80000080 + 00018000410001FF80000080000180004101807F80000080000180004103C07F + 80000080000080006387E07F80000080000080007F87F03F8000008000008000 + 7FFFF81F80000180000080007FFFFC0F80000180000080007FFFFE0FC0000380 + 000080007FFFFF07E0000780000080007FFFFF87F0000F800001803FFFFFFFC1 + F8001F800001803FFFFFFFE1FC003F801801803FFFFFFFF1FE007F803E01803F + FFFFFFF8FFFFFFC1FFC1807FFFFFFFFCFFFFFFFFFFFFFFFFFFFFFFFF00000180 + 0001FFFFFF800001000001E00007FFFFFFE00007800001E00007FFFFFFE00007 + 800001E00007000001E00007800001E00007000001F0000F800001E000078000 + 07F0000F800001E00007800003F0000F800001E00007800003F0000F800001E0 + 0007800001F0000F800001E00007800001E00007800001E00007800001E00007 + 800001E00007800001E00007800001E00007800000E00007800001E000078000 + 00E00007800001E00007800000E00007800001E00007800007F0000F800001E0 + 0007800007F8001F800001E00007800007FC003F800001E0000780000FFE007F + 800001E00007803FFFFF007F800001E00007FFFFFFFF807F800001FF81FFFFFF + FFFFC07FFFFFFFFF81FFFFFFFFFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFF + FFFFFFFFFF000000FF87FFFC007FE00007800001FF87FFF8003FC00007800001 + FF83FFF0001FE00007800001FF81FFE0000FE00007800001FF81FFC00007E000 + 07800001FF81FF800003E00007800001FF81FF800003E00007800001FF81FF80 + 0003E00007800001FF81FF800003F0000F800001FF00FF800003F8001F800001 + FE007F800003FE00FF800001FE003F800003FF00FF800001F8001F800003FE00 + FF800001F0000F800003FE007F800001F00007800003FE007F800001C0000380 + 0003FE007F800001800001C00007FE007F800001800001E0000FFE007F800001 + 800001F0001FFE00FF800001800001F8003FFE00FF800001800001FC007FFF00 + FF800001FFFFFFFFFFFFFFFFFFFCFF3FFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFF + FFFFFE00FFFFC7FFFFF8FFFF3FFFFE00FFFF81FFFFF8FFFE3FFFFE00FFFF00FF + FFF87FFE3FFFFE00FFFE00FFFFF81FF83FFFFE00FFFC003FFFF81FF03FFFFE00 + FFF8001F80000FF00001FE00FFF0001F800003C00001FE00FFE0000780000380 + 0001FE00FFE00003800001800001FE00FFE00007800001800001FE00FFFE00FF + 800001800001FE00FFFE00FF800003800001FE00FFFE00FF800007E00001E000 + 03FE00FF80000FF00001E00007FE00FFFFF81FF03FFFF0000FFE00FFFFF83FFC + 3FFFF8001FFE00FFFFF87FFE3FFFFC003FFE00FFFFF8FFFE3FFFFE007FFE00FF + FFFFFFFFFFFFFF00FFFE00FFFFFFFFFFFFFFFF81FFFE00FFFFFFFFFFFFFFFFC3 + FFFE00FFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFC003FFFFFFFFC007FFC007FFC003FE00003F8003FF8003FF0001FC00003 + F0001FF0001FF0000F800003E0000FE0000F800003800003C00007C000078000 + 0380000380000380000380000380000380000380000380000380000380000380 + 0003800003800003800003800003800003800003800003800003800003800003 + 800003800003800003800003800003800003800003800003800003800003C000 + 03800003800003800003E00007800003800003800003F0001F80000380000380 + 0003F0001F800003C00007C00007F0001F800003E0000FE0000FF0001F800003 + F0001FF0001FFC003F800003F8003FF8003FFC003F800003FC007FFC007FFC00 + 3F800003FFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFFC001FF0 + 000FE00003FFFFFFFC001FFF83FFFC001FC1FFFFFC001FFF00FFF0000FC0FFFF + FC001FFE007FF00007E03FFFFC001FFC003FE00003F00FFFFC001FF8003FC000 + 03F007FFFC001FF0000FC00003F007FFFC001FE0000F800001F001FFFC001FC0 + 0007800001F800FFFC001F800001800001F800FFFC003F000001800001FE003F + 000001000001800001FE001F000001FC003F800001FF001F800003FC003F8000 + 01FFC007C00007FC003F800001FFC003E0000FFC003FC00003FFE003F0001FFC + 003FE00003FFF801F8003FFC003FF00007FFF801FC007FFC003FF00007FFFC01 + FE00FFFC003FFC001FFFFF01FF01FFFC003FFE003FFFFF83FF83FFFC003FFF00 + FFFFFFC3FFC7FFFC003FFFFFFFFFFFFFFFFFFFFFFFFFF0000FE0001FF8000F00 + 0000F0000FE0001FFE003F800001FFF1FFFF8FFF000000800005FFF0FFFF0FFF + 000000800001FFF07FFE0FFF80000180000100103FFC08008000018000010000 + 0FF00000800001800001000007E00000800001800001000003C0000080000180 + 0001000003C00000800001800001000000000000800001800001000000000000 + 8000018000010000000000008000018000010000000000008000018000010000 + 01800000800001800001000003C00000E40007800001000007E00000FC003F80 + 000100000FF00000FC003F800001FFF01FF80FFFFC003F800001FFF03FFC0FFF + FC003F800001FFF07FFE0FFFFC003F800001FFF0FFFF0FFFFC003F800001FFF1 + FFFF8FFFFFFFFFFFFFFFFFF7FFFFEFFFF8003FFFFFFF88007FFFFFFFFE003FE0 + 0001800000000000FE00FFC00001FE00FF000000FE00FFF00003FE00FFF0000F + FF01FFF00003FE00FFF0000FFF01FFF00003FE00FFF0000F000000F00003FE00 + FFF00007000000F00003FE00FFF00007000000F00003000001F00007000000F0 + 0003000001F00007000000F00003000001F00003000000F00003000001E00003 + 000000F00003000001E00003000000F00001000001E00003000000F000010000 + 01E00001000000F00001000001800001000000F00003000001800001000000F0 + 000FFE00FF800001000000F0000FFE00FF800001000000F0001FFE00FF800001 + 000000F0007FFE00FF800000000000F0007FFE00FF800001000000F000FFFE00 + FF800001000000F003FFFE00FFE0000300000000000000000000000000000000 + 000000000000} + end + object ThreeLookAndFeelCol: TcxLookAndFeelController + Kind = lfStandard + NativeStyle = False + Left = 253 + Top = 12 + end + object ThreeColorBase: TcxStyleRepository + Left = 147 + Top = 80 + PixelsPerInch = 96 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBlack + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object SHuangSeCu: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end +end diff --git a/报关管理(BaoGuan.dll)/U_DataLink.pas b/报关管理(BaoGuan.dll)/U_DataLink.pas new file mode 100644 index 0000000..196db46 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_DataLink.pas @@ -0,0 +1,85 @@ +unit U_DataLink; + +interface + +uses + SysUtils, Classes, DB, ADODB, ImgList, Controls, cxStyles, cxLookAndFeels, + Windows,Messages,forms,OleCtnrs,DateUtils, cxClasses, dxSkinsCore, + dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, + dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; +var + DConString:String; {ȫַ} + server, dtbase, user, pswd: String; {ݿӲ} + DCurHandle:hwnd; //ǰ + DName:string ; //#û#// + DCode:string ; //#û#// + PicSvr:string; + Ddatabase:string; //#ݿ#// + DTitCaption:string; //##// + DParameters1,DParameters2,DParameters3,DParameters4,DParameters5:string;// ⲿ + DParameters6,DParameters7,DParameters8,DParameters9,DParameters10:string;//ⲿ + OldDllApp:Tapplication; //ԭо + NewDllApp: Tapplication;//ǰ + MainApplication: Tapplication ; + DFormCode:integer; //ǰں + IsDelphiLanguage:integer; + DServerDate:TdateTime; //ʱ + DCompany:string; //˾ +type + TDataLink_DDMD = class(TDataModule) + AdoDataLink: TADOQuery; + ADOLink: TADOConnection; + ThreeImgList: TImageList; + ThreeLookAndFeelCol: TcxLookAndFeelController; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + SHuangSeCu: TcxStyle; + procedure DataModuleDestroy(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + TMakebar = procedure(ucData:pchar;nDataLen:integer;nErrLevel:integer;nMask:integer;nBarEdition:integer;szBmpFileName:pchar;nScale:integer);stdcall; + TMixtext = procedure( szSrcBmpFileName:PChar;szDstBmpFileName:PChar;sztext:PChar;fontsize,txtheight,hmargin,vmargin,txtcntoneline:integer);stdcall; +var + DataLink_DDMD: TDataLink_DDMD; + +implementation +{$R *.dfm} + + +procedure TDataLink_DDMD.DataModuleDestroy(Sender: TObject); +begin + DataLink_DDMD:=nil; +end; + +end. + + + + diff --git a/报关管理(BaoGuan.dll)/U_FileUp.dfm b/报关管理(BaoGuan.dll)/U_FileUp.dfm new file mode 100644 index 0000000..a401970 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FileUp.dfm @@ -0,0 +1,188 @@ +object frmFileUp: TfrmFileUp + Left = 247 + Top = 162 + Width = 634 + Height = 447 + Caption = #19978#20256#25991#20214 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid7: TcxGrid + Left = 0 + Top = 41 + Width = 555 + Height = 367 + Align = alClient + TabOrder = 0 + object TV7: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object FileName: TcxGridDBColumn + Tag = 1 + Caption = #25991#20214#21517#31216 + DataBinding.FieldName = 'FileName' + FooterAlignmentHorz = taCenter + HeaderAlignmentHorz = taCenter + Width = 121 + end + object FileDate: TcxGridDBColumn + Tag = 1 + Caption = #19978#20256#26085#26399 + DataBinding.FieldName = 'FileDate' + FooterAlignmentHorz = taCenter + HeaderAlignmentHorz = taCenter + Width = 104 + end + end + object cxGridLevel6: TcxGridLevel + GridView = TV7 + end + end + object Panel16: TPanel + Left = 190 + Top = 126 + Width = 138 + Height = 30 + BevelInner = bvRaised + Caption = #27491#22312#19978#20256#12290#12290#12290 + Color = clSkyBlue + TabOrder = 1 + Visible = False + end + object ToolBar6: TToolBar + Left = 555 + Top = 41 + Width = 63 + Height = 367 + Align = alRight + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Flat = True + Images = DataLink_DDMD.ThreeImgList + List = True + ShowCaptions = True + TabOrder = 2 + object FileUp: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #19978#20256 + ImageIndex = 109 + Wrap = True + OnClick = FileUpClick + end + object FileDel: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Wrap = True + OnClick = FileDelClick + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 618 + Height = 41 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Label1: TLabel + Left = 8 + Top = 14 + Width = 68 + Height = 16 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Image2: TImage + Left = 537 + Top = 17 + Width = 23 + Height = 16 + end + object Code: TEdit + Left = 78 + Top = 9 + Width = 211 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + end + end + object ODPat: TOpenDialog + Options = [ofReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing] + Left = 404 + Top = 197 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 405 + Top = 236 + end + object SaveDialog1: TSaveDialog + Left = 409 + Top = 285 + end + object ADOQueryFile: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 488 + Top = 144 + end + object DataSource1: TDataSource + DataSet = ADOQueryFile + Left = 392 + Top = 168 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 496 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 504 + Top = 264 + end +end diff --git a/报关管理(BaoGuan.dll)/U_FileUp.pas b/报关管理(BaoGuan.dll)/U_FileUp.pas new file mode 100644 index 0000000..4b8f99f --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FileUp.pas @@ -0,0 +1,357 @@ +unit U_FileUp; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ComCtrls, ToolWin, ExtCtrls, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, IdBaseComponent, + IdComponent, IdTCPConnection, IdTCPClient, IdFTP, StdCtrls, ADODB,jpeg, + BtnEdit,IniFiles; + +type + TfrmFileUp = class(TForm) + cxGrid7: TcxGrid; + TV7: TcxGridDBTableView; + FileName: TcxGridDBColumn; + FileDate: TcxGridDBColumn; + cxGridLevel6: TcxGridLevel; + Panel16: TPanel; + ToolBar6: TToolBar; + FileUp: TToolButton; + FileDel: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Code: TEdit; + ODPat: TOpenDialog; + IdFTP1: TIdFTP; + SaveDialog1: TSaveDialog; + ADOQueryFile: TADOQuery; + DataSource1: TDataSource; + ADOQueryCmd: TADOQuery; + ADOQueryTemp: TADOQuery; + Image2: TImage; + procedure FileUpClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FileDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + private + lstPat: TStringList; + AJpeg: TJPEGImage; + procedure CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer); + procedure SaveImageOther(); + procedure ReadINIFile10(); + { Private declarations } + public + CYID:String; + { Public declarations } + end; + +var + frmFileUp: TfrmFileUp; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmFileUp.ReadINIFile10(); +var + programIni:Tinifile; //ļ + FileName:string; +begin + FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; + programIni:=Tinifile.create(FileName); + server:=programIni.ReadString('SERVER','ַ','127.0.0.1'); + programIni.Free; +end; +procedure TfrmFileUp.FileUpClick(Sender: TObject); +var + i,j: Integer; + PatFile: String; + FTPPath,FConNo,MaxNo:string; + AJpeg: TJPEGImage; +begin + if Trim(Code.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + lstPat.Clear; + if ODPat.Execute then + begin + lstPat.AddStrings(ODPat.Files); + end; + + if lstPat.Count > 0 then + begin + try + ReadINIFile10(); + server:=ReadINIFileStr('SYSTEMSET.INI','SERVER','ַ','127.0.0.1'); + IdFTP1.Host :=server;//PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + IdFTP1.Quit; + Application.MessageBox('޷ӵļ飡', 'ʾ', MB_ICONWARNING); + Exit; + end; + end; + Panel16.Visible:=True; + Panel16.Refresh; + AJpeg:=TJpegImage.Create(); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select Count(*) MM from XD_File where CYID='''+Trim(CYID)+''''); + SQL.Add('and filetype=''YP'''); + Open; + j:=fieldbyname('MM').AsInteger; + end; + Image2.Picture.LoadFromFile(ODPat.FileName); + AJpeg.Assign(Image2.Picture.Graphic); + CreThumb(AJpeg,Image2,216, 187); + try + ADOQueryCmd.Connection.BeginTrans; + for i := 0 to lstPat.Count - 1 do + begin + PatFile := ExtractFileName(lstPat[i]); + PatFile:=Copy(PatFile,(Pos('.',PatFile)+1),(Length(PatFile)-Pos('.',PatFile)) ) ; + FConNo:=Trim(Code.Text); + while Pos('/',FConNo)>0 do + begin + Delete(FConNo,Pos('/',FConNo),1); + end; + PatFile:=Trim(FConNo)+'-'+Inttostr(j+i+1)+'.'+PatFile; + if IdFTP1.Connected then + begin + try + {if not DirectoryExists('D:\ͼƬ\'+Trim(gDef1)) then + ForceDirectories('D:\ͼƬ\'+Trim(gDef1)); } + IdFTP1.Put(lstPat[i], Trim('\YP')+'\'+Trim(PatFile)); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + SQL.Add(' and filename='''+Trim(PatFile)+''''); + SQL.Add(' and filetype=''YP'''); + Open; + if not IsEmpty then + begin + Panel16.Visible:=False; + Application.MessageBox(PChar('ļ<'+Trim(PatFile)+'>ظ,'+inttostr(i)+'ļϴɹ'),'ʾ',0); + Exit; + end; + end; + if GetLSNo(ADOQueryCmd,MaxNo,'YP','XD_File',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡͼƬʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('XFID').Value:=Trim(MaxNo); + FieldByName('CYID').Value:=Trim(CYID); + FieldByName('CYNO').Value:=Trim(Code.Text); + FieldByName('filename').Value:=Trim(PatFile); + FieldByName('FileDate').Value:=SGetServerDate(ADOQueryTemp); + fieldbyname('FileType').value:=Trim('YP'); + Post; + end; + except + //ADOQueryCmd.Connection.RollbackTrans; + //Application.MessageBox('ͼƬϴʧܣ','ʾ',0); + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CP_YDang Set TPFlag=1 where CYID='''+Trim(CYID)+''''); + ExecSQL; + end; + SaveImageOther(); + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ͼƬϴʧܣ','ʾ',0); + end; + if IdFTP1.Connected then IdFTP1.Quit; + with ADOQueryFile do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + open; + end; + Panel16.Visible:=False; + if i>0 then + Application.MessageBox(PChar(inttostr(i)+'ļϴɹ'),'ʾ',0); + ModalResult:=1; +end; +procedure TfrmFileUp.CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer); +var + Bitmap: TBitmap; + Ratio: Double; + ARect: TRect; + AHeight, AHeightOffset: Integer; + AWidth, AWidthOffset: Integer; +begin + Bitmap := TBitmap.Create; + try + Ratio := AJPeg.Width /AJPeg.Height; + if Ratio > 1.333 then + begin + AHeight := Round(Width / Ratio); + AHeightOffset := (Height - AHeight) div 2; + AWidth := Width; + AWidthOffset := 0; + end + else + begin + AWidth := Round(Height * Ratio); + AWidthOffset := (Width - AWidth) div 2; + AHeight := Height; + AHeightOffset := 0; + end; + Bitmap.Width := Width; + Bitmap.Height := Height; + Bitmap.Canvas.Brush.Color := clBtnFace; + Bitmap.Canvas.FillRect(Rect(0, 0, Width, Height)); + ARect := Rect(AWidthOffset, AHeightOffset, AWidth + AWidthOffset, AHeight + AHeightOffset); + Bitmap.Canvas.StretchDraw(ARect, AJPeg); + Image1.Picture.Assign(BitMap); + finally + Bitmap.Free; + end; +end; +procedure TfrmFileUp.SaveImageOther(); +var + AJpeg: TJPEGImage; + myStream: TADOBlobStream; + ImgMaxNo:String; + i,j: Integer; + PatFile: String; + FTPPath,FConNo,MaxNo,FTFID:string; +begin + if Image2.Picture=nil then Exit; + AJpeg:=TJpegImage.Create(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from TP_File where WBID='''+Trim(CYID)+''''); + Open; + end; + FTFID:=Trim(ADOQueryTemp.fieldbyname('TFID').AsString); + if Trim(FTFID)='' then + begin + if GetLSNo(ADOQueryCmd,ImgMaxNo,'TF','TP_File',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡͼƬʧ!','ʾ',0); + Exit; + end; + end else + begin + ImgMaxNo:=Trim(FTFID); + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add( ' select * from TP_File where TFID='''+Trim(FTFID)+''''); + open; + end; + with ADOQueryCmd do + begin + if Trim(FTFID)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end + else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end; + FieldByName('TFID').Value:=Trim(ImgMaxNo); + FieldByName('WBID').Value:=Trim(CYID); + //FieldByName('TFIdx').Value:=cxTabControl2.TabIndex; + FieldByName('TFType').Value:='Ʒ'; + AJpeg.Assign(Image2.Picture.Graphic); + //CreThumb(AJpeg,Image1,160, 120); + myStream := TADOBlobStream.Create(TBlobField(ADOQueryCmd.FieldByName('FilesOther')), bmWrite); + AJpeg.Assign(Image2.Picture.Graphic); + AJpeg.SaveToStream(myStream); + myStream.Free; + Post; + end; +end; + +procedure TfrmFileUp.FormCreate(Sender: TObject); +begin + lstPat := TStringList.Create; + +end; + +procedure TfrmFileUp.FileDelClick(Sender: TObject); +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add(' Delete XD_File where XFID='''+Trim(ADOQueryFile.fieldbyname('XFID').AsString)+''''); + SQL.Add(' Delete TP_File where WBID='''+Trim(CYID)+''' and TFType=''Ʒ'' '); + ExecSQL; + end; + with ADOQueryFile do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + SQL.Add(' and FileType=''YP'''); + open; + end; + if ADOQueryFile.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CP_YDang Set TPFlag=0 where CYID='''+Trim(CYID)+''''); + ExecSQL; + end; + end; +end; + +procedure TfrmFileUp.FormShow(Sender: TObject); +begin + with ADOQueryFile do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + SQL.Add(' and FileType=''YP'''); + Open; + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_FjList.dfm b/报关管理(BaoGuan.dll)/U_FjList.dfm new file mode 100644 index 0000000..a94ce83 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FjList.dfm @@ -0,0 +1,172 @@ +object frmFjList: TfrmFjList + Left = 154 + Top = 62 + Width = 1049 + Height = 540 + BorderIcons = [biSystemMenu, biMinimize] + Caption = #38468#20214#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ListView1: TListView + Left = 36 + Top = 88 + Width = 141 + Height = 137 + Columns = <> + TabOrder = 0 + OnDblClick = ListView1DblClick + end + object Panel1: TPanel + Left = 882 + Top = 0 + Width = 151 + Height = 501 + Align = alRight + TabOrder = 1 + object FileName: TcxButton + Left = 30 + Top = 60 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #28155#21152 + TabOrder = 0 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 30 + Top = 96 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #21024#38500 + TabOrder = 1 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton2: TcxButton + Left = 30 + Top = 132 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #20445#23384 + TabOrder = 2 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton3: TcxButton + Left = 30 + Top = 172 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #20851#38381 + TabOrder = 3 + Visible = False + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton4: TcxButton + Left = 30 + Top = 220 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #28155#21152#25991#20214#22841 + TabOrder = 4 + OnClick = cxButton4Click + LookAndFeel.Kind = lfOffice11 + end + end + object Panel2: TPanel + Left = 24 + Top = 124 + Width = 193 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel2' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnDblClick = Panel2DblClick + end + object ShellListView1: TShellListView + Left = 177 + Top = 0 + Width = 705 + Height = 501 + ObjectTypes = [otFolders, otNonFolders] + Root = 'rfDesktop' + ShellTreeView = ShellTreeView1 + Sorted = True + Align = alClient + ReadOnly = False + TabOrder = 3 + end + object ShellTreeView1: TShellTreeView + Left = 0 + Top = 0 + Width = 177 + Height = 501 + ObjectTypes = [otFolders] + Root = 'rfDesktop' + ShellListView = ShellListView1 + UseShellImages = True + Align = alLeft + AutoRefresh = False + Indent = 19 + ParentColor = False + RightClickSelect = True + ShowRoot = False + TabOrder = 4 + end + object ADOQueryTmp: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 512 + Top = 28 + end + object ADOQueryCmd: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 560 + Top = 24 + end + object ImageList1: TImageList + Left = 520 + Top = 212 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 340 + Top = 190 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 484 + Top = 240 + end +end diff --git a/报关管理(BaoGuan.dll)/U_FjList.pas b/报关管理(BaoGuan.dll)/U_FjList.pas new file mode 100644 index 0000000..616b67e --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FjList.pas @@ -0,0 +1,436 @@ +unit U_FjList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, ComCtrls, Menus, cxLookAndFeelPainters, StdCtrls, + cxButtons, DB, ADODB, ImgList,shellapi, IdBaseComponent, IdComponent, + IdTCPConnection, IdTCPClient, IdFTP, ShlObj, cxShellCommon, cxControls, + cxContainer, cxShellTreeView, cxShellListView, ShellCtrls; + +type + TfrmFjList = class(TForm) + ListView1: TListView; + Panel1: TPanel; + FileName: TcxButton; + cxButton1: TcxButton; + cxButton2: TcxButton; + cxButton3: TcxButton; + ADOQueryTmp: TADOQuery; + ADOQueryCmd: TADOQuery; + ImageList1: TImageList; + Panel2: TPanel; + IdFTP1: TIdFTP; + ADOConnection1: TADOConnection; + cxButton4: TcxButton; + ShellListView1: TShellListView; + ShellTreeView1: TShellTreeView; + procedure cxButton3Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ListView1DblClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure Panel2DblClick(Sender: TObject); + procedure cxButton4Click(Sender: TObject); + private + procedure InitData(); + { Private declarations } + public + fkeyNO:string; + fType:string; + fId:integer; + + fstatus:integer; + + { Public declarations } + end; + +var +frmFjList: TfrmFjList; + +implementation + uses + U_DataLink,U_RTFun; +{$R *.dfm} +procedure TfrmFjList.InitData(); +var + ListItem: TListItem; + Flag: Cardinal; + info: SHFILEINFOA; + Icon: TIcon; +begin + ListView1.Items.Clear; + try + + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select fileName from TP_File '); + sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + open; + if not IsEmpty then + begin + while not eof do + begin + with ListView1 do + begin + LargeImages := ImageList1; + Icon := TIcon.Create; + ListItem := Items.Add; + Listitem.Caption := trim(fieldbyname('fileName').AsString); + // Listitem.SubItems.Add(OpenDiaLog.FileName); + Flag := (SHGFI_SMALLICON or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES); + SHGetFileInfo(Pchar(trim(fieldbyname('fileName').AsString)), 0, info, Sizeof(info), Flag); + Icon.Handle := info.hIcon; + ImageList1.AddIcon(Icon); + ListItem.ImageIndex := ImageList1.Count - 1; + end; + next; + end; + end; + end; + except + end; +end; + +procedure TfrmFjList.cxButton3Click(Sender: TObject); +begin + ADOQueryTmp.Close; + ADOQuerycmd.Close; + ListView1.Items.Free; + ModalResult:=-1; +end; + +procedure TfrmFjList.FormDestroy(Sender: TObject); +begin + frmFjList:=nil; +end; + +procedure TfrmFjList.FileNameClick(Sender: TObject); +var + OpenDiaLog: TOpenDialog; + fFileName:string; + fFilePath:string; + maxNo:string; +// myStream: TADOBlobStream; +// FJStream : TMemoryStream; +begin + + try + OpenDiaLog := TOpenDialog.Create(Self); + if OpenDiaLog.Execute then + begin + fFilePath:=OpenDiaLog.FileName; + fFileName:=ExtractFileName(OpenDiaLog.FileName); + + + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('select TFId from TP_File '); + sql.Add('where WBID<>'+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + sql.Add('and FileName='+quotedstr(trim(fFileName))); + open; + IF not adoqueryCmd.IsEmpty then + begin + application.MessageBox('˸Ѵڣ޸ļϴ','ʾϢ',MB_ICONERROR); + exit; + end; + end; + + Panel2.Caption:='ϴݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + + if GetLSNo(ADOQueryCmd,maxNo,'FJ','TP_File',4,1)=False then + begin + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + + adoqueryCmd.Connection.BeginTrans; + + + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + sql.Add('and FileName='+quotedstr(trim(fFileName))); + execsql; + end; + + try + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + sql.Add('and FileName='+quotedstr(trim(fFileName))); + open; + append; + fieldbyname('TFID').Value:=trim(maxNO); + fieldbyname('WBID').Value:=trim(fkeyNO); + fieldbyname('TFType').Value:=trim(fType); + fieldbyname('FileName').Value:=trim(fFileName); + // tblobfield(FieldByName('Filesother')).LoadFromFile(fFilePath); + post; + end; + + if fFilePath <> '' then + begin + try + IdFTP1.Host :='127.0.0.1'; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + IdFTP1.Put(fFilePath, 'FJ\' + Trim(fFileName)); + IdFTP1.Quit; + except + IdFTP1.Quit; + Application.MessageBox('ϴͻͼļʧܣļ', 'ʾ', MB_ICONWARNING); + end; + end; + IdFTP1.Quit; + + Panel2.Visible:=false; + initdata(); + finally + // FJStream.Free; + end; + + end; + adoqueryCmd.Connection.CommitTrans; + except + adoqueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmFjList.FormCreate(Sender: TObject); +begin + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:=''; + Connected:=true; + end; + ListView1.Align:=alclient; + fstatus:=0; +end; + +procedure TfrmFjList.FormShow(Sender: TObject); +begin + IF fstatus=0 then Panel1.Visible:=true + else Panel1.Visible:=false; + //initdata(); +end; + +procedure TfrmFjList.ListView1DblClick(Sender: TObject); +var + sFieldName:string; + fileName:string; +begin + if ListView1.Items.Count<1 THEN EXIT; + + if listView1.SelCount<1 then exit; + sFieldName:='D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName),nil); + + fileName:=ListView1.Selected.Caption; + + sFieldName:=sFieldName+'\'+trim(fileName); + + try + IdFTP1.Host :='127.0.0.1'; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + ; + end; + + if IdFTP1.Connected then + begin + + Panel2.Caption:='ݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + try + IdFTP1.Get('FJ\'+ Trim(fileName), sFieldName,false, true); + except + Panel2.Visible:=false; + Application.MessageBox('ͻͼļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + end + else + begin + Panel2.Visible:=false; + Application.MessageBox('޷ļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + Panel2.Visible:=false; + if IdFTP1.Connected then IdFTP1.Quit; + ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + +end; + +procedure TfrmFjList.cxButton1Click(Sender: TObject); +var + fFileName:string; + fFilePath:string; +begin + if listView1.SelCount<1 then exit; + + try + fFileName:=ListView1.Selected.Caption; + // ADOQueryTmp.Locate('fileName',fFileName,[]); + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + sql.Add('and FileName='+quotedstr(trim(fFileName))); + execsql; + end; + + initData(); + + except + end; + +end; + +procedure TfrmFjList.cxButton2Click(Sender: TObject); +var + SaveDialog: TSaveDialog; + fFileName:string; + fFilePath:string; +begin + if listView1.SelCount<1 then exit; + + try + + fFileName:=ListView1.Selected.Caption; + + SaveDialog := TSaveDialog.Create(Self); + + SaveDialog.FileName:=fFileName; + if SaveDialog.Execute then + begin + Panel2.Caption:='ڱݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + fFilePath:=SaveDialog.FileName; + try + IdFTP1.Host := '127.0.0.1'; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + ; + end; + + if IdFTP1.Connected then + begin + + Panel2.Caption:='ݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + try + IdFTP1.Get('FJ\'+ Trim(fFileName), fFilePath,false, true); + except + Panel2.Visible:=false; + Application.MessageBox('ͻͼļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + end + else + begin + Panel2.Visible:=false; + Application.MessageBox('޷ļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + Panel2.Visible:=false; + if IdFTP1.Connected then IdFTP1.Quit; + end; + except + Panel2.Visible:=false; + end; +end; + +procedure TfrmFjList.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if fId=10 then Action:=cafree + else + Action:=cahide; +end; + +procedure TfrmFjList.Panel2DblClick(Sender: TObject); +begin + Panel2.Visible:=false; +end; + +procedure TfrmFjList.cxButton4Click(Sender: TObject); +var + fFilePath,FName:string; +begin + if Assigned(ShellListView1.Selected) then + begin + if ShellListView1.Selected.Selected then + begin + if ShellListView1.SelectedFolder.IsFolder then + begin + ShowMessage(ShellListView1.SelectedFolder.PathName); + end + else + begin + ShowMessage(ShellListView1.SelectedFolder.PathName); + end; + end; + end; + + //if fFilePath <> '' then + //fFilePath:=ShellListView1.SelectedFolder.PathName; + // FName:=ShellListView1.SelectedFolder.DisplayName; + begin + try + IdFTP1.Host :='127.0.0.1'; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + IdFTP1.Put(ShellListView1.SelectedFolder.PathName, 'FJ\' +ShellListView1.SelectedFolder.PathName); + IdFTP1.Quit; + except + IdFTP1.Quit; + Application.MessageBox('ϴͻͼļʧܣļ', 'ʾ', MB_ICONWARNING); + end; + end; + IdFTP1.Quit; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_FjList_BG.dfm b/报关管理(BaoGuan.dll)/U_FjList_BG.dfm new file mode 100644 index 0000000..d446125 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FjList_BG.dfm @@ -0,0 +1,183 @@ +object frmFjList_BG: TfrmFjList_BG + Left = 192 + Top = 134 + Width = 796 + Height = 502 + BorderIcons = [biSystemMenu, biMinimize] + Caption = #38468#20214#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ListView1: TListView + Left = 40 + Top = 20 + Width = 429 + Height = 77 + Columns = <> + TabOrder = 0 + OnDblClick = ListView1DblClick + end + object Panel1: TPanel + Left = 629 + Top = 0 + Width = 151 + Height = 463 + Align = alRight + TabOrder = 1 + object FileName: TcxButton + Left = 30 + Top = 60 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #28155#21152 + TabOrder = 0 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 30 + Top = 96 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #21024#38500 + TabOrder = 1 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton2: TcxButton + Left = 30 + Top = 132 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #19979#36733 + TabOrder = 2 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton3: TcxButton + Left = 30 + Top = 172 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #20851#38381 + TabOrder = 3 + Visible = False + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + end + object Panel2: TPanel + Left = 176 + Top = 140 + Width = 193 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel2' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnDblClick = Panel2DblClick + end + object cxGrid1: TcxGrid + Left = 4 + Top = 20 + Width = 621 + Height = 361 + TabOrder = 3 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object v1Column1: TcxGridDBColumn + Caption = #25991#20214#21517#31216 + DataBinding.FieldName = 'FileName' + HeaderAlignmentHorz = taCenter + Width = 146 + end + object v1Column4: TcxGridDBColumn + Caption = #25991#20214#20462#25913#26102#38388 + DataBinding.FieldName = 'TFdate' + HeaderAlignmentHorz = taCenter + Width = 140 + end + object v1Column2: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 83 + end + object v1Column3: TcxGridDBColumn + Caption = #19978#20256#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 140 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryTmp: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 520 + Top = 28 + end + object ADOQueryCmd: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 568 + Top = 32 + end + object ImageList1: TImageList + Left = 536 + Top = 228 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 500 + Top = 198 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 532 + Top = 240 + end + object DataSource1: TDataSource + DataSet = ADOQueryTmp + Left = 548 + Top = 140 + end +end diff --git a/报关管理(BaoGuan.dll)/U_FjList_BG.pas b/报关管理(BaoGuan.dll)/U_FjList_BG.pas new file mode 100644 index 0000000..9c695ae --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FjList_BG.pas @@ -0,0 +1,404 @@ +unit U_FjList_BG; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, ComCtrls, Menus, cxLookAndFeelPainters, StdCtrls, cxButtons, + DB, ADODB, ImgList, shellapi, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGrid, cxLookAndFeels, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, + dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, + dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter, cxNavigator; + +type + TfrmFjList_BG = class(TForm) + ListView1: TListView; + Panel1: TPanel; + FileName: TcxButton; + cxButton1: TcxButton; + cxButton2: TcxButton; + cxButton3: TcxButton; + ADOQueryTmp: TADOQuery; + ADOQueryCmd: TADOQuery; + ImageList1: TImageList; + Panel2: TPanel; + IdFTP1: TIdFTP; + ADOConnection1: TADOConnection; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + DataSource1: TDataSource; + v1Column4: TcxGridDBColumn; + procedure cxButton3Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ListView1DblClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure Panel2DblClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + private + procedure InitData(); + { Private declarations } + public + fkeyNO: string; + fType: string; + fId: integer; + fstatus: integer; + // fmanage:string; + + { Public declarations } + end; + +var + frmFjList_BG: TfrmFjList_BG; + +implementation + +uses + U_DataLink, U_Fun10, U_CompressionFun; // +{$R *.dfm} + +procedure TfrmFjList_BG.InitData(); +var + ListItem: TListItem; + Flag: Cardinal; + info: SHFILEINFOA; + Icon: TIcon; +begin + ListView1.Items.Clear; + try + + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where WBID=' + quotedstr(trim(fkeyNO))); + sql.Add('and TFType=' + quotedstr(trim(fType))); + open; + end; + except + end; +end; + +procedure TfrmFjList_BG.cxButton3Click(Sender: TObject); +begin + ADOQueryTmp.Close; + ADOQuerycmd.Close; + ListView1.Items.Free; + ModalResult := -1; +end; + +procedure TfrmFjList_BG.FormDestroy(Sender: TObject); +begin + frmFjList_BG := nil; +end; + +procedure TfrmFjList_BG.FileNameClick(Sender: TObject); +var + OpenDiaLog: TOpenDialog; + fFileName: string; + fFilePath: string; + maxNo: string; +// myStream: TADOBlobStream; + FJStream: TMemoryStream; + mfileSize: integer; + mCreationTime: TdateTime; + mWriteTime: TdateTime; +begin + + try + adoqueryCmd.Connection.BeginTrans; + OpenDiaLog := TOpenDialog.Create(Self); + if OpenDiaLog.Execute then + begin + fFilePath := OpenDiaLog.FileName; + fFileName := ExtractFileName(OpenDiaLog.FileName); + Panel2.Caption := 'ϴݣԵ...'; + Panel2.Visible := true; + application.ProcessMessages; + + if GetLSNo(ADOQueryCmd, maxNo, 'FJ', 'TP_File', 4, 1) = False then + begin + adoqueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ', 'ʾ', 0); + Exit; + end; + //ȡļϢ + GetFileInfo(fFilePath, mfileSize, mCreationTime, mWriteTime); + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where TFID=' + quotedstr(trim(maxNo))); + execsql; + end; + try + FJStream := TMemoryStream.Create; + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where TFID=' + quotedstr(trim(maxNo))); + // sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + // sql.Add('and TFType='+quotedstr(trim(fType))); + // sql.Add('and FileName='+quotedstr(trim(fFileName))); + open; + append; + fieldbyname('TFID').Value := trim(maxNo); +// fieldbyname('WBID').Value:=trim(fkeyNO); + fieldbyname('WBID').Value := trim(fFileName); + fieldbyname('TFType').Value := trim(fType); + fieldbyname('Filler').Value := trim(DName); + fieldbyname('FileName').Value := trim(fFileName); + fieldbyname('TFDate').Value := mWriteTime; + FJStream.LoadFromFile(fFilePath); +// CompressionStream(FJStream); + tblobfield(FieldByName('Filesother')).LoadFromStream(FJStream); + post; + end; + Panel2.Visible := false; + initdata(); + finally + FJStream.Free; + end; + + end; + adoqueryCmd.Connection.CommitTrans; + application.MessageBox('ͼƬɹ', 'ʾϢ', 0); + except + adoqueryCmd.Connection.RollbackTrans; + application.MessageBox('ͼƬʧܣ', 'ʾϢ', 0); + end; +end; + +procedure TfrmFjList_BG.FormCreate(Sender: TObject); +begin + with ADOConnection1 do + begin + Connected := false; + ConnectionString := DConString; + //ConnectionString:=''; + Connected := true; + end; + cxGrid1.Align := alclient; + fstatus := 0; +end; + +procedure TfrmFjList_BG.FormShow(Sender: TObject); +begin + if fstatus = 0 then + Panel1.Visible := true + else + Panel1.Visible := false; + initdata(); +end; + +procedure TfrmFjList_BG.ListView1DblClick(Sender: TObject); +var + sFieldName: string; + fileName: string; +begin + if ListView1.Items.Count < 1 then + EXIT; + + if listView1.SelCount < 1 then + exit; + sFieldName := 'D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName), nil); + + fileName := ListView1.Selected.Caption; + + sFieldName := sFieldName + '\' + trim(fileName); + + try + IdFTP1.Host := PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + ; + end; + + if IdFTP1.Connected then + begin + + Panel2.Caption := 'ݣԵ...'; + Panel2.Visible := true; + application.ProcessMessages; + try + IdFTP1.Get('FJ\' + Trim(fileName), sFieldName, false, true); + except + Panel2.Visible := false; + Application.MessageBox('ͻͼļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + end + else + begin + Panel2.Visible := false; + Application.MessageBox('޷ļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + Panel2.Visible := false; + if IdFTP1.Connected then + IdFTP1.Quit; + ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL); + +end; + +procedure TfrmFjList_BG.cxButton1Click(Sender: TObject); +var + fFileName: string; + fFilePath: string; +begin + // if listView1.SelCount<1 then exit; + + if ADOQueryTmp.IsEmpty then + exit; + + try + // fFileName:=ListView1.Selected.Caption; + // ADOQueryTmp.Locate('fileName',fFileName,[]); + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where TFID=' + quotedstr(trim(ADOQueryTmp.fieldbyname('TFID').AsString))); + // sql.Add('and TFType='+quotedstr(trim(fType))); + // sql.Add('and FileName='+quotedstr(trim(fFileName))); + execsql; + end; + + initData(); + + except + end; + +end; + +procedure TfrmFjList_BG.cxButton2Click(Sender: TObject); +var + SaveDialog: TSaveDialog; + fFileName: string; + fFilePath: string; + ff: TADOBlobStream; + FJStream: TMemoryStream; +begin + if adoqueryTmp.IsEmpty then + exit; + + try + + fFileName := adoqueryTmp.fieldbyname('FileName').AsString; + + SaveDialog := TSaveDialog.Create(Self); + + SaveDialog.FileName := fFileName; + if SaveDialog.Execute then + begin + Panel2.Caption := 'ڱݣԵ...'; + Panel2.Visible := true; + application.ProcessMessages; + fFilePath := SaveDialog.FileName; + + try + ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead); + + FJStream := TMemoryStream.Create; + ff.SaveToStream(FJStream); + UnCompressionStream(FJStream); + FJStream.SaveToFile(fFilePath); + // ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + finally + FJStream.free; + ff.Free; + end; + + Panel2.Visible := false; + // if IdFTP1.Connected then IdFTP1.Quit; + end; + except + Panel2.Visible := false; + end; +end; + +procedure TfrmFjList_BG.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if fId = 10 then + Action := cafree + else + Action := cahide; +end; + +procedure TfrmFjList_BG.Panel2DblClick(Sender: TObject); +begin + Panel2.Visible := false; +end; + +procedure TfrmFjList_BG.Tv1DblClick(Sender: TObject); +var + sFieldName: string; + fileName: string; + ff: TADOBlobStream; + FJStream: TMemoryStream; +begin + + if adoqueryTmp.IsEmpty then + exit; + + sFieldName := 'D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName), nil); + + fileName := adoqueryTmp.fieldbyname('FileName').AsString; + + sFieldName := sFieldName + '\' + trim(fileName); + + try + ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead); + + FJStream := TMemoryStream.Create; + ff.SaveToStream(FJStream); + UnCompressionStream(FJStream); + FJStream.SaveToFile(sFieldName); + ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL); + finally + FJStream.free; + ff.Free; + end; + +end; + +end. + diff --git a/报关管理(BaoGuan.dll)/U_FjList_RZ.dfm b/报关管理(BaoGuan.dll)/U_FjList_RZ.dfm new file mode 100644 index 0000000..2090f55 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FjList_RZ.dfm @@ -0,0 +1,183 @@ +object frmFjList_RZ: TfrmFjList_RZ + Left = 177 + Top = 159 + Width = 1062 + Height = 514 + BorderIcons = [biSystemMenu, biMinimize] + Caption = #38468#20214#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ListView1: TListView + Left = 40 + Top = 20 + Width = 429 + Height = 77 + Columns = <> + TabOrder = 0 + OnDblClick = ListView1DblClick + end + object Panel1: TPanel + Left = 878 + Top = 0 + Width = 151 + Height = 517 + Align = alRight + TabOrder = 1 + object FileName: TcxButton + Left = 30 + Top = 60 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #28155#21152 + TabOrder = 0 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 30 + Top = 96 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #21024#38500 + TabOrder = 1 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton2: TcxButton + Left = 30 + Top = 132 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #19979#36733 + TabOrder = 2 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton3: TcxButton + Left = 30 + Top = 172 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #20851#38381 + TabOrder = 3 + Visible = False + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + end + object Panel2: TPanel + Left = 176 + Top = 140 + Width = 193 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel2' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnDblClick = Panel2DblClick + end + object cxGrid1: TcxGrid + Left = 80 + Top = 200 + Width = 593 + Height = 317 + TabOrder = 3 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object v1Column1: TcxGridDBColumn + Caption = #25991#20214#21517#31216 + DataBinding.FieldName = 'FileName' + HeaderAlignmentHorz = taCenter + Width = 146 + end + object v1Column4: TcxGridDBColumn + Caption = #25991#20214#20462#25913#26102#38388 + DataBinding.FieldName = 'TFdate' + HeaderAlignmentHorz = taCenter + Width = 140 + end + object v1Column2: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 83 + end + object v1Column3: TcxGridDBColumn + Caption = #19978#20256#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 140 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 520 + Top = 28 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 568 + Top = 32 + end + object ImageList1: TImageList + Left = 536 + Top = 228 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 492 + Top = 166 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 460 + Top = 184 + end + object DataSource1: TDataSource + DataSet = ADOQueryTmp + Left = 548 + Top = 124 + end +end diff --git a/报关管理(BaoGuan.dll)/U_FjList_RZ.pas b/报关管理(BaoGuan.dll)/U_FjList_RZ.pas new file mode 100644 index 0000000..6d3c6e6 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_FjList_RZ.pas @@ -0,0 +1,400 @@ +unit U_FjList_RZ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, ComCtrls, Menus, cxLookAndFeelPainters, StdCtrls, + cxButtons, DB, ADODB, ImgList,shellapi, IdBaseComponent, IdComponent, + IdTCPConnection, IdTCPClient, IdFTP, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGrid; + +type + TfrmFjList_RZ = class(TForm) + ListView1: TListView; + Panel1: TPanel; + FileName: TcxButton; + cxButton1: TcxButton; + cxButton2: TcxButton; + cxButton3: TcxButton; + ADOQueryTmp: TADOQuery; + ADOQueryCmd: TADOQuery; + ImageList1: TImageList; + Panel2: TPanel; + IdFTP1: TIdFTP; + ADOConnection1: TADOConnection; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + DataSource1: TDataSource; + v1Column4: TcxGridDBColumn; + procedure cxButton3Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ListView1DblClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure Panel2DblClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + private + procedure InitData(); + { Private declarations } + public + fkeyNO:string; + fType:string; + fId:integer; + fstatus:integer; + // fmanage:string; + + { Public declarations } + end; + +var +frmFjList_RZ: TfrmFjList_RZ; + +implementation + uses + U_DataLink,U_RTFun,U_CompressionFun; +{$R *.dfm} +procedure TfrmFjList_RZ.InitData(); +var + ListItem: TListItem; + Flag: Cardinal; + info: SHFILEINFOA; + Icon: TIcon; +begin + ListView1.Items.Clear; + try + + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + open; + { if not IsEmpty then + begin + while not eof do + begin + with ListView1 do + begin + LargeImages := ImageList1; + Icon := TIcon.Create; + ListItem := Items.Add; + Listitem.Caption := trim(fieldbyname('fileName').AsString); + // Listitem.SubItems.Add(OpenDiaLog.FileName); + Flag := (SHGFI_SMALLICON or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES); + SHGetFileInfo(Pchar(trim(fieldbyname('fileName').AsString)), 0, info, Sizeof(info), Flag); + Icon.Handle := info.hIcon; + ImageList1.AddIcon(Icon); + ListItem.ImageIndex := ImageList1.Count - 1; + end; + next; + end; + end; } + end; + except + end; +end; + +procedure TfrmFjList_RZ.cxButton3Click(Sender: TObject); +begin + ADOQueryTmp.Close; + ADOQuerycmd.Close; + ListView1.Items.Free; + ModalResult:=-1; +end; + +procedure TfrmFjList_RZ.FormDestroy(Sender: TObject); +begin + frmFjList_RZ:=nil; +end; + +procedure TfrmFjList_RZ.FileNameClick(Sender: TObject); +var + OpenDiaLog: TOpenDialog; + fFileName:string; + fFilePath:string; + maxNo:string; +// myStream: TADOBlobStream; + FJStream : TMemoryStream; + mfileSize:integer; + mCreationTime:TdateTime; + mWriteTime:TdateTime; +begin + + try + adoqueryCmd.Connection.BeginTrans; + OpenDiaLog := TOpenDialog.Create(Self); + if OpenDiaLog.Execute then + begin + fFilePath:=OpenDiaLog.FileName; + fFileName:=ExtractFileName(OpenDiaLog.FileName); + Panel2.Caption:='ϴݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + + if GetLSNo(ADOQueryCmd,maxNo,'FJ','TP_File',4,1)=False then + begin + adoqueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + //ȡļϢ + GetFileInfo(fFilePath,mfileSize,mCreationTime,mWriteTime); + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where TFID='+quotedstr(trim(maxNO))); + execsql; + end; + try + FJStream:=TMemoryStream.Create; + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where TFID='+quotedstr(trim(maxNO))); + // sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + // sql.Add('and TFType='+quotedstr(trim(fType))); + // sql.Add('and FileName='+quotedstr(trim(fFileName))); + open; + append; + fieldbyname('TFID').Value:=trim(maxNO); + fieldbyname('WBID').Value:=trim(fkeyNO); + fieldbyname('TFType').Value:=trim(fType); + fieldbyname('Filler').Value:=trim(DName); + fieldbyname('FileName').Value:=trim(fFileName); + fieldbyname('TFDate').Value:=mWriteTime; + FJStream.LoadFromFile(fFilePath); + CompressionStream(FJStream); + tblobfield(FieldByName('Filesother')).LoadFromStream(FJStream); + post; + end; + Panel2.Visible:=false; + initdata(); + finally + FJStream.Free; + end; + + end; + adoqueryCmd.Connection.CommitTrans; + except + adoqueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmFjList_RZ.FormCreate(Sender: TObject); +begin + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:=''; + Connected:=true; + end; + cxGrid1.Align:=alclient; + fstatus:=0; +end; + +procedure TfrmFjList_RZ.FormShow(Sender: TObject); +begin + IF fstatus=0 then Panel1.Visible:=true + else Panel1.Visible:=false; + initdata(); +end; + +procedure TfrmFjList_RZ.ListView1DblClick(Sender: TObject); +var + sFieldName:string; + fileName:string; +begin + if ListView1.Items.Count<1 THEN EXIT; + + if listView1.SelCount<1 then exit; + sFieldName:='D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName),nil); + + fileName:=ListView1.Selected.Caption; + + sFieldName:=sFieldName+'\'+trim(fileName); + + try + IdFTP1.Host := PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + ; + end; + + if IdFTP1.Connected then + begin + + Panel2.Caption:='ݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + try + IdFTP1.Get('FJ\'+ Trim(fileName), sFieldName,false, true); + except + Panel2.Visible:=false; + Application.MessageBox('ͻͼļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + end + else + begin + Panel2.Visible:=false; + Application.MessageBox('޷ļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + Panel2.Visible:=false; + if IdFTP1.Connected then IdFTP1.Quit; + ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + +end; + +procedure TfrmFjList_RZ.cxButton1Click(Sender: TObject); +var + fFileName:string; + fFilePath:string; +begin + // if listView1.SelCount<1 then exit; + + IF ADOQueryTmp.IsEmpty then exit; + + try + // fFileName:=ListView1.Selected.Caption; + // ADOQueryTmp.Locate('fileName',fFileName,[]); + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where TFID='+quotedstr(trim(ADOQueryTmp.fieldbyname('TFID').AsString))); + // sql.Add('and TFType='+quotedstr(trim(fType))); + // sql.Add('and FileName='+quotedstr(trim(fFileName))); + execsql; + end; + + initData(); + + except + end; + +end; + +procedure TfrmFjList_RZ.cxButton2Click(Sender: TObject); +var + SaveDialog: TSaveDialog; + fFileName:string; + fFilePath:string; + ff: TADOBlobStream; + FJStream : TMemoryStream; +begin + if adoqueryTmp.IsEmpty then exit; + + try + + fFileName:=adoqueryTmp.fieldbyname('FileName').AsString; + + SaveDialog := TSaveDialog.Create(Self); + + SaveDialog.FileName:=fFileName; + if SaveDialog.Execute then + begin + Panel2.Caption:='ڱݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + fFilePath:=SaveDialog.FileName; + + try + ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead); + + fjStream:= TMemoryStream.Create ; + ff.SaveToStream(fjStream); + UnCompressionStream(fjStream); + fjStream.SaveToFile(fFilePath); + // ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + finally + fjStream.free; + ff.Free; + end; + + + Panel2.Visible:=false; + // if IdFTP1.Connected then IdFTP1.Quit; + end; + except + Panel2.Visible:=false; + end; +end; + +procedure TfrmFjList_RZ.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if fId=10 then Action:=cafree + else + Action:=cahide; +end; + +procedure TfrmFjList_RZ.Panel2DblClick(Sender: TObject); +begin + Panel2.Visible:=false; +end; + +procedure TfrmFjList_RZ.Tv1DblClick(Sender: TObject); +var + sFieldName:string; + fileName:string; + ff: TADOBlobStream; + FJStream : TMemoryStream; +begin + + IF adoqueryTmp.IsEmpty then exit; + + sFieldName:='D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName),nil); + + fileName:=adoqueryTmp.fieldbyname('FileName').AsString; + + sFieldName:=sFieldName+'\'+trim(fileName); + + try + ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead); + + fjStream:= TMemoryStream.Create ; + ff.SaveToStream(fjStream); + UnCompressionStream(fjStream); + fjStream.SaveToFile(sFieldName); + ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + finally + fjStream.free; + ff.Free; + end; + + + +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_GYSList.dfm b/报关管理(BaoGuan.dll)/U_GYSList.dfm new file mode 100644 index 0000000..ab8e6a3 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_GYSList.dfm @@ -0,0 +1,536 @@ +object frmGYSList: TfrmGYSList + Left = 43 + Top = 66 + Width = 1182 + Height = 606 + Caption = #20379#24212#21830#30331#35760 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1166 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 1 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 11 + OnClick = TBEditClick + end + object ToolButton1: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 55 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 3 + OnClick = TBDelClick + end + object ToolButton4: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #26356#26032#36134#26399#22825#25968 + ImageIndex = 22 + OnClick = ToolButton4Click + end + object Panel2: TPanel + Left = 489 + Top = 0 + Width = 119 + Height = 30 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object Label3: TLabel + Left = 8 + Top = 8 + Width = 48 + Height = 12 + Caption = #36134#26399#22825#25968 + end + object LockDays: TEdit + Left = 58 + Top = 5 + Width = 52 + Height = 20 + TabOrder = 0 + end + end + object ToolButton5: TToolButton + Left = 608 + Top = 0 + AutoSize = True + Caption = #26356#26032#22823#31867 + ImageIndex = 22 + OnClick = ToolButton5Click + end + object Panel3: TPanel + Left = 695 + Top = 0 + Width = 107 + Height = 30 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label4: TLabel + Left = 8 + Top = 8 + Width = 24 + Height = 12 + Caption = #22823#31867 + end + object BigType: TComboBox + Left = 34 + Top = 5 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 0 + Items.Strings = ( + #24212#20184#27454 + #21333#35777 + #20179#24211 + #26426#29289#26009 + #20854#20182) + end + end + object ToolButton2: TToolButton + Left = 802 + Top = 0 + AutoSize = True + Caption = #20379#24212#21830#38145#23450 + ImageIndex = 35 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 901 + Top = 0 + AutoSize = True + Caption = #35299#38145 + ImageIndex = 41 + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 964 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 97 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 1027 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 122 + Width = 1166 + Height = 446 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 1 + object Tv1: TcxGridDBTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_DDMD.Default + object v1Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 46 + end + object v1Column2: TcxGridDBColumn + Caption = #20379#24212#21830#32534#21495 + DataBinding.FieldName = 'KHCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column7: TcxGridDBColumn + Caption = #20379#24212#21830#20840#31216 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column6: TcxGridDBColumn + Caption = #20379#24212#21830#31616#31216 + DataBinding.FieldName = 'KHNameJC' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 139 + end + object v1Column15: TcxGridDBColumn + Caption = #22823#31867 + DataBinding.FieldName = 'BigType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 87 + end + object v1Column1: TcxGridDBColumn + Caption = #20379#24212#21830#31867#22411 + DataBinding.FieldName = 'KHType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column4: TcxGridDBColumn + Caption = #32479#35745#21333#20301#21517#31216 + DataBinding.FieldName = 'TJKHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + object v1Column9: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'ZKTelNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 96 + end + object v1Column10: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'ZKFax' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column11: TcxGridDBColumn + Caption = #22320#22336 + DataBinding.FieldName = 'ZKAddress' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 112 + end + object v1Column16: TcxGridDBColumn + Caption = #36127#36131#20154 + DataBinding.FieldName = 'FZPerson' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownRows = 40 + Properties.ImmediatePost = True + Properties.OnChange = v1Column16PropertiesChange + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column12: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'LXR' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 82 + end + object v1Column13: TcxGridDBColumn + Caption = #32852#31995#20154#30005#35805 + DataBinding.FieldName = 'LXRTel' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column3: TcxGridDBColumn + Caption = #26159#21542#26377#25928 + DataBinding.FieldName = 'Valid' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 76 + end + object v1Column8: TcxGridDBColumn + Caption = #24050#38145#23450 + DataBinding.FieldName = 'LockFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 64 + end + object v1Column14: TcxGridDBColumn + Caption = #36134#26399#22825#25968 + DataBinding.FieldName = 'lockDays' + Options.Editing = False + Width = 59 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1166 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label9: TLabel + Left = 27 + Top = 15 + Width = 65 + Height = 12 + Caption = #20379#24212#21830#31616#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 27 + Top = 39 + Width = 65 + Height = 12 + Caption = #20379#24212#21830#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 249 + Top = 15 + Width = 65 + Height = 12 + Caption = #20379#24212#21830#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 241 + Top = 39 + Width = 78 + Height = 12 + Caption = #32479#35745#21333#20301#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 465 + Top = 15 + Width = 39 + Height = 12 + Caption = #36127#36131#20154 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object KHNameJC: TEdit + Tag = 2 + Left = 94 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + end + object KHCode: TEdit + Tag = 2 + Left = 94 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object KHType: TEdit + Tag = 2 + Left = 320 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object TJKHName: TEdit + Tag = 2 + Left = 320 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 3 + OnChange = CustomerNoNameChange + end + object CheckBox1: TCheckBox + Left = 508 + Top = 37 + Width = 97 + Height = 17 + Caption = #26174#31034#26080#25928#25968#25454 + TabOrder = 4 + end + object FZPerson: TEdit + Tag = 2 + Left = 506 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 99 + Width = 1166 + Height = 23 + Align = alTop + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24212#20184#27454 + #21333#35777 + #20179#24211 + #26426#29289#26009 + #20854#20182 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1166 + ClientRectTop = 23 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 464 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 432 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 304 + Top = 152 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 352 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 160 + end + object PopupMenu1: TPopupMenu + Left = 304 + Top = 192 + object N2: TMenuItem + Caption = #20840#36873 + OnClick = N2Click + end + object N1: TMenuItem + Caption = #20840#24323 + OnClick = N1Click + end + end +end diff --git a/报关管理(BaoGuan.dll)/U_GYSList.pas b/报关管理(BaoGuan.dll)/U_GYSList.pas new file mode 100644 index 0000000..09b4c6a --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_GYSList.pas @@ -0,0 +1,619 @@ +unit U_GYSList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit, cxPC; + +type + TfrmGYSList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + ToolButton1: TToolButton; + Panel1: TPanel; + Label9: TLabel; + KHNameJC: TEdit; + v1Column2: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + Label2: TLabel; + KHCode: TEdit; + v1Column1: TcxGridDBColumn; + Label34: TLabel; + v1Column3: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + KHType: TEdit; + v1Column4: TcxGridDBColumn; + Label1: TLabel; + TJKHName: TEdit; + CheckBox1: TCheckBox; + ToolButton2: TToolButton; + v1Column5: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + N1: TMenuItem; + v1Column8: TcxGridDBColumn; + ToolButton3: TToolButton; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + Panel2: TPanel; + Label3: TLabel; + LockDays: TEdit; + ToolButton4: TToolButton; + cxTabControl1: TcxTabControl; + v1Column15: TcxGridDBColumn; + ToolButton5: TToolButton; + Panel3: TPanel; + BigType: TComboBox; + Label4: TLabel; + v1Column16: TcxGridDBColumn; + Label5: TLabel; + FZPerson: TEdit; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure v1Column16PropertiesChange(Sender: TObject); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmGYSList: TfrmGYSList; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp, U_GYSInPutTab, U_ZDYHelpSel; + +{$R *.dfm} + +procedure TfrmGYSList.FormDestroy(Sender: TObject); +begin + frmGYSList:=nil; +end; + +procedure TfrmGYSList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmGYSList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmGYSList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('Ӧ̵Ǽ',Tv1,'Ӧ̹'); + +end; + +procedure TfrmGYSList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from ZH_KH_Info A '); + sql.Add(' where Type=''GYS'' '); + if CheckBox1.Checked=false then + begin + sql.Add(' and Valid=''Y'' '); + end; + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(BigType,'''')=''Ӧ'' '); + end else + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(BigType,'''')=''֤'' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(BigType,'''')=''ֿ'' '); + end else + if cxTabControl1.TabIndex=3 then + begin + sql.Add(' and isnull(BigType,'''')='''' '); + end else + if cxTabControl1.TabIndex=4 then + begin + sql.Add(' and isnull(BigType,'''')='''' '); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmGYSList.InitForm(); +begin + ReadCxGrid('Ӧ̵Ǽ',Tv1,'Ӧ̹'); + InitGrid(); +end; + +procedure TfrmGYSList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmGYSList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmGYSInPutTab:=TfrmGYSInPutTab.Create(Application); + with frmGYSInPutTab do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('ZKId').AsString); + frmGYSInPutTab.canshu1:=Trim(Self.canshu1); + if ShowModal=1 then + begin + + end; + end; + finally + frmGYSInPutTab.Free; + end; +end; + +procedure TfrmGYSList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main_MD_DuiZhang '); + sql.Add(' where FactoryNo='''+Trim(Order_Main.fieldbyname('ZKId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('жݲɾ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from YF_Money_PaiKuan '); + sql.Add(' where FactoryNo='''+Trim(Order_Main.fieldbyname('ZKId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('ʽݲɾ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main_MD '); + sql.Add(' where FactoryNo='''+Trim(Order_Main.fieldbyname('ZKId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('뵥ݲɾ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from YF_Money_CR '); + sql.Add(' where FactoryNo='''+Trim(Order_Main.fieldbyname('ZKId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('ݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmGYSList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ZH_KH_Info Set Valid=''N'' where ZKId='''+Trim(Order_Main.fieldbyname('ZKId').AsString)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmGYSList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('Ӧб',cxGrid1); +end; + +procedure TfrmGYSList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSList.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmGYSInPutTab:=TfrmGYSInPutTab.Create(Application); + with frmGYSInPutTab do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmGYSInPutTab.Free; + end; +end; + +procedure TfrmGYSList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmGYSList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmGYSList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmGYSInPutTab:=TfrmGYSInPutTab.Create(Application); + with frmGYSInPutTab do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('ZKId').AsString); + TBSave.Visible:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmGYSInPutTab.Free; + end; +end; + +procedure TfrmGYSList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmGYSList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Order_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update ZH_KH_Info Set '); + sql.Add(' LockFlag=1'); + sql.Add(' where ZKID='''+Order_Main.fieldbyname('ZKID').AsString+''''); + ExecSQL; + end; + Edit; + FieldByName('SSel').Value:=False; + FieldByName('LockFlag').Value:=True; + Post; + end; + end; + Order_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ!','ʾ',0); + Exit; + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmGYSList.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmGYSList.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmGYSList.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Order_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update ZH_KH_Info Set '); + sql.Add(' LockFlag=0'); + sql.Add(' where ZKID='''+Order_Main.fieldbyname('ZKID').AsString+''''); + ExecSQL; + end; + Edit; + FieldByName('SSel').Value:=False; + FieldByName('LockFlag').Value:=False; + Post; + end; + end; + Order_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ!','ʾ',0); + Exit; + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmGYSList.ToolButton4Click(Sender: TObject); +var + FInteger:Integer; +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Trim(LockDays.Text)='' then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if TryStrToInt(Trim(LockDays.Text),FInteger)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Order_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update ZH_KH_Info Set '); + sql.Add(' lockDays='+LockDays.Text); + sql.Add(' where ZKID='''+Order_Main.fieldbyname('ZKID').AsString+''''); + ExecSQL; + end; + Edit; + FieldByName('SSel').Value:=False; + FieldByName('lockDays').Value:=LockDays.Text; + Post; + end; + end; + Order_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('³ɹ!','ʾ',0); + Exit; + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmGYSList.ToolButton5Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Trim(BigType.Text)='' then + begin + Application.MessageBox('಻Ϊ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪ´','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Order_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update ZH_KH_Info Set '); + sql.Add(' BigType='''+Trim(BigType.Text)+''''); + sql.Add(' where ZKID='''+Order_Main.fieldbyname('ZKID').AsString+''''); + ExecSQL; + end; + Edit; + FieldByName('SSel').Value:=False; + FieldByName('BigType').Value:=BigType.Text; + Post; + end; + end; + Order_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('³ɹ!','ʾ',0); + Exit; + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmGYSList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSList.v1Column16PropertiesChange(Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxComboBox(Sender).EditText; + with Order_Main do + begin + Edit; + FieldByName('FZPerson').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ZH_KH_Info Set FZPerson='''+Trim(mvalue)+''''); + SQL.Add(' where ZKID='''+Trim(Order_Main.fieldbyname('ZKID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmGYSList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +var + fsj:string; +begin + fsj:='select distinct(FZPerson) Name ,Code='''' from ZH_KH_Info where Type=''GYS'''; + SInitCxGridComboBoxBySql(ADOQueryCmd,v1Column16,fsj,0,True,''); +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_GYSSelList.dfm b/报关管理(BaoGuan.dll)/U_GYSSelList.dfm new file mode 100644 index 0000000..d5bfa53 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_GYSSelList.dfm @@ -0,0 +1,304 @@ +object frmGYSSelList: TfrmGYSSelList + Left = 206 + Top = 98 + Width = 906 + Height = 606 + Caption = #20379#24212#21830#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 890 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 10 + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 99 + Width = 890 + Height = 468 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_DDMD.Default + object v1Column2: TcxGridDBColumn + Caption = #20379#24212#21830#32534#21495 + DataBinding.FieldName = 'KHCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column7: TcxGridDBColumn + Caption = #20379#24212#21830#20840#31216 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column6: TcxGridDBColumn + Caption = #20379#24212#21830#31616#31216 + DataBinding.FieldName = 'KHNameJC' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 139 + end + object v1Column1: TcxGridDBColumn + Caption = #20379#24212#21830#31867#22411 + DataBinding.FieldName = 'KHType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column4: TcxGridDBColumn + Caption = #32479#35745#21333#20301#21517#31216 + DataBinding.FieldName = 'TJKHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + object v1Column9: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'ZKTelNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 96 + end + object v1Column10: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'ZKFax' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column11: TcxGridDBColumn + Caption = #22320#22336 + DataBinding.FieldName = 'ZKAddress' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 112 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 890 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label9: TLabel + Left = 27 + Top = 15 + Width = 65 + Height = 12 + Caption = #20379#24212#21830#31616#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 27 + Top = 39 + Width = 65 + Height = 12 + Caption = #20379#24212#21830#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 261 + Top = 15 + Width = 65 + Height = 12 + Caption = #20379#24212#21830#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 253 + Top = 39 + Width = 78 + Height = 12 + Caption = #32479#35745#21333#20301#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object KHNameJC: TEdit + Tag = 2 + Left = 94 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + end + object KHCode: TEdit + Tag = 2 + Left = 94 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object KHType: TEdit + Tag = 2 + Left = 332 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object TJKHName: TEdit + Tag = 2 + Left = 332 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 3 + OnChange = CustomerNoNameChange + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 464 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 432 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 304 + Top = 152 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 352 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 160 + end + object PopupMenu1: TPopupMenu + Left = 304 + Top = 192 + object N2: TMenuItem + Caption = #20840#36873 + OnClick = N2Click + end + object N1: TMenuItem + Caption = #20840#24323 + OnClick = N1Click + end + end +end diff --git a/报关管理(BaoGuan.dll)/U_GYSSelList.pas b/报关管理(BaoGuan.dll)/U_GYSSelList.pas new file mode 100644 index 0000000..5bcec87 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_GYSSelList.pas @@ -0,0 +1,221 @@ +unit U_GYSSelList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit; + +type + TfrmGYSSelList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + ToolButton1: TToolButton; + Panel1: TPanel; + Label9: TLabel; + KHNameJC: TEdit; + v1Column2: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + Label2: TLabel; + KHCode: TEdit; + v1Column1: TcxGridDBColumn; + Label34: TLabel; + v1Column7: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + KHType: TEdit; + v1Column4: TcxGridDBColumn; + Label1: TLabel; + TJKHName: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + N1: TMenuItem; + TBFind: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmGYSSelList: TfrmGYSSelList; + +implementation +uses + U_DataLink,U_RTFun,U_ZDYHelp, U_GYSInPutTab, U_ZDYHelpSel; + +{$R *.dfm} + +procedure TfrmGYSSelList.FormDestroy(Sender: TObject); +begin + frmGYSSelList:=nil; +end; + +procedure TfrmGYSSelList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmGYSSelList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmGYSSelList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('Ӧ̵Ǽ',Tv1,'Ӧ̹'); + +end; + +procedure TfrmGYSSelList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(' from ZH_KH_Info A '); + sql.Add(' where Type=''GYS'' '); + sql.Add(' and Valid=''Y'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmGYSSelList.InitForm(); +begin + ReadCxGrid('Ӧ̵Ǽ',Tv1,'Ӧ̹'); + InitGrid(); +end; + +procedure TfrmGYSSelList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmGYSSelList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ZH_KH_Info Set Valid=''N'' where ZKId='''+Trim(Order_Main.fieldbyname('ZKId').AsString)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmGYSSelList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSSelList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmGYSSelList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSSelList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmGYSSelList.ToolButton1Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmGYSSelList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmGYSSelList.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmGYSSelList.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmGYSSelList.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ModalResult:=1; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_GetDllForm.pas b/报关管理(BaoGuan.dll)/U_GetDllForm.pas new file mode 100644 index 0000000..9221031 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_GetDllForm.pas @@ -0,0 +1,377 @@ +unit U_GetDllForm; + +interface + +uses + Windows, Messages, forms, OleCtnrs, DateUtils, SysUtils, ADODB, IniFiles, + dxcore, activeX; + +function GetDllForm(App: Tapplication; FormH: hwnd; FormID: integer; Language: integer; WinStyle: integer; GCode: Pchar; GName: Pchar; DataBase: Pchar; Title: PChar; Parameters1: PChar; Parameters2: PChar; Parameters3: PChar; Parameters4: PChar; Parameters5: PChar; Parameters6: PChar; Parameters7: PChar; Parameters8: PChar; Parameters9: PChar; Parameters10: PChar; DataBaseStr: PChar): hwnd; export; stdcall; + +function ConnData(): Boolean; + +implementation + +uses + U_DataLink, U_BaoGuanList, U_BaoGuanListZXD, U_BaoGuanXSList, U_BaoGuanCRKCX; + +var + frmBaoGuanList, frmBaoGuanListGQX, frmBaoGuanListCXGQX, frmBaoGuanListZL: TfrmBaoGuanList; + frmBaoGuanListHT, frmBaoGuanListFP, frmBaoGuanListZXD, frmBaoGuanListBGD: TfrmBaoGuanList; + frmBaoGuanListSBYS, frmBaoGuanListHD, frmBaoGuanListSH, frmBaoGuanListDJ: TfrmBaoGuanList; + ///////////////////////////////////////////////////////////////// + // ˵:ȡDllеô // + // ˵App>>Ӧó // + // FormH>>ôھ // + // FormID>>ں; // + // Language>>; // + // WinStyle>>ͣ // +///////////////////////////////////////////////////////////////// + +function GetDllForm(App: Tapplication; FormH: hwnd; FormID: integer; Language: integer; WinStyle: integer; GCode: Pchar; GName: Pchar; DataBase: Pchar; Title: PChar; Parameters1: PChar; Parameters2: PChar; Parameters3: PChar; Parameters4: PChar; Parameters5: PChar; Parameters6: PChar; Parameters7: PChar; Parameters8: PChar; Parameters9: PChar; Parameters10: PChar; DataBaseStr: PChar): hwnd; +var + i: Integer; + bFound: Boolean; + mnewHandle: hwnd; + mstyle: TFormStyle; // 0:Ӵ; 1ͨ + mstate: TWindowState; + mborderstyle: TFormBorderStyle; +begin + mnewHandle := 0; + DName := PChar(GName); + DCode := PChar(GCode); + DdataBase := DataBase; + DTitCaption := Title; + DParameters1 := Parameters1; + DParameters2 := Parameters2; + DParameters3 := Parameters3; + DParameters4 := Parameters4; + DParameters5 := Parameters5; + DParameters6 := Parameters6; + DParameters7 := Parameters7; + DParameters8 := Parameters8; + DParameters9 := Parameters9; + DParameters10 := Parameters10; + + MainApplication := App; + DCurHandle := FormH; + IsDelphiLanguage := Language; + + Application := TApplication(App); + DCurHandle := 0; + + + //ֵַ + SetLength(server, 255); + SetLength(dtbase, 255); + SetLength(user, 255); + SetLength(pswd, 255); + + //server:='121.40.233.100,7781'; //192.168.1.113 + server := '101.132.146.12,7781'; //192.168.1.113 + dtbase := 'shengfangData'; + user := 'shengfangsa'; + pswd := 'rightsoft@4400'; + DConString := 'Provider=SQLOLEDB.1;Password=' + pswd + ';Persist Security Info=True;User ID=' + user + ';Initial Catalog=' + dtbase + ';Data Source=' + server; + + if trim(DataBaseStr) <> '' then + DConString := DataBaseStr; + + //DName:='ADMIN'; + + DParameters1 := 'Ȩ'; // + //DParameters2:=''; + if not ConnData() then + begin + result := 0; + exit; + end; + + // 崰 ״̬ + if WinStyle = 0 then + begin + mstyle := fsMDIChild; + mstate := wsMaximized; + mborderstyle := bsSizeable; + end + else + begin + mstyle := fsNormal; + mstate := wsNormal; + mborderstyle := bsSizeable; + end; + //Title:='ع'; + ///////////////////// + //ģ鴰 + case FormID of + -1: //¼ + begin + bFound := FALSE; + for i := (App.MainForm.MDIChildCount - 1) downto 0 do + begin + if App.MainForm.MDIChildren[i].Caption = '¼' then + begin + BringWindowToTop(frmBaoGuanList.Handle); + bFound := TRUE; + Break; + end; + end; + if not bFound then + //if frmBaoGuanList=nil then + begin + frmBaoGuanList := TfrmBaoGuanList.Create(application.MainForm); + with frmBaoGuanList do + begin + Title := '¼'; + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanList.BringToFront; + // + mnewHandle := frmBaoGuanList.Handle; + end; + -2: //¼(Ȩ) + begin + bFound := FALSE; + for i := (App.MainForm.MDIChildCount - 1) downto 0 do + begin + if App.MainForm.MDIChildren[i].Caption = '¼(Ȩ)' then + begin + BringWindowToTop(frmBaoGuanListGQX.Handle); + bFound := TRUE; + Break; + end; + end; + if not bFound then + //if frmBaoGuanList=nil then + begin + frmBaoGuanListGQX := TfrmBaoGuanList.Create(application.MainForm); + with frmBaoGuanListGQX do + begin + Title := '¼(Ȩ)'; + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanListGQX.BringToFront; + // + mnewHandle := frmBaoGuanListGQX.Handle; + end; + -3: //Ϻ˶ + begin + bFound := FALSE; + for i := (App.MainForm.MDIChildCount - 1) downto 0 do + begin + if App.MainForm.MDIChildren[i].Caption = 'Ϻ˶' then + begin + BringWindowToTop(frmBaoGuanListHD.Handle); + bFound := TRUE; + Break; + end; + end; + if not bFound then + //if frmBaoGuanListSBYS=nil then + begin + frmBaoGuanListHD := TfrmBaoGuanList.Create(application.MainForm); + with frmBaoGuanListHD do + begin + Title := 'Ϻ˶'; + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanListHD.BringToFront; + // + mnewHandle := frmBaoGuanListHD.Handle; + end; + -4: // + begin + bFound := FALSE; + for i := (App.MainForm.MDIChildCount - 1) downto 0 do + begin + if App.MainForm.MDIChildren[i].Caption = '' then + begin + BringWindowToTop(frmBaoGuanListSH.Handle); + bFound := TRUE; + Break; + end; + end; + if not bFound then + //if frmBaoGuanListSBYS=nil then + begin + frmBaoGuanListSH := TfrmBaoGuanList.Create(application.MainForm); + with frmBaoGuanListSH do + begin + Title := ''; + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanListSH.BringToFront; + // + mnewHandle := frmBaoGuanListSH.Handle; + end; + -5: //ϲѯ(Ȩ) + begin + bFound := FALSE; + for i := (App.MainForm.MDIChildCount - 1) downto 0 do + begin + if App.MainForm.MDIChildren[i].Caption = 'ϲѯ(Ȩ)' then + begin + BringWindowToTop(frmBaoGuanListCXGQX.Handle); + bFound := TRUE; + Break; + end; + end; + if not bFound then + //if frmBaoGuanListBGZL=nil then + begin + frmBaoGuanListCXGQX := TfrmBaoGuanList.Create(application.MainForm); + with frmBaoGuanListCXGQX do + begin + Title := 'ϲѯ(Ȩ)'; + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanListCXGQX.BringToFront; + // + mnewHandle := frmBaoGuanListCXGQX.Handle; + end; + -6: // + begin + if frmBaoGuanXSList = nil then + begin + frmBaoGuanXSList := TfrmBaoGuanXSList.Create(application.MainForm); + with frmBaoGuanXSList do + begin + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanXSList.BringToFront; + // + mnewHandle := frmBaoGuanXSList.Handle; + end; + + 1: //ع() + begin + bFound := FALSE; + for i := (App.MainForm.MDIChildCount - 1) downto 0 do + begin + if App.MainForm.MDIChildren[i].Caption = 'ع' then + begin + BringWindowToTop(frmBaoGuanListDJ.Handle); + bFound := TRUE; + Break; + end; + end; + if not bFound then + //if frmBaoGuanList=nil then + begin + frmBaoGuanListDJ := TfrmBaoGuanList.Create(application.MainForm); + with frmBaoGuanListDJ do + begin + Title := 'ع'; + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanListDJ.BringToFront; + // + mnewHandle := frmBaoGuanListDJ.Handle; + end; + + 2: //سѯ + begin + if frmBaoGuanCRKCX = nil then + begin + frmBaoGuanCRKCX := TfrmBaoGuanCRKCX.Create(application.MainForm); + with frmBaoGuanCRKCX do + begin + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBaoGuanCRKCX.BringToFront; + // + mnewHandle := frmBaoGuanCRKCX.Handle; + end; + + end; // end case + + Result := mnewHandle; +// NewDllApp:=Application ; +end; +//=========================================================== + //ݿӳ +//=========================================================== + +function ConnData(): Boolean; +begin + if not Assigned(DataLink_DDMD) then + DataLink_DDMD := TDataLink_DDMD.Create(Application); + try + with DataLink_DDMD.ADOLink do + begin + //if not Connected then + begin + Connected := false; + ConnectionString := DConString; + LoginPrompt := false; + Connected := true; + end; + end; + Result := true; + except + Result := false; + application.MessageBox('ݿʧܣ', '', mb_Ok + MB_ICONERROR); + end; + +end; + +initialization + CoInitialize(nil); + dxUnitsLoader.Initialize; + + +finalization + DataLink_DDMD.Free; + application := NewDllApp; + dxUnitsLoader.Finalize; + +end. + diff --git a/报关管理(BaoGuan.dll)/U_RTZDYHelp.dfm b/报关管理(BaoGuan.dll)/U_RTZDYHelp.dfm new file mode 100644 index 0000000..7fd6d2a --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_RTZDYHelp.dfm @@ -0,0 +1,239 @@ +object frmRTZDYHelp: TfrmRTZDYHelp + Left = 466 + Top = 188 + Width = 461 + Height = 528 + Caption = #39033#30446#32500#25252 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid1: TcxGrid + Left = 8 + Top = 88 + Width = 417 + Height = 200 + TabOrder = 0 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object V1Code: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'ZDYNo' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 97 + end + object V1OrderNo: TcxGridDBColumn + Caption = #39034#24207#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1OrderNoPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 46 + end + object V1Name: TcxGridDBColumn + Tag = 2 + Caption = #21517#31216 + DataBinding.FieldName = 'ZDYName' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 146 + end + object V1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NotePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 113 + end + object V1ZdyFlag: TcxGridDBColumn + Caption = #26631#24535 + DataBinding.FieldName = 'ZdyFlag' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1Column1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 57 + end + object V1HelpType: TcxGridDBColumn + Caption = #24110#21161#31867#27604 + DataBinding.FieldName = 'HelpType' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1HelpTypePropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 55 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 445 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_CYZZ.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Caption = #36873#25321 + ImageIndex = 10 + OnClick = ToolButton1Click + end + object TBAdd: TToolButton + Left = 59 + Top = 0 + Caption = #22686#34892 + ImageIndex = 12 + OnClick = TBAddClick + end + object TBDel: TToolButton + Left = 118 + Top = 0 + Caption = #21024#34892 + ImageIndex = 13 + OnClick = TBDelClick + end + object TBEdit: TToolButton + Left = 177 + Top = 0 + Caption = #20462#25913 + ImageIndex = 11 + OnClick = TBEditClick + end + object TBSave: TToolButton + Left = 236 + Top = 0 + Caption = #20445#23384 + ImageIndex = 15 + Visible = False + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 295 + Top = 0 + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 445 + Height = 44 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label1: TLabel + Left = 18 + Top = 17 + Width = 24 + Height = 12 + Caption = #21517#31216 + end + object Label2: TLabel + Left = 240 + Top = 11 + Width = 120 + Height = 24 + Caption = #27880#65306#28966#28857#31163#24320#24403#21069#32534#36753#13#10' '#21333#20803#26684#20445#23384#25968#25454#12290 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentColor = False + ParentFont = False + end + object ZDYName: TEdit + Tag = 2 + Left = 53 + Top = 12 + Width = 169 + Height = 20 + TabOrder = 0 + OnChange = ZDYNameChange + end + end + object ADOQueryMain: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + Parameters = <> + Left = 48 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + Parameters = <> + Left = 80 + Top = 144 + end + object ADOQueryCmd: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 112 + Top = 152 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 280 + Top = 144 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 144 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 80 + Top = 232 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 168 + Top = 152 + end +end diff --git a/报关管理(BaoGuan.dll)/U_RTZDYHelp.pas b/报关管理(BaoGuan.dll)/U_RTZDYHelp.pas new file mode 100644 index 0000000..f86d442 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_RTZDYHelp.pas @@ -0,0 +1,685 @@ +unit U_RTZDYHelp; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, + StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu; + +type + TfrmRTZDYHelp = class(TForm) + TV1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + V1Code: TcxGridDBColumn; + V1Name: TcxGridDBColumn; + ToolBar1: TToolBar; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + DataSource1: TDataSource; + ClientDataSet1: TClientDataSet; + TBAdd: TToolButton; + TBSave: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ToolButton1: TToolButton; + TBEdit: TToolButton; + V1Note: TcxGridDBColumn; + V1OrderNo: TcxGridDBColumn; + ADOConnection1: TADOConnection; + Panel1: TPanel; + Label1: TLabel; + ZDYName: TEdit; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + V1ZdyFlag: TcxGridDBColumn; + V1HelpType: TcxGridDBColumn; + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBAddClick(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ZDYNameChange(Sender: TObject); + procedure V1NamePropertiesEditValueChanged(Sender: TObject); + procedure V1OrderNoPropertiesEditValueChanged(Sender: TObject); + procedure V1NotePropertiesEditValueChanged(Sender: TObject); + procedure V1Column1PropertiesEditValueChanged(Sender: TObject); + procedure V1HelpTypePropertiesEditValueChanged(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + flag,flagname,snote,MainType:string; + fnote,forderno,fZdyFlag,ViewFlag:Boolean; + PPSTE:integer; + { Public declarations } + end; + +var + frmRTZDYHelp: TfrmRTZDYHelp; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmRTZDYHelp.FormCreate(Sender: TObject); +begin + try + cxGrid1.Align:=alClient; + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:=''; + Connected:=true; + end; + except + {if Application.MessageBox('ʧ,ǷҪٴ?','ʾ',32+4)=IDYES then + begin + try + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:='23242'; + Connected:=true; + end; + except + end; + end; } + + frmRTZDYHelp.Free; + end; +end; + +procedure TfrmRTZDYHelp.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + ZDYName.SetFocus; + Action:=caFree; +end; + +procedure TfrmRTZDYHelp.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type='''+flag+''''); + if Trim(MainType)<>'' then + begin + sql.Add(' and A.MainType='''+Trim(MainType)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmRTZDYHelp.TBAddClick(Sender: TObject); +var + i:Integer; +begin + ZDYName.SetFocus; + TV1.OptionsData.Editing:=True; + TV1.OptionsSelection.CellSelect:=True; + for i:=0 to 5 do + begin + with ClientDataSet1 do + begin + Append; + Post; + end; + end; + +end; +procedure TfrmRTZDYHelp.TBSaveClick(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet1.IsEmpty then Exit; + ZDYName.SetFocus; + + if ClientDataSet1.Locate('ZDYName',null,[]) then + begin + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet1.Locate('ZDYName','',[]) then + begin + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); + open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); + Parameters.ParamByName('ZDYNo').Value:=Trim(flag); + Parameters.ParamByName('ZDYName').Value:=Trim(flagname); + Parameters.ParamByName('Type').Value:='Main'; + Parameters.ParamByName('MainType').Value:=Trim(MainType); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + ClientDataSet1.DisableControls; + with ClientDataSet1 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then + begin + if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); + if Trim(MainType)<>'' then + SQL.Add(' and MainType='''+Trim(MainType)+''''); + sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end else + begin + if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where 1<>1'); + Open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); + ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').Value; + ADOQueryCmd.FieldByName('note').Value:=Trim(snote); + //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; + ADOQueryCmd.FieldByName('Type').Value:=flag; + ADOQueryCmd.FieldByName('valid').Value:='Y'; + if Trim(MainType)<>'' then + ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); + //ADOQueryCmd.FieldByName('sel').Value:=0; + ADOQueryCmd.Post; + ClientDataSet1.Edit; + ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); + ClientDataSet1.Post; + Next; + end; + end; + ClientDataSet1.EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + TV1.OptionsData.Editing:=False; + TV1.OptionsSelection.CellSelect:=False; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; + +end; + +procedure TfrmRTZDYHelp.TBDelClick(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then Exit; + if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or + (Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then + begin + if application.MessageBox('ȷҪɾ?','ʾϢ',1)=2 then exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + SQL.Add(' and Type='''+Trim(flag)+''''); + ExecSQL; + end; + end; + ClientDataSet1.Delete; +end; + +procedure TfrmRTZDYHelp.TBCloseClick(Sender: TObject); +begin + ModalResult:=2; + ZDYName.SetFocus; + WriteCxGrid('Զ'+Trim(flag),TV1,'Զ'); + Close; +end; + +procedure TfrmRTZDYHelp.FormShow(Sender: TObject); +var + fsj,fsj1:string; +begin + {if PPSTE=1 then + begin + Application.Terminate; + Exit; + end; } + InitGrid(); + fsj:=Trim(flag)+'01'; + fsj1:=Trim(flagname)+'01'; + {if ClientDataSet1.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)'); + sql.Add('select '''+Trim(fsj)+''''); + sql.Add(','''+Trim(fsj1)+''''); + SQL.Add(','''+Trim(flag)+''''); + sql.Add(','''+Trim(snote)+''''); + ExecSQL; + end; + InitGrid(); + end;} + //frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>'; + //ReadCxGrid('Զ',TV1,'Զ'); + ReadCxGrid('Զ'+Trim(flag),TV1,'Զ'); + frmRTZDYHelp.Caption:=Trim(flagname); + V1Note.Visible:=fnote; + V1ZdyFlag.Visible:=fZdyFlag; + V1OrderNo.Visible:=forderno; + if ViewFlag=True then + begin + TBAdd.Visible:=False; + TBSave.Visible:=False; + TBDel.Visible:=False; + TBEdit.Visible:=False; + Label2.Visible:=False; + end; +end; + +procedure TfrmRTZDYHelp.ToolButton1Click(Sender: TObject); +begin + ZDYName.SetFocus; + WriteCxGrid('Զ'+Trim(flag),TV1,'Զ'); + ModalResult:=1; +end; + +procedure TfrmRTZDYHelp.TBEditClick(Sender: TObject); +begin + TV1.OptionsData.Editing:=True; + TV1.OptionsSelection.CellSelect:=True; +end; + +procedure TfrmRTZDYHelp.TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if TV1.OptionsData.Editing=False then + begin + ModalResult:=1; + end; +end; + +procedure TfrmRTZDYHelp.ZDYNameChange(Sender: TObject); +var + fsj:String; +begin + if Trim(ZDYName.Text)<>'' then + begin + fsj:=' zdyname like '''+'%'+Trim(ZDYName.Text)+'%'+'''' + +' or Note like '''+'%'+Trim(ZDYName.Text)+'%'+'''' + +' or ZJM like '''+'%'+Trim(ZDYName.Text)+'%'+''''; + end; + if ADOQueryMain.Active then + begin + // SDofilter(ADOQueryMain,fsj); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + if Trim(fsj)='' then + begin + Filtered:=False; + end else + begin + Filtered:=False; + Filter:=fsj; + Filtered:=True; + end; + end; + finally + ADOQueryMain.EnableControls; + end; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + end; +end; + +procedure TfrmRTZDYHelp.V1NamePropertiesEditValueChanged(Sender: TObject); +var + maxno,mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + //Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('ZdyName').Value:=Trim(mvalue); + //Post; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); + open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); + Parameters.ParamByName('ZDYNo').Value:=Trim(flag); + Parameters.ParamByName('ZDYName').Value:=Trim(flagname); + Parameters.ParamByName('Type').Value:='Main'; + Parameters.ParamByName('MainType').Value:=Trim(MainType); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + //ClientDataSet1.DisableControls; + //with ClientDataSet1 do + //begin + //First; + //while not eof do + //begin + if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then + begin + if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); + if Trim(MainType)<>'' then + SQL.Add(' and MainType='''+Trim(MainType)+''''); + sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end else + begin + if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where 1<>1'); + Open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); + ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString; + ADOQueryCmd.FieldByName('note').Value:=Trim(snote); + //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; + ADOQueryCmd.FieldByName('Type').Value:=flag; + ADOQueryCmd.FieldByName('valid').Value:='Y'; + if Trim(MainType)<>'' then + ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); + //ADOQueryCmd.FieldByName('sel').Value:=0; + ADOQueryCmd.Post; + ClientDataSet1.Edit; + ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); + //ClientDataSet1.Post; + // Next; + //end; + //end; + // ClientDataSet1.EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ','ʾ',0); + //TV1.OptionsData.Editing:=False; + //TV1.OptionsSelection.CellSelect:=False; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmRTZDYHelp.V1OrderNoPropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('OrderNo').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set OrderNo='+mvalue); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmRTZDYHelp.V1NotePropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('Note').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set Note='''+Trim(mvalue)+''''); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmRTZDYHelp.V1Column1PropertiesEditValueChanged(Sender: TObject); +var + mvalue:String; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('ZdyFlag').Value:=StrToInt(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set ZdyFlag='+Trim(mvalue)); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmRTZDYHelp.V1HelpTypePropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('HelpType').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set HelpType='''+Trim(mvalue)+''''); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_ZDYHelp.dfm b/报关管理(BaoGuan.dll)/U_ZDYHelp.dfm new file mode 100644 index 0000000..17ab091 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_ZDYHelp.dfm @@ -0,0 +1,320 @@ +object frmZDYHelp: TfrmZDYHelp + Left = 356 + Top = 144 + Width = 460 + Height = 528 + Caption = #39033#30446#32500#25252 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object cxGrid1: TcxGrid + Left = 0 + Top = 77 + Width = 444 + Height = 411 + Align = alClient + TabOrder = 0 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object V1Code: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'ZDYNo' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 97 + end + object V1OrderNo: TcxGridDBColumn + Caption = #39034#24207#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1OrderNoPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 49 + end + object V1Name: TcxGridDBColumn + Tag = 2 + Caption = #21517#31216 + DataBinding.FieldName = 'ZDYName' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 272 + end + object V1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NotePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 109 + end + object V1ZdyFlag: TcxGridDBColumn + Caption = #26631#24535 + DataBinding.FieldName = 'ZdyFlag' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1Column1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 57 + end + object V1HelpType: TcxGridDBColumn + Caption = #24110#21161#31867#27604 + DataBinding.FieldName = 'HelpType' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1HelpTypePropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 55 + end + object V1ZdyStr1: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 61 + end + object V1ZdyStr2: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V1ZdyStr3: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr3' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 57 + end + object V1ZdyStr4: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr4' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 61 + end + object V1ZdyStr5: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr5' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 61 + end + object V1ZdyStr6: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr6' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 51 + end + object V1ZdyStr7: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr7' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 55 + end + object V1ZdyStr8: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr8' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 56 + end + object V1ZdyStr9: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr9' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 54 + end + object V1ZdyStr10: TcxGridDBColumn + DataBinding.FieldName = 'ZdyStr10' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1ZdyStr1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 56 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 444 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Caption = #36873#25321 + ImageIndex = 10 + OnClick = ToolButton1Click + end + object TBAdd: TToolButton + Left = 59 + Top = 0 + Caption = #22686#34892 + ImageIndex = 12 + OnClick = TBAddClick + end + object TBDel: TToolButton + Left = 118 + Top = 0 + Caption = #21024#34892 + ImageIndex = 13 + OnClick = TBDelClick + end + object TBEdit: TToolButton + Left = 177 + Top = 0 + Caption = #20462#25913 + ImageIndex = 11 + OnClick = TBEditClick + end + object TBSave: TToolButton + Left = 236 + Top = 0 + Caption = #20445#23384 + ImageIndex = 15 + Visible = False + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 295 + Top = 0 + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 444 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label1: TLabel + Left = 20 + Top = 18 + Width = 26 + Height = 13 + Caption = #21517#31216 + end + object Label2: TLabel + Left = 260 + Top = 12 + Width = 132 + Height = 26 + Caption = #27880#65306#28966#28857#31163#24320#24403#21069#32534#36753#13#10' '#21333#20803#26684#20445#23384#25968#25454#12290 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentColor = False + ParentFont = False + end + object ZDYName: TEdit + Tag = 2 + Left = 57 + Top = 13 + Width = 184 + Height = 21 + TabOrder = 0 + OnChange = ZDYNameChange + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 48 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 80 + Top = 144 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 112 + Top = 152 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 280 + Top = 144 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 144 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 162 + Top = 150 + end +end diff --git a/报关管理(BaoGuan.dll)/U_ZDYHelp.pas b/报关管理(BaoGuan.dll)/U_ZDYHelp.pas new file mode 100644 index 0000000..e819256 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_ZDYHelp.pas @@ -0,0 +1,729 @@ +unit U_ZDYHelp; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, + StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu, + cxTimeEdit; + +type + TfrmZDYHelp = class(TForm) + TV1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + V1Code: TcxGridDBColumn; + V1Name: TcxGridDBColumn; + ToolBar1: TToolBar; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + DataSource1: TDataSource; + ClientDataSet1: TClientDataSet; + TBAdd: TToolButton; + TBSave: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ToolButton1: TToolButton; + TBEdit: TToolButton; + V1Note: TcxGridDBColumn; + V1OrderNo: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + ZDYName: TEdit; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + V1ZdyFlag: TcxGridDBColumn; + V1HelpType: TcxGridDBColumn; + V1ZdyStr1: TcxGridDBColumn; + V1ZdyStr2: TcxGridDBColumn; + V1ZdyStr3: TcxGridDBColumn; + V1ZdyStr4: TcxGridDBColumn; + V1ZdyStr5: TcxGridDBColumn; + V1ZdyStr6: TcxGridDBColumn; + V1ZdyStr7: TcxGridDBColumn; + V1ZdyStr8: TcxGridDBColumn; + V1ZdyStr9: TcxGridDBColumn; + V1ZdyStr10: TcxGridDBColumn; + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBAddClick(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ZDYNameChange(Sender: TObject); + procedure V1NamePropertiesEditValueChanged(Sender: TObject); + procedure V1OrderNoPropertiesEditValueChanged(Sender: TObject); + procedure V1NotePropertiesEditValueChanged(Sender: TObject); + procedure V1Column1PropertiesEditValueChanged(Sender: TObject); + procedure V1HelpTypePropertiesEditValueChanged(Sender: TObject); + procedure V1ZdyStr1PropertiesEditValueChanged(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + flag,flagname,snote,MainType:string; + fnote,forderno,fZdyFlag,ViewFlag:Boolean; + PPSTE:integer; + { Public declarations } + end; + +var + frmZDYHelp: TfrmZDYHelp; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmZDYHelp.FormCreate(Sender: TObject); +begin + {try + cxGrid1.Align:=alClient; + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:=''; + Connected:=true; + end; + except + {if Application.MessageBox('ʧ,ǷҪٴ?','ʾ',32+4)=IDYES then + begin + try + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:='23242'; + Connected:=true; + end; + except + end; + end; } + + {frmRTZDYHelp.Free; + end; } +end; + +procedure TfrmZDYHelp.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + ZDYName.SetFocus; + WriteCxGrid('Զ'+Trim(flag),TV1,'Զ'); + Action:=caFree; +end; + +procedure TfrmZDYHelp.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type='''+flag+''''); + if Trim(MainType)<>'' then + begin + sql.Add(' and A.MainType='''+Trim(MainType)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmZDYHelp.TBAddClick(Sender: TObject); +var + i:Integer; +begin + ZDYName.SetFocus; + TV1.OptionsData.Editing:=True; + TV1.OptionsSelection.CellSelect:=True; + for i:=0 to 5 do + begin + with ClientDataSet1 do + begin + Append; + Post; + end; + end; + +end; +procedure TfrmZDYHelp.TBSaveClick(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet1.IsEmpty then Exit; + ZDYName.SetFocus; + + if ClientDataSet1.Locate('ZDYName',null,[]) then + begin + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet1.Locate('ZDYName','',[]) then + begin + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); + open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); + Parameters.ParamByName('ZDYNo').Value:=Trim(flag); + Parameters.ParamByName('ZDYName').Value:=Trim(flagname); + Parameters.ParamByName('Type').Value:='Main'; + Parameters.ParamByName('MainType').Value:=Trim(MainType); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + ClientDataSet1.DisableControls; + with ClientDataSet1 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then + begin + if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); + if Trim(MainType)<>'' then + SQL.Add(' and MainType='''+Trim(MainType)+''''); + sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end else + begin + if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where 1<>1'); + Open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); + ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').Value; + ADOQueryCmd.FieldByName('note').Value:=Trim(snote); + //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; + ADOQueryCmd.FieldByName('Type').Value:=flag; + ADOQueryCmd.FieldByName('valid').Value:='Y'; + if Trim(MainType)<>'' then + ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); + //ADOQueryCmd.FieldByName('sel').Value:=0; + ADOQueryCmd.Post; + ClientDataSet1.Edit; + ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); + ClientDataSet1.Post; + Next; + end; + end; + ClientDataSet1.EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + TV1.OptionsData.Editing:=False; + TV1.OptionsSelection.CellSelect:=False; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; + +end; + +procedure TfrmZDYHelp.TBDelClick(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then Exit; + if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or + (Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then + begin + if application.MessageBox('ȷҪɾ?','ʾϢ',1)=2 then exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + SQL.Add(' and Type='''+Trim(flag)+''''); + ExecSQL; + end; + end; + ClientDataSet1.Delete; +end; + +procedure TfrmZDYHelp.TBCloseClick(Sender: TObject); +begin + ModalResult:=2; + ZDYName.SetFocus; + WriteCxGrid('Զ'+Trim(flag),TV1,'Զ'); + Close; +end; + +procedure TfrmZDYHelp.FormShow(Sender: TObject); +var + fsj,fsj1:string; +begin + {if PPSTE=1 then + begin + Application.Terminate; + Exit; + end; } + InitGrid(); + fsj:=Trim(flag)+'01'; + fsj1:=Trim(flagname)+'01'; + {if ClientDataSet1.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)'); + sql.Add('select '''+Trim(fsj)+''''); + sql.Add(','''+Trim(fsj1)+''''); + SQL.Add(','''+Trim(flag)+''''); + sql.Add(','''+Trim(snote)+''''); + ExecSQL; + end; + InitGrid(); + end;} + //frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>'; + //ReadCxGrid('Զ',TV1,'Զ'); + ReadCxGrid('Զ'+Trim(flag),TV1,'Զ'); + frmZDYHelp.Caption:=Trim(flagname); + V1Note.Visible:=fnote; + V1ZdyFlag.Visible:=fZdyFlag; + V1OrderNo.Visible:=forderno; + if ViewFlag=True then + begin + TBAdd.Visible:=False; + TBSave.Visible:=False; + TBDel.Visible:=False; + TBEdit.Visible:=False; + Label2.Visible:=False; + end; +end; + +procedure TfrmZDYHelp.ToolButton1Click(Sender: TObject); +begin + ZDYName.SetFocus; + WriteCxGrid('Զ'+Trim(flag),TV1,'Զ'); + ModalResult:=1; +end; + +procedure TfrmZDYHelp.TBEditClick(Sender: TObject); +begin + TV1.OptionsData.Editing:=True; + TV1.OptionsSelection.CellSelect:=True; +end; + +procedure TfrmZDYHelp.TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if TV1.OptionsData.Editing=False then + begin + ModalResult:=1; + end; +end; + +procedure TfrmZDYHelp.ZDYNameChange(Sender: TObject); +var + fsj:String; +begin + if Trim(ZDYName.Text)<>'' then + begin + fsj:=' zdyname like '''+'%'+Trim(ZDYName.Text)+'%'+'''' + +' or Note like '''+'%'+Trim(ZDYName.Text)+'%'+'''' + +' or ZJM like '''+'%'+Trim(ZDYName.Text)+'%'+''''; + end; + if ADOQueryMain.Active then + begin + // SDofilter(ADOQueryMain,fsj); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + if Trim(fsj)='' then + begin + Filtered:=False; + end else + begin + Filtered:=False; + Filter:=fsj; + Filtered:=True; + end; + end; + finally + ADOQueryMain.EnableControls; + end; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + end; +end; + +procedure TfrmZDYHelp.V1NamePropertiesEditValueChanged(Sender: TObject); +var + maxno,mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + //Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('ZdyName').Value:=Trim(mvalue); + //Post; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); + open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); + Parameters.ParamByName('ZDYNo').Value:=Trim(flag); + Parameters.ParamByName('ZDYName').Value:=Trim(flagname); + Parameters.ParamByName('Type').Value:='Main'; + Parameters.ParamByName('MainType').Value:=Trim(MainType); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + //ClientDataSet1.DisableControls; + //with ClientDataSet1 do + //begin + //First; + //while not eof do + //begin + if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then + begin + if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); + if Trim(MainType)<>'' then + SQL.Add(' and MainType='''+Trim(MainType)+''''); + sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end else + begin + if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where 1<>1'); + Open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); + ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString; + ADOQueryCmd.FieldByName('note').Value:=Trim(snote); + //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; + ADOQueryCmd.FieldByName('Type').Value:=flag; + ADOQueryCmd.FieldByName('valid').Value:='Y'; + if Trim(MainType)<>'' then + ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); + //ADOQueryCmd.FieldByName('sel').Value:=0; + ADOQueryCmd.Post; + ClientDataSet1.Edit; + ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); + //ClientDataSet1.Post; + // Next; + //end; + //end; + // ClientDataSet1.EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ','ʾ',0); + //TV1.OptionsData.Editing:=False; + //TV1.OptionsSelection.CellSelect:=False; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmZDYHelp.V1OrderNoPropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('OrderNo').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set OrderNo='+mvalue); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmZDYHelp.V1NotePropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('Note').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set Note='''+Trim(mvalue)+''''); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmZDYHelp.V1Column1PropertiesEditValueChanged(Sender: TObject); +var + mvalue:String; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('ZdyFlag').Value:=StrToInt(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set ZdyFlag='+Trim(mvalue)); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmZDYHelp.V1HelpTypePropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('HelpType').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set HelpType='''+Trim(mvalue)+''''); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmZDYHelp.V1ZdyStr1PropertiesEditValueChanged(Sender: TObject); +var + mvalue,FFieldName:string; +begin + if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then + begin + Application.MessageBox('ƲΪ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=TV1.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(mvalue)='' then + begin + mvalue:=''; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName(FFieldName).Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update KH_Zdy Set '+FFieldName+'='''+Trim(mvalue)+''''); + sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + ExecSQL; + end; +end; + + +end. diff --git a/报关管理(BaoGuan.dll)/U_ZDYHelpSel.dfm b/报关管理(BaoGuan.dll)/U_ZDYHelpSel.dfm new file mode 100644 index 0000000..190f784 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_ZDYHelpSel.dfm @@ -0,0 +1,224 @@ +object frmZDYHelpSel: TfrmZDYHelpSel + Left = 392 + Top = 169 + Width = 574 + Height = 598 + Caption = #39033#30446#32500#25252 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid1: TcxGrid + Left = 0 + Top = 73 + Width = 558 + Height = 486 + Align = alClient + TabOrder = 0 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object V1Code: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'ZDYNo' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 97 + end + object V1Column1: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 48 + end + object V1Name: TcxGridDBColumn + Tag = 2 + Caption = #21517#31216 + DataBinding.FieldName = 'ZDYName' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 208 + end + object V1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 57 + end + object V1OrderNo: TcxGridDBColumn + Caption = #39034#24207#21495 + DataBinding.FieldName = 'OrderNo' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 53 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 558 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_DDMD.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Caption = #30830#23450 + ImageIndex = 10 + OnClick = ToolButton1Click + end + object TBAdd: TToolButton + Left = 59 + Top = 0 + Caption = #22686#34892 + ImageIndex = 12 + OnClick = TBAddClick + end + object TBDel: TToolButton + Left = 118 + Top = 0 + Caption = #21024#34892 + ImageIndex = 13 + OnClick = TBDelClick + end + object TBEdit: TToolButton + Left = 177 + Top = 0 + Caption = #20462#25913 + ImageIndex = 11 + OnClick = TBEditClick + end + object TBSave: TToolButton + Left = 236 + Top = 0 + Caption = #20445#23384 + ImageIndex = 15 + Visible = False + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 295 + Top = 0 + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 558 + Height = 44 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label1: TLabel + Left = 19 + Top = 17 + Width = 24 + Height = 12 + Caption = #21517#31216 + end + object Label2: TLabel + Left = 240 + Top = 11 + Width = 120 + Height = 24 + Caption = #27880#65306#28966#28857#31163#24320#24403#21069#32534#36753#13#10' '#21333#20803#26684#20445#23384#25968#25454#12290 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentColor = False + ParentFont = False + end + object ZDYName: TEdit + Tag = 2 + Left = 54 + Top = 12 + Width = 169 + Height = 20 + TabOrder = 0 + OnChange = ZDYNameChange + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 48 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_DDMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 80 + Top = 144 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_DDMD.ADOLink + Parameters = <> + Left = 112 + Top = 152 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 280 + Top = 144 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 200 + Top = 144 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 352 + Top = 248 + end +end diff --git a/报关管理(BaoGuan.dll)/U_ZDYHelpSel.pas b/报关管理(BaoGuan.dll)/U_ZDYHelpSel.pas new file mode 100644 index 0000000..3f3ffb3 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_ZDYHelpSel.pas @@ -0,0 +1,465 @@ +unit U_ZDYHelpSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, + StdCtrls, ExtCtrls, cxCheckBox, cxTextEdit, cxGridCustomPopupMenu, + cxGridPopupMenu; + +type + TfrmZDYHelpSel = class(TForm) + TV1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + V1Code: TcxGridDBColumn; + V1Name: TcxGridDBColumn; + ToolBar1: TToolBar; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + DataSource1: TDataSource; + ClientDataSet1: TClientDataSet; + TBAdd: TToolButton; + TBSave: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ToolButton1: TToolButton; + TBEdit: TToolButton; + V1Note: TcxGridDBColumn; + V1OrderNo: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + ZDYName: TEdit; + V1Column1: TcxGridDBColumn; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBAddClick(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ZDYNameChange(Sender: TObject); + procedure V1NamePropertiesEditValueChanged(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + flag,flagname,snote,MainType,ReturnStr,FGStr:string; + fnote,forderno:Boolean; + PPSTE,JiangeStr:integer; + { Public declarations } + end; + +var + frmZDYHelpSel: TfrmZDYHelpSel; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmZDYHelpSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + ZDYName.SetFocus; + Action:=caFree; +end; + +procedure TfrmZDYHelpSel.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type='''+flag+''''); + if Trim(MainType)<>'' then + begin + sql.Add(' and MainType='''+Trim(MainType)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmZDYHelpSel.TBAddClick(Sender: TObject); +var + i:Integer; +begin + ZDYName.SetFocus; + TV1.OptionsData.Editing:=True; + TV1.OptionsSelection.CellSelect:=True; + for i:=0 to 5 do + begin + with ClientDataSet1 do + begin + Append; + Post; + end; + end; + +end; + +procedure TfrmZDYHelpSel.TBSaveClick(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet1.IsEmpty then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); + open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); + Parameters.ParamByName('ZDYNo').Value:=Trim(flag); + Parameters.ParamByName('ZDYName').Value:=Trim(flagname); + Parameters.ParamByName('Type').Value:='Main'; + Parameters.ParamByName('MainType').Value:=Trim(MainType); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + with ClientDataSet1 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then + begin + if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where 1<>1'); + Open; + end; + if Trim(ClientDataSet1.FieldByName('ZDYName').AsString)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); + ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString; + ADOQueryCmd.FieldByName('note').Value:=Trim(snote); + //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; + ADOQueryCmd.FieldByName('Type').Value:=flag; + ADOQueryCmd.FieldByName('valid').Value:='Y'; + if Trim(MainType)<>'' then + ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); + //ADOQueryCmd.FieldByName('sel').Value:=0; + ADOQueryCmd.Post; + ClientDataSet1.Edit; + ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); + ClientDataSet1.Post; + Next; + end; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; + // TV1.OptionsData.Editing:=False; +end; + +procedure TfrmZDYHelpSel.TBDelClick(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then Exit; + if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or + (Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then + begin + if application.MessageBox('ȷҪɾ?','ʾϢ',1)=2 then exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + SQL.Add(' and Type='''+Trim(flag)+''''); + ExecSQL; + end; + end; + ClientDataSet1.Delete; +end; + +procedure TfrmZDYHelpSel.TBCloseClick(Sender: TObject); +begin + ModalResult:=2; + ZDYName.SetFocus; + WriteCxGrid('Զ'+Trim(flag),TV1,'Զ'); + Close; +end; + +procedure TfrmZDYHelpSel.FormShow(Sender: TObject); +var + fsj,fsj1:string; +begin + {if PPSTE=1 then + begin + Application.Terminate; + Exit; + end; } + InitGrid(); + fsj:=Trim(flag)+'01'; + fsj1:=Trim(flagname)+'01'; + ReadCxGrid('Զ'+Trim(flag),TV1,'Զ'); + {if ClientDataSet1.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)'); + sql.Add('select '''+Trim(fsj)+''''); + sql.Add(','''+Trim(fsj1)+''''); + SQL.Add(','''+Trim(flag)+''''); + sql.Add(','''+Trim(snote)+''''); + ExecSQL; + end; + InitGrid(); + end;} + //frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>'; + frmZDYHelpSel.Caption:=Trim(flagname); +end; + +procedure TfrmZDYHelpSel.ToolButton1Click(Sender: TObject); +begin + ReturnStr:=''; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + if JiangeStr<>99 then + begin + if FGStr<>'' then + ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString)+FGStr + else + ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString)+';' + end + else + ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString); + end; + Next; + end; + end; + if JiangeStr<>99 then + ReturnStr:=Copy(ReturnStr,1,Length(ReturnStr)-1); + ModalResult:=1; +end; + +procedure TfrmZDYHelpSel.TBEditClick(Sender: TObject); +begin + TV1.OptionsData.Editing:=True; +end; + +procedure TfrmZDYHelpSel.TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if TV1.OptionsData.Editing=False then + begin + ModalResult:=1; + end; +end; + +procedure TfrmZDYHelpSel.ZDYNameChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + end; +end; + +procedure TfrmZDYHelpSel.V1NamePropertiesEditValueChanged(Sender: TObject); +var + maxno,mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + //Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + with ClientDataSet1 do + begin + Edit; + FieldByName('ZdyName').Value:=Trim(mvalue); + //Post; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+''''); + open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType '); + Parameters.ParamByName('ZDYNo').Value:=Trim(flag); + Parameters.ParamByName('ZDYName').Value:=Trim(flagname); + Parameters.ParamByName('Type').Value:='Main'; + Parameters.ParamByName('MainType').Value:=Trim(MainType); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + //ClientDataSet1.DisableControls; + //with ClientDataSet1 do + //begin + //First; + //while not eof do + //begin + if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then + begin + if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('select * from KH_Zdy where Type='''+Trim(flag)+''''); + if Trim(MainType)<>'' then + SQL.Add(' and MainType='''+Trim(MainType)+''''); + sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end else + begin + if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then + begin + ADOQueryCmd.Connection.RollbackTrans; + //ClientDataSet1.EnableControls; + Application.MessageBox('ظ','ʾ',0); + Exit; + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from KH_ZDY where 1<>1'); + Open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno); + ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString; + ADOQueryCmd.FieldByName('note').Value:=Trim(snote); + //ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString; + ADOQueryCmd.FieldByName('Type').Value:=flag; + ADOQueryCmd.FieldByName('valid').Value:='Y'; + if Trim(MainType)<>'' then + ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType); + //ADOQueryCmd.FieldByName('sel').Value:=0; + ADOQueryCmd.Post; + ClientDataSet1.Edit; + ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno); + //ClientDataSet1.Post; + // Next; + //end; + //end; + // ClientDataSet1.EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ','ʾ',0); + //TV1.OptionsData.Editing:=False; + //TV1.OptionsSelection.CellSelect:=False; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_iniParam.pas b/报关管理(BaoGuan.dll)/U_iniParam.pas new file mode 100644 index 0000000..906659f --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_iniParam.pas @@ -0,0 +1,64 @@ + +unit U_iniParam; + +interface +uses + IniFiles,SysUtils; +var + Filename:string; //ļ + iParam2:integer; + bParam1:Boolean; + bParam2:Boolean; + SCXFlag:String; // ݴ˱־ȡǰ׺ ܰĸ 1,2 + SCXCount:String; //̨ + PortNoStr:string;//˿ں + DllName:string;//˿Dllļ + DllName10:string;//˿Dllļ + Function IsINIFile():Boolean; //жInIļǷ + procedure ReadINIFile(); + procedure WriteINIFile(); +implementation +/////////////////////////////////////////////////////////////////// + //ȡiniļò + // +//////////////////////////////////////////////////////////////////// +procedure ReadINIFile(); +var + programIni:Tinifile; //ļ +begin + FileName:=ExtractFilePath(Paramstr(0))+'File.INI'; + programIni:=Tinifile.create(FileName); + SCXFlag:=programIni.ReadString('','̨־','1'); + DllName:=programIni.ReadString('','Dllļ','JZCRS323C.DLL'); + DllName10:=programIni.ReadString('','ӳDllļ','JZCRS323C.DLL'); + programIni.Free; +end; + +////////////////////////////////////////////////////////////////// + //дϢINIļ + // +////////////////////////////////////////////////////////////////// +procedure WriteINIFile(); +var + programIni:Tinifile; //ļ +begin + FileName:=ExtractFilePath(Paramstr(0))+'File.INI'; + programIni:=Tinifile.create(FileName); + programIni.WriteString('','̨־',SCXFlag); + programIni.WriteString('','Dllļ',DllName); + programIni.WriteString('','ӳDllļ',DllName10); + programIni.Free; +end; +////////////////////////////////////////////////////////////////// + //жInIļǷ +////////////////////////////////////////////////////////////////// + Function IsINIFile():Boolean; + begin + FileName:=ExtractFilePath(Paramstr(0))+'File.INI'; + if FileExists(FileName) then + Result:=true + else + Result:=false; + end; + +end. diff --git a/报关管理(BaoGuan.dll)/U_testdll.dfm b/报关管理(BaoGuan.dll)/U_testdll.dfm new file mode 100644 index 0000000..6b709b8 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_testdll.dfm @@ -0,0 +1,221 @@ +object Form1: TForm1 + Left = 203 + Top = 121 + Width = 791 + Height = 554 + Caption = 'Form1' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + FormStyle = fsMDIForm + Menu = MainMenu1 + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnResize = FormResize + PixelsPerInch = 96 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 775 + Height = 25 + ButtonWidth = 57 + Caption = 'ToolBar1' + Flat = True + Images = ImageList1 + TabOrder = 0 + object Edit1: TEdit + Left = 0 + Top = 0 + Width = 81 + Height = 22 + TabOrder = 0 + Text = '1' + end + object ToolButton1: TToolButton + Left = 81 + Top = 0 + Caption = #20851#38381 + ImageIndex = 0 + OnClick = ToolButton1Click + end + object Label1: TLabel + Left = 138 + Top = 0 + Width = 79 + Height = 22 + Caption = ' DllName'#65306 + end + object DllName: TEdit + Left = 217 + Top = 0 + Width = 135 + Height = 22 + TabOrder = 1 + end + end + object MainMenu1: TMainMenu + Left = 232 + Top = 40 + object test1: TMenuItem + Caption = 'test' + OnClick = test1Click + end + end + object ImageList1: TImageList + Left = 320 + Top = 56 + Bitmap = { + 494C010101000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000EFEFEF000000 + 0000EFEFEF00EFEFEF000000000000000000EFEFEF0000000000000000000000 + 0000EFEFEF00EFEFEF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000EFEFEF0000000000EFEFEF00EFEFEF0000000000EFEFEF00000000008080 + 00008080000000000000C0C0C000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EFEFEF00EFEFEF000000 + 0000EFEFEF00EFEFEF000000000000000000C0C0C00000000000000000008080 + 00008080000080800000EFEFEF00EFEFEF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF0000000000000000000000000000000000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF0000000000808080008080800080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008080000000000000808080008080800080808000000000008080 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000EFEFEF00EFEF + EF0000000000FFFF000080800000000000008080800080808000000000000000 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF0000FFFF0000808000000000000080808000000000008080 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000808000008080 + 000080800000FFFF0000FFFF0000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFF0000FFFF + 0000FFFF0000FFFF000000000000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF0000FFFF0000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000808000000000000080808000808080008080800080808000FFFF + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080008080800080808000808080000000 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFF000000000000D343000000000000 + F4810000000000009340000000000000F801000000000000F001000000000000 + F001000000000000C001000000000000C001000000000000C001000000000000 + C201000000000000C001000000000000F001000000000000F001000000000000 + FC03000000000000FFFF00000000000000000000000000000000000000000000 + 000000000000} + end + object ADOConnection1: TADOConnection + ConnectionString = + 'Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ' + + 'ID=sa;Initial Catalog=rzdata;Data Source=6GMFFMYKYMJDZW7' + LoginPrompt = False + Provider = 'SQLOLEDB.1' + Left = 408 + Top = 64 + end +end diff --git a/报关管理(BaoGuan.dll)/U_testdll.pas b/报关管理(BaoGuan.dll)/U_testdll.pas new file mode 100644 index 0000000..76fe321 --- /dev/null +++ b/报关管理(BaoGuan.dll)/U_testdll.pas @@ -0,0 +1,106 @@ +unit U_testdll; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, StdCtrls, Menus, ToolWin, ComCtrls, ImgList, DB, ADODB; + +type + TForm1 = class(TForm) + MainMenu1: TMainMenu; + test1: TMenuItem; + ToolBar1: TToolBar; + Edit1: TEdit; + ToolButton1: TToolButton; + ImageList1: TImageList; + ADOConnection1: TADOConnection; + DllName: TEdit; + Label1: TLabel; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure test1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormResize(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + newh:hwnd; + +implementation + +{$R *.dfm} + +procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); +begin + sendmessage(newh,1034,4,0); + action:=cafree; +end; + +procedure TForm1.test1Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; +begin + //̬ + //newh:=getForm(Application,1,ADOConnection1,PChar('sa'),PChar('dsa')); + + //̬ + // showMessage(intTostr(application.Handle)); + Th := LoadLibrary('BaoGuan.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,strToint(edit1.text),0,0, + PChar('ygcode'), + PChar('ygname'), + PChar('datebase'), + PChar('title'), + PChar(''), + PChar(''), + '','','','','','','','','' + ); + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim(DllName.Text)); + end; + +end; + +procedure TForm1.ToolButton1Click(Sender: TObject); +begin + close; +end; + +procedure TForm1.FormResize(Sender: TObject); +begin + sendmessage(newh,1034,1,0); +end; + +end. + diff --git a/报关管理(BaoGuan.dll)/consvr.ini b/报关管理(BaoGuan.dll)/consvr.ini new file mode 100644 index 0000000..3a03c34 --- /dev/null +++ b/报关管理(BaoGuan.dll)/consvr.ini @@ -0,0 +1,2 @@ +[SERVER] +SERVER=192.168.88.254 \ No newline at end of file diff --git a/报关管理(BaoGuan.dll)/testDll.cfg b/报关管理(BaoGuan.dll)/testDll.cfg new file mode 100644 index 0000000..e9c1cc1 --- /dev/null +++ b/报关管理(BaoGuan.dll)/testDll.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/报关管理(BaoGuan.dll)/testDll.dof b/报关管理(BaoGuan.dll)/testDll.dof new file mode 100644 index 0000000..2220190 --- /dev/null +++ b/报关管理(BaoGuan.dll)/testDll.dof @@ -0,0 +1,136 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages= +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\Ʒ\뵥(BaoGuan.dll)\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= diff --git a/报关管理(BaoGuan.dll)/testDll.dpr b/报关管理(BaoGuan.dll)/testDll.dpr new file mode 100644 index 0000000..4be4b8a --- /dev/null +++ b/报关管理(BaoGuan.dll)/testDll.dpr @@ -0,0 +1,14 @@ +program testDll; + +uses + Forms, + U_testdll in 'U_testdll.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/报关管理(BaoGuan.dll)/testDll.res b/报关管理(BaoGuan.dll)/testDll.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/报关管理(BaoGuan.dll)/testDllDJ.cfg b/报关管理(BaoGuan.dll)/testDllDJ.cfg new file mode 100644 index 0000000..e9c1cc1 --- /dev/null +++ b/报关管理(BaoGuan.dll)/testDllDJ.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/报关管理(BaoGuan.dll)/testDllDJ.dof b/报关管理(BaoGuan.dll)/testDllDJ.dof new file mode 100644 index 0000000..9b5b586 --- /dev/null +++ b/报关管理(BaoGuan.dll)/testDllDJ.dof @@ -0,0 +1,136 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages= +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\֯(CYZZ.dll)\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= diff --git a/报关管理(BaoGuan.dll)/testDllDJ.res b/报关管理(BaoGuan.dll)/testDllDJ.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/2323 b/盛纺贸易管理/2323 new file mode 100644 index 0000000..b63b766 --- /dev/null +++ b/盛纺贸易管理/2323 @@ -0,0 +1,12 @@ + + + + + 2323 + + + + + + + diff --git a/盛纺贸易管理/AES.pas b/盛纺贸易管理/AES.pas new file mode 100644 index 0000000..3b8432d --- /dev/null +++ b/盛纺贸易管理/AES.pas @@ -0,0 +1,317 @@ +(**************************************************) + +unit AES; + +interface + +uses + SysUtils, Classes, Math, ElAES; + +type + TKeyBit = (kb128, kb192, kb256); + +function StrToHex(Value: string): string; +function HexToStr(Value: string): string; +function EncryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +function DecryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +function EncryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +function DecryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +procedure EncryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +procedure DecryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); + +implementation + +function StrToHex(Value: string): string; +var + I: Integer; +begin + Result := ''; + for I := 1 to Length(Value) do + Result := Result + IntToHex(Ord(Value[I]), 2); +end; + +function HexToStr(Value: string): string; +var + I: Integer; +begin + Result := ''; + for I := 1 to Length(Value) do + begin + if ((I mod 2) = 1) then + Result := Result + Chr(StrToInt('0x'+ Copy(Value, I, 2))); + end; +end; + +{ -- ַܺ Ĭϰ 128 λܳ׼ -- } +function EncryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +var + SS, DS: TStringStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + Result := ''; + SS := TStringStream.Create(Value); + DS := TStringStream.Create(''); + try + Size := SS.Size; + DS.WriteBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey128, DS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey192, DS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey256, DS); + end; + Result := StrToHex(DS.DataString); + finally + SS.Free; + DS.Free; + end; +end; + +{ -- ַܺ Ĭϰ 128 λܳ׽ -- } +function DecryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +var + SS, DS: TStringStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + Result := ''; + SS := TStringStream.Create(HexToStr(Value)); + DS := TStringStream.Create(''); + try + Size := SS.Size; + SS.ReadBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey128, DS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey192, DS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey256, DS); + end; + Result := DS.DataString; + finally + SS.Free; + DS.Free; + end; +end; + +{ -- ܺ Ĭϰ 128 λܳ׽ -- } +function EncryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +var + Count: Int64; + OutStrm: TStream; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + OutStrm := TStream.Create; + Stream.Position := 0; + Count := Stream.Size; + OutStrm.Write(Count, SizeOf(Count)); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey128, OutStrm); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey192, OutStrm); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey256, OutStrm); + end; + Result := OutStrm; + finally + OutStrm.Free; + end; +end; + +{ -- ܺ Ĭϰ 128 λܳ׽ -- } +function DecryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +var + Count, OutPos: Int64; + OutStrm: TStream; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + OutStrm := TStream.Create; + Stream.Position := 0; + OutPos :=OutStrm.Position; + Stream.ReadBuffer(Count, SizeOf(Count)); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey128, OutStrm); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey192, OutStrm); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey256, OutStrm); + end; + OutStrm.Size := OutPos + Count; + OutStrm.Position := OutPos; + Result := OutStrm; + finally + OutStrm.Free; + end; +end; + +{ -- ļܺ Ĭϰ 128 λܳ׽ -- } +procedure EncryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +var + SFS, DFS: TFileStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + SFS := TFileStream.Create(SourceFile, fmOpenRead); + try + DFS := TFileStream.Create(DestFile, fmCreate); + try + Size := SFS.Size; + DFS.WriteBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey128, DFS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey192, DFS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey256, DFS); + end; + finally + DFS.Free; + end; + finally + SFS.Free; + end; +end; + +{ -- ļܺ Ĭϰ 128 λܳ׽ -- } +procedure DecryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +var + SFS, DFS: TFileStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + SFS := TFileStream.Create(SourceFile, fmOpenRead); + try + SFS.ReadBuffer(Size, SizeOf(Size)); + DFS := TFileStream.Create(DestFile, fmCreate); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey128, DFS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey192, DFS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey256, DFS); + end; + DFS.Size := Size; + finally + DFS.Free; + end; + finally + SFS.Free; + end; +end; +end. diff --git a/盛纺贸易管理/ElAES.pas b/盛纺贸易管理/ElAES.pas new file mode 100644 index 0000000..7a3e6c8 --- /dev/null +++ b/盛纺贸易管理/ElAES.pas @@ -0,0 +1,2488 @@ +(**************************************************) +(* *) +(* Advanced Encryption Standard (AES) *) +(* *) +(* Copyright (c) 1998-2001 *) +(* EldoS, Alexander Ionov *) +(* *) +(**************************************************) + +unit ElAES; + +interface + +uses + Classes, SysUtils; + +type + EAESError = class(Exception); + + PInteger = ^Integer; + + TAESBuffer = array [0..15] of byte; + TAESKey128 = array [0..15] of byte; + TAESKey192 = array [0..23] of byte; + TAESKey256 = array [0..31] of byte; + TAESExpandedKey128 = array [0..43] of longword; + TAESExpandedKey192 = array [0..53] of longword; + TAESExpandedKey256 = array [0..63] of longword; + + PAESBuffer =^TAESBuffer; + PAESKey128 =^TAESKey128; + PAESKey192 =^TAESKey192; + PAESKey256 =^TAESKey256; + PAESExpandedKey128 =^TAESExpandedKey128; + PAESExpandedKey192 =^TAESExpandedKey192; + PAESExpandedKey256 =^TAESExpandedKey256; + +// Key expansion routines for encryption + +procedure ExpandAESKeyForEncryption(const Key: TAESKey128; + var ExpandedKey: TAESExpandedKey128); overload; +procedure ExpandAESKeyForEncryption(const Key: TAESKey192; + var ExpandedKey: TAESExpandedKey192); overload; +procedure ExpandAESKeyForEncryption(const Key: TAESKey256; + var ExpandedKey: TAESExpandedKey256); overload; + +// Block encryption routines + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); overload; +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); overload; +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); overload; + +// Stream encryption routines (ECB mode) + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); overload; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); overload; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); overload; + +// Stream encryption routines (CBC mode) + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); overload; + +// Key transformation routines for decryption + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey128); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey128; + var ExpandedKey: TAESExpandedKey128); overload; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey192); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey192; + var ExpandedKey: TAESExpandedKey192); overload; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey256); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey256; + var ExpandedKey: TAESExpandedKey256); overload; + +// Block decryption routines + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); overload; +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); overload; +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); overload; + +// Stream decryption routines (ECB mode) + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); overload; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); overload; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); overload; + +// Stream decryption routines (CBC mode) + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); overload; + +resourcestring + SInvalidInBufSize = 'Invalid buffer size for decryption'; + SReadError = 'Stream read error'; + SWriteError = 'Stream write error'; + +implementation + +type + PLongWord = ^LongWord; + +function Min(A, B: integer): integer; +begin + if A < B then + Result := A + else + Result := B; +end; + +const + Rcon: array [1..30] of longword = ( + $00000001, $00000002, $00000004, $00000008, $00000010, $00000020, + $00000040, $00000080, $0000001B, $00000036, $0000006C, $000000D8, + $000000AB, $0000004D, $0000009A, $0000002F, $0000005E, $000000BC, + $00000063, $000000C6, $00000097, $00000035, $0000006A, $000000D4, + $000000B3, $0000007D, $000000FA, $000000EF, $000000C5, $00000091 + ); + + ForwardTable: array [0..255] of longword = ( + $A56363C6, $847C7CF8, $997777EE, $8D7B7BF6, $0DF2F2FF, $BD6B6BD6, $B16F6FDE, $54C5C591, + $50303060, $03010102, $A96767CE, $7D2B2B56, $19FEFEE7, $62D7D7B5, $E6ABAB4D, $9A7676EC, + $45CACA8F, $9D82821F, $40C9C989, $877D7DFA, $15FAFAEF, $EB5959B2, $C947478E, $0BF0F0FB, + $ECADAD41, $67D4D4B3, $FDA2A25F, $EAAFAF45, $BF9C9C23, $F7A4A453, $967272E4, $5BC0C09B, + $C2B7B775, $1CFDFDE1, $AE93933D, $6A26264C, $5A36366C, $413F3F7E, $02F7F7F5, $4FCCCC83, + $5C343468, $F4A5A551, $34E5E5D1, $08F1F1F9, $937171E2, $73D8D8AB, $53313162, $3F15152A, + $0C040408, $52C7C795, $65232346, $5EC3C39D, $28181830, $A1969637, $0F05050A, $B59A9A2F, + $0907070E, $36121224, $9B80801B, $3DE2E2DF, $26EBEBCD, $6927274E, $CDB2B27F, $9F7575EA, + $1B090912, $9E83831D, $742C2C58, $2E1A1A34, $2D1B1B36, $B26E6EDC, $EE5A5AB4, $FBA0A05B, + $F65252A4, $4D3B3B76, $61D6D6B7, $CEB3B37D, $7B292952, $3EE3E3DD, $712F2F5E, $97848413, + $F55353A6, $68D1D1B9, $00000000, $2CEDEDC1, $60202040, $1FFCFCE3, $C8B1B179, $ED5B5BB6, + $BE6A6AD4, $46CBCB8D, $D9BEBE67, $4B393972, $DE4A4A94, $D44C4C98, $E85858B0, $4ACFCF85, + $6BD0D0BB, $2AEFEFC5, $E5AAAA4F, $16FBFBED, $C5434386, $D74D4D9A, $55333366, $94858511, + $CF45458A, $10F9F9E9, $06020204, $817F7FFE, $F05050A0, $443C3C78, $BA9F9F25, $E3A8A84B, + $F35151A2, $FEA3A35D, $C0404080, $8A8F8F05, $AD92923F, $BC9D9D21, $48383870, $04F5F5F1, + $DFBCBC63, $C1B6B677, $75DADAAF, $63212142, $30101020, $1AFFFFE5, $0EF3F3FD, $6DD2D2BF, + $4CCDCD81, $140C0C18, $35131326, $2FECECC3, $E15F5FBE, $A2979735, $CC444488, $3917172E, + $57C4C493, $F2A7A755, $827E7EFC, $473D3D7A, $AC6464C8, $E75D5DBA, $2B191932, $957373E6, + $A06060C0, $98818119, $D14F4F9E, $7FDCDCA3, $66222244, $7E2A2A54, $AB90903B, $8388880B, + $CA46468C, $29EEEEC7, $D3B8B86B, $3C141428, $79DEDEA7, $E25E5EBC, $1D0B0B16, $76DBDBAD, + $3BE0E0DB, $56323264, $4E3A3A74, $1E0A0A14, $DB494992, $0A06060C, $6C242448, $E45C5CB8, + $5DC2C29F, $6ED3D3BD, $EFACAC43, $A66262C4, $A8919139, $A4959531, $37E4E4D3, $8B7979F2, + $32E7E7D5, $43C8C88B, $5937376E, $B76D6DDA, $8C8D8D01, $64D5D5B1, $D24E4E9C, $E0A9A949, + $B46C6CD8, $FA5656AC, $07F4F4F3, $25EAEACF, $AF6565CA, $8E7A7AF4, $E9AEAE47, $18080810, + $D5BABA6F, $887878F0, $6F25254A, $722E2E5C, $241C1C38, $F1A6A657, $C7B4B473, $51C6C697, + $23E8E8CB, $7CDDDDA1, $9C7474E8, $211F1F3E, $DD4B4B96, $DCBDBD61, $868B8B0D, $858A8A0F, + $907070E0, $423E3E7C, $C4B5B571, $AA6666CC, $D8484890, $05030306, $01F6F6F7, $120E0E1C, + $A36161C2, $5F35356A, $F95757AE, $D0B9B969, $91868617, $58C1C199, $271D1D3A, $B99E9E27, + $38E1E1D9, $13F8F8EB, $B398982B, $33111122, $BB6969D2, $70D9D9A9, $898E8E07, $A7949433, + $B69B9B2D, $221E1E3C, $92878715, $20E9E9C9, $49CECE87, $FF5555AA, $78282850, $7ADFDFA5, + $8F8C8C03, $F8A1A159, $80898909, $170D0D1A, $DABFBF65, $31E6E6D7, $C6424284, $B86868D0, + $C3414182, $B0999929, $772D2D5A, $110F0F1E, $CBB0B07B, $FC5454A8, $D6BBBB6D, $3A16162C + ); + + LastForwardTable: array [0..255] of longword = ( + $00000063, $0000007C, $00000077, $0000007B, $000000F2, $0000006B, $0000006F, $000000C5, + $00000030, $00000001, $00000067, $0000002B, $000000FE, $000000D7, $000000AB, $00000076, + $000000CA, $00000082, $000000C9, $0000007D, $000000FA, $00000059, $00000047, $000000F0, + $000000AD, $000000D4, $000000A2, $000000AF, $0000009C, $000000A4, $00000072, $000000C0, + $000000B7, $000000FD, $00000093, $00000026, $00000036, $0000003F, $000000F7, $000000CC, + $00000034, $000000A5, $000000E5, $000000F1, $00000071, $000000D8, $00000031, $00000015, + $00000004, $000000C7, $00000023, $000000C3, $00000018, $00000096, $00000005, $0000009A, + $00000007, $00000012, $00000080, $000000E2, $000000EB, $00000027, $000000B2, $00000075, + $00000009, $00000083, $0000002C, $0000001A, $0000001B, $0000006E, $0000005A, $000000A0, + $00000052, $0000003B, $000000D6, $000000B3, $00000029, $000000E3, $0000002F, $00000084, + $00000053, $000000D1, $00000000, $000000ED, $00000020, $000000FC, $000000B1, $0000005B, + $0000006A, $000000CB, $000000BE, $00000039, $0000004A, $0000004C, $00000058, $000000CF, + $000000D0, $000000EF, $000000AA, $000000FB, $00000043, $0000004D, $00000033, $00000085, + $00000045, $000000F9, $00000002, $0000007F, $00000050, $0000003C, $0000009F, $000000A8, + $00000051, $000000A3, $00000040, $0000008F, $00000092, $0000009D, $00000038, $000000F5, + $000000BC, $000000B6, $000000DA, $00000021, $00000010, $000000FF, $000000F3, $000000D2, + $000000CD, $0000000C, $00000013, $000000EC, $0000005F, $00000097, $00000044, $00000017, + $000000C4, $000000A7, $0000007E, $0000003D, $00000064, $0000005D, $00000019, $00000073, + $00000060, $00000081, $0000004F, $000000DC, $00000022, $0000002A, $00000090, $00000088, + $00000046, $000000EE, $000000B8, $00000014, $000000DE, $0000005E, $0000000B, $000000DB, + $000000E0, $00000032, $0000003A, $0000000A, $00000049, $00000006, $00000024, $0000005C, + $000000C2, $000000D3, $000000AC, $00000062, $00000091, $00000095, $000000E4, $00000079, + $000000E7, $000000C8, $00000037, $0000006D, $0000008D, $000000D5, $0000004E, $000000A9, + $0000006C, $00000056, $000000F4, $000000EA, $00000065, $0000007A, $000000AE, $00000008, + $000000BA, $00000078, $00000025, $0000002E, $0000001C, $000000A6, $000000B4, $000000C6, + $000000E8, $000000DD, $00000074, $0000001F, $0000004B, $000000BD, $0000008B, $0000008A, + $00000070, $0000003E, $000000B5, $00000066, $00000048, $00000003, $000000F6, $0000000E, + $00000061, $00000035, $00000057, $000000B9, $00000086, $000000C1, $0000001D, $0000009E, + $000000E1, $000000F8, $00000098, $00000011, $00000069, $000000D9, $0000008E, $00000094, + $0000009B, $0000001E, $00000087, $000000E9, $000000CE, $00000055, $00000028, $000000DF, + $0000008C, $000000A1, $00000089, $0000000D, $000000BF, $000000E6, $00000042, $00000068, + $00000041, $00000099, $0000002D, $0000000F, $000000B0, $00000054, $000000BB, $00000016 + ); + + InverseTable: array [0..255] of longword = ( + $50A7F451, $5365417E, $C3A4171A, $965E273A, $CB6BAB3B, $F1459D1F, $AB58FAAC, $9303E34B, + $55FA3020, $F66D76AD, $9176CC88, $254C02F5, $FCD7E54F, $D7CB2AC5, $80443526, $8FA362B5, + $495AB1DE, $671BBA25, $980EEA45, $E1C0FE5D, $02752FC3, $12F04C81, $A397468D, $C6F9D36B, + $E75F8F03, $959C9215, $EB7A6DBF, $DA595295, $2D83BED4, $D3217458, $2969E049, $44C8C98E, + $6A89C275, $78798EF4, $6B3E5899, $DD71B927, $B64FE1BE, $17AD88F0, $66AC20C9, $B43ACE7D, + $184ADF63, $82311AE5, $60335197, $457F5362, $E07764B1, $84AE6BBB, $1CA081FE, $942B08F9, + $58684870, $19FD458F, $876CDE94, $B7F87B52, $23D373AB, $E2024B72, $578F1FE3, $2AAB5566, + $0728EBB2, $03C2B52F, $9A7BC586, $A50837D3, $F2872830, $B2A5BF23, $BA6A0302, $5C8216ED, + $2B1CCF8A, $92B479A7, $F0F207F3, $A1E2694E, $CDF4DA65, $D5BE0506, $1F6234D1, $8AFEA6C4, + $9D532E34, $A055F3A2, $32E18A05, $75EBF6A4, $39EC830B, $AAEF6040, $069F715E, $51106EBD, + $F98A213E, $3D06DD96, $AE053EDD, $46BDE64D, $B58D5491, $055DC471, $6FD40604, $FF155060, + $24FB9819, $97E9BDD6, $CC434089, $779ED967, $BD42E8B0, $888B8907, $385B19E7, $DBEEC879, + $470A7CA1, $E90F427C, $C91E84F8, $00000000, $83868009, $48ED2B32, $AC70111E, $4E725A6C, + $FBFF0EFD, $5638850F, $1ED5AE3D, $27392D36, $64D90F0A, $21A65C68, $D1545B9B, $3A2E3624, + $B1670A0C, $0FE75793, $D296EEB4, $9E919B1B, $4FC5C080, $A220DC61, $694B775A, $161A121C, + $0ABA93E2, $E52AA0C0, $43E0223C, $1D171B12, $0B0D090E, $ADC78BF2, $B9A8B62D, $C8A91E14, + $8519F157, $4C0775AF, $BBDD99EE, $FD607FA3, $9F2601F7, $BCF5725C, $C53B6644, $347EFB5B, + $7629438B, $DCC623CB, $68FCEDB6, $63F1E4B8, $CADC31D7, $10856342, $40229713, $2011C684, + $7D244A85, $F83DBBD2, $1132F9AE, $6DA129C7, $4B2F9E1D, $F330B2DC, $EC52860D, $D0E3C177, + $6C16B32B, $99B970A9, $FA489411, $2264E947, $C48CFCA8, $1A3FF0A0, $D82C7D56, $EF903322, + $C74E4987, $C1D138D9, $FEA2CA8C, $360BD498, $CF81F5A6, $28DE7AA5, $268EB7DA, $A4BFAD3F, + $E49D3A2C, $0D927850, $9BCC5F6A, $62467E54, $C2138DF6, $E8B8D890, $5EF7392E, $F5AFC382, + $BE805D9F, $7C93D069, $A92DD56F, $B31225CF, $3B99ACC8, $A77D1810, $6E639CE8, $7BBB3BDB, + $097826CD, $F418596E, $01B79AEC, $A89A4F83, $656E95E6, $7EE6FFAA, $08CFBC21, $E6E815EF, + $D99BE7BA, $CE366F4A, $D4099FEA, $D67CB029, $AFB2A431, $31233F2A, $3094A5C6, $C066A235, + $37BC4E74, $A6CA82FC, $B0D090E0, $15D8A733, $4A9804F1, $F7DAEC41, $0E50CD7F, $2FF69117, + $8DD64D76, $4DB0EF43, $544DAACC, $DF0496E4, $E3B5D19E, $1B886A4C, $B81F2CC1, $7F516546, + $04EA5E9D, $5D358C01, $737487FA, $2E410BFB, $5A1D67B3, $52D2DB92, $335610E9, $1347D66D, + $8C61D79A, $7A0CA137, $8E14F859, $893C13EB, $EE27A9CE, $35C961B7, $EDE51CE1, $3CB1477A, + $59DFD29C, $3F73F255, $79CE1418, $BF37C773, $EACDF753, $5BAAFD5F, $146F3DDF, $86DB4478, + $81F3AFCA, $3EC468B9, $2C342438, $5F40A3C2, $72C31D16, $0C25E2BC, $8B493C28, $41950DFF, + $7101A839, $DEB30C08, $9CE4B4D8, $90C15664, $6184CB7B, $70B632D5, $745C6C48, $4257B8D0 + ); + + LastInverseTable: array [0..255] of longword = ( + $00000052, $00000009, $0000006A, $000000D5, $00000030, $00000036, $000000A5, $00000038, + $000000BF, $00000040, $000000A3, $0000009E, $00000081, $000000F3, $000000D7, $000000FB, + $0000007C, $000000E3, $00000039, $00000082, $0000009B, $0000002F, $000000FF, $00000087, + $00000034, $0000008E, $00000043, $00000044, $000000C4, $000000DE, $000000E9, $000000CB, + $00000054, $0000007B, $00000094, $00000032, $000000A6, $000000C2, $00000023, $0000003D, + $000000EE, $0000004C, $00000095, $0000000B, $00000042, $000000FA, $000000C3, $0000004E, + $00000008, $0000002E, $000000A1, $00000066, $00000028, $000000D9, $00000024, $000000B2, + $00000076, $0000005B, $000000A2, $00000049, $0000006D, $0000008B, $000000D1, $00000025, + $00000072, $000000F8, $000000F6, $00000064, $00000086, $00000068, $00000098, $00000016, + $000000D4, $000000A4, $0000005C, $000000CC, $0000005D, $00000065, $000000B6, $00000092, + $0000006C, $00000070, $00000048, $00000050, $000000FD, $000000ED, $000000B9, $000000DA, + $0000005E, $00000015, $00000046, $00000057, $000000A7, $0000008D, $0000009D, $00000084, + $00000090, $000000D8, $000000AB, $00000000, $0000008C, $000000BC, $000000D3, $0000000A, + $000000F7, $000000E4, $00000058, $00000005, $000000B8, $000000B3, $00000045, $00000006, + $000000D0, $0000002C, $0000001E, $0000008F, $000000CA, $0000003F, $0000000F, $00000002, + $000000C1, $000000AF, $000000BD, $00000003, $00000001, $00000013, $0000008A, $0000006B, + $0000003A, $00000091, $00000011, $00000041, $0000004F, $00000067, $000000DC, $000000EA, + $00000097, $000000F2, $000000CF, $000000CE, $000000F0, $000000B4, $000000E6, $00000073, + $00000096, $000000AC, $00000074, $00000022, $000000E7, $000000AD, $00000035, $00000085, + $000000E2, $000000F9, $00000037, $000000E8, $0000001C, $00000075, $000000DF, $0000006E, + $00000047, $000000F1, $0000001A, $00000071, $0000001D, $00000029, $000000C5, $00000089, + $0000006F, $000000B7, $00000062, $0000000E, $000000AA, $00000018, $000000BE, $0000001B, + $000000FC, $00000056, $0000003E, $0000004B, $000000C6, $000000D2, $00000079, $00000020, + $0000009A, $000000DB, $000000C0, $000000FE, $00000078, $000000CD, $0000005A, $000000F4, + $0000001F, $000000DD, $000000A8, $00000033, $00000088, $00000007, $000000C7, $00000031, + $000000B1, $00000012, $00000010, $00000059, $00000027, $00000080, $000000EC, $0000005F, + $00000060, $00000051, $0000007F, $000000A9, $00000019, $000000B5, $0000004A, $0000000D, + $0000002D, $000000E5, $0000007A, $0000009F, $00000093, $000000C9, $0000009C, $000000EF, + $000000A0, $000000E0, $0000003B, $0000004D, $000000AE, $0000002A, $000000F5, $000000B0, + $000000C8, $000000EB, $000000BB, $0000003C, $00000083, $00000053, $00000099, $00000061, + $00000017, $0000002B, $00000004, $0000007E, $000000BA, $00000077, $000000D6, $00000026, + $000000E1, $00000069, $00000014, $00000063, $00000055, $00000021, $0000000C, $0000007D + ); + +procedure ExpandAESKeyForEncryption(const Key: TAESKey128; var ExpandedKey: TAESExpandedKey128); +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 3] shl 24) or (ExpandedKey[I + 3] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 4] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 5] := ExpandedKey[I + 1] xor ExpandedKey[I + 4]; + ExpandedKey[I + 6] := ExpandedKey[I + 2] xor ExpandedKey[I + 5]; + ExpandedKey[I + 7] := ExpandedKey[I + 3] xor ExpandedKey[I + 6]; + Inc(I, 4); + until I >= 40; +end; + +procedure ExpandAESKeyForEncryption(const Key: TAESKey192; var ExpandedKey: TAESExpandedKey192); overload; +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + ExpandedKey[4] := PLongWord(@Key[16])^; + ExpandedKey[5] := PLongWord(@Key[20])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 5] shl 24) or (ExpandedKey[I + 5] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 6] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 7] := ExpandedKey[I + 1] xor ExpandedKey[I + 6]; + ExpandedKey[I + 8] := ExpandedKey[I + 2] xor ExpandedKey[I + 7]; + ExpandedKey[I + 9] := ExpandedKey[I + 3] xor ExpandedKey[I + 8]; + ExpandedKey[I + 10] := ExpandedKey[I + 4] xor ExpandedKey[I + 9]; + ExpandedKey[I + 11] := ExpandedKey[I + 5] xor ExpandedKey[I + 10]; + Inc(I, 6); + until I >= 46; +end; + +procedure ExpandAESKeyForEncryption(const Key: TAESKey256; var ExpandedKey: TAESExpandedKey256); overload; +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + ExpandedKey[4] := PLongWord(@Key[16])^; + ExpandedKey[5] := PLongWord(@Key[20])^; + ExpandedKey[6] := PLongWord(@Key[24])^; + ExpandedKey[7] := PLongWord(@Key[28])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 7] shl 24) or (ExpandedKey[I + 7] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 8] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 9] := ExpandedKey[I + 1] xor ExpandedKey[I + 8]; + ExpandedKey[I + 10] := ExpandedKey[I + 2] xor ExpandedKey[I + 9]; + ExpandedKey[I + 11] := ExpandedKey[I + 3] xor ExpandedKey[I + 10]; + W0 := LastForwardTable[Byte(ExpandedKey[I + 11])]; + W1 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 8)]; + W2 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 16)]; + W3 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 24)]; + ExpandedKey[I + 12] := ExpandedKey[I + 4] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))); + ExpandedKey[I + 13] := ExpandedKey[I + 5] xor ExpandedKey[I + 12]; + ExpandedKey[I + 14] := ExpandedKey[I + 6] xor ExpandedKey[I + 13]; + ExpandedKey[I + 15] := ExpandedKey[I + 7] xor ExpandedKey[I + 14]; + Inc(I, 8); + until I >= 52; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 9 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 11 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 10 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 11 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 13 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 10 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 11 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 12 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // round 13 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[52]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[53]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[54]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[55]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[56]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[57]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[58]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[59]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey128); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 9 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey128; var ExpandedKey: TAESExpandedKey128); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey192); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 11 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey192; var ExpandedKey: TAESExpandedKey192); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey256); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 13 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey256; var ExpandedKey: TAESExpandedKey256); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[40]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[41]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[42]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[43]; + // performing transformations 9 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[48]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[49]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[50]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[51]; + // performing transformations 11 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 10 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 11 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[56]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[57]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[58]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[59]; + // performing transformations 13 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[52]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[53]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[54]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[55]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 10 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 11 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 12 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 13 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +// Stream encryption routines (ECB mode) + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +// Stream decryption routines (ECB mode) + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +// Stream encryption routines (CBC mode) + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +// Stream decryption routines (CBC mode) + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +end. diff --git a/盛纺贸易管理/FX16082.XLS b/盛纺贸易管理/FX16082.XLS new file mode 100644 index 0000000000000000000000000000000000000000..627b5519e95c6597f5ef5344742db94336faf33a GIT binary patch literal 144 zcmb1R2udx;FDmg(OwP#6OI3jI6x=d%QWcE#45XYG7#PBV7y%d&Oa^`im(;Yx(wq{7 qfTGO2lGGvrsN@77{m+R(5zTa$%;b{H{Jg}XN~jG6QZUp0LKpxWX&-9< literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/FieldExportSet/.INI b/盛纺贸易管理/FieldExportSet/.INI new file mode 100644 index 0000000..51d8293 --- /dev/null +++ b/盛纺贸易管理/FieldExportSet/.INI @@ -0,0 +1,2 @@ +[] +ֶ=Begin//ɫ/ⳤ/ȵλ//׺ diff --git a/盛纺贸易管理/FieldExportSet/检验分析订单.INI b/盛纺贸易管理/FieldExportSet/检验分析订单.INI new file mode 100644 index 0000000..423fd63 --- /dev/null +++ b/盛纺贸易管理/FieldExportSet/检验分析订单.INI @@ -0,0 +1,2 @@ +[] +ֶ=Begin///ɫ//()/õ diff --git a/盛纺贸易管理/FieldExportSet/检验报告.INI b/盛纺贸易管理/FieldExportSet/检验报告.INI new file mode 100644 index 0000000..65d6a8d --- /dev/null +++ b/盛纺贸易管理/FieldExportSet/检验报告.INI @@ -0,0 +1,2 @@ +[] +ֶ=Begin/ָʾ/Ⱦ׺//ɫ/ŷ//ӹ///ʱ///Ƥ//ë//ŷ(cm)/(g/O)/õ㳤/ȵλ//õ/õ/ϵ//ɫ(Ӣ)/ջ˾/ͬ/ջַ/PO#/״̬//ɫ/ͺ diff --git a/盛纺贸易管理/FieldExportSet/生产指示单明细列表.INI b/盛纺贸易管理/FieldExportSet/生产指示单明细列表.INI new file mode 100644 index 0000000..d5a2158 --- /dev/null +++ b/盛纺贸易管理/FieldExportSet/生产指示单明细列表.INI @@ -0,0 +1,2 @@ +[] +ֶ=Begin//ɫ/ɫ(Ӣ)/ͺ//λ/ע diff --git a/盛纺贸易管理/FieldExportSet/采购单列表.INI b/盛纺贸易管理/FieldExportSet/采购单列表.INI new file mode 100644 index 0000000..8ea03c0 --- /dev/null +++ b/盛纺贸易管理/FieldExportSet/采购单列表.INI @@ -0,0 +1,2 @@ +[] +ֶ=Begin/ɹ/Fabric/ diff --git a/盛纺贸易管理/File.INI b/盛纺贸易管理/File.INI new file mode 100644 index 0000000..824f0fd --- /dev/null +++ b/盛纺贸易管理/File.INI @@ -0,0 +1,7 @@ +[] +̨־= +̨= +˿ں= +˿Dllļ= +Ƿ= +Dllļ=JCYData.DLL diff --git a/盛纺贸易管理/JZCRS232U.INI b/盛纺贸易管理/JZCRS232U.INI new file mode 100644 index 0000000..fde97b3 --- /dev/null +++ b/盛纺贸易管理/JZCRS232U.INI @@ -0,0 +1,7 @@ +[ϵͳ] +ں=com3 +=2400 +Уλ=0 +λ=8 +ֹͣλ=0 +Ƶ=100 diff --git a/盛纺贸易管理/OrderManage.dof b/盛纺贸易管理/OrderManage.dof new file mode 100644 index 0000000..30929e3 --- /dev/null +++ b/盛纺贸易管理/OrderManage.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=D:\ͨERP +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=F:\selfware_83398\selfware\ֿ\Ŀ\self\\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/盛纺贸易管理/ProjectGroup1.bpg b/盛纺贸易管理/ProjectGroup1.bpg new file mode 100644 index 0000000..7c050f6 --- /dev/null +++ b/盛纺贸易管理/ProjectGroup1.bpg @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = testDll.exe ProductPrice.dll +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + +testDll.exe: testDll.dpr + $(DCC) + +ProductPrice.dll: ProductPrice.dpr + $(DCC) + + diff --git a/盛纺贸易管理/RCInspection.cfg b/盛纺贸易管理/RCInspection.cfg new file mode 100644 index 0000000..6c57635 --- /dev/null +++ b/盛纺贸易管理/RCInspection.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/盛纺贸易管理/RCInspection.dof b/盛纺贸易管理/RCInspection.dof new file mode 100644 index 0000000..c0c0e6a --- /dev/null +++ b/盛纺贸易管理/RCInspection.dof @@ -0,0 +1,141 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\Ⱦ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; diff --git a/盛纺贸易管理/RCInspection.res b/盛纺贸易管理/RCInspection.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/SYSTEMSET.ini b/盛纺贸易管理/SYSTEMSET.ini new file mode 100644 index 0000000..89bc0c5 --- /dev/null +++ b/盛纺贸易管理/SYSTEMSET.ini @@ -0,0 +1,3 @@ +[SERVER] +ַ=60.190.195.86,7781 +=XXXXXXX1 \ No newline at end of file diff --git a/盛纺贸易管理/TradeManage.cfg b/盛纺贸易管理/TradeManage.cfg new file mode 100644 index 0000000..e9c1cc1 --- /dev/null +++ b/盛纺贸易管理/TradeManage.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/盛纺贸易管理/TradeManage.dof b/盛纺贸易管理/TradeManage.dof new file mode 100644 index 0000000..17205e6 --- /dev/null +++ b/盛纺贸易管理/TradeManage.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\Ŀ\Ŀ\ʢ\ʢó׹\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/盛纺贸易管理/TradeManage.dpr b/盛纺贸易管理/TradeManage.dpr new file mode 100644 index 0000000..9973760 --- /dev/null +++ b/盛纺贸易管理/TradeManage.dpr @@ -0,0 +1,101 @@ +library TradeManage; + +uses + SysUtils, + classes, + forms, + WinTypes, + WinProcs, + U_DataLink in 'U_DataLink.pas' {DataLink_TradeManage: TDataModule}, + U_GetDllForm in 'U_GetDllForm.pas', + U_ZDYHelpSel in '..\..\..\ThreeFun\Form\U_ZDYHelpSel.pas' {frmZDYHelpSel}, + U_SelExportField in '..\..\..\ThreeFun\Fun\U_SelExportField.pas' {frmSelExportField}, + U_ColumnSet in '..\..\..\ThreeFun\Form\U_ColumnSet.pas' {frmColumnSet}, + U_ZDYHelp in '..\..\..\ThreeFun\Form\U_ZDYHelp.pas' {frmZDYHelp}, + U_GetAddRess in '..\..\..\ThreeFun\Form\U_GetAddRess.pas', + U_iniParam in 'U_iniParam.pas', + AES in 'AES.pas', + ElAES in 'ElAES.pas', + U_ColumnBandSet in '..\..\..\ThreeFun\Form\U_ColumnBandSet.pas' {frmColumnBandSet}, + U_SelPrintFieldNew in '..\..\..\ThreeFun\Form\U_SelPrintFieldNew.pas' {frmSelPrintFieldNew}, + U_LabelPrint in 'U_LabelPrint.pas' {frmLabelPrint}, + U_ConInPutNX in 'U_ConInPutNX.pas' {frmConInPutNX}, + U_ProductOrderAnPaiGQX in 'U_ProductOrderAnPaiGQX.pas' {frmProductOrderAnPaiGQX}, + U_BanCpCkSaoM in 'U_BanCpCkSaoM.pas' {frmBanCpCkSaoM}, + U_CpRkSaoMNewDB in 'U_CpRkSaoMNewDB.pas' {frmCpRkSaoMNewDB}, + U_OrderSelRK in 'U_OrderSelRK.pas' {frmOrderSelRK}, + U_CKJYList in 'U_CKJYList.pas' {frmCKJYList}, + U_BanCpHCSaoM in 'U_BanCpHCSaoM.pas' {frmBanCpHCSaoM}, + U_ClothHCList in 'U_ClothHCList.pas' {frmClothHCList}, + U_ClothContractInPutPB in 'U_ClothContractInPutPB.pas' {frmClothContractInPutPB}, + U_ContractListNX in 'U_ContractListNX.pas' {frmContractListNX}, + U_ClothContractListDHSXQJG in 'U_ClothContractListDHSXQJG.pas' {frmClothContractListDHSXQJG}, + U_OrderJDList in 'U_OrderJDList.pas' {frmOrderJDList}, + U_ClothContractListWJG in 'U_ClothContractListWJG.pas' {frmClothContractListWJG}, + U_BefChkHX in 'U_BefChkHX.pas' {frmBefChkHX}, + U_ClothContractInPut in 'U_ClothContractInPut.pas' {frmClothContractInPut}, + U_ClothContractList in 'U_ClothContractList.pas' {frmClothContractList}, + U_ClothContractListDH in 'U_ClothContractListDH.pas' {frmClothContractListDH}, + U_ClothContractInPutHZ in 'U_ClothContractInPutHZ.pas' {frmClothContractInPutHZ}, + U_OrderInPut in 'U_OrderInPut.pas' {frmOrderInPut}, + U_CKProductBCPOutList in 'U_CKProductBCPOutList.pas' {frmCKProductBCPOutList}, + U_ClothPDInfoList in 'U_ClothPDInfoList.pas' {frmClothPDInfoList}, + U_ClothContractListDHSX in 'U_ClothContractListDHSX.pas' {frmClothContractListDHSX}, + U_CpRkSaoMNew in 'U_CpRkSaoMNew.pas' {frmCpRkSaoMNew}, + U_JYOrderCDOne_LR in 'U_JYOrderCDOne_LR.pas' {frmJYOrderCDOne_LR}, + U_Fun10 in '..\..\..\ThreeFun\Fun\U_Fun10.pas', + U_OrderInPut_FB in 'U_OrderInPut_FB.pas' {frmOrderInPut_FB}, + U_ProductOrderNewList_FB in 'U_ProductOrderNewList_FB.pas' {frmProductOrderNewList_FB}, + U_HCList in 'U_HCList.pas' {frmHCList}, + U_OrderInPut_HYWT in 'U_OrderInPut_HYWT.pas' {frmorderInput_HYWT}, + U_orderInPut_HYWT_Sub in 'U_orderInPut_HYWT_Sub.pas' {FrmOrderInPut_HYWT_Sub}, + U_ModulePromptList in 'U_ModulePromptList.pas' {frmModulePromptList}, + U_ProductOrderNewList_CY_Sel in 'U_ProductOrderNewList_CY_Sel.pas' {frmProductOrderNewList_CY_Sel}, + U_Fun in '..\..\..\ThreeFun\Fun\U_Fun.pas', + U_FanYangList in 'U_FanYangList.pas' {FrmFanYangList}, + U_FanYangListHZ in 'U_FanYangListHZ.pas' {FrmFanYangListHZ}, + U_CPGangNo in 'U_CPGangNo.pas' {frmCPGangNo}, + U_JYMJIDPRINT in 'U_JYMJIDPRINT.pas' {frmJYMJIDPRINT}, + U_CompressionFun in '..\..\..\ThreeFun\Fun\U_CompressionFun.pas', + U_FZCMain_cx in 'U_FZCMain_cx.pas' {frmFZCMain_cx}, + U_Contract_Main in 'U_Contract_Main.pas' {frmContract_Main}, + U_ProductOrder_CX in 'U_ProductOrder_CX.pas' {FrmProductOrder_CX}, + U_OrderJD in 'U_OrderJD.pas' {frmOrderJD}, + U_GYSList in 'U_GYSList.pas' {frmGYSList}, + U_FjList10 in '..\..\..\ThreeFun\Form\U_FjList10.pas' {frmFjList10}, + U_OrderInPutPrice in 'U_OrderInPutPrice.pas' {frmOrderInPutPrice}, + U_ContractSelList in 'U_ContractSelList.pas' {frmContractSelList}, + U_CPManageFMSel in 'U_CPManageFMSel.pas' {frmCPManageFMSel}, + U_RTFun in '..\..\..\ThreeFun\Fun\U_RTFun.pas', + MovePanel in '..\..\..\ThreeFun\Form\MovePanel.pas', + U_FjList_RZ in 'U_FjList_RZ.pas' {frmFjList_RZ}, + U_XHList_ceshi1 in 'U_XHList_ceshi1.pas' {frmXHList_ceshi1}, + U_ProductOrderNewList_JD in 'U_ProductOrderNewList_JD.pas' {frmProductOrderNewList_JD}, + U_HuiruhGPIjiluCX in 'U_HuiruhGPIjiluCX.pas' {frmHuiruhGPIjiluCX}, + U_SKCR_CX in 'U_SKCR_CX.pas' {frmSKCR_CX}, + U_KHTopList in 'U_KHTopList.pas' {frmKHTopList}; + +{$R *.res} + +procedure DllEnterPoint(dwReason: DWORD);far;stdcall; +begin + DLLProc := @DLLEnterPoint; + DllEnterPoint(DLL_PROCESS_ATTACH); +end; + +procedure DLLUnloadProc(Reason: Integer); register; +begin +{ if (Reason = DLL_PROCESS_DETACH) or (Reason=DLL_THREAD_DETACH) then + Application:=NewDllApp; } +end; +exports + GetDllForm; +begin + try + NewDllApp:=Application; + DLLProc := @DLLUnloadProc; + except + + end; +end. + diff --git a/盛纺贸易管理/TradeManage.rar b/盛纺贸易管理/TradeManage.rar new file mode 100644 index 0000000000000000000000000000000000000000..ef4932cc030788dc191fa072945c90d2e5b40886 GIT binary patch literal 2184268 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 z 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 z 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

YR3;~saT}N7%h;2>qp-= z^smKAU!n@w4RV^^%>zteoCn%IC-@HZas8eL6Vw-g?2!!P_%-s_{@DtAiWtO>Bb74F{F2MAx{Bvtu+h(bH&D;1j07)4j* zx|iPCrOokt>wIy_ug@t>>X+JH2!%h6uF$-2nvJk+w;XvNuC1v)xNWFZR}|l1NPn=b z%@4gD`AVdKo^ZsCv|6{m4}FWHBC?aT=IF=Y_MtPA0q$)pLfg->rKsWXe#*7>K>Hyu zKFW}X-tzbqKd<4{_^)@AB7Nxk-zj~EVlI!qFS$tV!esX0Y|h*!TW%k6Yi<_S?Zbxa zZW}rOAeu4vmHSG}vZXEYeWf?r38%gl?w$WIowA~?Pwj@|kG{Vxl)mz}`(f-{eX#Uz ze$afJK^#v1pqX(&yq#_RwcqL`_fjt9wqtCtyJPWV9srT=vZa((61;l;}R)TY^L=^k*@Rd0@+w0S?1nYm3#8}?(fcwQFW&9K6M=a zD6DnV(0E;ld&MfOmGIYkqHdgz1e-haRuLdiA6LzDX*jn-2mH=ZL~s_~PhKa;jRAkT_a^l(EykmF8P{*$VY+bcvxfU`ha+2wUnjQ6*hcMdmY(rFj~wlE zP>#=im~2K6@7p;LC;DtPBRP{!E*0B4FuXWp6HbcDBng~*9lHWYff4O@b9;!3jc|PG ziUgNrMi$Bh{Ty)WS<7u6m?0N|Ff?90%0miN690OwkXHI2TPJ9`BvB+6oM&?aaT7gJ4x;Bm2Iwb zITt@(g*bVDDMF;crck)6Z=1sC>H@h6QyWNzK9?+pLz`upR9=Bi4ShiA|G53cq$;1} z<^-?4F(zQ#j}bV9(0hX_9UsbFqHU}$Tk2Es+3M4}l=OL@CX|m}w`%`@cZ{dHJ|TaI z-^R8}_;y-`ZkwmK#;qtFuu>GzWsy{!9lE z2S0j|8BFQakW^yw6z+<;2RShusL9)2}T#j1qdsZ3A14<*UqN26hjoJ^Vl{$$UJ9oVURg-w#J_9T>A7fmiq3a zJ+q9W5E`2psd&imwmXUxITvrp{thEB;g}S8!;H|r{Y#$0Vyy+Pe!Ax$KM!oZ(5P`K ztd?6doz5Pe%9$et?qyP!NB*a9BgEk$-$>@Tg5Ub1T49)vH;#*8!w;Kqk<7w!?md%t z&GW?;I+Zcs`qAjsJU-=O=e6^lKX#15N+*2B!$lM`K6i7G--6A>qSmwq{oxQuK8gs| zmv8s58SR97ul@vb+gWKcJg|lS@kQ}uTqhV)&af@y1bhZijIT`H8g!F|xnc^q1K6;ia$wA>-`Z z6%*grGf7(_eu!ov4j<@j%*8~Q7|AroTw~Dcwk4_U{nudVs z_d^nTy(6*X5mPGE*Smgj#G#7Rx0e-Q!3x|%79!XQacj*x78_bhfe-zYMZCb-3$%Bn za8mgx=6Xb&4^+4W|uZVD;iE8?c|9XKo06&p9D_fSA0XO#fd3Qqm+-o^)cTY6}MQ zrxufp20RFlE(ceVQgz_11JTQ-0-V^Uis!a-n7KR4tArJZGE0>Ca~aq#oVN+Qq@Za{E^B6mV>k_2t67EFZYk2sV~Q?G8^uQHJ2Vf?8EYC$`Wzy>pFLh_45pHM2m85e zJS;<*HvNWiJRr(gzB~*rB}n`=uf3m2$UCH$NFTpJ8oq#2Mc$Y%q&t??G@kJEH;QkaayF=w{%Md@t8=TxRlnQ_CJXmtzgyBIH{KaT zP5_{yZr`~cWJ8g(TBk=2M4pR4*WhyZrZb*FQ$s1cMn)*1MRMLFBiFQzrk62z*uPU+@mb3W&}+%SfpA+`h*lW`X*|ZzTFK z*29Aod~_O5cj6kAbI!bZQ5;8IKw4bhgP z?;AyQAd!mc(Ks6aMNB)<6eyk+C}a7TVv0aWgVO70j3nm09=$WQ^rdqfW6`z4gnr8D zzPw8>&7NqvwUrh0WM8-yOH(rdra4DWJ;ztlADV=NR7d-%N&B`{v9OknOTc2l8?}VK zmr^WiK=%V*nSk(^d*QEBS=|1-c>8C|LI1G6lq}`jk6KgIGFlL`9pEC~eawTj2m@Or z!0s_|b4n)z@d_@O7~ZISwNtq5$uEUt$>eAY&D}I-Y+4Oc8W0knGs9%CR3=EN)i$fq zNB0`0;}YyiAMkTY4zRjSU#7kr%PF)&8vf|v{qoUl=BX-Eur#5bc>`fAEWgHEs!Zf+ zEVc8BB>3qh7$RnfMO!Q3G)WQ_yc;u- ztSBX;^u(PB+JdX8c-C~0gN`V9Li0F!EHUZ-1h0a4=nYmOo`<3P3H#4&2CAUosIUrhE+WNf9mrE9FP|U70*`6IaV$ zANbF4ywH44^5jme-`Zv1RDZwh2(l%7cLsEG&|Bzn2HE}PgQV9WX7TUp&vQDM13k`# z5A3VvfRu|NZG7neF+!1{#R@e~@`_bY2cCat*k-`bhp}g0G7*03=PDR}5%9ayiI&e) zb9{I_W?QOnrPB}E9`U*?*VO$*<5Qbec2s00|(}wkYH8d6#g@y3nep zJk(Zu%KVfs?kFR0l_U)rdcu5vsEC`dJGtcWt-k2PS@kNwQw<~)-~=FWQ;~DNf9yr! z>~(PtPu%YZ?F{T0bQ>MHk|!VU$-ndSi*#JQw!ffQU$k;O-St6^WB^Mb6y5!$FCTqH z^N04k>E<<6eeV@pr$K^G%h3`jbSfn@H>gBDhYvqcao_iMm;&5c7kUDo_KgeYEZa*j z==g~9s+%Z+k@V2MS1jtnRjv-784Yp(xM8p7S3WEwgCosH)+(4CwbS1D#2{`UoI*IG z%y9UeS#oER!w2~JKc_`=DQ&LrGo!~~!9uJpn}|IN{B!)a9CeTKVn0Qx4Zw@eM=T*8`he8C|kypwxUk3;B2B$6I-5z?{B5^ukpAYhIOWw1EhT20C zP2(ATz;VdmV9ICIMJUJ_#hJ^%Gox0-!ktwCp>A*r@0X&ZfLA~dv;|$4^oI--aB++b z-Gaq3{>&mUIL9tx@1dg@t9(&IabP{+_u++q4%|2`^9#JL2QQ^*uRAtqaw{#ZWQkht zN3(~?D?^d(58mH?i1pPmSI?FQz40;ap{$`cx@^=VhJ|~}am9Uok61K(7_b!c zRr&#+r{9K~Px}tA9ni+|ydTnu@j#lRMJR5h}6YzaB|)7aMA z8R4bXWcEE+z2+e4CJb8IJAnj2e!!HVS?9Y}{|}xMpfQZ0qCJk}w^eGRW81@ZWtVwfBe8tzUReD)s*Zc*GD)?3dbgsWOr+ zm0+Akb_)nFW^6?6fuq0jJU?FMO27+sV;)XKe6d%cM}GZKEqj>Z;U7B!q>ikGYOA^S zg5}Y7HYT-xB)CE_{V&)D@Ci(K^uwoB=*WmkSMkjEdA2^Tia<*9Z<0B*h2rbvO{r(1 z9jZ(@r&SK<-1@}c4n;o)}1TPLdM4ZLY5+nX5=pUuF#9T;s zYw5XRzME7xVOLn_vk#w^fg|sp!mHLyIDM9=_uGqHELb`k=bfOiFTL7fe#lztUiOm_ zPqPNtUCH#`^aJZ0qsTpE3QY)}FU3Yl(?FaoSqvy)nHXZYF3=Mec&o(>7x~uMJ~b-w z4|P{>DFouEo^12CgzNtBW<-zg-u$w0ocwKokZuj-q|5?rH#{4t@Wd>lmw8YQV{F*a zuPPgP$gZ5eP-)M0I{{yIhV;RAlID2r13pNMe<09sTeYesy6Eul6oePMgYw8?6+?Bu zB;wf71c3*wGAcMRjtIgYqL40AfozsMzZ3 zWAG58_I%mk&B)2wA=mRe>q#`OJ30A-jpzK>mDMf-TY$~LN0Qwjdb0O57_HNTBrJ}o z26t!=hST}4nLHV^o2?i%eQbu>)#Exe>Jh< zcUw52U5|vNtLq}|9EhZd0!w(eS^juhf&*r$96jelBSTjNpvN#h&6M`M#Shl~~pK1EDBW zb~?>)>h$j1aK#C+-;MLGRSC!H5bs1{;_pJ`z`d&84~Pt|H}CxfO#dklil^NmqmDd} z5{J6OuDpQF@peUs@KC`+8jkWr^&C}@?Tt3%T|%eR!ha+fE?=-U#9f8Bi@?DDWTNmXVF{HVS(P&iNuo|UW6s`_*Hr=*$j1{71-m#TU@1S$%NV61Sjbv@lrij8?D~h?x@=lDZm#l_HBmrp{6$u zCZaicfInR_q8fWJL)`*6`^Saj<8&S#)C&<+U{!_I?(Wj)xYjr77E9$BpIsnh*)Z7? zDw80}J3?q@QI@JNpn+uS&a-TbGi{UR#NrA5WD7uBz^`DjHj3LY*^`;nAjh2&% zzgw|vYtwwTqYG>gfQsfZ$9_4PA#ZKjC?%%?=_GP4e!kc5V6Svi5x8>-NQ;UiEgoDKo@j#@#6=)S{> z*>L5DcCKM^Msvp9Lbmtk&o;7Q!YQqRea*zQenKmeDwvDw(0qbTk-6h zy~q$2+zzTRt>x6VH*7ZT8DAa0Z0Hl9(c0Ah|FdE|d%r5X)w_>342Vl45{(1qzbO_XR?h_FIBG(aG@0#`OBbWqP)*Xclov^aIJjXJm ziq@95ar6b%Ca)=4KE;?DWeY}8kNiJ0iW)6)lqbn+(q7dV@Edk%UZjhCot{C`MP7rg zZQ)OIf(>Fk^gU#5l58OY6Z1+98U9|=P80UMzagbHsc58Gny8`w%7(x+dzQ-;&3k7o z&1mIp&2W~AV$h;UObTAoH7Wp+0i{o^txiD&%FLLUv%9;X^)P}9B6Gw9k)gLniObB)`P4rtXD%h-`fOq^8QmigJNuQl4Osg;%co9D4%c1gga!606r4 zn)g!<9{lR75s|{`+E1cH1>N3B-l?O#3SuS_C2j|o9>GXzD0my?LeP6oc_Z;7d6CXC z+4kt*m6Tep+kAm#y|SH+PZ&yypPZY3r=vbCiq9JV!8ekD{u_wAC+WgO{QW5fSc%8V#v}qUl;Qx-D_|EqFHEuNa9Iy4di18U#=nl+4K3QS*J;Mw{C$WY-f{b~%rdd}yYgcc@>Wr5!U_ zodRr6xn@gTr=gnkykpGxyk18f>u!(__*;gE{WZXK`f)#+wDv^tBGcn4A3_$V4j$!1 zhoRS@1je26t_*mPs{*cryiw=q!b#dZ{pg@>sm3&VL(jhrZ}5G6g4I_t@OnCE>+>;B zde}1QuFS_CW!zKTa`?siH!MLgla{}jF~|UJktxhWG2>_1%I_=N@sT3R*Lnkb_Z*lE z-5M9ngRgNRty9lY^qx3R*}wMia&t7gdnRS;DpE~)EuO2CZd;?x6(S4>z$!sSEMHdr z9WpjYXJ}hHP@dd75*>K2swg=vqP)vLBBYVFF5~E+Q2hAQlUT=|2;eQ8DZ8Yy3r%YZ zi&A$ImW(1TqUFmW>zSGF($X}5q3vV;MSuu&^yR|o%jm(bwD6T<$8h>A6v#E&8QJMh zq3|1zK=Xh!Xj>9mpfHD3|CVTj#nZ=$6~~4k=&^wl%v^1b=H$_xWs?f4o4}mdpP&OO z-Y7Y}D{1*WV%{mvt+}@{a~a4EXUoOn4Q;W=2%HM5KGHbAxS zbOseV5gL21p&HXnCIp_alIyBIbxsDULu?wvWJ4P}hWPNmyd z6mpcDiMbai1UDQO=twr!K8t>EL*10zJy4!pIra29Nri#%O6P=4cou4c5CUa?t)cpJ z*oIanR;dF7m9 z1h?HF$kRu}2J?1xOxuCS-DWQMNk@ZgZl~7KUS0VZ(5AFy@$4+i++bIY8G8>VI1u~( z#hMqb#N5ExuEKiEI4mz}hG_iheShEY&Q5Pg>9IpR!!WJK)DQ86xD45QA(i}_TKxmh z4;dNb$^;-8;AFDyd1a6Pu*$^O)eg!}svnr^WE_?SSLLMe!}?ai;cOo*sD7oecv}a{ zY98~ga8~19#W|D`H`@s`ZR#j0^iIx9)7rk&T<#YcE{=J?c8Fq~@M8>9 zeYK#IYry?TEsR`MidD;0vzhgL|1m2SC4JH3B4o;Gmk?Ge#J`)B(uL+cYmr{*Ok3=B z>by`~h3z2)M3dxA#&Zm4M8X`UiD#S>Z^>k| zUG;AwnK!UZHhURg#U9ZM%S|P)bH+8C(7(b~Zi!#%|EE#K6%hG8knu2qJke~4=6EZR zoQ-W|SBRp7!8~kWX2QI)> z6bWAxoc$3vW{hEfd_q5mi6{4EO&}qp(%XUkz3}pKUJ&7EuLYkOL{D7Cz9^9wU*NGo zFhrbCv%%IAg!LR$L@Un?jfP>8EXJC0M@`>IlvyrLYx=HxM;R6rQS3OSGbLKBHRIH_n8ZuZ4CJf;Y9a^S|h?$kVqxY)x}slI&CO1GRS$3%n6UknC2l zrG28%)S82nUKGSq2TIM~k#%c!$b-R?yKgplIcT#eSVCR+#l%}MN!nSNxh6ur@_*vF z_H-cZ!-E1|cFgY-ZIJ0Mccos*;>?0~4)}s=g~!~8NAcaMMOMj0%MN>F?oreTpS{7$ zDU=FyV=D-Fk$sTY-r)z-A-2kM6%zNZ=ocCLd{Ag+-qjJI!Tj9ACaB>>OEaKY8LJ=a zUQyn%9$ajjtlAD~d2%nJeXU*Ng_}uUOFIt(s(f%NALlWcUHH9ahouI06(6^fI1xbq zq3$l*R(sBo$_=8qOP7RGmk$_rHZ4BVa__(J-3gzLpLL*6yPw(SJ>k34AWxwM!d;?6 zF(PU`oVowS5$(s05VN(aC#+JGJ*C_QZsgAo z_!vrupL5g8?$&Uo>EG-B||al1LW&7J*7VE@$gci~x+Fa}6{XmF=T?~zh zT6c{idKiam0&i%ALoFe5!+Ra$dOAjCOjI1iJ6~d0U>A*4{<&z5HDTBQC$j^0QNoA^rTM?esclld$a+<`IqxY z-yke%;H!q75atw-)C9byQ;FUM4#Y_?OPsDa9CLo%*`W3Pm5~m6E~&40cWk44|AMrYkINP%tF?0pfx z%0p63hbwQCq{Bvv<=9S=X#~uc6(B|6^T(N*O0q=ZMzaeJQm6ky=%TP?ZiRHmD0KI- zA-_u%j4<%FTJN{T^5*5-TDd9Fgm))RtxKvh3KqY*5&FBA6fjUcGU{MBIlwIqAab-< zX%m_$k-iQ@in9!a6k4k%LT$rK4)A(nGRqE8KfoI!VZ zsf!ibBZ^}Zj@-TZ$7gHy98_0gZ)$&sFVRlz73h&&sPp9xk~EBQV{=0!Vc4ONz{>}{ zSjwj{SbUzZz_`Og<&d?5bgxUm#6ccdQH>m_vevYm#ZF=)K*UCm(+}!ya{f0ryxPy^ z>U1!reUe-UT)vMKt7^!WE-6-G!1KDqOXGdoMufR-TWj{#eHdi+-bPr@NS$ZC*(HBn zIsS|5U&5n9d1#qi)CFAwwGiLqmO4WWL)ZMRs&a3M4eg`=C_Dclz;_jl008q zx`98`ivDznQxl$rXT-?1gUG0djAiQ1qBSwlb(nOs39}A-5WUKmN?nGwVJ#WmncMbt z)}v8Z`4?Xe+xtnC%fVBmEyUuzaz@6V9)kLm6U!2WE2&M2t(A7!ET*ea$m#x2!a5Y@ zerj17m8AAS-SlEpNV6oQ<5obVt1$wwk0t1s>n4yS?|ip@OnN)8R!~poP|=Zeqw=R3 z(VjC_r&8Y=VN%RqC+PxyAre>*7meJD4sug}rPU8p*!h7a-a*O`$BMG2owc!(pCsg6e7PndPzI5XaH+Y7p_|Z3pPs3_G?Df^95Ner1EGjFs6! z&krxb(HAO*?DIWpx+L$ZHXqkt&ddnT(*3E|{I3aESP zC>!6hOl;0(c&p|yGhm;N%_BjOWd{ExX%IG<^uJ=A;u}7S0yen=;*L#*x7dws&4@>g z$GM)^FjeueCDR-bJANSlOvlG4y!nF$or!+UKfGLATNT&xL{dbNRmu|wT0dt?rPke4 zb6Z*DC+fiqC5voWJ1~tht+*$zaU*vUV%VeX-FuAQ&?#SdGD8Xj2}|MF+BPHhLZ=5a1; z@j5%l5W>f`B32{Q=kobF&17gv8&s&UjGL`RBz;0vuSAMTS|~j!2`DPrGQhU{W$iQz z=0tkT#nVeDzh8NkV?R=)vKz1_RG-r`DzQu`FtgBJ40|rL{zQ+ zw_H`-sKdT=972&uDNgn?fGnh(d`g}vK5GQ~8iIIuxuz5d%1|)%3$#X`%p9!)SE(;7 zTUpjj%jw=}rej2jJ|YSPeWX5p02a?#k_iXQGchYnr-}Tzx;&}4S}-_0(FR(Qg$F8_ zZk1bhnjmEa{#%*Brer>B7MN#Fw7Cg%4I3TAYOn1@Qp9&KJS5@7b8vD<+Ly|KBf<`k z*PaNaB^Zg~IiWMc(MGK;wmrt8IQ>*us%ho8K{spydV851lM!jz=88pj1b_pZv1sht z$N1k3_2~%#PJW&tYiAg$<4?l&6T!YE1nkSZ=ZVlPGSgM_nyH}SZgL2Pry#HDluJ(c z5tJ4GB3q&p3~g}&iUzi|3+>(y9qNjnMR#sJQ!EKgLIKqr zP%bVpB2S?Qw8eo3!d)e*W;Q#qEiK=45GAsBP#Gdo7;H|o=yH5%Gfs9BYZe(jlQ-rO zCtLyAMbcPPgLWKAx`I?Ro0&r{mES{7{nThKA%vY1H9~P=YFz!>jJF z=lYST@P+vJ=pn9VUiO%?2aQvFO9wk3!+{F?_n$@GO|kASc4nS67V5>ZI9#qG8q`cq zS0)OAPUwZ_g{jqeXhS~GEXGFX29-2pCW>>PEeVWI6iw3$Dko2V0u6rP2D@%_B$I{> zPF!2FPo4%vkl1JV>{q5W=oWDGqGHW@IGCS-4Uyq(II2!=Aef^tf=eEmF#)*44epv} zO!ILN?6NiIh+Pp~Z##B{M^)ldG|QpHn#|eU2O3&%m5>3EiI!L3Jp5AzQcK5&8gPtV z_xy~|%LTf%m)@}kOms6=(e{7gsV=YmprF^8csmZ(lkvBn0mP3Km z`X?Ri=N%%P78Z|;9fNYNRH)X-Azv;$%$!r=eH_zVgvq)o%DmLfz>0$;fEMurCn(2M zF{VU*`ztz!GjxyGcstbGRUW~fW%hJe2cyp%$zqXsm+Cd*Q$A*xbPI5izX#rm-Z>u6 zFGxcdWkNN5i{9_ZX|d@K;S9#yCMXB9IG`C8MgcNuE@Pd#v$AP*yd03m$ae>y!N#J1 z=kAH&5(uO~fD+F^ii+JR95T`K&#h&$iQeOvD+7_I-V#=mus$x1+K(Lb#bh`k0YOO} zj7qrfpm|-)a(2UfHY!hHDv3lI%a&NUdkOKpGH)GI^GfqzcTrriq6?ZEzf%JJHL51$ znyip2I@~|B3hNeImlavU$payD2b!hQ0!g+q#A!L!R9%aCn-Ug22xR+<%D7r0Rb+ue z)BC68`#?&fAA*a5bVQ^vwwv506kJj#VicgbY*0ItqP�Z$$#8Z;6nD9$G)n1;Ds< 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

GM_`1+v_-=k5;f&vNiVu6^Z+YnHeZJ~`lRLE+ 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 z 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 z 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

%Y~E5d}jTis?Q2r``5f)~eaV9U;l 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

!mtkz`W8Xi{ECMvnb8@cc;fVu)$1u z>8+X3_4GQh>PQdP#brnH>+sHt{#mIXy7Oorq|lQA8(;JY{GdkIJ-MK6-ei4Av{|re z(*5Rvrw*{gD91^ySY&4W@S)$o1~r6uMHb-gAewKiEt&T~1?&c%p6Y|oLp9u})sy4B zX7n7wq(5D|CJ>Xsr^#E$Nw%g$;1NBswK+7ccUDA1IZ>P`3QS|a;-24uaU?fJKJTd5+}@{$%2dXQ`N$kvjv0=QnW2wB;NG2W41 z+47X;$oceb{0a*Gex-X=zTf1yot0NZt+V7DU!wh4lqU_Lh-*a_YLR`OkG_j-5A4ou zuzB8UoLV7<^5=0C+fK>*9{(95KkdjvN)639PXg)fLtySB-yeII`c;4M>7jlj-^a zLPN@JNv{;0HSH59&56h3X^9Iw2M^iQZ&lXR3EPn^Ox!kPK+apIX|^))w1uOaVPU+{ zZ+Fz5gh?_O1+oIqw&g8~+NS|YELkbd;dR{!dq!6wyso+^;9p{&uFW&Dmuk$f`g8)s zHIu9u_gr8s^}_uTVL^z~g0q2-aB{!t%P(?sY>lMCBPU}a`h#E=4Y(ADLi!l?dOhfU zxo(fO=+Xb}Vgs}K`5-p}L#>D7D<**?Lj7<|fL&-LqWr?^Scf5OI}s2T!?6)8Xv9S^ zqY)SvEBW3l5A}H_5zt()Bye3@MfN-|CeW)k7v%y@h52u9dH;WxZs+@YFSfkX>FPJE zcAL(+HJiyKVgU(U!e*)P)TbY`C4x%Xv2 zCwbvPM>(Ot!q`V(G?0hsJ-AWjVmKj9#t7`1QfL;Ra#Z=0Sv-dw*5u+#L4B40yqEOc5%xwOF|4JlTpVcsFnf8$?7ugHGW1YWjL$O<6gu% z7#B0bebo-rH{k{z<4#Gs=kP_@2a^~%tiVgO&G{f`cA76T)Mhmf((FWmd6e-l>A~dg zGAX?NHsSM5D{L<$bdtP`PTRQt6kxbpx`ushP;0|oKtNf=2xm0)y=4rz(0nt9-(VXC zqGceK!GsF1vs1z|=aTI%SBrGy-9y#CSFmxc<4+HMZ}r@#cHnr->t`Oo(_oWPet=P= zoCtLThnw!3g*b4&;oL0BZ(X6(BgwE@+3wn(0`u|8yX7u+J&JpOF@?^2MK6lrm5#_G z-{dQnwaC-?g^t~F#wBkS;wPcrfw}~tV-iLA-7TQ|w&zzG#uZYN{@1pTNG2ag>2E=b zN|<<5Z)^MaN2U5s&V0O#_rHa$ha^$XETS$4ksixd1JDJTun9acy9SO|Urq>1(uf=z z&%g?Bb9QxCjDlkAue?F#BceLd^$B=;NYBxG8DAN(UfWo>~#u92Wa<>%I<%^aol z%RY|x5*(%U`5F2-H1H%SNzg2}DvgiV7ZWDZ(w`UcTIC%1$_A~?Z9QV5c!8)yMn2o9 zPuc4Q3m(SU=3kCQQTSiVQC|D95kj*#0vnC^wjd|nYX%9(=3Kk+->&9&PHb+GR}?>j zx0T%CHogyo1o=4TBVHPG{)vw6^&X>CiuIZ>R%(e&Ni-=tn9oqoI8&15Q?be|d1s%e zcltgbSJd)-2hcw`-M85r1fm9!79gXpfYDax`6A?EFI1V&hh|VWJkf@2$6D~tek4c5 zsWi3+A5tyqN!D#iIHZs6w2mx8Iv`f6>M~j8ayMmGXfuss8R7XNykF!V$d6n%j`hP- zJ|@%hSd)88w|>=!BO0a7X&xoPpUQ3XM|7lbsXv#9Fj{AIkP+6dXV)~JAEzc|vP|I& zm0QG_vw_g6+>1ix%LBizhE^~XObJ{FE{Y|@6{_Y zIsi2L&z_r9G_2D$tb$SOp-5*)7SO8_&n(ma_>bGzNP8Ee+vH#p{m0=d&^)7>y8$u| zyw1eE&k!$~c+$Y~r5lR!tLIfQ6iKCA4;s;d6ddA1^zH0}qjzK+8YNiy(@`<**#cMw zEo^}E+3-sRulXYp{Mw={LlNK153}BaScW@*TOh>fKja0n40wRNAjZ%iND4vCwQ`dd z@J&CNrC08IFDL3oXoVvi(h7hJSk73{e6K;G|MS zMUCnY``s15jmYKnld{?A?8Od~8Pf}Cr0#g5DvQ_lr1JgF>oG;0?y@>5oacKN7vE3Z zdz}yt_IIrM5Du9^iM{@gUVWF|5L{OXH=W@J>Y(8V?!j<_crNfY`XR<=vo1Db_o4K% ze1nTRu3K zKGddqt%3)Br)I?%Emkh*&63B_FKJg%?WIdY%lsWgR^VmvUfCSJ!)qg2OwhZ85>U7b z{WZJO#x2Kc`$cd9cmS2)XG;rHPlDa}NZ=uLhZ!tyq~hgg)jo?WLTf^%Rgs=@e5>N` z#|gNrg9J>GvqJZkiv9=<1+@j6+O%Qz$uw3R)cIm=wtpu)X-WTB{-$VQKYt_P_^RWC*Kc_Xs4RriK)0dq# zGH@P~hyz{34lL`Qt^DlbIhfkMB_mVrh9&*b^z8l6)~nqPy5Dp@d>?KPU+#dh_d~l` z?uI-r;6KaRZlhorYTTCxnfO*cHlfd_`LCc>ssBnkHHmyX=t+WMwVC#+gEXOP?piD_ z@()_z;e`yf9I5H{7iO<{m!9!@5OMBXIZKH|l0f

|^lEttBIF$@+Kl!%gy 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

*0gxHg7w%7DbmE__T{{f7_>dx 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 z z?8a;RnJ9Z=8?|F(r4a6P5OLD6HP<-H?YYIGK!8 zSe*pGR3dF<*ii_f6nvTGD7?I`%(@m`0`IYrm`JO787R z8;Duyv~Fbr6=|yHjQ(eSX9<;pY|OhY`DN9aZp!>MDZExlG-Q3?BI3vj(pB@(m2H1v zvHOO+mLQg4EMV9vEZ&bM4ezW)_cMGzN0B?*tj-D5DY$J{17C7IITM0SrF-MB6>(`n zXJ*MsQn!5_@KTo6n|t&Y$cto!IBjLnTCf*t8NnlFBFsx^^|29R$WjWxMT6-SDLtK* zVgv zR1apO6(}9#wA-zdl6C*;;N>0abgYv4Sss);3p{54rsKUc_lTRv&lcUM0VEPy2J7$V z<08#+8=ZB`L8mqoAK z(tk6owO9ASTRfO%jrzR^)d~cv{S8AkAq8YB$lmR(=D`k_yA~Yo!z+XNXOVw1V0_7X zd*0Iy(}pCE{G7;-#~&lr#d0T<-z|*E9Cm!KX&o7@^Eu2xiGE5bjm80`yK6bG*9aaM zj->F!rAuXpOc=z;Ph|L2uPe#2O(x0>G3iZLk;CK325(^Ok9yDokQAP|%BswHmQ%)C zsp?Q((G%W1psEpG$WvM?LMc`ZfJzMRic@VH@5;t^tr=1i*NzIa$50_4^;zo5Zyfn_ zZ1az;jS0JH6rpujKOEm4?kj}YLh)zFHRC06N|k;I?P)LW#de`feGJ#aJy&dw18{)K zWDMWzqe0(857@BIq$*7_VG6McLKvqa0OiFVZs~)Kbp^xr=^K53D-6=>_d4FO^mMg5 zj&Ju2l;yo>*^GvD>KA^{H4bi3V&U|Dio;tmMrV#nSUoA~@GO#Sx2GYTL8)xaIGvLg z)wryf8&MXpZN)9!pFg7$vC$`ruxQ@?j3^J2*WDH$cdUgI51s~ZoA(^KfTLvE?5^i> zS=ygmFrbg7?dfArz~WNj^}KmIK>QyToI$F`;o~7s&;FatHDBis+3^=tZ2q47R;N6d z@F4?N`I=T#1}WK^S>pVb`%F-Iap@d%K9<5B$7Y7J^23`?s=N^89wiy`=}X4sl#wD| zI>~(LuKKRQ2Oe*$6y}BjlH)PvxP)S9a+K}s1OM_2>YL}0rCv9yY;jy!MgM7td#gfM zE_kbppya0)Igo;WZ)-HWM+DB$xvu*v$Pq{jE|+TLo{m=dJOvaL!W&C+vsXstBnd}K zF)yl8m#vzMmZB7Gn+f}I4n1hUeY8m1Vw0h^XPF*W#uPY*AULzb>hzAP8bGu~L+fOx z&ZQKohDn*=CRtn6&%U`kdHm*0!l7J`WMQGY$}&{Kl+B!*z!{mEgW5LwfrO@^6FOGN zy`o?)hz+z9!$$GK&dr(oXA4*Sz06v$P7s^lj?f&BGAEB3$_Ypb>t*NLG#fH3!oFGv zW#c#OR(E1dWydlVcR>)3T^%vvB@mSOEPSZsZtA! zZCG^3L?hlMn`=kv`dqlB?>VF!boidMlZf0!|?S_mD}Opy<;ZiZ(yT0M|l@FB+2v zp=JTc^ByQQn)j2Pqt9&V8!_!bVUW^MI1PHxd^X}1Hpp|_vcQciH9G0dL*B9DU}~8_ z8xag%I70CY`NQClWx1JdYqX``&wiP81M#UR%K$<6B&(A3-yE$LQVRmj9k-Z&4=~7eM~bYnx`mvp(pbl zV#kpJE8zE<4`(=ehH|8l-0I{vJ`!6J4=UnQTPB4{-Y&GBbHOqv&r@YPG|{plPXmbz zh1>UOe`EJyi<~;C-;AyH)&;%C)cte#wQ7#Dnq8~Ez?3x-7S7SzPA+)-sGZN;msUy{ z5@~uS8%*3cq~QiHjg+QUmIKQ-pvR^Cl$OS6fJ=H+JMuYI%*<$G+&RXxU|RYjGyWFM z88sSqMEDyvqaG?X`+@GX73n?*=!)x_pVCXZc#OZ3StXQmrF`h$5Rs{5N?@>QHcbjw zjdCamSmrXy{5+qG#DQTKPP-W$M|0AGlj!oynL2M3{A(~$$^AI#&g&?s`;+d%X$`4G-+i zA$-oyBuvr)X|l`MV#nY#o+Y(i>;4TMZO`0!#R)IM%MK3&%J#HcW1U>>EjSG9+IU+B6GOxB! zd1c88_vIl>!=YyJ2SgXNL(GBBg_J|`KyyKRkbJ0G;QX)|Ah)6C0;l&*v!2ZgerYFAr8VQj|K8GZR&nxh?x&h` z=!An%Q)-7oDE@6G4OmBi6Sdm;CY{9RzvPy528ug>_3+0J?ek-{*P9&J3PxLj;jiY# z|0~~){+E7(_SVb!RdFTS{8^FeqZv`bpd3BtOc#?fDWl`j!{uh;Y-!$)hL1KlJrg(y zZrLFJU7JNd-@Y04#bSS{8U!>5Ubi+fW0=vMTCd(+imBD$>5m^F&IwF~zOlhbj+5&q znRL^-$kD)lw<~W2=rN;_d@{`i0*LdVc^SH)w zh-1e{(;zB*2su7-a>0v7%arY@wX*xilxqFP=5e?C0_@luX)fCsmxr3GWzj~E4UEAc zib0dG$PY>I*zM6>?}09r`~34C@t;oDk!FnV3=1Hwf*yBDT>k1?iE%iY%^E*kcnRAD zD=U79@~2JW{Y2V-)FtD-X{z%I51HvJ4=nT*v&Q*?xC&2;1p^R;nuP`8GapTX6{Yw{ z!9ejyqrIOi7_>_H1Mqs_u8|m#<6r(;!|+#a=`T00tqNRqQX$f@!p~@z`TWm025`PA ze|uknwDf$4x?eTbaRKEBD!)h4#Zxxbv@)FF3~aGU+2$sl-}G-=A{TNYTh*eRD(30r zmYZhxLN`oB5o_Bq)APc1{QqMbz5oh55?jOjHJKJKBd*?XtBJdl_orfPME@f&W63WK zpE_2ym&k0{cG{%*sJS1tq!=i3h@0lX?Pi#el2Js9&!~vfoB6oDF0WjP7RIEnu3g*) zXzl{asEl+?+vp~pJWGfcW$;beZvLBS(w~cU0tFY_&#Rck_L;l^_CKZquGxov zo=3#kk&TDHrflIzf^H0XmXUzG+v5CQNB_ET1@3|B$t;*5OFI_kU#pIBguY5bNQ8u~ ztISg8H=yo)IqUqh$^OJoD%@Wld(A}4Ujff>?H*De34N%0#iy9hvV2L!Iz-n;dYILQ zcRPQ?7mFz)0+8)-44=}xFE_s$z(@3x&9|HEizS;=bTO)j$36uI zZD$_g=TU(p4){TK_qB(4pgy1?Nx_~cfX<|W9O<}b%Jtq-URA4%nCi+J9%5lv785O60@vV3UCBiNZrgT@2WhVAgE2;CM2OiMi5gqEDP>{ z!9S0Y==xCNRsx$U%P*5Fhsc4ubYkLVDuqoEn7Of$1mye3yD@H%-bWNcbqba|?UcA& zLTpd1>Y(Eu8+*sJ)f{P@)%vpR3FM-Kn_aha74YN%`uO~v)uwFM4HCTOf zX#Fm$qb`PzJE5ZPIPI32i)2|$i0NLX!Bv2LaH2KlXhk#;&M$cTi}D7i%9m|BP6;~` zj>`AXgr{j-p*Nr-a-&^pSys56PFEvM*x#9*1VZy4?cU2qpFiFWkMDY`jt%Oa3S3rx zOYJImxliGWMy%74DYG9-g1gOaHAB)fk!Z!S87lv$3vAU zP-kt7>R8$mjvEeoX{gn;LK$n^xdo&~SYN1+pqOw1F(Q81y?WF z1bdvk%Kc&2BFTJpuKa;a$u>e))63T~25?BKk-ps!t z3Z*H|HAnXMJOvrq*yc#*d)OOCg!l+Dy};}k1m2Ht(0+*v()YjguEs?rhrnP6w#MiZ z49RKLw<%&Z`|4s_%@b{19taefKJenVlH(oDaJgkP{_W<^*OG9OjrVw72+ZW|YB_C7 z0F95z`^li*C$v)(-%+Cz*J%$krOQK^TV<%48QerJ>lB7Ax_OV5wk}c)U4$d%d3a>UQ@C709jzMqkxCh=^V9I z`bU96Ox-WP4AtiJ^VRex$*Nb)pdtT+)(3!}6L#Mxp(QHyUDVFh|GQsf!`a9F=Zxs7 zKjegmX2j=iCIv=`>m6D#qq|C`@qf`xF)0s`QY%##&?6)a_OR96!8{ORrq_At=d~*k z6iJ0XBxHC|rRcP;J?o&R#*X*ruv}H>!f=T5i^;yN=Rq<`kE!<`Iprr9$mRlxbGzE3 z<#K<8?3ZC`SdA%F$VpJ__$9|p7RA9HPw_`jUh&DQF9)nGTu{3-03;uO>SHo{9^j2W zgtvf^EP(~r!ZT*k|K<}+dyVj=A6N8>XbiLI9VP(y^JJvarJ)7(;KV7D!W$Ru^6R9F zCf9?H^K_2-f#a}^9a!w>MbFW(8Z-a9E-lpEFj>j1@!FZ~|ppH9jw zdTqlTf?^YaCF(O?JZHL(rA%PL*h$EHwX%|r<$rrWW|$s-qRE`d^x3nI7o~R86{zY` z8+|~eU>Jj(-DYn3MlMT|?*DblUUZ7Pb>tEycp~s==x71^SuPRq6bA_!I_Y@*I1*nd z4FR*Ga^+h_N4{{My56kvB53 zCd?k&VM%pjrv3~r@_!kJP3%0R$Y*cQ&ue9*zNY!anXI8yWd9FACD?h1Oz$}cL!;>v zi&x!7Pw`1~m#W45k`&c+5_M8vOJC;FM<|9RjY}v63Wz%I{0F#tOR7(#Rn4TvqJ2>b zA|j@IYWx*TLR32lMuB(-)ZiVrFyj5d#5j4tPc;Op?h?B~W_Sk~wX z=B&rlp*KSOLP!2%ZUR#N&Khz$au&0%0e9l{?H6q#qn}-uch*Q_e{HMlrjLnRLDIr5 z=U~SRKGf%2@bV5bh=p(0tdJZ!hb0!nv?16+DX-K%2{ZI&qlSKkO@Xt3t~^& zXVc1F&ci1+;dU{RRz+k_-tnv_II7ttO;^&#l+9E8;V;9Tm_3LPgUE>;H_s&Fd_?5g zr=^nYJk+NjBL+*PJ>?VsiaKiduuV~ks=88Drk?hJIS2uUGo{qFQ%5;4a$(OUif-0W zV9>lg-U6Thp~@Ch{5Tm$_y>_<^1Ma9VMZ_n4&9}fT41IlX42i(m_H<;J2sbYkV>?^ z?GM_7Bo%7Y2Fo>CG~`aF!6GbGN$_lgtd%!hTp-+j=FhMi+t-}@-zBE>?aFmgtJ}GC zIJ@~GHzNCS%WgW=oWd%Tbvn?3$zwwI02V;+S%j#U0cYaQ^4W7ro3mq4VjBYxpg-Ss zGet@1Cw*@ry0x{=l?R39DC&NHz0TU4@Tos>VC&y_+pCAUSeVI=&RD9(sxiRu_DjeA z2?0ODjibz^)$(L7FnpF}Y;V3x4y%PA-qeqj5Ww*>lfvlZTndsYGv8I^&f{%keazyC z|6yZh$3lrE!d<{h+9O*;I;@h!vuhrYXmQs{GvotTB{& z+pV_t$Zp9#kcW&X!VTGts|TjA4g_(*Q2m(O`vOnr7T)Ka{)r3Sia5dCYH)qw3<~Wf_19Erk+@gx z&y42sn_eU}yb0$grN#LI6Ry9Y%AD&&OmUwoovA{eF$#-I=0X1cQN(CpsQa&Xh3ofh z-SqcinBkUXh+h1eqmgHHmU4zflawm#)OO*OmWE{w$&y+8t`wz-@_Ep3=r5u0f?-a< zl0PdKc3i*%=ygEwC%C+iWAiRB;NvaQtep<|D5$T_hTG?QZWx~VX|OWdoq0N(Am2V? z7k)KHc!lD}G8C=_mf0>hc`v>lPZhgCx&6;`>yo;n9QK&qjSN4ZSmx5NmR;;QvdxI* z!$E7mWsd2!t#eq%DMcGZe?Nq6j7s1%gf-IMk z@!+dZ%JOOO%&=sIRonlL-Me&i3ag4;t@z*{O(PELGac5Q!u7v^UL=KLAv^F1kUr)* zov_XZeml)!JxyL0?$?{+w!mWmF##yC;Fq!B&3n|O%*jwF4Q4;?%SecyJQR`U%$PEj zu@-DJT351FZhR#%{*UWgxh%I(8U%X;!2)mhYju>YCxK*yB}3*l_$AnZND^AwtFf?{pz>#(ox4p_f&k$)o zb7xW|+X`)j5>~a@Rg{q_9d{-0iM6tz>qfS$3%7ZKX#-_Xelyn(N6;>v<}D493P*0M zNJl^E8Qd#Dy;D7&6A?gM4*`DtuN@B_wgdtdukI+g3dQUhlHJ-ZgoKSVD_4BC&)Mg( zc7;9~(H6Rj@lEBVf0wP|*qu3DUX6~4Wlyep)$W(`kQi>xVp$yPMCtOuWk{z&yn`r( zLaWzlT#09lIc&E|sGUw!EVs+2JX-&lb(^-uu%6DKMe=pJ=7=ys+I8aJ^Nmj6amjuj zfXQMSSyfWq_;}TqCc)|1^Q}V4k)~e>)}SAh8)8|EK`ACm#=3ON2}S;=p&93)DOQ!& z4-iYYOcPxvaT+$1{Wi20Q&IQ0qdad zBSTjWT!XI#ay7Ui9gUA(g4`s0pokEovl6hVg(oPUpN6dhtVjU-oR~X~WAkU~y!D?* zOaitDs~RmFLY-ZBO8~YhvSG0kwGnD0rfQPA6H4(F;&^q%rqDg872}1d+h`KtF3&YJ z7zNP7`$AS79H9x|)xmHAJl+NGM;fs9eS8~!ylUtQvDZ-$9#Dd)Mr)^Vt(RiiCGif+ z?2!=WMp`S0+fzHT{lR}ri;T=x<1XW`N|bq_($DW}{z_9;1llsk69DP;3fEHf0``Tb zklZk&MV@u@^87tilyKYna+Ovgytc5}fidb4P1d z{Z=vhxJ7ZlHvrB2Jm}U4^$3|GQR$ zt~rjX4IlN2nelnZo zIAECGD$*^tZQ1J5uU|GgS=SZKo#latA*TJ0Xw&%E{|LuYxg*dwhBOvBw$-KBYp@Rc z+v{@YaUa=gDzumvS+)%S_1?l(Yw1D2jw^}ZNdIP)B@dN>`s!Aq1RbYn8k478E&fzh zT1Fq85D~$hzT^AuzG+y_c??Sw;~mnN4XOIa00hD#<+oXuDFN~C_!9A({$v_ zxj`se`hBH4psy=;+wN@{#UU0GKn`8|KkJ|--AWVPLl%4z=~9@h@Wlpr({boUzR62EYN9H=kTHV z%s1+8w(oKArRH1Z_{CYOe=_ou8lMRp=JytSRrlqq+?W1LeDQbSCjx*}(95wBO3o6# z-T9aHuvK=+fFQ}!)m}8!Tkx5+F5g(F`-z5%Eyl2F>=xmnE6~>g&DTERKxhmZ&G1XE zB+2(?drjF{AnOV@ccotr)$CUTTMcqntFZ}Y7S!tNLRST^0@;Zrs%Ltv9d9mL@D}|D z;JgNFOE^v2z6F-h%}~j_Q@f2-R(gXLuq%XcWe4jE>r7>oaj7!+(RLt)m4j{mh!cRN zyA3+`FqIE5X5YB@IH9v3qZ}Je&2ND>hrb2y#34};#)sBE1Tc2*(>s7NC1~=GjW8t_ z37SGsl>(IwG}7RPuM1odoO~&f6xL7;C=uk%sR>P03OgO(#%+Y~$xY@8Ka8r$* zB6Z&^8gE?Mp7q6|OJgs4Je@&8mYNFkRkwy&x%-rbOxCnY+bm-&h2a~I$tPcxh)#BkieatsAC-_1l?IZwn#uUSvuu$uDE;u(9@ ziV4O(=DH2{t)Es6QJ(O>&hlOqB9^ZwX#hq*xxegB3r`{Y zA5Z6l9x)B#hjD(im01O`u4X?M>x_pH%L1E@b?ex#3wKv%9_ThNy>>b;t}+}(hx+jh zSnl?9%);389;&~EP(sCwt*no6PI4o!_Ck9nx)HH5w;I2)lpvJFWqK6#dzwmQ4aHPm z&R0KI8gd`$P*0K+z~f4lf(;0vyY3R!#yZVECapfZ&4UY?tz3q$r zj=lMYM?D(O0+47|$6n~0BFqDfz0Ncl#@_Qq{>PU65^E{uh=U4{z4zt`s2Yw7k*3#r zs__9~Xk*I4jCun6+w{PkrOO*A-G6xYOF6&YCmz@dI-G9xM7&XZ;p}$glqkZ(7|JR+ zr0x=RJo^Frk$pKQ$roD}U%cP|t#nY&Bu4T!RH-v8G20?s?XoY{w4lAHHHW|JqqsXK zQc{`7s2cbkj|Ckkvt_d&0!ta(#TkzC@rtnRYq343x7`tNHoO-9EMn+KMlz(J1cfXD z2~J``cS`*}G3hf+h)>dub4cM8@;S`}c-tk65#E$rF`)GoJ@HI!)u2*vlF5Svpw~A>&eF{jiFxy0~ zP-h#@q>0^={e52LFnz-okV*G2T4b+`?f~2_=kEdsOZrJ84&Db+ACxcXU-YCTkc;LW zP1a$;-DVv9)?wV@nTM}ev)O%;Pd~s1Kck7?(zYWUG?wo=EeB5XrRemT{)w|6*fYKE zFOESNrXz_%ZnFRi($!n-(xhsxtsn{ zVe!m#sKIoYTP+NQm2@?Yd=BMzOl@cTfX3W$t0qsN)y8|VeK>X$9_sbohvFh|hKKtl z^Vc!Ece0U+;L(ZZY$s&)^wFpCU%Xd|%MCD1g79E>9o7P^t%zx0Ho2os+#?%biYJ$a z%04vul+_$Fse!)BO8I0Ue#NgDled|reY>ZpRuPuE$Uk(R5W;RkA&`E(@~a^I2atU3 znm>kQA1?)MsScF!S1?w*2K6PQ77aj0p1y*Bm|~gF<)u3@1Vdx;(C*@Q459hn*OL+={^?9N$EBY z)ku9Rs!R-SkH3yr!as#Hp29+&_mV!qIyU?m-jX>#?)o%PWV@%OrD=0>;H>iqud*`; z)6`q7w+nmTO~@Aj1+_EJ*_43o?fTMa&n{_nEPd9fG(+EoNv2LPkMgEL`mXuIr>^jo z?w^UK?a5cI8KE5}g{O9_jencmO!&;b(q+juedWI1qmDC!8=QV=y6tiGDfsVcrw3St zgfu-1c+45TCGG6){JTc**?lZk@PExjlByWU`wg$01lha!`5 zan6qU_+`4h>d7*!AOELu-r9J7AU1ip57vQjbu?uM?DskCQn4YGUW==AQ;-NK%RHdX4I9RVCJ!!&eTbB+Gk@K zrLTc7Ak#TihmWbJP+A`g$peX#{q(j2hvoVsUF}Hm{aTSqPb7J0K~TYbD*2f>i7jXe z-ZMTQXe9RNeS0rNd22QS?tDNyUm#cTYy~=mh9Y(4%kw8ee~T*h+6v{5n>?w)Y^xJ^ zv{t-X4?E{C-+SDN*GqTIxUu8y+O>HGbZsJoQbD_}Y&v!f;F{1=kY2;yM`xg6ASO+^ z9AqM%aBI`6($R@S;pedfcpea#zf%1QaHw;W3#%Y>0 zWnO~HIvq)kMuKW=^9y50{p#_&+d_#+Zf9WtYHb#KPu*`J>J zjubhfb6sW)pTQboFb_LwSEDQ4O6wHLJ=w*q1eU^iXp zt}srIyBg$H5g&xyy_Q^BOUM*j#^SX;Q@ve`AM&vd(-yl8;DgcN-BNU-x!JUU+uy`2 zRK2e>3xV#=ev!eWi~ECb(Xg*JDO|)T;x&?YOQZu|Uk;TD@wNar(p86NiqO|0D?pd5 zgIq6MD*5V1yI3~@Hm#)FY%jJQXPJ4<8hfYf0T8V%4pJKX>fffWiIEz|=V<7zCQs5* z8qAxevW%mw6{v#b(luj0CudH{Wt?rg(R;ZVhV>6`D|e&(C1vJm(U-+IG+)MrWDhLf z4MX!&`bp@e|37090oJ`g=V3pKmuoh!kH<(&1YO<)(o0J z)%wb~{MPSII=V~;tXO}OgbSpypi&e2%Jlx?Ss?vn0lX^DY)7Q)K3U@wyC5xK;+vZi zqe(z>;v`bd>A&P$9QnS2aK~nJl_X_(vk!G4Or~ThNh*6yvU~n=%*azdS3jxkI^MgM zUP6|<>pe#(JgnzV^DQqf%&9H$i85`tnXHRt{;4#4gOl#bXUwZ}m_HucRP{Y!@aB?9 z;D}zfwOLQJPY(yDkwV`r+Ed%H+ew?qxUv3UGns^`hJPK`4J4^HuzpRwM0k3!6=ABx zC*p0VYjE4=-0VNh4{@RmM+O_HpMw(Pu*R*l-yVDHEV=_7LYs^Q_tQG*+srBi^)|Xr zG`gY9L}4fnC-QhBfPQG;2MceUGq zmQFUiM=g2k{T^AqUWHz7Qgh`j(87K5920p+H=X39$^WyHIL-H7RL5ruvZqcF|Cfzp zjmjR%Iqr7{xcv;*?4%x_9K6E6Nr}jjdp)VuA1`R8Jb!EbK51R-y=@FV5`$3s& zNB78{@$7m27I1|XWWyxuF4sWHnN7%E4pE&T&?w?**uYGLzZg(KF+y`Sz!CKCAu4 zxFmWX%I&WOTeQecB_KW=Xw-;|V3$?}JoWiR6BWt*f!1AXUgGy0`yS zv3BcU_U|KT`4Z>}I>?Yq;75mSRV~+^C=a|_6bGw*%{&%F#njIxL!1D<*#&?O07)nx zdne;6jguEBE8(sSA09C9@iqbpgYTbx8MYudXYuTc*a6uiwhxU4(Kucl-v67&(iSO` zJli&YIZ(Onvy=$aw_bep=D7D-8AMZUsm7cXc*5V`vqSCal1-^`cl>>`Gc%>QWeWH< zTt2f%7U0lb54b-R9G#Znf;a?AK%VH6fd5yCI=3rcr3;j4HoZQ-Nf&C_J!&G%6`5XZ zGo- zzW`nQ9__Y+p59TeeARjyFvdGPhc<1}&}3f&x`o@#{AQ+7`|Kd?$YNb=hb$T#8=;+;4B~1@SL0IC+GA% zWh#Vh+#kd*!T%}(gwx$;&DE8|*<6umh|1+v*s!&1`|pgpxofT1OyxBn&}%Zy;lDmM zFb=B~Ci25?g%cC=D~bu|LZ2RzVZB~peOaY^ix8KrfG3EbsPY5hEJp4}*r|3Q>OQgJ z79Nklnhx-)HU7OGH(+m4k8+}tKTf`#SMyHFk|Fi9Dtd2j>0{OHTO^S@)=Q9$z=lK< z9#f*dlinPKZJRba*evwKXv=Sh>z|KXU!X|w2Z)Z@ChOD52;0$Xubzj+1YDTyE$!Cl zuj~2s@mO^lG3^9_`Zz+PQ?X#L+e(xw1g{9|=_=%| zqSkAV3xgrO)@D$F;X!ge>o~E#?ewXOx%pTWSg^k6MbOn4>$wqf`e7$3@xFBb7mVNK zJjUnO=jEeI+xfm#7{DWS`v=HMF9o-gEVJP?e zunn^Xvk>P2i;-y{*3fn!wjvzhF`6xu4RZ#d)pBD2jUhTNil(tlIn`9*yl?TQ+Zu-0 zNV&zVE`#hf7L73dF7=2xC6!Omyn z_)Np@{KVpoJg-(dzmY*}G%37og|v-`^2&UOB%1#(pUNIJsPpCEO||pfUeA7K!ddl6 z>1_bTc_3vqW;4JG9Jf@@WRRUcsirdILe#HtYpF?1nK!Fpo}SYQTIf*wMPFtq0?EJv z!BRfR)QDLD!c4LucM~KP*9T#V&T?-t;k3KS`b)D|z=8zTA!mF#aSVX!AeSJR=ay8y z8+Tw#i4q=cTl^WQ#~#vvZHr>;5m(iO6TTdx>xUf^n>M~04XhYYu3%pX(Ti9;P>F#To z3rEm0-rb5Nfk48)<EUwCHRJ{jd;i;&=|SIK3^ z_6Ii=)Knad_5a%>Pr@OquDHKUi?2-YmR>x z0-K74blpe7u|UCF1xYYZ&8cFnW+L#3e0dKMa=Dd;RIs+orjA(5Nw^fK<*lgPDFNxg zdmgPfZVud2Fsj`i65zf3r@SYbasgZQ(Ighdap*^UEJjjT8|jj)YqwIOYxd5V7J>)* z{nqb*=Z6}|#E1$AvDNCumfT?X&o&TT{24N?kM-D#u}iUCv!i91zt{}6)9N=9t~ShH(ymd zL}|>h@mghVe%eu;39qcJfnPyC#gsgu6bl`L`nWq zLi_+_;baVGh{8s3H*w;e886q-Ss60b)Sw|H(T?HSxiAd^>nY{RfRs zK0TQd`w|(w@#)z6MaQ)&v}%8)(jGY*rgs>XW@YjYfehX1J7`IeE<|xU4y_?a_d3Am zh;Xt4z2P8cDTmTpLmunxIR+=AgZ{Pg3gHNV{pM`lb%^e?erbmYTnW99j(El#LM!U}I`mxYQEoo`u2@s0PM zuO(6_<(zK}=er|P=SjcUd%(UJaG#FoH_=r#`HW7@#~wLu7Vq=!020N0Ejn#E)oMRB zeDj^Hy*on$_cX*bHd6&s%_>}D zn7_x}-s~+f*vCE}v}ZXZCphQGrk7Q_2n%e&{6FW&2Zr{AU%-){9KjP;YGzvpa`#el z3Cp5lLTRbto!+Pa<F%vZZ=%(?H*^IwK& zh*qobim85oR}(Hd`1Uj(rND3Gw+@%!Mr8HziHY%+*Tzv@yG)Dq`0i)vs=BT4zhmjY zaeV7pFb;dyI#pLd0bi3PS0{SqV(0IuJmv~B&*yx&Tz>f!;tS=fNVit8G4$JJKraI$ zT38C-*K>TG{dUe!`Nuz`|HtH0iu44MlmqADd-?@EPa&)VoZq3~3BT)$e@tZaa^=pH zlB=enYn%NB-T-63bu*H|4{;=3AwyMuGnz&8Z9c4$2X3m3MpW>ElTY3EHNu1C0?GuY z662hGvcrw;j#y6C#)l%d(cz7-%0jF0mpJ*>`mLMhp3h6kZEHQ6*&Y{wK?qNeQrgh_ zFwcCUX`6tP7TAep`BV?L{LqqT{BuLdvC;HnKRF=}`0TGa;K71D{0FicY`F>gE{_3f z-TiP@w>L2jE6v=r9K0OF8HhQUIjB6?b-<=&2Kl&oUTw>a7@j%9fIPgg-eWf|;#Z(^ z0`ntT;diiH%JY{l0@eAA8q&P=o*2)HLI|QSmV=knqVIvwiX!=nG+vZbS}RO75tZir z$aHNImFD!k9JCy~9K;!jIhZ-15r;Qj5(b&CgPX91mFXRbJ27@8dFPizA~eX91XFM? zaR%fsB?P5<2i53$-=B1ppJR8Y=0qiV=f6yNeflp08i^BMG6R!InZ9#hn!j>dW^f$J z_9F$!RhYtZFU>+#>-o6gs}ua(dyx5=0Ib>|RJ-!YH7z;$B-e4x%3aP)VQEq1?Fo(x zJ3#SZjNVW-KUQ*=AeF}~!?IpkAxAJ;`E|lF+?gyDEBmS4PbUa~P+tFj8_IW5z804t zBvxbh(~YEWsl_y9T#TN2bmMD3QWB!uq$)O!^=ZYU$N?ElU(=2fzsjBtkJhIf)?;6c zD~J&kwT^x>%46S*Dl!N(OphFcL-FyJ*%T)nN%Lfo;KPNIe+4PrY^0|5!1E$1R|L%n zmXrt0wJ>E#x#_|r|G!H4qO9&q@(UJ6a-Ph=pUewC(V?Px5!?PhHk?o2y2Yh+&ARhx z#iaj3pb3Gs2$UuDQ~C&${uA72n;o|O6!Czf61w;LX0_6$@g$jES}Xv7#IHHl5YoCC zKLMFY4{?EbU)qk#=1ygndgh&y1}!Z-Wou>DtZ^05+_ZI|0o!sv?}jU7sYxnk5!Qn> z@9y!jf!|V)m5EFk>{2mDby^n6u)oMv`3k+dZxGiY+)AAJtGpe@n%o0r#R&@5!Lhlj zTSjJ#)BmcK{$D(*Pc`qED-Pw_mUKGO&Z$hM@Y5{ne~{`||7xHRTZyZg@Ghm5`DG|% zB&q_$p@|A==G?|u>v$s4%_Jqt1uZJSejQ2jwDc&5*p!=>yfT^BoQNo=_HM-SRIkzO z?%gPTA?Z2*dL|dcOX*XOKUPSUWwG>)`TGwrG`{BM&>=ad?Gj07mEi#ST31xH#ymwd z7gkoLF2aaT{8LUmH%>_yq^`@J==r;`4b?(brjy78tArs1q7}u5tVSu2vu29mc z4`aLizhJ@(G)Mr==5FsHtF}NAjf`kx|ofzGVVzR#m#AQnMWmXP^ zCzv4NV}R_OpaqB<*Kn;2sds*2JRpR?9HYN*yU<7pm#kzcgcC0K_)!QU6hZLSXK>%l zW1;1Nr3|eZ^gzz!zjZt*mll&7NrsdKC>h`y+`VkRf)$aNL@Uc**rKww-jI@s!dX*#pCQ@W+u@cggd^;~9A^D}HuoUKAXRy>adPUCGW(yht zeM4bU31I!hO9mz_FCQKmuK8mE2=_9Sagl0Li+I00@(=sDVF1OovF3}<7kixZ=A6ZQ zPH`)5Q`p*J?*8|+|GAbBJVI9}{%_|65S77uQo##kQyCGIl^dyCEC2oy!av0&Lht|K z%L#t7z7$?qOh4E6Q;#H#v%~!H*XmK-v^2%g!d`?>DZPLJW&DV|9Hi~*&S;N zO9smgZN`u@Bm2hjx}Z3b0`##D0u4HE>8!W$5^}DjtD#u!?|f+y&p^!()GBo`OXSa=&Fd_-AsNIqOq5u4#A zlIqHgg`756WZQvV#ZWqgkJ01%n8wWHQdmrQl1v!wD@;zi5xuv!4xrw(C$Tm%tX!h7Mx8&U5(D5 zn8Zu1D^(`tYNpiQAKc2-jes5`mKC=xqm#0oX zA5Qw5aQJ^J(0&y6sZI}?YPBAHNeq#NE1*A$LPALmJ)rSrFX_keyW1;4`n<*cIOpSk%+T!p-zLy_eh2cW zAI8tn`9jv8x5pnF&*e@#y-uRgc40U@=<~^X)ZimVt~BpR&BIF5zx2nBdt3@}_g#^MPh(AP znh~!oGnnsbF%%=Cti0RBB*;e5yRw(w+*Wc5?|r1aJ+cTZoK{wy`af!%Yfg1&*4S*_ z#PZ&e@M-HO&5(G9u^Tlk8&?zpsilYy@jm{0clY{hLB^Pi3oVbds9ayz$6n7~q z)ho2ARK%v<>D7eL|2rBXtJ+;yp6@HX zT7zFq%N9)UZDO(;P<2V(K+5|Bip4GhnOR#J-~J?qHTz3~OT_K)N>5~QqW3Iq&{>t{ zzGjdbZKPF>c1l#M%DP>-T2Q57GWeRpm$a>l=V{aq&h3K9px0p8oK3c+PZWlS(H+|d z9z$X5sy7chY<4f6Bs8n0nU#PWZhfr&8SF{5&dOZTFNQpU-`W8gN81yxj51^zpxe3v zb>U`uM7&6)itExCtK0KDLbd3~7n)1S8Odzh$u(BYLfiX=}7iW)zC9cLX^N`s5*3^lG?{`ihq_AFPs-Xzkn@+m`zj8a(ojNDHz zCvu*nqO@Pj4Z(^_A5Z_>mE)O;{Wdp9Z0;$o-_GV#!y-Ot=qHl%LoKmx% za!Bo(*GfSzc`2_ba&btLHqyp zj($IZA&-7NvY7YdvVeSa7Slktgnp6WkWZ59;(hU`1_~Gxkq&>L}=mWcs7_|Y*4jG*4vGL7&@#t z*W={1<6p)JxH`0YcSbiy(|r&hqwsuQb}HHLfJKFrXB`k}u*B5jQ6V31DbQLD@5uJh ze~Ii!IJPF08^`2djHy79AhcdkfUL5f;R}cVA_ZzSN-z+D!NNx?>W9(K@w=UI@gjz~$? z_v2hj@T1%i$rxR_1&X{G@G?)wWz)IF`Tv;=k#Cuvg>yx|=` zQ6mN-bs4~(6>na zXU(JiJW3!`ROq_5fANlS2N1mE++041DL)fU$~&)VcnQ3FxI1$z}?j+7OoM>>~FLMv<-GSU#^l0jo{On znVnT8sZ%Pe#CSq^L->g?9ViZj6d;&q6evS$;GxhEn2e01g(tyc1j9F>LK|NN4uFKj zZW{~9_k1e(OCF|WkgVLG?2fX_D3f&B!+AY_dQ#20UUe6(FVoxdVO;*J=8HlzwC#mZ zi_wCp7udvMJ09@TM~M{ohecp?8<}#*pz(i@j)j3D{q*Y<=-0BL=L~=%ckC8qx!n6|j+>ti{xLKJ_# zKlU#i>(GOu6{8fT9JQj<&}s&CBZkHeSm@b|s|Nc)$7(uu!=kivt{ki2*ba6g_G5cd zTVbnlhTv^+2ILjcJ=7bqOUN(sd11quiVDqH{=3}ZFAU&i`I}5E2!rmjiWi#A`Wn?k(P{s(S1)nh^VIn3W!R) zZQD{n2+G0h@xr%0{tn`4_}@LFgTTsrM-q*Wbt)iXdFgp~;<;;I$S+osR>vBQu75&#>dRu$^VYV#bf)EmU-vb(cMn$sD&?! z_9!m^ckFDofVMDB545?x;z|pH@gdCevF#*HLlhSjP+W-ei_WoV)MMy+jf>*P`AxnS z4Im0!(N;i7fwvO5fTPRfW4LLc$^p0py#>nQkmf)XfN2m?A)M~C>WdnvYif=+&S0E# zH30Xdv?#m{emO^HMeTuG2Db%n8*m9uYRVwd zjHE5AfjOFZ3UGT_SUi4WaU-a3sOss?%BS>V+Jmds}?3RpJGa@#wwbdV_^ z(qN>+N&=J(wj8WolbBx6(bXS1>9|n{CN=~^0&X`5c}Z!8glcJp$c#XQ zw;XYKjT*zMLvnGyrga)R{6n*K93wcTy`)lsOMFJI6SE+kzD+QJb^)wfDvvLEDpxhB zjT*kjjaRxgYydXHG8n9_1zH-oX*EkQ`G`N?GFi9k%j1&Hjjnmoz^)Y)rHGU)FC7l= znvNRcGfTNpR6=QU(C)+$8Kq??fZ2<<(pouis{mHQ`+!@ad%#!%_&}l)N*0GgIIS!i zA;o^^pz*vh4C9?1E2v`>IKCwpa^lX@t3wrWym(s1etdCwwl07F&qoY+q+HhOcAat! zX&fKr=BDDa8#Bl?7onr@-Mitl7pKgB=c9}~ z#jn}hHymHL99{Pr=i|wrsw*Q;JXxmd}@-&@6m`D0}q|$&hfnGeD z#a~)+H>*2F&)E*;=LPS~+a_qmXBhXs9A6HS?e3;oTdFXpd^uwAgZ|m;@%(N-u^+AX9={y<*_pA~ z^7zr>`nmVx_})dBzd7EIlWU)TJG(wGcI#%Jk5MJ*7TceKOpTd?-CU?kWpU5DgWKH@6_wvUi~NEi zm?laBAgZON(uaD{96&42(qGI2>*DhN6T#=*I6&%WT>x2)r+NW;;k2hhFETcwgIfmx zOX+Fw!xcb5=hXcA zNTRZ^(IYRG#Qi^5LyLe;=JL{C-ru&Ldutq=)4lg-1%q|BXJGhZDj`RnYxJZ;33^x* zMJMdsarLGbi5a79$F~w*s_A8!ib$Rn^D#>T;}{{GAKG;(iI!haKXZcm__Rz`SEEJIdljE2%^dd>M7mhqG1ONEn%U?zGs4Zpy;m4E zV~R&Lg6OtEC=TwCdQhGR*3h?hw-JeOvL4AL?#hBG-X>O2N_f`?-O9t0YANYKrn{V;l z4eK2rZZmoEk;fF!R`rT1ImfM{OB{q55lJUhRP~b>N~h`Xwk=j4T|F%8HM8 z^|TeKBoUkJiFQtlw6$_8%%=lWo0`(ix=QSP8U(=A)26D;!#0J@=%(l{T@CWrPIO9h z-D5-LuGpx{-eXtL1~)GOvU`Ay@V;F*8k$-p?i=jm0kpw%C2*61n(j4#;zEoh+Fiyq zUR8~z6sV}gl-QLO7cwrO*U8cD%@vW3aF~p|lbZR7I6T~>8JCcAc}2{IVpL9ISY?)% zh=S%OAk0j`%;%uyp2Hr4fvRLyf}c*h0L$p$<|m+*i5yuL;AvD2Yx4SdIgLaajZ7TN z=sBtwJlzx-nm9SSRT>72e7?2N23nd9UZOcvS1dHIl2B@6qAIs#_AwxA#awdu7GtxH zTG&+R4AsXqz1LG|9M!E8zb9&%&NZ8PI5wVu%q>AhYeLBufC5#~&TS{mSGoY0u!EVg zgPOBlF*6pTG}9KtE^gd2ybdGWM1ivx5OY^BdAp&OUSD)G%U!{kyn~s644$0D^h(E5 z7wJdrh#fry@zejW0y(7{j14#%*t9BPI2zrNWI&Oj6NIZ~IIuHMNga+^AQ^JN*3Ln^ z4ZJ{R4RCytb`o2xnOHQBCUyyR1QmkD!6Y&Wu9Z4*=L)|W1UV>j#Xl#FDxlB zE|Xi2pPexve6}+m|<^UUq{$#`syWClTd{E7LD2zW$9gj z<~5;Q(R5yzfbwm^HYzd9TQQfZDw#OUlK4Kkme}K%UBBk`N5rQwNEOoPlUuVzGj)k3 zvH%g#lqJnJ-CL+Y9d}kK@1raFwc!37gk*-OBaH_xz5HaU0!Sqv6Ge2L@m2uha(Zi6);lWBM^;lLrc}f1J6O|y6*Y9D!s}& zqMM$0Ohhs0n0<+7HX4Sjdex&NUhjK-;L~(U&#iRmVW;_SfGS4UkaT*HdSSJ+8@Muk zaJ=xB)W=e)61K0Q<5l&J(1Q^d&#T!Knx+siek)oJlt8hwgist|ZL^lHO~+jS7ts99 z>5`r7Hiw^!85^KfLwk`+ml-3;aj4LICdDWJWYe!{mCmNZe>oA;dX303E3)ffjr*t; zVxM=dOeX)0j7GY%5Z?7Dp83<}ZQTQ>F-I06P!$R-b9k5=6_L(a^2S)7+DI6j7WFqL<(71oI8$2kPBBY*#(M3I60l;6ijL?M_MsSTb7IM`zCs&pX8h4f|w$Rr6TEmHc~oU}A4)Xvsz z?;h85>|wTZpGJdi;Z+s!)y!=v)V>#ssTs4n=~Ta#+ikYq&Cfiq(0_6Kzt3%{??-nl zyT1FozP{)2Kgp1m8hN#9TV~#H9rUGs+mE%gJW+WfjwO1i(=2#()b^3Iv!p}Pq5Y1l z#~zcO6oKXUbBlcMdCi7O_c(?wMb?V3&6Idj2FVWKFMAiU zCU>@bxKIZ0(6LkJpGwblpEqNXiIdMQV@@;CoYLLQ#Aj3q!(|>6KWvjNX$xClv89tn z!0Mw}2Sk708E)8uQXpp}F}vx%DBXrK{V9r_v%@e+g&Dbpea-kyd;pTIU;b8TR#Gx+ z@5p(;G#uh_iEJr-1qgnX(`l058g6=bo##<-?YYPT>JS>>SXrGpZCU>1Th!j3hH`+# z?s0l_HqhU0h^r464qAW8Xn4bEbP*U%uAEr*R$Np(dz6|1G>8g6BeG3@zDN3B5v(W? zkGuV~ZH<; z80Kfvq{Itnc^bgv*{om4W*z&AT6XHNcy1I-?tpLmST45JmQri_pHe;BYZc9QXeM2+;e!ce8j(3q)08+ZlaufW#AhesTJqPgR`oXmEo$ zqRy`-B`br;?gJ|72_j*``RR-fFM@?VW{c`Mz{G55BhPXZ}YI5I8C)vMETpNZtn!P~_K6mH2Q2OtD$QRxu*1nXqX#=SFI%T|ST$x*Hb!Eyl4x?2b(OKQ?>D&1K0nv-6r){T5 z5epPQXT)<1aKWeAI=AVL6D2|0!9cd7Oc^?Q6(sOXP512)|9kQ|xD4Zo23`z!o>SM#e@V8%c$@2FfgLQlQ&vp4EO^+Ur@-huEPUEL1M(mT^ z=^W)7OEOyIoEG833HnOu3E_0`B+j$q>F`|48F`=g(>c=QDylX`{=K46Tr^BuNZ!%h z8gA(hE!R(hbbqt7O`&y9_qx`;Z!}U6#44(E-a2k4{{p%2y_opuEFsz+9p>udj=-#@ zuobAV2~}VxsWKJW%`{n9CVt>Yd3NWod{=$Qhg{D!!G25{sdQfs$TTB8SDFHEj0m?p zs;vy4q5QUE8J<#ieUIWLkIhxDIC=RCG|s4bIDI7~s5{w5HY;!k=a8zlBZfmcvdUrucynZ$=k1HB`@s{lT0b|z ztC-_B)`*(?fjV#p5ZB^7M3s!t>F3+JWKq_+uB3dSR?|D(hal(q(Ok)Kvkw3SPp-qQ zR|byc$yaG>g^RYj9^dTH&vy7)900j;VnaS;9}AOF*^lo3go{wwKLFZU-VhOU<@>Fv zy0!M}ubAh2p9r7_;88|{9LHf-`1d9v50nnz#ZgNI5HR?@l|YzQ_Cf<49jGcJjIIz}Tg8JRELHpWF>H4(6~Y zVPU*FbIOV2NOwz4bNFcwA*i3Dx$ZpsA6pAt&{ePgarz(Z*u5Z;AJ1vKebOV=$;BcP z^E@+QW5ze@+$#|}Z;ZuydD#ORVA{Ji=Tml&UYtgJ@OuiO#wEI`J_x%?NaCtAOB}_7{kWAJtnhWk78}68r1o5I{k+m>sc%BVnGH& zO{?38<4C;SBX4KDtc(K`wnqzjrERX&4t~Eh*VG?NdA$rt8@0~x7vZo?ZUxWxyXO6C z>_=WgA=UW}z=3|;u4QyN3dsh&eVf`uqjt4)hN?w{nDoC_HI{411s_kxAW%(IL5k+7 zhra{fY@5!v-BZ0q#g_LUm+;oF@CXn^uQzshDjvZO$+mB9R*Js~_+D zmljS;`$pn3B2#Mu`aF=rYRqkHfxxSZJ*v=sr$`-2XDwjdP75aUz4=9IPP>Vts69X= zu6BA^Lx|;B5ly!YyN$7obnr_Gzi2_vUC8@nfB|-q!>hp=-i=n;&g?9YFY2!6tOpmj z`xi2I-yg-k;bupNHoUjBlD2-W?!rCrOX|Ju7v<`o$vIM=9fEJ8er@wVv0yggDZh>H zOwkbC$__gypnwP2c}AuXUr7x+BBPgbvGWF;3p~rjN(#^|hy^2b`Hz8C-iNc6N6qcI3AV_<-{gt6jXP%_gXi1=o6!y5ER zOYTkYm~^r*D-4%&VY(Fi&M2EqzIhT7eOSi&bu%RY@9AiiS4l=C`B;=@&r`XTs#6fB z+{wo&5}xTD8IFt&@~3$jzu?q{rE(kg-nXB{!IL-3!odzky+oo z!11**lLHpr_=1`(Wi;<~!ru|GHILjlhi}`!9aZOln^-a6_u>#Mi}O$L4jLatT6i5y zfbRnNmXO{8w-GQ3KPYY288_Ucmb7o7g*;yX6e6J$KqnP)2|+yJpjLt=fHf2?V0C1U z?D<>#$uzUPF)VLo{0DSgz%H>uIF|pRL;(8sWz(WvsKz{bC4*T{uobPtWKMVv?R!qp zbY4zpKOBYsc$0|!;c@Z-8p;!(tu7N!`xODM1qr$eraluce5sHvBGy^4`i?vIZP zTas?p(j<0)O=USL)tk<67H`(VARtL=Z@hBpALO;fjP+NQ5Uxwwv#UknT?uM_SuMu> zemID!h@T}bQh6grg?>5o_A2kE6x5F-Yhm%YCaNfnrs)14qrOhRAl@oS?jsotr$Xtj zzw-o}dRIh^|K1-lr1R3^Q)apTEsvapYwX=vxIue>tQ|X3Bjs`QvGE*Z#SF0hT;Hy+c!AI6b_)#%9>uSvbKH&UT4A~fl9KZ&K@suQHr|Qe zh~+M#?nAJU^NrQU^bP=g4(azWN8ig zZMop~$jE|1`TrrmI#+n@ZVZm#{NCLx{oT2{x09e{r@?b>*iCq}1n3YhP_+hR+Pvk| z|5e>aSBNCIhw~i7jvjE_HYYd(*;~OAbO>NjK6y~x!UJCH{;50N-MAwxmhZ7C4awT2 zdA6>nf?XAh?8itR5`wQY!inu+Q3azDqu`g}OP~1v^KJ{D+GC{Ly)7pwRTr( zjH64Hb^lex69T}&kjcSUM3+>vIvU(NlH=afqwM9I?(H?V+s^R$t#@qoe(B8_?l}fv z{ZS-+gCE%~Mz$FU{6Z7)ZGL7+P?a0gN&!@FA1;U@QYT8&4E_HpgV?)UhJIMizA5T z`Ph9x6!Q<>UhJ22O2l=lU}nP={3SG&8}bL&-cag9aP?jV_X~aZxG6#?_?6EGu^uiS z|A@KR(}vBidc3p}LS_hO<2C{_%Fqr4uW*(BZau>W8UD15l&NLUtm@pXG!r%9S&=t9_yKo0XHTrb2=bv|;!P2*W00G2zZi?*J(09dMKaJ+#e~15f7bibSwI;3qjtMa(goFrhu`?W>?7+S%jV53(Q~k2A}fyB zl${M#ZC_#OAHzq}Gh>oaj;Y;x^nE=q!q@h_ir>jG;WtuP4)yB~p4BP~Z@uLghLR@? z{L?|*>yO<_M|g$@ax3ndns4Xok%+`8V2#F~Q9D69LpwkJN^@T<1h{$r-(JWymx^>C z+=sL*eJTTALse(ILsh#y#{=t<TK3kZ~`YT zgJexc72DVOA9J2el+b$`IE3`sYEh?gL8S~gs3mUo$F(TVPW8hTK_!xwId)+=MklJ% zKJ0p^!BQPa{bCm#{p;CW8Y}AITK5+7Tv@PJKTl%B^mZrh7}Q#gA{!^t+bUnFl!?m3 zt-D%Me^=d!SY@FZo@uVvl#_4o0rN33FCb+NS#Jy?;@(3_Vs1#=ZBjDa%kk2OHw}(e zIYXKZW-ptRJmJP;6Kj5c6f{t&P4|NIp_u?)S-u+Zv@J|#=A7=^7<_}U4cy+DCu!b2 zdxmVR(mGZjj$8+aC84MwAN2T1P3H!HMor0LOL`3@uCO-G!XHxa!W8=gcT139F%s}J zYAeTLKk2bLJgeZfMl!~YcwH_;d1%K9F=u1p4WCxrN9lM&H}?b2w6_!afVw12Blky1 zbG8jR?|Kc2B=ot>aiSPV8hAAGC&C!VNPtp&%rzq|291-Z&8;*?zKgEyQ}y5aH8k%V zC#Q|sR@Ur~me>>7?p_|h8g*u_r%D@$zmTg;l$;6-c53TtJ|O^3_hnYxMTaV_%AyW- zN7!znbxG($_=m?t=oDMp28i+S^Gdm8Xpm!5()YbeYjHEh5eZXCy0-U@@3VJ!+?rkE zV{a~X+(*8KxEjW~^u1-eG{9Y++H-Av@ETUfLERaYpJ&)NgnU{!EEjPbgej+ajS3WT z#V@Yd$g0W5C(QV!&uc(Ja1@bDfd zGecjja@61h)Zn;|8XA{`Q`KRtK|{M^SBRdg)7!-JXZNU4x>RoGzA6cMB#3d9 zN5{c;Dr6dbhLtiSyjd=7QgK{~%2?Yyz*vCbzoK&~lvYrdQYdLyr$u6nbz2E&t4sR` z1@%oYJj@TaH)WD`+Rkk$KDD@)2Y zaaU@uR`Aw5#$e#SRKcb&M8>9QlbUi4ey&e8dc6ui$P8?@H9b9ospR#F%O$IhsRaD( zqUwJ^YPk-g+A276bXwk*+;qEVa{4+;bk*LaA+1BzTrPuZZdW1IT_AX)=Z#)&8q7F? z30}U^Jp@VvRWqFoNyCZ8n~JjRP_X13OOE{ zHPmrUKKm=o0LQ!bu3wNk}1x1Uutp<4HTW{D~KwV^j=nE9EZW>(|xTj2` zQBk2&RJ0W+Mw^(z>X4tCn#8tiEc;bfu>}ldF8L~DTUeT3)YhQCLtE;38os$QomG47 zGceYzxwBrP#WQ|}I;z;iTAz1gGFNkTGp6IIH{-72wL9a9PYRBGC}c#*$C^C8)sxc@@4BPXU6zv+K5z~|yn zXye41dz9Qae>eUbnHoszLpX5JbcxL?vF1w;oX-6@w+1FqYd$?C;R#SO*&_V-qD!5X^^j%q23D%tV;z3k%-x zH_}yX_(z4JJ;OfxQV|?7o0)xZ^(voRrlgjh)Ua)uIxleA8|bH1uBEanuuUo)GiY`K zP3>%VLuVWt)SWMD*ZR!pHLJ&Tm~LfSZe@nG%V!-Z8Xdkg%N1+?v;)zmhjf@8q9Aun z&8_*{zG$B){pW_`rS6PjGKR0Zd4b<1HLDXKr*r}BhEjCQkK@@R2l1D-{y9;ruC8ug z??hLTY>)dcuYCTKVEjH1+on(0@=}>?efN?hIK<%eVEHLWU1e99A#tx|Fl>fUHA45e zJ|K+2%hVdpIc)$bvO;~@XmkM9kxrD`CZrmtQ}SjJCNN1AE}8D;QSo_g8{>18EVto( zN(M&VoE#?weg~6ekyIGgk!|d+gd`aLlLf2JQQCi*wZ3=xVFhXqggbrb8mDC|haCT@ zdaZ>_^y~40gs182k?q)QI)8szGsS}m0MWpTcK>aR{i9LP8v}pyLm#Y^zR~Kup{>rB z%6D;z(`6tFm)GzlQXerGV1B1GzjcwIaCXuCXS8#6!LV4NgmTwt)B)D*Xr zl%}=8_|41lIk$O*E}i(_o>GRJb@Qh69Ga~Di!(CX=0CHJ&F9>9E}J;)!3fv4-_Ww|KgM`lLct3Jm(SpW2iGR8^$$>O9i3)>K z7+x$&?tQ<{Ix5||ZExlc;*TW9C4aTx81?hFIJClVIK%zfeDAqrpLBumiD`WUKqs^S zx%(4qQ|_cZJP|Tx~XP51BBn z@17+R*%cu^NOTRHxgIKl3>3e^;v+e^re0)&?(l>o{6{x>b^_4%djJfq(eTf| z_dKpZ!T;3L2>@z*-wfz6z~{qhix&XaCbY2fF=e>c+!N^>^ApP&+WgcU+efRLk<1=P zEvRzYrU%1bxJkqO{I%qBzh~ToLco82L62YNz{c>jmS)kI ze*gYxjCW||BCy#|_eZX<^K7_-y_Z?Gk>=XWBVjOCZ(QfNxbt8sg-g17OnD<8;1BPsNx9 zLDVTFwXXMSA{vo?-6N(JA8dCQy&n)r|8&aYvyh0YYa-tgN&%WWZQL%n?H{gzKwUD7 zwR$*Sf`E{hN$JN75Kr(aFi*1_F#$kKtfcj$hAEQ67ySlC?+m0Dnl35{~p6GCt z{7}GN$ztR^fZ;F-0-f5E+YS?8pNkArxD@wv@lytcQ38EV{L_|p*?7Z9jE^djqj=?S z1GQv&=LdZTIs6W>}g@KxH?(xaQ4zF}l?=&AS4?f7| zpNT~4)jZGV_V>?yd)s1h7km~Hh8|}Q_%MIx?htGIzi@#H-JKR5^6?+W?huihCPIhz zSD3WkIL%(--+1JjKI|_%KqOq4iKc3bU92x~Vu=@<#hKP+GM${$MVJC-nFIcAdC68O z4wmT3YoW^H$&cSZJOin+fVxL3-dB&9~s`%11gv=SWwb$f!zP@;ut{yAx6sYH7?)5ju9#>X1_=4f8u zmNEeR{&S$$Dvk1u2v)e@dCaTVkmy00M5Ze>mN68Gj8dOjp>O*IqNPb`1pRxaBqQZ_ zp5R3}WZXUOtMjHmjkE;r_%VYT#}*4|edsvWr_l3B-N@7(D_dy}R_}I&6Xv6CZ=>_tn5{i|>9O!uSe9B$7C5GrP|Og}JOckNvNigTjAKa9MXYu`8oO-bIkquol4j zfRYzj24i^*z8nh!befi%eW;bD+zlF_N@4VfI$4d|opa6ub>9sWe_0mH9r4aqRiC6_ z*d$)svduP^{pWh@;q3<6b=pqt^QGGEWC;jLJDC60wYaN%>+!J9qyGAt_J<_eB!gCV ze%_qlv#43EA@kdiJ|(epKsYt`zi1Enm%mq>LYZck>Rrk`1MZ$)kudsGCsE{2n(RV- zJ|hPXDIn#1%71}ft?YYK$B}gNjb<7el;z*$np&s7c;= zcDwXWV%&;txN0iAMQ;Z)@%r26s1!zZ=P;Cv_-^|@JTKeieWvGrjn*a~`9a<3VCKVj z?e@?#ZqfWsOjCPQLNxZ4h29!>YeR&~aWTgJ1n`=M?d`*%epE@z$8urInn&@w;;! zAjNS$yp#CkZ%^l)A7Jr@4RIzLVvOiDD6kN0hU+UKxr?J*xYIqt#=91Sf}fIAf&+X`K=*8gWfGFpnd0e(< zZXl)jYw?V6$|va)yA5_QSuL`{mjSK@CPyjJM?D2QNTV)P;+7$-Mj6R%*@>%zHF|c; za0j~4O_(j1Qps(x6sHAF6tY`wg%+nBjI%o(oPG_iC%%v7H!`k-pY5$kPsr~83%vXz zl?P%FATMF!9|e3Kyf|m7Xwk25(V%$pcxO8&OV@fxJ1$+0z{m<-snd#1 z9lei9**srQ>K91eZZK9zQMu*cZ|mZIx1jdcyYM8}`&-?Z=D&D1f7_mWa$S=Ym-gJq*R+nNIXEoIuWaEX)c?X$vcZp81wC^ExRdq$}GkxoMDDqZ7>( zg==LU#3GbblElGvD`Klw-BSF))&i55skKEW_PFFvyMY3M2CzBSldPvkK zK>CaI46e6CHDtWBl1YR+9i__T*VfHD6zm**cwSbG{~so4>*)UkbW375ntu|T zIM*I_xW;;?ss!?jJ+z;Zw>pi4WY@SkTC&cz|4$Y37~fPjAzb&a%0^tjZ~Ts2ewG)7%$y&5GP3|Evqma`LyF%o1kRA5&8=M z@;XlQCp_k@P$8k6rM3?W7gg%fS0NTvZBl}^p$e^fQwLrUu9U=DeP0v|pZ)K_7<*iO zsH>F*l~>*cN5*|DVeb1%@?X-7%Lu7)-&A&sEQ^Qd@UqHa zHJFY#q(D&ya(E&OP}H=myn1s+%a9?=h!}y(^4rC4WVbc)cmed6dHXw6zP{^I2>I1o zwNk)JVRB1RC7e+x9em)tkii+g5xxt43j8hro&eliHxDKKz|FvnJ;x;(JEnJ)ZHTRg zV~DLvHBy)_a?G=rGZ1CJtj~#_1RgJKa4O-L!ZCu@0(b34>PK1^dO9jWRE*OIt=}b% z@DW0y1t41$zQTDD{M*TWOO0}tC<4%}ubL9xRhb1cGcF>v4c+en6f~^vF$6y*C8hP! zXX5Vd)cwkng$Xtg4pzQ1TeU}?RjqlVM7&nQHy6|JwgVgPr-H0B z*WknscOHFXpx)Wva@>EYg9i(pf4@T*j^cL;ScJ#F2{`MJdPsy*b^Wfg1RQvtL3c^j zLzceLcJ%Y+BI1J*L)qMp;mcccNnLNvIUp+ck zQB9e>4|`ep@Y?M$W|ujfPih*Upqx_E^b;+jeG`yk9NE!R!2Fs+TY>u~?yJ`~E0#^V zvS?kY!~0Qim4_xpSDCt)XsdCrrkatA&>TCh*fkrKKQ(#nRlv9C-CYF?tc_B~T? zhCLA6506;ljYgl0PLR*`w|dWAi%?mE@_>(N_vA)F-XTd+gM1$CO6`b0bh|qlwdu`T?x}coy zwZWmecV#qhhL+9F^U6BL8~9YxyJ6Q2Y_^tp^QT~DZ^fo`jzcd~qc9UXVa%;_xGbHH z{K@nz`5^|#95BFY(gOYtk~(xrFxNQTXkNMqBH|aHU+3R7g_19aW8wvoYGdR$e*XG1 zaB-GxxsM79)Gh(Yiul-OGDyZcY29Wnr!67!q&@29J|Yfk(r4r|b9I>=x3s=);vWz% zfu6DoF5POg`x^Rx{y2HUXqgrc$o7VAIe^eY zjK_S0O6@(heim78>0H}OftDH1^8&SE)HR?hPe{DT z5y3}|Ma+=45Vjq;ltxXhD6tT+;#JCq^a}jdwu%T1l!+vT-9$$fA))V*3rgr0PcO?nPcfRhfNscWQ z7dPP)uV1JM@W;YvPG;+M_k8R9?jM%07Rv@ETD;sK6GLND+qlDU>kX!yKqgkg&8jOkG&4a3D?m8uz(YZ_DTeWgI@ zOgN|(IiUttkF*@B=I=VT{tsRj5n(|gRl`@&4k3}#Q9A5XJ5_nKQuX< z@PX5^k)z}!WOHu5iK%n|PJ6vS0sb_Io~}Gcyl)f9xE9N9Wj$C)e^(s1YV*>5cFpC; zq4jQYfg9C`So*Q392Y{{7`(d{;{X2c2<%3WZG`hz7XFW*9f(NoM9N+lHy#Xsd1|L` zl&IS*;lv@poU^lns__Z$YLy_M*gXK!fS>V7jr`0iH-nq>V(Dy{qU^$-*z}6d-hMJZ zDc1@CH=iR*9B=AJ9l4AP=THf&`9?y@c0B-h%Q)tcmEMX#|5w)P@s{Qw6!gn09D>|=>j%`8EH zDMQW)*9u;-l*K=?6Wj_+>6cB)m7`IvkCORlL2$jm(+-p)*l8pW1RL(OtJOow7v`>P zPn3$+C7xPjYBhn3t<^$Bv9kJdY>3wBX5+My$hw=433Qb4n-ixAXKAr{5VoUx_=Voh z$1KT4C_4=1a)G1L*dee)WS#86q=Vmav%cfHIlQ&RGD#yAZUc>O`|9QEYu#@Zs%Wa5 z^O5Svoa}ie|7UBep{UrCINU~-F~jsO0{SX*CNEx%B1u6Geg@`uosL!O&)&*LPB5J@ z&14M)hwitzk9#J+MqRq4=Wac6lzIMorn#_V)5m6XZTEX4HmmSfphE0ptiAtRp3OB? z$cr2YLg_Zwx4JN}u#wncaG_fIK3znXpWvcB9(8JuV(^dFwGdif>D)uZz{$&bxo&5` zryD87uFG_$D3Vn;USZ|K^w_f{k&YDq>N-PHU3blVT{=zLaH;yILRPN@uI14W)cJhINoAIIP_u&D%PUYo*F)H zU>`Q$cO=I`*>F(h4rDc_No977okRYQ(ZjIpBh z5zDSuEerE5=@9P7e}Zy4@#|VIS})TdNQ>Y3yMaEgBIGnPH{>~ZNr!WSv9 z_s<#2wrmV3=;Po)>v$^ZTRz#b%Nv=3b|xas9L;ggvaIixpN>3cXXB3A2av+~XJPMW0QVPS05!b=LYvF0wN7uQ9SjePXNY0{ropKI1^U6$Dq0CJU}?3=c|$@F4ZO z6?CniIA$w9FGf5SV?~(keTp<@9WBtArkHZH#F&!eL|MI9VMgoq3l>g&S_-T$YfBo6KUnqJtrtG5V^gkgxR}I zs)q`pR-SehdIm}7WP&Wq;Prx>?u{)%gD;rA5{w$f)D0_y7x%PKk1zikhyoHNxXVIo z`x9;Pzxv&7bd*j%mncnUab@wCP>)_Hp)(nU2_Y^C$`ck=!C_OExz@w;x!UK#TI)rY z`q5jBXiKeVp0wgbK?RqhWV1QVHrQN@U2M7J~lF5P52%DBK@5)Kyy z2JdtG?LLb7PT|h)Hph5((1}3(xVd_5d_Mb?fNb^f(5EWRc&&E4C5F6D z*k{|8PwfUy?+0v?J&Vv>2tQhidCdYpzD*|+La2U5_gHydGcD9i!J)<0y}jNQ&{W{8 zyS;ewjlI{U3UkWWhk>DxvYQCwpto|IA=xTqibTf4i{bn&bOW&ooYC7 zmnn|r%f)*hs_Cr5Ot5{gZMY>&5bL{HU1{$YAfCNqe))8_An2} ziSj+ul}wg?M!F~Ic>I>z#!#w-B$N05QwubJ_zVe`zJFKaBob1k=z&9Qvb$<@pmg54 zpNwxVvFYQ6gaP9)3}YxxYectaFDr3L2+~7~emQMF3X3b#@pm<`^tNeqUXJD2H+}Q1VXzcfjY@6#uW15JgQXcn!&cR5{#ky0 zS4nI4%Mmsku2sf)vj;DmH}ge^u+h9jap-#{Ngjmfq#cWV{)F{hMxCu;z?=>P61@`j0}HixRcuozWgi#`WIePpu*EvZsFaLmT$)k_T_QgBcwc1Es>kN8m;0 z;m?R$odM!|w6U1j&e=QFS8fDC{$FkxtTw(*h~OV)1bSgiGZ>^|dzGK^{khyA^|Xos z7)5A%o%>&h%>937>v($%eA=radbGYh94tZq<#AMWYIJ*S`_8%wXGZv(V3YVfcTn2(p5iz=4zZA@@}yy;m2b?_OS(omr;*2z9j+_a3Ei0y#! zC*kyC`b4Ktxf7Lh`Qvzgaoe^zuq%XZdJ47bAU}D52Kn^V^(nw{-2IU@NO1q) z1I)SoMwjZNo4{@pb? zc@61hAvuUI(~87GI|rJnS zTJLyG&r;FwBO2vUJ3v+VtWZk?*Z=GPb16>k*Fg6cuz2=<-QgTm9tU*C70(hU73f0(BCKAoq^-WNASI&hITy%VzO0ODGQ8j6W zwY-VygSf7}Qv>dWp!>`*Q`d^ky%U5bab>!ZXCP1i2^iz1}NN5N#KT=r%tksGdA^bh@6S^=_y zKnT$c^GM4vKgiS7sYm0&=-Yj7`uP?w8lT;Y*W9XNEBVIM;n)T_pthoG-HQ60EdaM) z*GC>+R{L}##{02Y-S@(~!>r-xO0Dieva zGM~TEMld%3hu2{oLE&04*n)|(AxOKE@w)7EMck=98P1@!E4d3dMn^ix z8?jy?2ID4*JhvL*{oUu7DXt&#({&^JqXEE$FHrLSe;Mw_nNmDcR!U!gV2!))>5}?1 zvgavYQP3(xN)Vq>BK;Kd+RL0D2s}YRGSXS;p^{K0A>fxY3bG=o~TNu7UybOMNv{qwMaH{96wK)vrN%F${ET% zz4!tgtV~m9r|N2E=eUjvUMB9p(cGFir=6)b>+P!Hb-k^s&Q%}0uRem#Q#{8H->m)0 z7t%!+f~Z`Dqlr!6rsXeH;DY7iRvR})?$h?kECd}>=aHR5Y7TGvf;X~5p>ehc<_K*= zx)=i0e%R|&op&mFlIN}0d+wjoM$6oF{{;?W=W^>!%lVM^!(Gt3nY%hP7-Z01F7k~G z7c@`^>DWTI>TV%Yr>{~AyzhfJ;Y+)&5nNga#oLWsvwLbip-$m)40b5{fja?9aBjE- z@H63@75^vX$7Fu~NYPpy0N%`$W)uE3(b6hu!+L-4jUk}LGysrpW~3 zJ=8!cQ<{IEshGQICp(*xR3a$A&BI6}(iWXwBDpmtbbvJqLNuabFn5WvGUU=Rt*t^X ze`8aD#QS%JrJIBvr{tz+8rPe<=JG1;;L8jIR zO_?jl^LT$y6EM*u!0datN@Llkv`zVa9l8p|oO- z&`W)-G92Aibmd7aoplH5kxckYio+7qw-xP|&<%=KWAY5=;zuI9$Cs&sZ(bH**%)-v z3nIv>K}-1sb8b~R^45(-KSmC)yN z$pW_&g1WK%xEtb{@!dxbu&iE2#4)~n0-5DHUAf0Pn`*9FpoL%M8w_L#&z8R@A~Pox z4HCa4|25YRrjWcnG*vBRqxvtB{%weLW7NhiR-mlv+PwX3Gy&>GQ^bgZ0Yz|8;wtz- z&y`aBF02H!|G@=t>ZZUF!mjGbhdo*Xpkjb20~m`3vU+i{TK8?o{3Aa)3M$NOF77-Y_H-_!Ag?t^ zDYcF|;YAY-3TB1wFwZE7eW-c2w%^T#IaygW@#u+OI5l4LW$;;r9zo@z5u z@8OQt^QX$pdFxbdL4M{CdZ?3WOkygwGQnanzPuGf1S!x~&6c347-SY11!mk80}O)0 zBQWK2?Y}@1OqN(@ikv=Bg1b)i<`tA^J%$^`n3t|q5m>orD>^=L6_1}h*V2H2S3Nif zY>cEFO*qV7f6F_cBXPBDn9D-0Ax2|pC3@F|4P#tk{MH*DkxMIkmNu}`yDtp;@p|8r_I&e*mTEDu{Y0eZV*w_JSc$?Th@p%L`;+j-9t5{ zE3P*6u#wflGZ8@SiOTBy>~+&UyVU(Mb*s!QaTP{lqM^P^c5f7(3j&C(>)_?mOmMU= z3~W5=?!88oJ*iV0#zxYlwyM+dR;yI;{du(9!IQN?rD*M4bx+h<$1JuG#UnU*$Y_k z3S=Ang0m!488%YQV$5x;p!0w-5+(CpVbXAY@Z zH3??wSz>AChbpAi;H0$(@L)>;&5N+ChE}ifp&vgehLHWeIt_*4XdWJV)O<6TmYI?@ zw*{C7VDE>dvu~LqHvpl-s@N;p2B81T@W2GFJgD;@Q@HtSm*Knx3y&cP=nAD5q4vwn z$X(#`$ORFFFJHY0k0nfoeB#@Og~yNK{66_LUhsK&K2c!j`FKnM&ewMfWHaG53p-uh zKFE?ZRaQ-5(*MB1iTyx4%l8|Jqh-z8r;X0&-$xnABZ*B3lp9WFY0Fi<8OUR7&RJ)8 zvxsHjzG*l1Te+mTu>S~|t=n3%-6<40X9PLd zz&loPN5BN)1-KG}lf}8N5NV|4nCPRz{@rKunUDRfL0&0<#IN*;(v3#8HcL*6D(jxW z3~%XT#7@L+LNAm3GDrnPQNk#WV6plio+otS1Z-1epcF4Fp;gaqWnL#m%rf0u$BZHuA!JW99)C5Q&v;uK*4Qpm|T9r)=tG!G8X(+R9 zX!*65P9-TO1IHbt^v)=KX1TnHoV`mWGPFFh?t$kIPKH^Yg}!r9P9w2OwrN~+130T) zB?)|-`Vx5?ib*is{RO%Bsa%5O8@%qOpr(A)Nt1*uPyGkdBR}~6{87<~IT+E#h^faW z2=0&5Eql0Vpn;aqc)kFQ2!~c~J$D#h1CxC3(a64HgbYsrS9)S87~TO-lrk0B%`{n* zCV70bBSn}^Qzz)>YO;{_Nci&MiwF~7DDFyvQoVo@0}^<%tskw$FUB?IlJF?o5P zGDTO_b7f}8H=*52^tVd@2gmf^JyLRdhyk=nt-4KDZVqXOt+S?bRD<%!QNYiqy20~X zazDJ8Uom>ymmTdo312pRbnAo)=rz#8Agta3w+(MjN>*cnv<+x5K&;>gb;-Y0)+{FY z5@Xb-)(;pIV5ci9CIM8jQWSw%HVT!BP^1dV5K9D-?5j3Xf}3J&DFU*j6vGn%NEMZU zmGaC)%ClvNEUpN2T1^`vn=OH3F^m*}S#S#xj6kFc%dkrXhODbLUxK}2^eGI|{J%dc zM!4vK-$rn}N&CFIakHV@ZJ`ED+DzZn2=L)+R3j=Eg2Le=8VcI;1*a#~&4?=&AD;4* zSlSloMB9A3P~3USsuVtCA1_8n(*21RksnGirBuyyt@IC%h+p@rxFSc-CamCxtl*2V z{;+6C!G85sTJ@h#b;4ZF0jDpY?NQIyclCnvTzSJDO3)7q5+$Zv- zvC}J`C4XT8;;Q^v>KA?(hkga5%}@CbzY@V!TSJwFr{KFQPbI=_tLWR!3K^eVw}QmS zf;Rm$9bRPCe}uTTr+tn8Wg>$u8!m>%6|-h^Cq#qE+3NyX7`m zju>qsN!Oxmp^}wo=}#eXx_1XN={@vj6WO5B3Pi)ea|1{%2v6i`=bXNUSq34P5^j3f zCc7SFffY4L^La8&?0~OS4{NY%ym<`QCO}REfj*CuM@a6<#IGC%(aRWvC_hT>g!vGL z*s%qZB4oSiT;$kZ^m#qAvaO5X2-~)$RLpUx_ew-#B7sr59%#_IkurX5%?^}ytm2VF zwemqZnIgM%>tY!&aT!bSNn%fKMb7B1yxk2X8C>2%opIK~Uq0UV0O%$`Dz>ieCQh+{ z=e&<3-%Mk2&8<2KVa~ZgC>*WTw_o!4Qe)Ix;OgD%euB1amjzVCP*MeC&?S9OfMr>- zfE5!IK}Z#pfTtLo3P7x=1h8abm1fGYQmjgaAXZlb;5^QU04pJzBZ7JVi@pnH!%wX^ z=tAR-tv}Q$5txL3uG>H#q+H)K3;-`Lqm5t);3#ao19l4VrMDY);cfw31-S)s7a9vn zW0u_6V@xuj5jX*Z$Aj|hsQ-gY)&DH@^L-^eNa9VQ4Y^JoAEgl)gd8{&z9e`(@9@^I z&fD)ie-K!(;oF@?wan?{w%f!HoGoA9yxFMS%;+&g^01CQ_$1FeTEJqdq%Q4O4%Jg#Dr~cn3gwE5I z<=K_GX2wG{MZRXnLpEXfjM&I#&FCg-$Y#n*=4@m$VqB@M2(1E=l-h|(xWsW8sO!BM zy{XTX+YrtgCG!4TEEMT;0!^2GUKD(&UZrHOh6T`!~7Apj^Cr;9o8dB}}SnlbHTU z(2jS-lDUAykOWu{yu#I7>`G$1Z-BmT!%k}aPit502qUUns=B(=IhdezkKPSlkB!0LS& zJT`@omaGnP?IHuE_R;Ax7ca8C9H+TbVOJw$v zKRRv~F}D6=aM3)C&EJ^ry_Om)Xn#pQ~!MyXxXQE<}I*yiWkXYw>!4*f7=HW zvz7b76u{upyY%q|mow>LQDki+$rVcpTMGGDe3s!Z<<|#dWs|Teog2iI?L%s*{`0$0 zL=cfyp|c}`uGy#0WUGXCtJNJQ^+SDKwJ>-g;67Bc5e|rHH%3!?zOAF1Ug`6;nc`O0 zvHtUp+vCH#8gr&?5bs7)8(VzBQf@~xBw>B#;ugFQy!&|A zYZFiKyf6v2>p61m_#sxL*(gX$;f8dEfI8ozU*_tuR6q_!o(tzDKtcBt}ZOw?^y@}wALx1&vMkA8rB^XPx+79I+I*oV+YrG8>z` zV<)X&gzq7=jwmTXIYGG$HLd>w+Qi9u#Y-dvSd+`tHbL{6ugSl84XvL{bSf?9?hrm{ zHuX#I!*54Fqb7>8Q?%)2wb^9I-TntCKVitKVY&0ydwj>8Ggc}PbXqU>2i=GrPNnsF ziRlreE&WBZ+i<^Pz}TK)^;VUqV4H!eaT%uwj?Xxjwo6?EhV7l$QVJ@)p9Olx2%a1b zQ<*8{HR1}y<`Y5Tu!r{aRQ<>TgvQr1+m2WLPlGee14*^_XhrhcpQK@{el4w2&bEX(5Jk2EgkFr4{nf0ND- zfVjVudEJ6i(3Pk^DP2kVL%l|%sUQxrDnBeNvoQO?-y6v#TMtpGI=M2Jt`7Q=dDlsg zRv?$8o>nD&uqEjy3u3Z7~D`v~^Q!Gq{AXZ_5mSR{b0<(GvYBS-L zX3T(D91!S{-dPOU6VDFqlcvI3`H{`9py7Bc!Tn(DoPR9~K* zvgitMS4_&;{2q?mgPJ{U`$(&T(wg`1glyM)jj1US_v|Ktb0mT8x}Mbvt^6Ns#YmNvI@&!R4h=1 zAXX*4l-U&6RzX>7iXLDTz)}TbOaUbbr2>-X$Umw$si15~)o2}Xee79k70cDM=_OU57c7=qQ^?~{Rz%-EWBwiPyYC=hM*q|L;w+KFa zDGNr^wh=2txfx}W!Zu1?63nI-VasNePHTc5fK6&ZmPV|&KPW=q7+jhc*Bw!8QvS_E z%Jc}j`dm(h!rf_Q^$x6P(C9tSE8A|K42b;0Y$d+-=|WogqFfbPSm8Gih|p(Kpg8@O z{s;CeLR%Ju#&P=zd={K>WPQ)?5P+8g5a~JA4n9BY5&nGLH+ND+5XAjqH@~b;MahvI zz@g*+^coM@LYOkH(SQC{fLco_=n4Fgml{(N)41smNH{%B9o}HmH|SkC6!*&>L($0p^9au@fiQ@-9=c#~9>?`KM7Q()S5o{~zK^DTk zq!DZ@;{qzO8M3?+HDohopeAa_X3KC+cr03kjxe`?LeWc!Rdl<8@K{}S0Dh5sl*}&p zAuw{Ija`W1C~UX`8IDisUvQO#TB10JyQ58~1PfjWdr-E(t%C3%w5GNJ)HgPCCowDg zILPUC_XUpnF%#9DC#C&_^@H(Me!&CpN0?$2_l4o?*%tq@JBTpWWrDL8EQ+jxvZpD6 z1!Qcd2o)Uc;4!`C51P}WQ!LY>`wC5|e4p7391h8oX-uc>j$F=G&65uvtJtp!$SWrS zMq)5h1!WK?&WfypvcD;U8M)1|rd~$+wNKV%AlPoGL~zl)W)Nx7`JDHM%7tbLq_g>- zsj}WNxpwJQo3GkXQ;bdv>Az@scnvd`3or^`xE$zKdyb!V!d%ZJW~op6S-bCkxaj(y zsbdyq0cluQ4hzj?Py(TWjv8G8+zs_hIX*)OOQB{ILRJfAXv27MY=r+Z5|z3Z9)$2L z`q#DRD9ak54vL^9p!Fqdjh??Sa-3R+I7)7T!yLbU!2jLG*C>u8o1`JiW1t*$S^F^w ztrSPxmEd6Hw5B{rr#J9sKbMenC5L;WpGVc_W`p!$PXHywd5LM#rE zrTyN4i?Nh-vk{7Na$SAmsQxztK$@ zrQ@t{(dpSzvM_hR3RGz^>bw_a9up+M5uaBP&RXJNWT)dj)*DNz- z=2>OeEHh>RCThrL&DbVt$Y#u7JnHW!gwEDOHgGb_F1cZwC3HD&mt3&Tnow7aHEG7B zeBdjVE<&;j${<^2Ho-_{4n!Q61sZbGTZ>c=gYifPh_x#;9X@*X?-TCl#=mC6b;8V# z5N#Qe$hwn4BvRIx$q$FF#@WZYKvyYCXj#3Rn?&mc8`yNLrH2Xp^Z@Jt+-Aee`@65y zGHOnzm`_27wtQ4tHLoAG3+u=1w;5ghi!Ht_UlolDuZ<0yMmMPgXe>-o<8QuJyo-C^ z0f=I9hVx12{4PWOeWxdvotr6xm;3Q&z=`low0wTqrC|IH9yJun*`SJX3V>B96VTNq zW_mVkRk0a^h-v9HYF;7^YqSBh_3GKC%AO(dwCqpji!_!?KT^&~^&4R+`*tU`>ZCOn z1uaUpX;G@WTFnm+fRgfn+6%Po(lr&JP-@$zFg6t|MSK&K62C!>s>)yBC1#OWDcPwO z6PtW=+Z}aI8mg9qb`zCI8w11%%K%_&=awP8TS3kZdGaoWu^7u2&n;$^Q~3)JP-LM4 zO3ZutOBppB47uu14S{HVL5;=sE17 zN)@X$+nI``ny==fh|Qxrk{U9`PDOgnYiDAsX0Nml?8G*OOEE*DLVTr|x2WQ~W+W*S zvok7GU?`F^Eling^*Rp?gMxJlTR?iHGfe$dRHzt1@Db`wR?2e(ah0<&ZB=5#6g8}B z>x8GLYueBUq>nZQ17G^(+c5=>nO>sMDeE}8)iRAuvdE1-*XIZ z<|dW*K}sqUpd+%rDr+A}ZTYS&h7;OOq4wDBxdf7D~R+1P0(} z+8u>R5#7+6Q8?x#N`aYrhHxnYFJ>J%8v8LRU4@!;mbc6;W&Y>=npC{bZLbPF;Oljd?^!`6Vi%QF={m$`1vrFV9AJL!hClPS20UwQ4wD#ZU2kLUzoENB&6{H zT?+2R3i8QyPV*LH>11-YV!pP8It7)=n_%-Z;A*!?U>t|flUai=Y&{jD^HS8mu_W#! zu^7&n2KlmoDp`XKUldr92!s3&`wf^LI^_Q@8#uc0Un7{aA5+Um1zrX*XInwK5{b;& zwgqNOn<^8;lEvQr&?^nO=T+h~Q^Ca*j$~_dym=(Z0Ko%8`pZU?GZlOk$IgL?DQU0x7=y`Q| zebD}PakB_ozhh?$MenJISD3_HqnNCxYGNrHV}Ax?pB`I-9LsL(d zWg8Jk$d?oC4v1E|eBT=Pbv%U!1cZ_m-f(jw8rvS;eb*PDWfP z9$Z51r6Ml!GWrB%VSYmDjPk@6c^Q2IGO)McjtY}!D==2HGRMf}2bI4$W;|vECI<_y za?EbES%5h|YGQ)^x9VxPLuVhfnzN7FFjyZuv)*Qx*;&cN$u~6FgL~NfD>wGZ3BQ`% zDfx+;7wG3hZ34S_wBdRGJ?kg9rpzdaw&y(%msdB&H()DCu{mCKiZ#eB*on^x(h6+Y zw_^>6ocL(eM#()V(^X_ATLFkN>+!n3U9X5vcG`l$Bb@&j83R1=El!6 z*a-Y7yELH2=}>d>&|}T9&tKg0t4G5AD`fYOPN?xXmDMBpa>?>I{dGm+izk&zh=TJ8 z0qm*K6I{*I<1|)`7CC9T9WOj2+ z7F~(iWsX742Fbeqok->cpzPM*)nKk}o6;m<9ZBo*p|E@qXpG{PYeRTE5U<;@Ir7%Y zxkBy|(Q6%A+@EJ8aZW%R$rg6ZadcFQ>~ycZNZLWGY01&Y`ZL*sm~AZWnocoQv!UQ? zNBv@A`8EUI;8q>`j<(1N7Nkp5;YH$#V;~d;4`GWXNI-FFk+^P$Huc-O=;gO-ZoPg| zQLcZN`=sta{YLv)%?<8qdnipvY~ONYB2{t2NDCVqRWM*80tjA@f_Hfb<)y;ldWzXkKZiluL?_sL{ zUZ&0prE*b6WwBIn`9zgIm-!o{eRnkXI69X&R{b2o$gdYtv|Ddfu?F-~qJ&RuDUQa^ zRwrI5b~PIq`6$y_5jq$bf%CM$T3eyB&2=jErRY{@Tiq+l$&qYhEQ@}HW(3oD_H*89 zEXJ8`=uG8^?MiFieIV0DNeNH=s3#88o2BAdBDJA0oUykOL&qdiTZqTq zEo!5GV=~s=3?rUT*+Kk|w9FFjZ5*5(Nu$)un}PqzdzsE*QL`2w#Oh4q5~IZ8MB}QY z$3O0sB{|2%Nf^|BqXGu3=I; z5X>h%x3(N@M>_wA9;e$5>i=vfEk?zn0VG9+rB+Kon_qd2$AKd4U*JOqxkJj z={du*w#^JFTvWPmL}vyR$sM2=RCa^0vnMvNs^`5(tvz~zBFyn4+v40+);GQS*0GT?Rm6M=XAy^Jf2ja&KdJVDiH zgS@U(JPgo&=kflU@c%aa;$5OEmGBXP6fy|QPNGi-F>+e>{i=!{xO_EnWR`x5jjw#@ zQ|z=L$oT)&c9$a!qDR-AZAl+0Q+%4V+CyS+=Isuju*QJjv?WL$Pm5@ z(*wv0FYVNjPbVqHB`H|`-H^@4N--RM{8`sT`&}siSy=?SbU>j!LQ$e(j7Z|0N1&+g zH1x0N*!41Y>$grOt-AHkv8ZEGHK!)4Nm}Y7Cm_|<2v&lwRRq;5Ag{G5+pk><8o22r z6gG)SJ$9@;ZoTc6z(E-Nre(J3qxt)VbLW+iQ78sU&qo!Uk7Xwyo$2ors2wv%C)z^M z@RXp4_)27YjZ&>{yxMRPVhdE5OBK&ytst6i#<4U3w}Nx4NGP-Ts8^44QeoW*ognqO zlpi03DM%%mB6J3jPi58pw8E$GelSjGqWhO8iq>r*W>A!#RT!z z)7B<$pQ4eTZ95T2cHBd2(=}>1VREr9`jw;vtKOta`>7MJ>c-v2Rx72dVzQ`4cdQ#D zb%L2)VBgH}-1lXN^#wwJ#KkH@5R`UiAS!yC)ODc`y#}NO=)ICs18l!!3)FIJvR*)2 zlKay@8AHUD0cm-^%rf6ga(DKYMZ?FBAa-Z3vyC$k!jw>C;8 zW#?Tt_mv~1y76`YUYgB|+LxUw@TzR$4P!>#rJIU>pONg0T9_ABT#UBE5N15vZA+NMbtYA|D$;KI`8aJtC z(>lPoI<-8~vZAO;g7Y0$+N=whC5_B521KV>*q)4W*FSaCjvM)eg{fna-+S-VAy1IT zFS+V0-uOD}5Zt-=mvOZ03AcL}tFRdK)$t9ojsNv2;>;J1-h*2hV12$m@p{=mfAunC z@=V1Dx`;_@DIDiIw4|9xoml#mU07o}im4%wWk}iec4IBjbjrh!H&n{}I5E1a3*-1f zX8ZAQcwALw5;R>~=$1Z!1aN@&u`BtlE&VZ)&QGjFR05 zf6IC2y&@9jzvilAfbvN#))kX|VAhZf5u|jn9(OpO^QogVA@iEG%@QbzU@E%7SY15F z^p(YS=-EankpV~a^@*%|)&H>3a)PL$&A{2X8*Czmv5OC4EtH*Ym~=s)FSIbP`X@UyJ)dUk)c(^LBv0aslD-aseUpqg)-?$dvi+WtzYkKQ)>o!=X2takd^ z|K&U*A=*g)`igk2;x=2q6D6sN8vR;~p?)Dj*k%!4nl%_4pEVz7KUX&L-npWiR_X}- z(dZ<&;BAeNW1@b3IvVR}8e%n^CL8t>pl_2$G`0F71ri85?I2~qqe2#`P=0Bu?Q*6$ zWEY~Qw9sdk8Z>3*S^mvA4j#TRoCO4`wv6MGmD&{bGK)z}3Y<=ya-g-iFeMkRp`}jv7=(I|ujh zMaIVPx!dG?l9ZV%aU5{Ct)jT)8>TmbcY&1YJ-YOxgclGt5QH~E)^<&Rf>e2hwS8ZW zy8ZXA{E{FdN%tSju@dfH-i5hO|b#){s4PD7vIMRKSZx<_@i1s$jBt z&Z?2i1I}&&dq4D$KM#A^j%n!)REw_6dS9!Xe$ATq z8`1^t(LhQPHl3h~O6cR8K?Jd$k6c_w?JU)(vd6h$+jftm=DnaDpqZ}JF$HU_oWhDu z-i`HD&705OE$?XhP!jc7?9+~y>>km+ejZm?rXqlkti947dndHB5vH)g;V;h;Q?-DH zdSW(%pRBL+$7)Z!grjITl+SN7@ir432T-Pi8`fkvl&*=tj8x*EvVLM=_@mDT(2&E zzi1s^i3|7(s)N8gpe=AV^1CU-4i%OEI7Y z_dg7Ws=Kc`G<9kT|JFfrg-M;OT%*tD!N)i-^M1eJ@(;OV(jEit#rqxHH-(|fN*s$5 zXa#0Xd?@sui?7&qYYA{xY_`*^ftA??8;mD4{`mqyEC;cRHu_`_rG^+SwTR(;;w)mrN z55*Osv10bbMmNSAE`Bhj2ge)v$dsli^{%Yk0NDNdcI3xi7T~cdW~?rvVe~2IR>9oxQdAuE2u0o>Z*Iup2#xn4AZ_>bsjarAX}w%Q6yjVI9~# zski4urf}V*Bc+(u3HO?Z3!2i4=yIk!87-qrWl++lqp($1&}_#b`y9g7__?QURL`_u z+&2a={-uNH_D*!@AV66mx$D+(u&-id&}=VHM`;g@Ynl=0hPbaECAKf=#_C$Q_LZE{ zW2zcjrI%iU{wq?tJ8#}CPg+{Ws#iY?Qm^)sUcKf(7pZeJsU6#~u^dC7IoB+jqxj^h zc=v&6hMkkE^G#5d42|8hr(5`Oc(pT{VFo(S?^#?>osV_N9x^0MZm=Vu){nB#S7#H9L5K65=0 zO7wVD$CA=IupJFcYkanwbg0-|Av|5a{lq^B=py>wJ)Ame14$yVOkXFjOHJ9-QY2^G zcaZ!Ilns`1f1=bAG1qd${Qf|XNQ6@jAPE)6L5u^MnzDPhyhyNfn926VPi@cne%FuT z;zEs#XE^Mq%Kr!<4kGY1>I!5q6i<4t!&Qy(MIb6+g6&l}sO?+Z8IC}Pu( z*!T?DZdC@54!!J5FO_DcRjp44)3DoI$g0&#tfL62xs_Y@kyCR}HnihH^MOh#Zk;y_ zSUXyLQr4|zhQxHzLAMn|Rr~!FI23$D?L8kOOGdQ_wWnt4aB7J>(|HI_Xjyti)l~H= zs$G<(g40>=|KLQHAObvK9S!_dt4$RGc{bZN2pkAXJUxk(2(iQ^j8MpIEcu9jD(`>; z8=o6D0cKm~&T+FQv*yND#jU$?Hyb*bH0_Jx_V((-O@HF#2T_|F7jL<6{c8*CN0(_3O17c;4~54vCiai!A*#x?0iPx!Y7W5j$*#W`kIY zl|62Y3+L_wPTZy|cwHvgS=+U&6+3vKt?_#f_+Ne_gAWK>hT7e9P1Nror*RY0=r&2` z&tj%?pvEMpwq%xzX%9n=izDcA6F%};F!W4-7w31EAm58G?AtYwJD8!`b^+zaTN5zy zDd(7tSrKSaa>)6x!Vo#x_@~t%{;cxgFi5WCqpuZW{PSbB{w48 z{htq_oIx+r>F1GC#C>5=V*lhr?e=Zr|6_o-)fhntt_8U0_?qoB57RxEQ&XP zWu}pFzj_LE7kYf)1o*a~bjX{pH=*R}j)py_#q>~5nIK(Nt2y1cJoRLXTU(#4Pd}5c zO>JlE(MFooCXKb-2L@JWrTYlMuq+&J*b?91Yd*?QX0-ia+G22daeJy1neFvZ_I>J- z;FuS_7O0lV_Ji8hU-_+whkolpmB z`N?)hADgO1=8ex#tGxFRIVRWp`-h(iz(AlMPH8F z$3~K~<1{AyxQ|CgFQOl)l;T=xZS*sAa4MgWKJ=W>xB5O zttdK~m~$iGpX$Wzl`z@EockhmVwQm1gL{>b3o;^^vAjl~`F%#L7%?QgUi@!YszXG~ zA?KBV127Tq^&)W(v(Y!kU@os40#B^fAMT#--^>>%@HUMa7+6+M5@vh?{)~)PgjV+) zp}my)k-bd1qHn(^BIG+i`aunY;^0}Y20U2)9Z-ans9N;FBJB#G$O*98!OgFOz`DEl!i&ndZMcb+C#V+Q3L#_>gvv_rZNnl$Ty3JE zo=wQW6)$v!G;LD~)WaG3z@^$$rUeD$Iy=EW-+%>TD71$@^wz7`dQh_8mhCk{69T2W zk>pX|~cFuu7q8p7w#V@*^!=L@YD$)YX7ZR*O;!J>xFK*#0qNXmSR3HP?p7 z+ld=JOOMR9;xm5sc7#)95q0mZ%~0;<*gJAOcue_~5oE!)tb7mn-+nl%Egkc$Qw@&n zL5gCrcE336|BxA>HH?kOTP#9aZSzA~1gUDY2h%>*gsu(h1#n964^F+eas;SS-;-2E zHhComZ}MuF?Ope`9vQvB5NL{vH*67T%OB6RRwgLL5NS-1>uNUdTyHt`q|!2|sRdLg zR4!-6Y55->zucnu#a^S_enF4CXeG|fD;(9mtc*P-q;;(nfg|Ujln$cJl^J=z!~B4l zCIu<qdf?zT5=4J;VCz20a*)F2u0%+PduIl4vJ7fXF=CU8cvgKK_ ziL77A9zHR#by$caFNVmdvC>NPJy<3MD+tAvS&v-+V=`(BeYkp?Dg|vZcVt+7qzOtH z^S1Wnvc*rC?%iG`q0mF1en2LsR%{kzB+x0KlVGODr3a}}d4bK8O-eeLU>mk{wiSUB z;mh=ckQ?+Z|6y1L`sC%9Rsk?g=kV%r!9YU6IUYS>D^4l2^n{I{kWOWKS)q-TM6r-a zF?om~P2TE=*v+4_as+c3lUp}+zq4%coCsC!pvshFIrT$Wmbwuh{Tbq?)k=vj3-jFAy!fmCh7)a}v?&xzLgv{>meM3~l9s?OSm zuu~@_hue|QUa%rw_sPO64ZwA!mF&)nFI*0qNG0!k@bzOZ6kF*h;*kg^68F4|XxBM* z)p*v4W&%cBtJp}jNfCHcMy~#aiytRlmb2p><%SVoO9iNk{3zNPJuJA$9Z%bZo3-Eb z5CR0o14}y}GuMKRPulnzSOdW7IW1?rtaK&5{r{QZWBRWuFTQm3GN@*cN_xFr)2^%9 zcvz)51K`munGik+2p_wDBNyRtX&Vr2KqjMaaet!c4#@CdcV0Rd8@At&V zB9aP}Vja{Ce4s%_{`uW%XSE2&YVkKSOQ(zL)e;qVsHfLAx7c=Y6s}5Ljm!1juwwyT z>1h?@=5y|jHv~EAG=0N!^EekpM#8)=;Ge$251`0~HF_ygsmFY7+0Jz?Pi?AzPBLkj zz=7M6ROAw*XCxn8vdIG{N7zDdy#u6#G`Uj$kFNeY|16+uxj@#|S_KKG>-`5i0!0hu zor-dwl?eXN?ZFnt$(NVkdqLRdC|bZldVX7lQ~6H^O0A(?J8GPqzR3|wA_-8msV5Mt ze=KwhRB5n}CzU!8(iY~`a8fRJb!ccUbkjBjUR|;q+@F zdEL61i}%cs)7+LhQWETW--3Sa6ybNIrPHHgcx-`1{wVs7S9Gwmfg%EUWC7@YU50DE zj(U}|eSWns-G$t0q^~j~Nu0-5owndQe-mEIy&Vc28xz7)^EjE>0@?(}1nCTt>oL2q z@dF+cAhW%4E-)DIo&|dik8=Vo1CFh&f%rufvR)HWUZu&El=)8I;&=N+f6q^;J4F`~L@_XJG4DPEo9TzT3DOpv@N?Y06O;>8y`=6C>4D+cEQkf5KtWml0^^_O; z{P_OmwUUFMjH)%Ikbp<_;}LQCdmOK!nsvBuvG`MK$9;5V82=EvkVd1N@97I#h+Euy zTxhkTS?`~BP1N^!tG)B*?%B>!4p@aW#Nz($Pi%2M_lwF}(9ZL_i{@{Yyd_tAYFI2! zx}}`)_CP7XA5iI66{I`1YcfvURuw^k3 zTU3~V){0T#I8SRpxzYRp&M4IYuiO-&Ml~hpL)C&Iuo&rH3f+QWG1Al%2Eb#bz;-OS ziz4p961QaUeh8JnCw+(_S7J{1z=>R9cgO>x{96ptTaZrqfG?|Da|zy4!VXHCM#o8j zOjUr#Nx)21ffuOfb%?~EIOmjmmT%j&5ge>Gr$d(}kM5ZAtK@Rwf@m5^JvroxSn(scnB) zpJ5hY9}t|_r(f%spt0RQG8~9I_2bQ}pcFXaTp4~Xvuxvwad zobra}{GmQ4fq>lk6)d{soySr7F;Dv754Q32l>%f=@TW$rH$2$1z3=FwYF50aky-Cp z9fe=zAu5kp8BMiSXTCoH8t`{Z@!o+ZUNLN_vCP?3A^kdS`UC{o;W{~!epl81dcs}) zu=KZ?3hT;m#;DnjD1sp$Y%RBxl{>_*?{1rwXC%C_DR3qHuvBZfro7^0`)8Q)*T`jm zUj7Z6Rbkfsje)*^8$2GzHLYFrSSgi8g)ekNI0%g29V~6P@ zcEigL7$uOWrAM1#7ED_L&hofxVt2U&Pp0&io>sqdL9D)3%Y?BWUn3wIx#Kpf?@D;@@g2`)liMtg;TIF;%{Y$BVNH}pX*O8QZ(VbzCvF}x zUtABA!oR16-u(N`D3ZvFBgWpt?=-tC$AP!Jedd-;F^17*)fV?!l-^`242BhwqjpY8 z{!FOcYIVRst>*nhx>$W6Ynq;5B2;Oom2+M--Et%?Zge5&1Sn}hp&nI=(7_b z^}QlOk=wZSI!w^wTbGy|*+f^1zqCeE_PXmhm{Db849x-1b@28?Es#tycg8X=J`)HQ z5KLifGOQ|ZsADsCSeQ8P?zH6@|v$R zes?`cnom#YAQ(5M((zbtHToDbPih4M#(&TRq0A$jDW_ynCEZ@V7GvbV4@I>far{oS z`%#H~26o4MfM@M-U=na!I1+di^f~c4@p5qC-Hy~e)2%9+2{)KWHdHKKsUB}IX5gr4 z|G%2PR4SW8W4|9JHr6W+Nx^wqre!q5gyvv*oi--5v*VJ=G&y6#$$Ncy$4!^uU>x^kUspjT>Wub%lR;CIE>s@6(!p49pT zyCTUgl((jVCw0`1UJ9Not8eSojF-Q;`Rg2~P+HnilOWib)TZh%O%-Tpo$o1TJpQEq zMF!{nDnoY+i-?(S=l2}xc{>oZ1mo^bznK&jMh>y`IWZ$H7(X_EN4tv;L57u~Jes z{=!pZ*m+7*+teB8JjXdKY^715US#~a209hFy8QSSOK|uM?EQ74~LQ(4OUBh zrhLo_;^nhoPmYafn(~^$u`l4neY!vMGkDCc(Hd*#m&sO!%)t3UweS2C8~8YgKu+Zu zwWy5(2x<#YH3?Hs&GU1u6nk;zi?2M`?wkXI=IV!pxUbLiMLy@r5&Ir!uhjV?@hi{^ z@a%s6UT|nqK6$qOtczNW>Kka)>t7>B5~WJaSl-Jgr3LAM?x4p=;_w3yeD@m!mg>8> zM(EGhx6joFWQe*FX5T~3Jr;i6V&#k3!&E}e3SbmjcL1&0yDpCmb*{-*x0Wo1hgKiZ zF_=GOgESq6D+t|BPk%&~4cCV!6S=_RwoH0^j-u?5Lu^`X&GL6Q#?Cu~fo` z`iaW9NDBS&9DpmqTXieE#RARWPXKTrpQQtfg}CbhJq~4h+Ehr>?tR= zVI+|Rb4Bfx%wuV8x^8X0+M zUhKV=_#1H=VL#h?8>}4lMK%c`A%lTuM%4%#^9qDW#w~VB8JHCNc=hh3Zrn~^aSpXp z4U{=-(K=yEP|$G8l4qQ3i%FI@C7jvjiIAAY?ZgWqtD^n{jJRF*Fg^)R z*2q9ExQ#-|xE$!F6 zqi_n~H3^q=p+j396vaHh5ZjhDtb%6xrP7W2(~%nCMu(Z`Ptd&ql=V!uDG!Si^%>Ig z-uR}F795Yl8RvZF9zDd^X@=Xh2#Cc-gZ6~}2!n5Gw0w)Q*xz1MH7n|=dp?*>UNPja zH}h_a&odjmc(~2PMwzj9`&#FXKOg>_Z{z8?7Wm>b?R3@0gT^+&8;-+Vb($QYBIA-N z&N=^A=yAeyvEDOLs;D)i2cr>!3T#6!VZoHJB_@IR)P?WY})2QsbMR zWYN&k!R^OFWeRfk8h3FI? zDssUf$s1fQ1=ZhUgfe!OC5tHV7Q~_h*m_K-27Cb7rVd^X$aum)f+ zZB~-aCk|t5Ae|iYW!)k;E4JLDoeQKThC-9T?ONIJqFMqr|G*`wv3Vo+FofihrF4#c zH!o$n{TE}I8vP%Apmi~w`Yy(Z80kn0JM>+Oz+C@S(4S`lUFV+vY8$jJ={XO2yGcUN;-?Thi(yoPLlwwA=(5WV#?7~@-pP&#C{bE zrjaXD3aCnuTOL?U59-<*jGnbN38oI_D5K^qTBiB0cMj~FqR_N zmzq*ttL6tNKW}~u-4`+zvxc%Ea(uwz5Q@VK`X~RZ4slP_Kp6bLCMU0 zyN)N?O_nnnw|9Hk?a1cJJdC))kP}-cQ_YY{vEYvTJ9NggULOq>N0HxXg?1AZcpH1i z!8Ey!#u)21sTUaY&9NB$@ORUXxl6teqyM6%DP(n)0@VB9j-f|q*yW&0P$sx`pplyI zgSddl$%8;$GVQ6Y1f3n{H@E@~F;Qm~?I=e^E8eK>k$1cG8&c}BsMka`jwe@9aVrop z(x->uKo%#I?NE5K(MnMb7_4W%AXH|8Jh8$>?+&F zYC^D!FeS6CUDgn_fh~#N>C|0}I}n#b)5y!JxJ+X*YQf1L{=hVDjo8(nDD+8)i&hf( zVx*A1b$F(SO#Fcy$eilWlz9{RrJBHu>=g%(GdY3d$~YRSV_VE#$I?WO zsm>s}#Zj6#XR6F?9C3dTtd)EM*&+S*Mscw-yn5V+v}#U3OpsY1Gr&$!CzLKcPIHK| z-8mtl{9#hOK*xLDNz-&D!gT2HOi)eH|y4 z4B)~nletoRfT_qB^K0{TcDhUo3%Fa9=fB(kQ96wKNn59P@~GdS&_Tz(f4~jlGuk2*cv)PKkZUA)A6@|I=2XJEm~s>$b?lbwTau?Qoj7QXy!0=UT$qxr>()t8b%jWi zUa>rf8QrKxpeijos<==2{GB*5DDEbkGxDfrXeFWOW#P|ELqF&8 zWuUG2$wt+YNH?S4U2<^wYK3|2>AWOipJzF@CMXb7lcxr_GEEywee64X(?MD<#CNsI z6ZEX24?-fb4o;oj4x39*H=b-6*Qp!cz|XabqoOPm=evZwmvJbfv59BvP)3=6R}m8@ zW@_`ADS?-(2F?*;+Y%$B?8M)COCx0LJ8F(`!o9R{HbkJ-Uig?aH*TIL{F?l?hX#`< z>Ca}*X%n-p(aiJ1MGzRLvuI=i(Km`(;Hj}R%z;QYUpB+z;!J&hM3ZHGo4n|(7nqyT zgqmH_X{ebC0o*LCNFLe+4;y5zDC4wcG*+t~@Gu~h*#NCqf`PUvihTfCuj8zQH~1E% zFmm~gRNQ@&+O8t3rl?KbtAoO5sNq+1J- ziNa}GCyN@J$KrHaMy2`VY=hp8(qcEV0q-OLy##@QBzBCE_?Sp}Xt!!uRm^eLQA_k| z)QQ!U{tL&t^aZ_gaki3_)ZR_xj9Y9BN^m3_~U~UM=D@b#sae(5V@x6 zshHn-A^H5JGkFG`PBvk5DYFd*Tahe)mmwty-2ZdGNO0#uO)%*@GE=l)pjW8-b#7~r z10y4G#lp=~^b9{`rFz~NZOcp^f9qW;KtX8s$U1M)Bp|oV_+0aRh$%q`Jcu8DToj;8 zE<{RiKs9~tq5mBC=Z`uyXg|I>Ou+KzN4NiHiww4cmPzLA4+Q(pgio{!ZB5+%8SI(y zVeoQ-Y@Y}esXuO^w`)C<+%RCx0 zCxlpQT@8?}&V^@$B$~%e+ITKNlR+U)NjJWgr0#e)A&UV#ugKHNMloRW?kFpc-&VDt z;Bd}U?{5>MIhNTs8>65iAxQK4N$V}y3N6{@xQ%+~Hz?o?l#+XX4KRzUcRAv~D7yVL zG4QWBD@7u);2;W_v{_|)IC(7}Xvbu4+A7@V3L+?TKS_FKBee!DQ95rt@; z0I;FdVFF%4x1Cs%vky4+%&KC~XU2^|?ajFfi#Z?_s6$!hkbtw{i`{sF!Rer3$~yl~ zP*Qi+w8n%76hmDu5<7Rl!QV+_%7f_rc~=YPU1<-(R_-A`Wb%wvgXv0J+77B z>?gZT&_3GB{{XpbIx3^{py>TE?Y3M={{nQovW;8 zq_2Aev44MX|7DFVS>yQD!x@E$NT5ZWhQ3=!1o)<^HQiwikzv$dF&uqnTETX^dTkZU zFzG(7J#Fgw&UWby6#423=J)WZ&&>;L_SL<9R5^3Pc6pYkw3}X zWehXh0XSyq7Q^{Fg8@yNMf;h#z4II z_EDTwzj(M4UnA8w4tEKkj~?a)&oVU`#bqqTLg&h8Di%Ja<98|isC-ge?mjMAznBrN zkI8?y+{slAT#2UAzG_AHIuX7`b@2R~`N11>KKQlnAcLJ3%)plC#<*wAWo7)o8S7?K zyuuCzK5G7>pc`v{f?vfzwyPT9S>N&S>xuKjXa+DkAk)Jc>cH9&jekZLpwSF(xA)3TH(f=556*N=TJ7*`bl}}B*B^t&vwQOiqPdQjczMm zP04RR_UxXz+w({8hgq%qO!nV6~mCA|qu;@fW+{yRHfN>wQqjCE-wyG}(ChtZU zQ{9$J%e-nivrbO4ElkU5cHFpRiR&@{7^w0VTOLD2k{Lg#rmV;7DqIakP}amn8k^Wp zZeTn3Qkq7kD{WvXeAy#^4*xk-AVPG&fTZ#Nk#x$R`un!mblyV=TP1Watd}#S3firy zqEs&dY~(kUnn_T_y#{dlZY=iOn<|cFVzrgeU{(iuQ@D>K3#wHnokWx*a8KurY=i71 z*YoBHb|m6$pIBt)vZL3Poyzo(lz4uiSoyV)!%1vYWMj>-IP1d4Yta4tKCSMQSpsg|-WmV}Tt*R2T1>&-fDgUJs zP6sGJq-T}#uka`j>FjEX}Q-TE<0@@^Iv#$O{3{H^i>4(|xI z((5wGzZct%ecO<*c4bJE17eaSv$#yAp2%8M51S3HSW$CpPMWiIbhWG!v*h(8-}$q9 z{Z?t4)74Ybk+St?dIZw?cal}?DYs1+-P|e-JDg1}$mi{{-bDZ!nh}}KMpu*W*RJ~B zfUmlZ2-T`G`|@C^{*_|p^D9qFM^Z&TQqXEv>pfsIuF5AR{?KznqE+c`>cx(q*ApAP zj-E3n%~6lhuYmzlxARX7_7AK>(}JoUZ}j6HZ#?+5l%?5ue5H39T}iLt;>6lGuIWFL zC6n$nyVijQl2&4KQdHJW^?p*-fW6N;lP)J(B#IQCwY%=@kKvnUr(6Qd(evnQpA&8FQZXETZQb=Bb}{%Sw$$-0+acT2Wn-naW;0$;(qhfNffH#&ce0-ZTj z8T3SFrzh)PEWPnCQ5^&F>u^WD6N~(=KimPQ?!_51ugc>yCbMk)sE=`yt#JKweAuWc zC0?2znczr--Rpg}25#3@je{4~$&mY3Zo6)LSROSa8l}@lZ;p$k zl$l3w`S2k^@Y3jHPII_~(Y2{4So^Y7E-zBB_5wQP`xXCOYyQ0~!GgOTjJ)YST0QW~ zvw@~&`Rz({F~Iz~RO}9^JBWoC^`_FK3E1Vil+&#;SQ^o}-5f&=dVQP^g{gdl3kk0) z$>tq_bd}B+uvW?{E*9IEPI4aeyTc;#mP$qdsfEqUh!TGsPmMRzvYku5y!p;11qwhA zZf6Q=@4*AqDgu}?lDH8;bts|~zX!4lvV~AC;R96(`JX|C!V858z<0J3o@y5`zaM|i zDULXx*CK92CY+My6!i2MaT@6HkGadhb`d_~heqD(w%R2u8aT4RnVYz<5YFw#yMRx= zO)BnT@Pu}j@8bit?zPCCkgX|8;ShNA=)ima8gTLFeeR`064eb*?idXy!cXK`3;Vx| z2v~Q3CH_F6AGa#RB&t820EW(-@MG%#h#RUS&Y1Q{vnqgy7>@tnla&FXE7`}z=0rHo zWPI>>k#%=6K8sFdVejciR{Y4%k>*7MOt?HP*9JrVZ=T4 z-O%Y+d*%F>HW-f%b9~Rb!p!+C@HUD|92?Ok2kusnS05_LVqRI_Go=Yn=;n@$N-j2T zDU?Q2l%FV*>xTLHmUNXOXYLY0`?g1G*DsZz%K~#EpO?~-UB^@3r&_48myrX;JkqGi z^+f*SeB1>22I{|K$Hku=e73P(6x-ru#SM?#YrDVe9OAmGiFtPyL-)z-}7R8J0j!< z;Hl2;Yja}krA=!-~__2nR~~^jL7>DKk7Vb57)5Qef_(97yMOI`$HlATTyBUjFZlc*Mb-zZSq zTXz+0Uz@@GILvm>9OUoCpBd}+{Lu|>%^yBr%@;uV!|0Xy!wqhbWi#`JaK31zHaLzy z%?V@jMVxjxyG^A9ukX9B?mU>$J96+uIQS#y|2q=v2qWm$K^S|@7|N~)&UOf<&;EpJ zAcV~MLeAg*gx6|lkbBdl5|Z-aZD5bSy3^mD@Ou6sMPA6Y_S;LwbvIq{#}=Y=Z# zksMBVC0$6fN92og1nUhDSU#jWV^~PlNnBt#^U0jj_DfMj@W)$In60 zi>W#>?XBp?j>uQq^kSRG>=E}}7_aaBV+{!8xZjDj@H}&GH}^j8b*}EN@NaQEop1g4 zxjrt}Vf#Ek-5X@8&X7al^n>TI=>^)(kb7@BLF0@o%k+Yn7{Wa_NGsRl3^YTMV|xsL z2QwE3xx4T?-w)1>vDM#7A!X8!p9iHEVsxY1kYo3Y-ZmMe%KTTV=|w;O{X##Jr4{*q zs9`$q0(@Twz{h2;eb#eb9{O6z;8H9as9qJWY3%!x;&OoJwc*LD%5`Ux4~HLFN#dG|PPu zKkvi94=@t5=z^-R8?qYu1@`#=RGjQ}LsujF?0bqk-`_e1ZK|^W(c+l(yvftgMis8I zXCxEC0=)EqtoX8kR)j)`CV1iwrQ9F|Xh%2Kc{S&_rZ9#O8DYq*;sEsh}iZx*$HBcF`L*UwbZo?{RueE<&(JRv{ylp z8$ps0O78G_>Ryy1H55Q`X?gxu`GY5PtjC{uQxrBX>~Kv zRHw86zv$Qe=TqpaS3n%U>nET1eGxgH8Z#`+pEG+J(^nTdX!){07*)fzi$|iU*E7sQ zAH@g1dVWQ&m?qEhV)LJ%PgHVLDd(EHuJBFF`}#CT(`@1n}%!Ep=nOK#`{BAoLaTBuZ#@5-o32MMhR>v2Qm` zPB&=|NjatB)!aHh+a|Z!{wS=;Z)T+7+jC|iz(Be#dL(acd{Y8WmenctKk5$9am+UY zPyKXf5@Kq{?AZ$8{hJ|6uDMyn{7qhU)J-4{d>ruRfIjBhGHqGLZ`DrEv}GdcVExyA1|rShv$&Vf zXB>Vm1`YVv4(9U9W>8(svoMpIDLq1;1v(ax7Jw~CCReW=0<@d=4mjobu%S2j7dq&g zlIJ~Knq~Ol;AQ@0lltwqcs6G2w9=|Qcn;ya1P=PhUo8S)x*h<@sy#3+du3)=(#&1H z+C0K2L8f5W@$7eb;e8WKzojFT^|7C8?`zdlKL53M)h{%p+dU&`k$1ay^>PEc_Prd* zBu_GAZBKS*!%#I8=j}@@!)ZQmk9sryW{}0BoIrPwaVR!n9S`lN7d6X?+*jV3GKmV> z&ACSKvniL0>QNlaXK_VGSV&u-T1st$5NiZ2!ymy+&aaLBN>d&zML37VcbJ2>+W4Q5 zkz3U>*E(9|RWFn2R|9Anbo*imoYkPS+u8_!UiShsglH&}ftF?$-WRD225`Arvs1K+ z&?0iL==z%=$d7C7K~3PnZ5Hk+oL6-y&>;vUgidRTg_;2p#BCzwZZ+BP$#G7UU+)XL zE}rPgLHhcxpFa>WwLR#4WM(7u@-wY|czhXsO^|a<19LjCPXE}^L&7?*Q%D7#Ms?Us z*pb_PYa}#Jg@qj8`^*6jDC}QuEW6-pLwc#n!W(9ZjYg#19&kO6XcHdQG*t%}=k(S9 zYY00>ldf)3YEH1yV~0$iST!a3o8u=7QkT=5WW;oO&xSM_)PFQ5m6{5Z5l>u2t8FTb zZu32BWdVhAe+FTyahck?9O7Y2^niM2CvJ&ZWegaPk!p*Wx(~_%%r$Wf{ghRC z|FXJ1%|*gOh>UQar7Ttwwk@x8Z>u=8Y2}lV*!7Q~$({%B0sj=J+1Y6&9ama0_iVn7#cu%Fb=I{*8|zPn%dLQS z=_0-#TVzGs8z)lr_nce#Ubs3osn0dn6LZ~hktn|WqU(X;B8^0o>j)b966#n)v1we` z4pMc<&Q~z1PO4K!w;SngF4c)VOsynX4R-)skxLBh$QTepv1M$O)#TThy6`U;k^%7q zb%tT|R3aEQ+X6JI%Jm#FKy60OL44s4vohTO#Arjp@0=rZ)9CqU*&m zwV*rwU0Y18Tp(ZTUvTgG@eWs79Ob0%H}y28;uAyEX;~A7R(c|1yj(syBT#jCTMI=g zdqi;UJ>D8u_^-hex4$;hMUv)I~+5T7Rkej)z$JSqEyWZUGET0lz9 zI#9G>o>LWuq#iW@qg)dS%7Nor3Ng_TNfxwt+5(JpL?0sB4+BkDt(e|`;VXyG>t<`I zF6AvAT5(>-@+IM$lDGmj^aF0i_%J}xcg~yigLCe953r91bSbuVuZ+FDJ&fQjLEXm^ zy2*jveIXU|yCBb<)2g+X3d6EaTep&_g(uq!2CTU-tv=e1LKc>G3xBs{J-ucOf{!$y zU_lzxYp=E^ki{x)MDIgE$u3MO67p)7@XzC389wnl(w#aoF+6JWa)BG27c)&xdPxO$Jjnxfa<7apx$-kt zdDOVLaylSTts~2ezLT5tw-+;9%RaX@Fs^0HqY=4{V^1bXt{LwF*#Q(v#+}F}pS}0e zf?nXF^?|wD+neH@5SsT~Ji@~J=!3>f8(PFElq_GqNzkB`H#PDQvW7chO|ljMh=BFM zi`m8?$4;kR_&QC{20F!+?JT0brKNjP+Wx z*(;6cjFm*8{%YstQH+0(sf4MsU#Cx;7Xk;Pv+6yqob{lZ1j3J3-VLg+{R4%)_&JEz zH&Gc$L$}`yW9Ddfzf{N6MfP)1#eF4?W1|}H%o>5 ziM*WjSM0EE+=O!m2iPmJDI~wQt}TEdVaBWB{K8fq^6D-PtK2jN*Rlub=X8 zKll$+d=otZyGN^rdQt2P)hM@}FU)1TuSm>mL~ler_V$CZ4jRn}LZH^Jkig`#a1GWc zaPw~aS_ZUF_m<1!^*YnNNyZC|;?6>=){>`6t3^8e@iB$l4=d3>7kYs1f)=seP`{Q3 znuB$%iEb9Od7o17#K`^g>d8U~(T`5kS`}2KZMLGzUs(%S^Hngj0^KXG5g)+`x!ygm zH`5$Mqop)KN)dczvZ?;+_?~fI?uAo`F9=MMGO zPsM^C$t-)`A^msLmXg8eS_07@1Npee=YQIUcfk4ldhx#%3p`&u@D(HAdN+Yz^j{V! z7S#A!_8d>?zx6b+3o1{JTTZFECti`@9{3#7H8;TCPH<|DXS4ACo8JUH*z%_6ny2sm z68pJ%Rqd6q{ta^ME#E7Ik@LY(5{SrZbhc>roI=P7E>ryM^s*~m|TC?^fUF0h|aU| z@n1n7!Uu{{*s?nujy@53uS0Hl!5lNW)b^*Eg>J6wy4P|q)&OZm#mt^D_`$U{QtRo+vqz;mF@ha)9L zm&%qTZQf+}o*RCI8Os%VEM*r5zwdBOxw^aazE3oLz`^7Ob!&!Ea}O5$l|6DXSQ~cI zCgm4kKFkDvh5&{J0QvUV0_iAE^8nrm%3ct|waUO1GPF$aumwIJRwMkdEP(27MUy>P zC4l3*RzrdEZI|W^=-WJq2{cnXp>5neC4)YUqJEh0v$M`OTo}w~U+z7>6sr-LV~XEB zpB^=AnPcsY=#A&zy+Tw;5v}eyod@sDQwaC%ZR$RR6CCi<1#bxS{mTe%_1(u|TWg(vD*BD` zalNg$-~XF|v-wbtxNvVO56?iNM=uFWQRA<8>MZ8C28h)a97~ctb!EW+tBEW133&-g z{oPgqUrl&XrVUu(%BZ8xGpxQPbkCz{=Q(2P?EU%NRQehf+Ji5AFU*Y7Z9?sfyipG> z3wVGMOY?5ZN!_XZ!C>nPl5RKk7D`-luZnkrgm1$W^E1a+dJeY`_ZbB}WN*J;VVlhQ z{z_fn|1hS%Yn!XUKw%SnQ?0Dwh;;6_$tyVD4Bbe~k8J=i#M5#-9z9vuWNB-sOA2 zPXFr&^WEUDXZ3@3vT>Oj)4iT$Gs(E_`_Soh{dwfI47~boog)5#)^U5*x2`gmy=isv zMkH6MR#{UYX`eYX=6?JygugSdhdHkjeZ+5XkE+1UZ5*HzB)i`A<1c9~08hs??pzw6 z6Xd*)7sX9d)%As#wl#kmt*k~boYCyh_ofpO_H@2SA$nBhZX*-r z{=rZj%ZS_+Q@jvYf|rAMAua;k2E2C>mEC1HV*HHSHj%YB=cOT9xS%hRzLWoQi79l( z>t`I%9+p?9(pa3h(tgm(RSu(r(m}QRUz}F8x%=bhng8{-UnbYVy}nh+ve}ySdAk5p zLK%AiI7<*yK`A@*fru2|7}XBOAM(T;^S?mU(LcUAe}_Hc*?+Mp2QB7K%dVQ{W(8(N zlThZxX9Opq&%>Y9jHX0w<+=hNQM?FwNfpiE6!y_!|O;9o^Yz{j&n!V^j&lS<)cl|wu; zy}qd?c-Y@V;#O(k5hmRR%rqyPHf2st_wsaKsOi#zi`V#;Q8ML> zduAVd|A>|V&ahBQ-mD298OHKUc*A9x%dHwPlZ0kMdimyWnjaV(m?@{?fiO+V;pum6 zxl)rizQ@J|GanQRRLXG2!^pA@BNZ4A7_6M8WMfIKIOzubqk^+I;|48vx5M z*yG;*msdI>6<&z^<1d9NElv7KyI<2}(1s*`jyBwWnDS4Ea7~G-PBq%8`ZGT=U!4lp zDm$(Kue%iV4&9?M+pfLi9P>0!havG*WXWRjl@-rTj#_#YQ z(!!_ntcc2&EB90Mt>9`o=rDZZN?;2QI2Bvkh-l)9(LD1XS1d%^k5>N)N5!z{`TSs_ zwOK9=&z)qwAgr9&rH~PdT{?d^MUQQ-Tm zE6(-6B+HbsFwWQ-{Z6$~5Fy{lAkW0E0M`T0^~F{El=I%KXIVtYp2y;tizX+5MtvW} z@#jC>7CdK!>=mUp zf!>f=jODQfk5-Z9q-D>BS6_+|+{J@Eimu9Vu2WgD6sV~}wC^j-JbJF@KqsyzTo5L7Vegy@5RZ1Mohe|kQy zHLi_`JB|FWLZIb&>o}Jr@_}hb=xevk;3B8e*;Yf)?#Hy5LEmq2UDcl{n*GI=t4)Nc z$^lUm2(xd;;u;*)pD5%sG}3s$YlV4=G%>Tyw}G=xDh8TBKiipF{I{y`XxeSVn<(Tn z%EGV@%Ewr9ogu@;fprZG<3VKWQ!#;6~zGtfw?P1Vz$Aw6pNGgz$K7hTk7~b0S zalnjY23OFsU$n|#RKY33X7>ilY0FxK>cK5S!55!dwEYk&Ae3RuBD9=h>oZn8DFRY~ zMd$~mimBu_xjYJZB>4(_B>*Z0y~pt(Q;?`fWcJ=@wS5dRh0TCSZmGO8w8E=(IGi1- zMiU^WLQMf)3TRmd)xERL0d?pHmIW*lTok-HfjNkD{)LVx=&!*=>YYI#cb>eLGy;PQLnut;deq}uDg?!S-8#^2M(dKb_Cyx! zJchD0uhk}VSttSC|5}H6`ezeG@^CYDzLwm6bYaq(9W?*_iJcxZ$XZvBbh1@c&^6B( z2DYBwum`N(n2*Rm>jtjPg=G7o4sDa&q3hm}+S(Ssy)2y>Vg}RU4B3%}dTks=sYR@? zl6528@+VB4pV8&x?z6{3yRa(&$tF9}=+nzKMb96i^9)iQ=w zq(?JJ=Gj<@T4R<~f%2|SC1|cW!DDpZ<0}x2ZFueF1bU06dbTv%uv^HSF?6Xezg;2=^K+hm*Qz9JcPsPB z9-ZC?L`L@SWnS)V-J}ny+O%61Cfz+qcV?z{da(TYt?u&GxFheZ)UF5uyg27- z01e58Y^vu5=_wAktfgG+bAOm8yIc9B_|_`<+7^|KeJ?8bIC@i={UB@W^14_ zg;q#xx`VXu>-b%Sxm~V|<#836PsqCJ`$q0rSh6TBFf>*1MV7}qj5ejP`tQPixc-fI z__Fj8;PTnwLEh&R6__@?__FE+oB_i220VR;iNY!B7FmA=BD5HJk=`u8@chv~ef;(S zh#^W8_SZT%y9_Ze>r!CKaU!-fWnRDFE!d4vD5)Fo$UPUe(Lt|2J?t7-ADx^ryV8=7B3z69}+ zBRxOQY4@8kSXFMC8?2ss^5>GMaw%W7ytUp%%P?2yPAB9H6p(|4WVdI$!>SJ$!w%ai z+RvSMxZ6*azV;4DRYr*1b_9c)W+LfE@C(8o6x@Psc30yDcPMf7r4VQe zlDE!IG#78+yQ?wf%I+FbQq{$r>isebb^DyGeO?l8c0GQZ2k*123bm>A^Kes5h8J|c zlFv7>Ajna8UgE)Ot8F1>r#L1R%!7M_C(a6me38Lx5z-r%&0Pv278s5~q;D*hbPlVz z*60&h1>5iOWE9z66THb>AejqTdA3y(dJ6O;l!&%gL{8)t$VriO~w)xPbVj5xP}@gXjF{Fh|}gva4VV%@s;gsD3&2CwryFTQVV-R zx(ojO-x17+B*NqTbvDkm1&;lE1@`%!eulcFsP8`rYid}N^{-!naqp$prvSM8a~f(! z0^k1#Mu|^>aXjmMu=5}hbBb|F);|`kM6C#>$-$!Cw6zehfpvh>$~2|s|)V< zL4FNFw;(_zR>Em0V8%ba?zwgW@Kb0SAH zlixg$&~l8H$#03ir(Q`N))6apLAq}y<+s5*bqoovQ)Fk8GCt5ZFS37mFQhu&q3X0b z;OOuj|4!QF~qKKo|?G+?|pH`N;PUa5v$Iyo?~ zY)g|0;MvwyQF$6I;ZMl!f;y*=Yof;lR166oFMYEV+WYbS@&6W|+gXTHi|V1(0a{cX zf?Jz#4!oy`Rweuxvfd`iT5v9lp(M_gUJ4Q9#Q&cJmZ*CpoTpclmKB~SBDwwbYO4vn_cEE{SVt2X(O5GE^@FIJaMG~gblGF`}>N=B#2%hCpM6Me3 zzrztHnG+NdJMfE2N9cU1@VqG~t2*d%4ZWK;hT|){%M~7SSoEeT8ty`f2 ze})c?1iNF^;1~$9#|hdE9}J5Zs$ESM&`BiWD977d!wK8AVFqW1M_On&b+5nf0Jw~D zI4xG#;cqE8aZVgIAjxy|(r}cHBkh_Vegiv?^7wHl`A~4b^{<}fPkQp6QC&UxC3Vme4cJjgh>F$x8sT+2yb`%(g-xkwW$wEJj=tc>}bW)ukNAZsS z>c)Dx#$z!0XXVSL-IC^O1i(^^@sBCo=5kWKc^Udy9y9-}jR1V9LKKgn(ihtqz4m`c zF&NdSD&H52LK@C!(H$Qn4W&%Wt+!4JpN(cTbb|7F97l!Rpa>;#EN!4NUx|wcoIa$* zoB&iVX6FE-0spkqz1Y=01sHXc3*e*molD9X`*kq)!I1ox#xHC0d`n!Pyq8FjQaj)A z!Zt-ZJ_nb6=l(fSTTVCH6MS9vl&khbynm( z*v=#T9x1*z?4snE=DLd|C!3O<;A#xHzX_qZ;)78{Q`YTg4PJwavlaW(LO+PwoQd*t zb3^`fe9*c1m~ol0MJ&p3zuKnEAlR2C70I)sGh&OJg9n0gU+-E`^MMjxH+xVttQgbA;6W!(JVX}yc?VVpvNQ%qd}H4BObI1=!tg3I%efpjio4s1{-_ zirGB<2C^LOygBQLdK;L0mDD-&&@0qJyH(T*)0(%Rz73zhPJ&3mhlIL<6NV?T2+&;J z#6vfh=5|WZL+nvJVQ$SczJq9$151u8kq;&slnVPo1KI}HY=eC?S%E#OQB;S05569` zEH{LKNhuVzNXZeKXT3gHczrygR0@AZD#W=Y=ob9?m@G-pwbPmg)Bb*CLkZRxji8$o zo}7oFo`<5JPf|HL1rC#(3=i@ZKHr<#v{+n}nfAhWEH_8jObpmxsNxNzWe{5%tcem9j&nq9O89t|zlfv5aw9c=r zz96w^fEQtj+kX?QtIves9vk$T{P|4R`Rd`Xo<<6j?oV#c0y&L5uP7HnCy1$p z#)vE$b7Zv?-y~3vxp(!&(h&_**~^(1A`9Dw(#J92*?LnlK1wOJOdJrAaTXx!(_$I3 z43S72kez6y^f@{4I$=xrdoa*u`8Vc1N8nUlpnrN@=O4;QhWq#@6%CK!b*+bs)TMP)bS zA0`_qS+-|AR5;=)RRRkG9ngzg*as}zgouJEl$NzXu;~~%JSt&dgEK>&6v1$aMdmdh z<+87iZJ*%QE1-xbH(jM}G`dy^r*)$d5#vf))vil*npDaU!yB7eM0akBnRfP7>k`K_ z`eylA%`=6b9c_BG%d_u}ojBJeIv!@&n`N;l&o)Ha+ZufDOwFCL$INP}VCGDfB-&qJ zUuZYr0%&|ue{TYFm5dgH6&Rh+XF{w>bdLg?V7T2>@R+V(x+(RslpgzxAT15YFOzZM zq?fz1BC=@0OcAwgayO4S6W;F3T2Q)q#qy?j{oSj_ukdAj1Sn+~KJLtat*`fXVEJi4 zM%HxbZ+dTe>@wQsz2Jtoe+5~{2EgLUY>tl1VL!bdfu8<~8!*rIx2(!C6uyql{{9s0 z+R{|hRUEwX*8cw7h?^=g|aGUF>=?pR8Z<5&tWEYr{SdP;CSAG&b~@~w4>gS z957ke$xwKT;!a0vL5vvxlIpi(cBalFrnRzxMgJma2agIcvtaV08uKHh51o96cp|uy zz9{m*v#*fwVk-`VFOHr~0#J}C8b_zar_fP`i`O=^wKUPr#>{U(Y$Z>9KS&>sLuQ?? zape7>Bfl48Z~q`Vk@t|1rnFCPrY`j{>}QgCeDBg)PVx#ve8A1xnTw3_ot8``U+)58 zcBR5w8LUXFEo{%VcEI?cJ(c6j1PWPeZdrfUw)eJBjysx)!9uMS?v$kuLqt9HltOrl zm{D?qcHyAnmnIfZD95Walpo+~D200r@c#J!@bVUh;(q@^{V7!8CSX7a?h9dVZ_0&M zjWuVD!E`K75T;PEdKBd#-RHPZzlqdc73)981|u3$7rASIhJ+W5P3bC7}fcekPa!ulaeWMFnF0K z5zog`!IuZf#}C935|x3Yb@}U>gE3h4SWQ7#3aDUxNTIAIJ{#)RQpI1dDEnu^TaVUR zuT5Wkn&vV^8ydo#FZEk6sV&FX%Mnme#$`O~<%y?hMa!vHW3Tly0ze}^*_U|8)gyTh zrY~WxujGBF%D~NiDY*6P9q_?MEDbu#`L-7nCK&IE3Hra1ulWyXIyNUva8LF8eE3s$ z$bgnwBPsk|Q*-%6i1HjgU0XTZ%a=Y}SurKihpBhNvT^SSZ5#S7SQRWfP=o~OHVTFv z2topMGZjW>3p$-}2mO#^jyPUNh2-O?3Ur#Qssfch15w?X#fO$u3>L=oy2ibiX#{1jDe(JTaQ?8R|Zhjcb04M<@K}d}D+i>e_(@7ik zKoMRcr6syY&4s@YmD7K$(+0NNmYopym$!#o?coOs#=%NUvY}J(7IF_Jn zQq&h>R-+2wRxsDusZk9CQl+1}T*ei`H9}QG19)dL9DTCaDmrsklD2(uL%N2vb#2r; zs;SwhAvIDcf+<@xH?(65K^g%n0fh6dd48jx{4!Tf<;s z<(gh#*+gTV&Gb*@B}@ZfDtIAZI>UER?vYb{Bt#)$uvMYYl}^Il zAdEWiLdADs*pyX>)dH%1KwYx^Kq`QhIgW8BsV8(B_eesd5TFG>4v=zeR&7(kFP8-_ zAtnk;9JuCZq$pz&GYCuaeIVw_BTIv%364BaVmm)bI{|tGOYwam>;u`Is|vuST>_Pe z>NvDwW+8&p;;m7F>g>S@mMt&-KhBGnt?(y4jIspb1F$&f|25);s~+eT*QENEQeOBp#Qwu17OK=oKqUL&B&d=B*v8thdX+-cT z;FI8|#pv+y=>j51^rPZ^!5#3Lm>tkq@?fONo@b&Q*+gkE44*~KmzW71&Gw`!Ceni# zk)+0Wj;nZsED%^C%fJa10}))$OJ=L-sl2js-_Z~@X};rB{zDu#Q&1K+V_>Cny(?ZY z^5%!Fy%6TgCbgc3as}bIwztIx({8pFlSWQ3R#}oXF__H8_f)cD1Tspxz z!Nwr}0X(R6N2m!>3Z@-UolvmZt9)P${}y{7&*~OKZBuFiPminnNhII;+!*sWnF^;+ z!{Vhgrk@5Y^OW{>jV;&uuhRto-r^(!W)?6wtpq#{h z!uk%xgNLsjG(%XK?znI`AjU!YacE7YV_SVcuj~^#sm)_g{=o zi?sA?1YT0Zs|e zf}`|Xox&*{HK_Db>mIpr=&i7Hw8o>v&!of8dPz}#$1q%Hdj%HyHi6+wFE;wCieYFXVPRgaDP)0h3=1Sy*nqUEXRcHZuJSRaC`hhsV+A2OLEk*Z&cf$3T zf=OkSGEJiPz^GQwCHKB#lg%WL#b-R-@SJN$Wh5n^l^ce1Qly;n+2!J?Fa;s|`!Y&5 zr~%QAQuBK|{N1l?h|~*t9A|2Cs*KMiRJ6KwZ~0+eIupW|zyn9cBCs$&4{zrxcS1NN zK`-HedT2Fm|3T1>H9L2Fc7O(}-__rLV##2(gSk&lHkw4rSE`g(8mK1ww?2zFdbh6k z-_yqZg`S>`p7;RWa7FgLru3!&*j+s%@-ex{3v;Oco;nk-@dI*sf*GX)kK4 z3;wWtYzwBV&0B3S)g8m#Jk<}lC{=Aj->fQh(^mJV-2Q4cS zCyYJ8dp?=1?Hg2jp56=S807i0q~}iPOh+pwVbUGKXJsC1d(wqhok z>W>rhvYi^u+M~6S?y%A69&2M8on!UBBE=u2XsO$iyQi(LIu6sVi6_{@t?2crhEeJQ z6@ENYG|aIvKQgn6gxpGXNscu?kc%ihx0g<1r)}u0**P&7pybd!mzeIXqpDG(6sM?CR&m8Af?CeZ4VOra z&X7%e-=DAx5n)W(?yw38J!UG(y(g-$lqbVtO~S#mC#jXFPp4&OKMvB&PEyj$NtFIi zqJGeJI(#R&<02Ez4WPEZ&`Q?OeYX~icDyCz;XC4)Ey=VJC!p!sKGS~8_*glXjsT$& zpIA_`P%@=8g)jAqJ;r)CYTXCcifzj`qCaJ14$!LpvdyHtV)l100^0Sd_3^U$sq_Fz zY4ItMRpAz`vej1S>oEyXFMhR{WN^)+4I_yV9d066X5__UIck7l=+V$#H!nN+PkCLt zra9WLPU?MD%L6jju<}Q#5H*`MO7$ds6qkvljxQc-UEqxRN85lX-A?WVX`$MhVNWgS z2^I=R=@Plr;E{!5NSIm8YaKX4%6NI3E6L?D;=Wpo(>8HH4-mhzDvLX$v%i(TTBV~P zMH`~7hr3V4LLg>brzQl19785vE||ze|6_!~ZzO|ojip`lg5_}yn#*!G?4aE0}KE5@ET+N z01O6-kDeZUsEz;XUxYY+_QiCikC9$RjnFHl9=ri@)B$bGbAS4m70($H=-a{^jv@F3 zu+F5lwJ(4ypNpJI=P3c#brgZ{(qllR92luw%eBb#_tT8RMSK7jfI3YC<)h?yvb2Us zX!L%*OJfCdmF)8fmIm{n6ZC)LHmJX9qjl||^S>h#B_*dOd7U3vI&%oq?fQPQ&Hz=I zamqDUxTz`P6dtkdEoXd;bgiDTDmdz!gAE!w)AMknMV{g@I>F@!86?vv64DDbCnH$; zZn+t$k=9wH_PHml3G@vBzB>nHHH4guiy#ay+1*NCB6C@0zhdi1F8a=_6Vn_;rmA&< zc`BGxb);>NS|Eng7eWpbgr@2)ou^tS2d;;4*G5jVeSA9c=aMsnQEvFdt7~tPaFmKS zy<2V_X)%VAg!aZ+ziDnKf~kbBVBWn_b^{f?IK&f);R|JCVnt72E0J^1@}{N_i=z#v z-hW}(FN{@Gz7ONdcBzC!DepbS{%lc5wi6`23H6@k-+S@C`?|kJ&eT#7G^oWeW08Bw zu^Q(`7DR#3@LRq_fUJplJKY*b0!n`u#PPO9!3#gFEZelG<9z)MaJr1d^BS?oF?fmu zq7G56y@rU-9pj7ZxQ8E|04AC!s%f`!q30gNHj-0mbo;hYK14Lv=PrDN9~wqh?sVpP z-5z~cI@dSK>?X}e4Ijtrp|U^sFE|70sC7PUCqH*%5V7-C^R%F$L9z0F$#qNWsir6H zdp_rTk8S>D%e^;?i&WFoeD9>mqG;d$W`5pl|K$oFcd+#CbimHJP{g#xzfS`EmUBr{ zRVdaCIiK=OKR*5}GPK5bCDIaI4ej`cf&VAx&GY?R%4r^m$GD$`PYVPq1R4LeW;$c< z!zxmuNVW}IQb8=IAD$IQ+E0=WxM|YX@Q+W_D*%@leid4$myiGPHL(HV`bayk{!op6 z4*Uw=wPyk!L#ym*5SEl=qKkv|5N`{RvP;X1|E*X7@^qQsn~0 zm$@CMW*ITU+Hdo}iP|AO<}G_iFd`Om2b9}F!76Zh^SMTj6J_CIIiciB4#|z#!`gOY zx{d($=q%E!i7w%KgFUhfAp6U*-VwqTq-`-3RV z?IMr8y$J!7t=RuoV(fcfAEbkezY22fp4KWzIFU{EeunH_b{`ws(Uj|rp``UH9(~oww9b&z({Al&DS}w`#lr=`Xv&7{v+y z*!H4ye}WytrWgr&LnAA9N`w72u4!r7cl*piT_q=ACjC7RCD!yk#jhb@lw7j=7H0K=8 zReDnuIir?XRBSLP&;O5(Nn>%*gsanp(UHl=ok_`n-#m)N-uVONB6Cqy)j7!WdHLz+ z{dfKVqb#T4FI;(VoYM43SeTeODm8pE@f>KC8_CfjjqKhj4C6V7xz;(mN*d_V6!LtI zrY+17xcYSSMQ!xM5x=VDtkfi}mkqp|xGKGq%Vv?u%IT z0^E1gk1r*0AW2-Nq-dG}BTy=N;u-Vzf<_~OP5nY9`9#B$zfB9DOazwXz~B@nSouIn zP6UOqK5-bJBpw8ga%N;B;>1D>W8{(cY#}0VD~Jeq=P)F44rE5jK4~8)`NSfCj(8F_ z_FSrcYJeK8PP9s^S}T3ricxn$+D_ z=ls=w+*za3HNAK2z=yFmoR+cxTH|*B@li`w^v!LwB>i;?W8n7!&ikzq`hCC;I%Nv| zA8Py^v5^?g`0(*C7;`=@mIvYIrvykIzUhCaerz-0! zb=}G>%&yh~Tj{`_u^Ms2|8zgs_x;d^ht^-_hBl!j_FluSuhb*S1Ig_}8EbEs;j?$D z6km{(zXNghK~RK)ehQ-l(|MZmYw4HU(_s^xsdMrP{rKg&5arHbe0&@eR6FaP{R-TdZ3*$JQl(vstn z9FPt61dKFcbEBCTb}2=qZCGR*4U(CyZNFB1*W{oZY}@9@Ya?AgF-**q6=5ncN~zQ1 zOP@Awo2o`eZ0fG5Jq@-t4%?aM*Zjfh4_S|!4@cjRI`mha<>lvhkKlt0Jt~)Z-TTk? zA4S>4C*#5e*P_;aLNb@BjV?-=7OCFY_XSRw8=lyp&r?v3biI8J zx%d*`Ts7h|9e-=~kCF8Pjl*>3ub!1;7IYP$aYr4B1J@>sxhnJ9IN&7-mI>SPb|@~) zS)qBezOkNoe#)_+9?X;pTU3w&UHUKgJHbY^x@JtR!Ywz_>5Eo&2rDdkyvHRh5;fhT z$2va9=l^Lcn9h{mVDb01=;tSRRX5q6Bi|yR+o*xnc73c`W3GA$Uk!^rvDa-u(sf73 z_tXL>VpTDe=fM%%;NC#jBJ$r7+2!kk?%b=D6 zP%L9*(zVLUOfFpJJ2{pWF6EjBOFCm`l$(LiPC)19U`x*^f(ok8b!R75_UG+j3yV`w zyj+%vBh!+}yJc?4=)sbyRK@2dKFE11req;4r%Zp7)C1-9Fgg3yO3KlvV=YL?d6d?& zx`|zKWBjJR^_=xA4t|-DSI-`%F4>>A*Y;wa4T@vQdW7spUqWG1L24QDNyo`mCL&0s zDOQmNT2U&Pxn!$TvB}paOB$F-SF;h7<(zUZBx_kZA;!3K=cMPLT}RpK*i^z=W7gG& z4WF?Kk`#uuU$YC6F+9cce%uD?m_69qwA-eQj%mfouMeO=o^8aV{ay!C2MDisRvZz| zE$y{%l`q5jAF8>9$st^Oi$NCS(69=+v9#BF>k1n@tBU)xS~Yc@SE-6EzW{GoqSt0P z-;t69Im0gF0>5 zB*iA;I`A#cH6v>=-bKZ5UPX41ZR4(K#WRPP03=}ZPA)LX4LR_pmBn3v!Q$~YN?A!-aE~to<7~xoE-OuM|1LTmx*9mlYZ57WM@=SjZ9eQ1y*O##geJm z^st|9WqrL}b+j!dv!ThCN#_E?^_W4>dD^g5`)el6#DnJ6ns)pEvet%Ze`SeJ_=iC5 ztVD`*K@@uDdBr6Td74#GiK(`?H&j=KAr6DdvCY*Upq@ywltC?PcV zXw2EZ(k^uscBHXJk6(Cr1)QttqLX;4iOU`C%-%^=lAfm+^>V{m%==NPBwVvAD8D19TA5Z`kk@eh$xA93rJe=5U^1iy zq&G{YI+mJ4^iDOz6|C=Sm6;eusND_|t^1i_^@$T9=Z1BZB=cuQk9h4*CXpzEbh=?$ zvv&Hs&r%EB%dqUn!Z2cM6>YQ;h%2935Q!CgTYo)fQykZ+l0Dmp`bwmqM|Qq`t(53- zXaCZvgz!t1uP>5IrlJF*eMmei%-=%Mk30U$Ak41tS*!j!w6n;%WE!M5ZDuG+l*e^k zh@H1~LQ^l+rZkB=TZ<-ATV%`&kr_U_vNbzASYW3Qf*F9Djs8qveG?{V*g~iju8M`mE*tIGW&4H{ zK#v;~;jZA<%x1fQH)M3wq_L|7+9jIj2I!T-)e#^GZcrZCPyC542ik#{wY|+tEe(^0 z+MnQ3%)RV}50L_^FS%`wRUs=RwD-uF3LWZBeQH>cO=_2QWoW@V2XLxi3lNOcO;Fi2 zYxgh0YVYN%z$$C5MoZ$qR1-LpmKtYt$#A>*CdEA)=jD5UvF2@W5{!avq}Ywm7`5Gh zC8FJ?d3@;<<$WJdKAY&TQ8IRn3P02ZPHNTdv@|zS5QHrN6qp8p8_tP|kO$4L-%-z- zggg40p&6xam7H|jc|lVm`X0?+_4&06A$ubAJ%%ONrAOPw0dF*s`hx6K;nl5`L{ z;3C(Mvs!k7f%O_!5VEh)K?AoR7%L3}Uny8!?We{UsQ|QY%j#z3F4p>*w-_VW!Cvru zxjE=lrmD@1Syg8Z0EgL_T0SmoTbAS03U^L$3x{*+fmgAlnmhd~z$^jm{d_px${eLE zz-wZ&ca>VXPh1bKY>R2pn&2wNCVE2-D2Wp2?4JieFm zI3+#msVQot%SMycg9A}N>V-Mh)1=EG034 zOYR^$P@$&>)3(L?%Oy#s=v%TNR)@<1X<+EGAI*~+t(g!G(!yc#AB}XGwd6lB9#cUH z06oP#bk2fkCRC}rC7R^6{coKh+ez`>0i-~jQ^kSN5d|~=+l9wX`rkX3(~1##R}2fe zpmfuE+6TR2h~+533}pc2fELJpHaFl|4h2uAbP?u2#_E3RVB%QWK+zF@a;O2Zt*5ID zi55K388Y?jw}f=*fNOoD6NMzCPCc{Ns+`QUYB`O-Th5@X5E|GrFOueJ`-_x9&5-UP zz$&yXe3ocGP4@Lyo7(6~21^)|{gbU#oQ>x?m~Bm+<5)o9_=n~+E?O!UfkT13k6bKlrl+eKiu%cq$7!Hy+&9}JAB@E3JuXXyI;A^#HY?}#WI zZA_RKL5jJ@By&n6Tfr!Pq{20fmUg{O+WD2DQZ{6PiAYrJ>w^oRS)Ob%%1U$N*roia z9`wtYZlHU(b;aJx^17SZwF7LL9zlKUFv=ebQ=oGV2vjqh>fms6PolkMD|Opw8$%B~ zs2sIoM0h}dM`#siNRM8SV~r&N=3k1;vEu_HWdjJt_NzhO(x71W5^-thogS}zpAEh2 zXcj$|%#!Fs+^?{dC1&T>!m%A3=dcrKnF^m-@d@%4G>;7RsvN?>_3rH{#_C%7p|;U-+RPz#=s+byZ>F3NVUl5!MTrPSA*va z#dM?B{h+?&F~$m--{`xb^wCj{cwgod*96^rIsW4n1k`KT42>;A0fZ;F*Tf{$xpcxphs_|}2V?}zWluA+3#qbX zV`9qxDXFTvEjzW@>|J-~drPls=`3Ziw6c1%8)|~-$frzi>Zeeb=i)wnaqU85mp#*O zZ=&eGZ&uJ_wC3J?zqTAFn!LA6=o5;-OeQ$iXGHF*2tqS2gYzE^sh38I1oujh8qkmb zg4H$s^p>G66{(sDZ8&_Wsl$vyp4V3no|B3Akjnx+Py~!KtmL6D#;J2oBFChQs32>q5Wn?+CCQr z&yH68@A(C1uCLa#ZH6EDhzxTJ5Z%)cN(=umO;96zC-_u_;QJ204h-tG_jVhQ(Sh$mfG6|5k6oo zkLP0J0@=AGU8S%>o33ETmcH9pfVf%h$b-fTn&a{eoClwA5?v&$}dia zNWQlF3ZxB|)*@|vXk&`66wvCLG0K5#~$0jdte zCgjep05ujYj2kcrT}N^j>mCR{%0QipIa{twXwin%OZG7#-GDS_0~07f8+t%u?m`J1 z=6PjP2HN086ShKcan;BxKo1`-5-)I5K)C^;b1V@yu6&ldvhoUO!CUgotoqkgq+{vs zaBgs?tx^yb36x+M4pfuS)SE07p!$~ORhuRlJIA2sR(VklI~9|2j_CxRBi6*-@ZRP(U|OEvLtgC8ECn%J#!2Y9eZEGw&17KUkj zD`xn=lfoz#rRWlqHP*%W7kPUuT_M8uWs9FAZ=)2MTI<)vAMg-0dmKVdf^l)oA0Jn# zXu7XsoX@|7n_f%%;WXnRQ|8q=leiL?o9BM}Q$}VjD74=APVtzs&9ZaY4k4Sa_wc47 zK(ej5&wZM;?Poxh{T(HE)h`Z!pb9)3VhD-oxGL57=}LHWr_8@%L-C4x?%@|BFW4jcd?5d?M)o#pBOSFIXkIQ8r^`aK* zSx7dY0Z(&-)n09^56o3!K*qME7K&HCIbep(UP=Rf#gAIidRbu^o}D)Cp>`2LnHzDe zbd;;A$5+#RIIy%N(NCbKTlJ8dC*0W5O5)jFqMuA8^ZyRtq;b6_l2AGa!!B}^0cmbmJ4|kM<-OB(I$!z=#z4RSgh!PS#^P|u4iQzOMm10C zzyyJgq|92Gi^t>tb{61LYFcRTd)A{}4JZ{hk79XFzJZ$~Ri@ zj9F4Gd3oNqcQRJFa$`QD&8aJ?Wz)HVAVWHqA}<56!ade)%pE)b$=Ehi_S$)=1HS2M zuQ$1&Ijv1;+i;KUc%DO70_MMAyf&7PZczd|A=_jMz8M0GE1eh|IvhXYm;+Oieh7FqoE4i*qynoe+6+*DBXam2O;axrae6G@9Dl3C)3e4klfM|su_ z)b|_&^9%f~mkGq>Yh!84viAGl+S6}8c$!CKdWx~1r9V6gS=gx6t${L7@egvuy^$S- zE48C+yMK*@P^Ssmhk*Q0=w52WDZlAO-as9op(m*}t(3goxjTxbkbC-kU|%3x$6HoZ zytT|t)c~`Ny4m4d*kM-D*^4Iqs7|FfE}}px?-Ro~ThSS9!d5O>*0?>D;1f5&9S_#3 zR3qNn=$d{O@q8$FZb~s68eMRU8TI}EX<=~v*pncZYorMHS-{rH2~N=iXIB90hIj)U zwTZd{LNt`Dg-oUJuQv_AJk*gW((NhggD*9K3e`xBa4`ENZRX)vw0?Vp?dw<64k=4p zI0v^dBepI5Kcl5E8|Z&jZr2fyx)NRxo@WmXi7N3vE|+ zY^Zh3Ox$;Dq9-*7P4}<(@Zim^96Is1fSN}T9-O`)DBDv4{s*B4Sb*qOVZt3QWI3?- zfUgyq3RzJE*|=blQr?`9IIlmd#0Ge6n@TQwqZ>i3-%S8bfsghHxu^AFPt}uf+-XtQi3wfXygbaoAUOAjUzgwi55q{ex&kABUe&V%jVy}G zpibNkYi86gwKodq%xGwOefX^PRg>k*c{3W1S6Kn{KhtnHZy{2!9#^GLX-`*Lb(|CP z*riVXtJR<6GsM-w7xlXb<*`6lV4J+Ut=>!W2mjwME9#E?N%A(_pGGDs4ZrXAyZ0iE z1^rd5@j@dzp<0?qhF8!gneqSKW)pJ@x-+!aBcZpiHVL zm;cnZgtCdD+(z`YAJH459oZ}E3P)tMes%2F*XMLsiTG681=B3%WbB ziwo}$sB!re1iU#O^Mjr#d!w^>c8lD}K0|nszh_#Fvz*po@Q#(m-w!=0d(=h|)S#6N zxX&zfZ>+KjESE4ANbdMiwS7X7hv3wi2uw+kKqy4_0_)LsDu=)d>-)OsM=tsXE|1aG zGkY^!#v$1J zdIa=ap+K0a1Ca$9hr%j`m&yluF4R@-Ur*>bO7D4+BlMIznA#i8WruqWgEx&kQ?z$n zbho&dK(}e4x2g!DyZjZ9?(+{X_|0k#QT@H=4z)yw!`J10iyuxZ(SDZ7X8PeGC|4%5 zADppQL(YK`*KTmmfGirw{|ZMAU@oxz#9%u4X@DX1iRbut;g5-5SeAUeV&y!@G0;Y2 z4wOaPf9kQd){ps=!P0G5$PDeoOmwfp)$AyXkNP zZmc~k{#{diX6AMnObqoJkI4Hu4P}78W z{4b6Yq}P!jLA&Spmq8lgQ$dnrU>LHCbT?unxIO)5J>Y+fK^mpV8`#}r-Z%ua`VN)9 z5x6L^n)3dP7$;1;QM2;B{`=Os6L!h+-gma2SY4&G*rjB-Z!+ITeFub;qUFHUn&$-e zJUUa`HdydgDC=^2ja@*`e}IcMkHF#F@&uCrx`YKP&VA52M)fkWdltcMRpc z>iYoOZ1Eta2Sm%3^P=E<3P%(d)b6r99F?|FpDpJaXt0aXX*s|j^!+IOj#sLp%@{df zlXSEE8`H{mTCX~TA|+SJERu+P-^+NpZKuGwZx&~PaiCFQn8yJOXlCFW^cxTHa^4;% z@^3eRZ~LbgjC36j`q%_KY-^xtS(|YT&GE>*HyOtU^YlU3d)olPFD7r0?;PkmuDnX> zBUL5#odixmHjbce#^G>FMVrsL55$}3odz}ho1p9U{EMLWj!rW>&456JO;I$PH%GbH z1k@V{9oE1p?)CxrN~#3kUHkrnp!Z35b_HA(9@)PEH{mgngx2hWGyF4Y!@(N%a; zd{t8vXZJe*o`YclCOQoM?_eH&1OWCme7m4&S)0^VWMg=z9Gjr~2|iiSezhKf&`NfT z#_upekZ#dS#u{8qi=h2oHz?>jb^UXo{eD-ObRXQZ7aO&~3F|VFWjNTSXg#BPmFDDt zP5&3s`c8s_svO@=vTcpyj-NwB%`%c_H?iuk^9N}niM=>+(KeDhrllk1YRLD|8?c8T z({&;54rxDXsPB0Emz$@2LMOj5ewo|+D6-ZQ^!#Fv1f%%O#=p@0wV$Gsc;Dm!6n=)0 zXn5$23+okqHoiMC8a9XYo$IF!?+*$Y41YCtc=nNGWI%*2Q;AsPq8TCHGYu%-$e#^9 zb8g$LA--nlM@KV>_S|=tbRRdw0X$qqqn4x=Pq{odMpLyu5L*24K@0SwXcsIlz_Ddz zI2S)xfA=m6eIa!B`&u4O_41juQ>AuCAa@kVy`92u!g0ZzY9D$h*uM%?{Xnq3sYMgw zYLC#-1KbnaxpM<^&tK{BkN>mh!qc+wKl&Hb}jgsOr`E#%48^Tpm_yYcqj)v9v!FRQ!?zH$%5|+8?04 zFuH=H`IKm!Z+}-ftM;*eId>z_+dn7dT&`X-xROF*_gG_;Cw`~o|52`iT)~AyCLl3` zPq?30gIH~mVyC)58AMOQATrOtdARx=vy~SYCE1r=N`D-w;)`1TY8eqhiXQ0R_9#1STn;;l3WUm4 zmFbns#Wbm+b{wwdKH7haXtTe8+hNX-ll6|5WV@N(V9V;fSVk5me~wc4GWdmX{<>*E zx|n`bmkPg9WpfgU<*!uiPPSB}Ldij*ba_)B)AohuIxo5UD`6oK%WR&Ho*B%EZ>R*T z(=if>?(A8$v+q?&jIC$M@hotQgMSFntwYgOl2tu)Jq9v==r$)<{UQ39LPz)M$#2sn ztLEO06VyDka<X0_BeMJzg%*CmS~z0M%ypZ=TgS10dC<4W z^g)m2IKaL7)5n=8jCpH!VlOo(xMCSzXKg4gj}frtcwnH%k1cht52MY{M^xV|uZGe{SklFv(s;fsTF_9*V4 z)#r8mD%il-(94k)`=eW9cLLLc4Pxhoan73DCGHEEips=!YdLI0|KB2_f`@wgJ3VHk z=e&LN4Q%iAw9@2Ya90YlF#~VaRtrte01+RN+fF+CecxkLf!A;Q!q$LVoni_mL-DV% zrS+6&FbmDikc{7jE55&m!&$5x--G!DtG135b2>6cL|-&Jj?vkYI@O&Ny|gxv;klg@vGZDkF+2GR^d{yg7Ob>u=AdApzy~z#GJN|GS6M?!l#rK=)WfQTMN1M|+EJ zKV!oGgVer4{u0ZiLfo8-J5n)87PSeY&(q(hWtGmq#{KgCTm-b_Z`^Nr61q(7uCr31 zXG%Da|H*L_oIlfVciB!C51PE7hI$x!2 z$?p3Rw%d{#@aI>R!*?8sB1A?*ghP8n-o~f5vrhlQaEJ8&gz%p+MVFE&Lpec}>&0pg zTw`=SVsNGc;+Rnyss=kMB6!#oE-(-)&#N1&h&cBBblc5nC-w{L61*t_O zuW@7NYFhJq`|+M<>v%vYzg_*>%!ugQgK6o%9q@-Zb*t-K-x$N00DzJR} zV|G~DKOkh2{QZ|XpRB$I%`d+RK^N4CuK7Q(?r|HO&2440==qQccs}P#^kr)Yr{44= z+8ehQJ{lYEYfh^B>g$OpHrWG?hk+32-u^Y_qi;BKvLhUb#Qnwm7(R|VAK-3JSh5>i zg{v1nq>9(p4cJ1Tt9XTx-`En5HnBrzZHf_mmVVQB_QZ#2%;#+AKcpLQfRkWJKsr-% zw6?;nQc38!6tTz(PEYQ%8|nL5$Tp?sMLSWH9=O5z^EVfot>!mX+n>pzh$^K~HNFQ> zB0?Sh=V7*dT)IDq7%E;J5P7vZ-o()gcW|UB*6XM)XrBD+QFtf0&gEEGt2`!GfPdM% z`5g0O;W)OD5gq*pE?#b7%=}T(P$Yq9Ur;vf*A66gh7ewdFbs`1dhuwe?mPAPL%T*< zeJ#rZYD6DY|BLfgHO1qfDxtTZ3uYs%L51f|r-(580NZc6?^-4kxUm%;=0WCmH>WNa zpKizc=R4e&)%be3l;|`?hO?Z90f9B}#nu<9HN-2Ya=}T&o)H1VjxQrzhGPlzKK&@3 z_OaLF)}7Qb**6^MMWM@TM96Tm9G-){@3^<*1!*nOXGqm#(BczX%>BF4&6vld-Lx|$ zzUQ~_2iqR&KK%{B$IL{G{m*(9AJrVw|01&Rt&VZVX4FMVM*Zg|DUad16dAPwD?y!T z7mft9LsJtSpcE1_titjDmT4TzFeoHzZm{-S4QbjQE|K?kf+XyP^_s#!{+$;rbd^3L zG4Fggec_HW{ zitrH%Jc;ATVW+5TyvNv#xO!^#g$55n0Y!ePZBt}@=CO~mwPn35ulo`#esoPj~<6Ih7S>q4&b zhb>F8Z1oV!j`4#QpY9aeR0qcPDgsJB7%@BK1vZ-?`2=nlNa34?)5j0@`?~<;A;G-` z2&U?p4b*?I42=Cf8GB8TO?2(hR!Q6Pyd(;@-9`~dzP6Q@B*?IvWtWzaY5Y=h6h4=p*e4?Y}^^KODeiW|@Wuy4_Jj)Ta1 zzA$fp;|Jc6;5SB7vveMPTlx5PWDT_O!{m$+T;6;? zBM$sx1m{J_knJlOcr6LG$n+Ko5eWY}0@L z)_u1@=flnCnBtU>Y(C+fh1?#@B__+g7&wIwLgsv|=z0u20+Gwm`O!EA37X__Cvq9$ zC^^(YT_~nv-{?O1+l9F~OpI8OTPGochb!XI6`#kVE^?4kC<@@WMAfD4a!pgM$Cq{X0xj9WuugFEL0uWAvBupO@wY{&CFGM(Q7CApUGTjo-Rn3yMtE zaJL51HTf_szioXPa{Sebn&L>!;m;Cwg(LruFV(o-iy(`W9$^sl5VeBfMsrv$9rc&Z z$_<2@`lZ)xUL5pPw`(?L*{~7WC0HwamIWby|(xC``qC30C4*x%8pleKS0e4B7AWE6k<)s zXPQ^e5~=DVTjWH7Q|0k^du@(9ReVB`%Eec2amT-z(WZl{MkTL&9DyK_&uJa_^P(vE zvA>HE;>e6@dw(8YDNzTYQU@QmUs6TE_y(p`YS}6es-#P$C&98a`5-CD5{8W+t;)J3 zv`KHdF?G!$n}cx~I+7~~szdKjw!I|k4f()|v2cu_kfanyPFFBR$u5Fx8t#p88D zpt(H|ad7fbAvc70IJP7b=|yNUy@af(seF6%EHAey!K%A++JBj1m` zf$c!QW+!%B!xxHUfxM2CWE@}b8w30qwofD&mB}Hc*vmHp!{_)09Z7>;J_jD75AjD~ zRmc;~Gq0P?5Dw^=e9{OS%59P&tvIz>D@OOM85E)(a&!H*^k3>+3^HZhp3PfN; zRSCvqyq+-qiaQy_6!rL8bVVGoi^rUiWz2E0^BG&{gT_UkI$lHo1aB9u6;|^naoZCU zm>52MxcRfrCB@Y0i-t>~bGf0osi@5^MWL_-7GU?-RU)%PeKVk;5P1p=NqxLZn48<* z2LF!|)?l)@2=>|WTx4Uosh#ZScIjj-C#f?R8Lx(H&V|M+^04&%tW@ckH%KllW(&>= zi`b}!EH2n_nx{S*sC^MMSolQ2#zShz9x4VIClrSYMO-m(i(83bF%!Fq5^@&5%Gh@N zdC{hWPCki@AVb6ne&Bed1VzKdh31eiNO`T-!Ga|r#FihfZi1;~IZ z_#TJ0r5^;#ZIyNZ+hJNehw&fehrEriD3qwQJ$hC%_XPOg--z3SUS=aZ@s1k!A=Wtk z$OayqezG+|l-Ic-7gLvD()tSKQcM{xl`MOeh*3FiP{5ik(g?=p#xz1z?;=r5dtMRL zM36E_q<)ewac6tA|Gqi|XWw|@Tz~(yNEYmW1P;T(fz0@DB7Y1A8t4>1jtABMSQMdg zf5np~Ao0ET0SzN$aeNiNR~U|tBi7)2QlbOP@jxQ7M301a zvz(VshS>z^MDLx%(2i%noW~!fo8&ROIhe=pycHGZs?)Ln5+JeABj6HF)YX5CT1 zRtM$tI*cDVDo>}QI<~knas_5V3t<}33S-toCypKm3SPmXDjU2K$#BUfXH!FGH zN^z(eu0e7b!viL0Idh_T^q%G7*q93qBq#BxC1OJ)Ls`cYoz%>Bg*L(HQi2yTF&h#f z5&;PSSs}Vza%jSy$`!<7);~wSSjUuOdy?iV?a&@7s}^eB;?AWc?_jDK7?BHLli=7S zYvs*ix1jN{aG@j&k`rBp>?VQMH+@=m?0CI70t$S;iHO(6G9y zHShR&d5%`~vb)6EpSLUb3nxh=5ks8LGp-{D=QoUNeetDz*e#9);-al6Yi0Kd%YJO! z(e+38q)UFv0Y-J<;}L!&MAp%#Q>3SIqKqxE3n{)d?G?z3>M)oC((%YB){Qo2@qkMwkJd*+~U_LM|63FtKgB`{*(C}7%I52+Rx+>FM*N7A3J0{ z4|T<>ltLIrA-j?t`$>i3hsr|ScVzX99g}d?{ODEJftgiwgt`*9$N&&J>z=xNUSnUNCN|(uc9N#F5_2za{g?{93)v zN2$!P5J}G*SxPG-5fPY*MT^*qqpwPPrQxzudt|B5oe6KtInslX|3qbiPQmGh66QjG ztKzBoI~WFP5O?{9#|GlLi@My<8VyXeamX zGaUP$?0)xh;J;?XaeP)oE6rmP{%V22`2k$Z1IqqwODFZ)!~OkOCFLW$k{<3QTK}Dx zts8OJmkxQ5o4qJq{&#?d{%?lj{$;EWJesaSbd;y z5zu;KV4UaT7$3|-6Z7VTtUMiy7K}1g@A}gKSNRDip6Zw&R_Kky=jdA`o#wn=3#+I8 z-&#JO&H7L;rW-l$pP=m@g8{nz)JR}*!Dcnb-V{5!!$B-kK1v=`&dvkpz!{5!;*Rd>bP%F~ zTvLEz`kdBFgR*lBY~^NIgLM4U5sbGBaqcGnQ^q?$(ee&8A}E%6!N$0w5ft`<3&%Lp zR41H>*w+^VAhyt35pD?RUt!)4vMd`d3u^~CG|5zW zmL(x882>HtIsUm}RzU*{tux!bk;c8XfJVKcj^R+3liKLWlz(OYero@Hu8?fs zX@~G>&2#sknbG@@WWB+JC>p*pbl&SJ*G+= z)EZw8M$b0*+QOXzHK?6Do>{3+0kQT&LVY68N_{T4r01=fvR~fu7`=?*)f|@L=+Ev& zsbaGmMH%>=Ujpa=d-(zmV%cW86nfc)bT)78HS6T_4?-y(BHf#41e0jSgye~6WuKGjqAD1SGi5(M5?3K1V5X8R8Lj3iV!HU&hO==vtX~BWqBy z`94ZB@rQER?3w4e44`C{bjwFN7^h-VN)5F@UKhby2s^W}km(vKBVFNvt62}|97J@( zxMe1m)WTODN^Wg62{FTSrNlUOjic@`%xA2SarI#r>rdXDZ;Gi?EL{=e>1MJo+=s|~ z%WSw%EriFfz72f(MP~;7tV9XP6noS5542&xm8*Weskk<`PJhuz_~<- zm6!@}hYqNK_ky1vNfF|s=@S>S0+$Gv?X!@u>oUzvBGwxz!_^0z;Wl60REG&%7s3iY zGH0^tWd>JXjSu(T)T+ZKefs96cIo|!+#?cid#}>z!s}3^x5sHIwb6+}`h0%|su;1< zb~$8RmiKlgA^JAb?WHro*KIt|ySoG?pX1n&eoS5K#Iir&s!b;y(w@a1Gb^ck_;>ss zN%FVn5aF?}(#tE&bUF`0uXC~TH@;;`c}y=0?GUa-Z#^xNlt*pBbyo}Yw)QqbF(wl= zoV~KEefge;?EN>^ZvG!ewy)zx&lEn7ue7JzY<#~=g!Z2wqy2X${e#0RZ_p;jgOC3w zl)HQw!!uwB+%7QuxC2ZYpC}OpQ|td8VEPU}wep?@$}P(VQ<|I7{%E5lG#`b1>?u-0ZKKRhgIRg9Y4=cg4^-8HAMn z+CMccSpW7&%V*t7^$7 zca#@y>%>s~c$76i*JxeqbL+M&WA(dKuk?bd$TJMTy~sGdNe1prmk=(_;q2EH+U<6* z3-DIu=N-Q*9m7iPU5Q#$_&2Y)V3Fm9n$o$<%m1lRwpAkCLSNt4z*n1TNLp*x-ocva z;)q!H!JEuIif^QG?}8Q}bMJs1{=l^Nn*;8TrekhwT2_UtetyglUJL{9G0k$1w&VKN zyf^rX^C7oY_~T|9qA0^1TBiEDEkQCLqJ@|ybIfYn4Oi-mLm|y0IfGQ6O5#u#tGZ@0 z0avGHL_Ke5*l6KlsaIxy^VzfnAL?gQCrAeq(&VyQ)jBymmbwJ0Da_GF`MOe=+|}j? zd0Po;a2%$_1ieHKf}{;h|A?wi#DM$P9IVIwRzbm#^BPRXV9(DnrHjlR$>ub@Fq^+T z#+n{r?~gI2C<(T^+#n{`n9LBaObIOvqZ!bRth4m4S0=*W<0E1H#(#}S3urYYy||pTkR!hQBH?FJoNA{1?U-U3Gty~fxQNaB9oqWutLrDr8akC zFiG5#DUayV7Qk(}<0Sd)jh!+qOogy0VV6;QW-UqjCRdP5&7(MxhLGY0Zng=VI^)=x zb?34$6>O9Yg#@g0n^rR0y_IQfeHU*;7MKWJO*Q2X#KRXV!W09gJlQ@ymX=}ziaDS;j=UNNni|8 zV3_SqcJ9~NR^x6q+mRV!Ou8>|;0=rSjS~gmDekZqHaS-gt&M2YIP(F=8sf-pOsG%C zUA|ya%K`G2`FqeB0Q)vE#9hn8!2Bj^=&zO9nR#~)F3o1j6a&V%){V9(RYs-itXw?{ zlByKBX$(8qNrL8%aj3*Sg{NN_z%)#Z>0tzw+thupSBB>Og+Lhu_ChOLrZgzFr(B0} zZa0a9HVL{4p(IwFp~Fo95$AU+yl)cVXn4E(%Y#al1qB!7D@-xtUq!hDeMVgr6JX&v zoWe=tGhew4Dd8I3&hB0mfN{zad9*GP_*s0T+3g&tPp717M2rNO?JFv17U0bXRCmr zU0)wRCR#IcElm8I94~#476Gf<-9tL{d)7H{2XH3o_5eJJ^PWLeg`@x+L$mY^O{2U0 zFGFIMjehZrh1Aeo?XJA}_37cMeV;w&6g6|jj<0ybKP;vhh-=_D^a1(+g;WU7L?5mQ zN%}yJ=L@2s4wkYCFTEJs6`_2+N2KsKQL0u}FHbhqq9|pzOtZHH!4xlIZK&QmiklorCJ$rktct3w_CL20=|XP(cPKE2v%&9s`+R(_ZwltUQb@^@gzyRhvmw_uL$cWulo z+Eqqx9yHVc+=z?2l-@Kji8H(bvP_`8X^3Csw*Gh(a@7Cr?fG>;*F;Y>7+rdLP1tXJ zy9^prj(%*`)2%8m0sX$3sVQBp^^c|tZ|Q~4Ugva$oY;aWL_7w$;&rs=cmXLA3mszd z#0s|kU{q@iyNB|gTdW6NqB$EEj5BpzS*|^@UxLMKfV4UY7LFot? zyZabS!4_$+c;0jPJZcAv_=Q3K+4h7+cfPx^CO*;+;RU%L+~^KTb9)$NkE+$U1kvaK z%g|!6av3?;qX0DMBP}paN(fP2$LbN^MX@|4O}H;l{2pGw;}dqN=VTvg{97+2;1Wo+ z18q=V_tND8?>~$RPvQ<5_dg!fOb?+lRQc|Z2^A24^9T1oi(|;=5FqS2Jyz%#h3&3g%6hmHo|%tTu&_@w%qcf#!}-BTWgq#e zVEaevsJxRMm~)wIp#fX!ybZPsm1_LW>8CO~EH+STwOq0@_-L!DxGQT^G&LeYpt2Fg zS-@rkw8!4pb~?>snSS5iL!D5FGYdSbj5SQpF1o5t%oUEa{H7Bo!>GNs+$F@=~RsJ2RL{tDLKxsIU;aP0qBYnT;u+J*B?MO#$B z*eN(w>*|I7p6ai-?zFRgx7m^zm;CL!c{9wwAKUC?^P_~y(aH7wfntwjE!++Oo=jij z#{^Z7E&Av*vQh~^ebsRP#|7lr=;roT`7lC3@^EBK^^(b|lz4EzV7%&o#Vemy|DEzs z!*%wdTSnv(aL`H9Phk;yGD%UYYpukZTMK)kfbB1^6!u8@?(iw8*mbfWiK}McYiA<( zz@*x|_7zVblcz`$vpenrWUVJ3B+Tftvl`rpKL&^Fhbu z^f;l^F4Mgs0~Q3@{r#pCJ}oq@Mr<2tiS&oE$+!yn-`8~g*FTj;>HH^|0m}6|_OMuMiHPDTrwMfyPA&VK1I8YLPw0_GKqZESdEVO^!_5hEr zW_v8-g2jMBx3u$?#1i=w^`R$B5_j^@p=55W*sBS&Y|JgH9k)$4mgdLs=y|oCCi@l| zL}`s`tcP@mRc4V2PbDWRF8~>?n=q@*Pxf*-f2OR`X`$q80*IPIHC}I4DDqN}lYRFJ z@?QxyghgzIc2`2ZHRn=oVV^gG7ps#^#vYAiK5l$WN)~pJ0dF67f7w8SM%sXtX3F{F zom|FMS1V-ff3fy}D!__k5+f^J1~5~peLu7vD$i&;Ce1Gr^nTPm)iKbIEAppG@&Pd- zU)c83ZTp?}@Pm}W$%@i)oWaQ?xN4pD!*6Hpr3p+xCC|=oT>(?RbP4s&8m=(P_j~z^ zTuQ~}hn}@%kBgWSV7+eDUSz% zxq`Wma0uFp=?zrZxdqa@%q4L&vtf8Jo?7QkA5iBg)14xJH+yOY^l$!Bmigf(zx+M1 zucm(jjreNlcL9o5;qO8i=Js|k!*uiT(Ng?9%D3SqbMUV?{5kJ_vyk^&63uks!H(m5 z@|U+MFLmLynxwHH^@Q(OY_D6aGiFTCZDNby-iF>!-G)GMVD9HFn-Of;inceVu!WPD zIXX5>+Xtv<<88167s*=(qM{1dfbp^WU(>b?5S`R0wK%3bq5f|Y;KscEpuYbapE;h_ zKyI)7EsxIgiPkmQKFpV%rV%CMR_e^ksLxa(fx`8Kj4sN9LQo;@@MVAM` zcl-)bO=@NEeo3@q#k0Z#uM^wzYfoT$tD^Q029wg#r1YF0Tp>T1*ggMw_nsZHkv>}W z#iwIjS~jJP`7QWut@wkUPks*2Z^Nad--hi@{581p0c`i-x&Hh*mwWKl6?PS*NHr2S zYauDBmb(rljFU?0>?^$!Q$2PO&|QVy-G@}r$i`kkwx<>DG{SwFJ84Y9X@&!@ZxY;OalS9lw&Zv$ONj0+~==xvt~iMms3mL`^X zt)`(OL8#IYz}qzhGB)&#lS{2DX{bn$YH5{1(*-z*KB*tV4@~4*(0QHq?*r!K|M!g{ z>%31(ejW0qx~nCtXMr@2@nT+v$<@XN-B%Ly8*c{Y=v~CU4Y96XhOH*R7e?m+SpQ7q zI+SihR=LPlks#DmxefKMLy03K(%Cr*;EAbzgiS0W5yTv@Z*fGEWI0$3Gk55YdP> zfS}HN?}k`yB=DeG_3$y^RT7hP6 z)Dj?Q&;9?SiB%HcOOHtqqh%|b46frwom!iX8PsIjYpTv#o~^04(bAu#T>Q%*DZZYmQILEM(53Q(*8P?(=Xh?ETLDZrkVX+${O()5uX=IF%T&vKM zW0raioEtMfEolaOB`Jx9$UIbppZrS#0Vsu8#*b7{NR+K#@{2P1t3EM>4vZU5$b(Y#PnXLXONNH-c+w7N&`S_kgU$hLg>F1Bu#=UT0 z{Je|M;hMvT9swa8>7!P0HC(nRF4p09Um6uFq4qN5#%>HMOa_X&oVK&YPOFzAH%o+Y2Xf*yXCghiB2k8HY~N1f+YMoiHE&(Y z{s8s#c=fMuOb~=}<&O%K&@!3`vc;f`CVD^uUdvr(OVKonNS?oSWb~WSrCk7Z0R}qj zB$!P*Bm{70LtYmh#=VAy5R!tdbXHZ^Sk(iPy^y88>E zk#Wi2fBtlfwpU(nh|wM!vXO4#vMqkMl6oH9)))p@8TkacFlj|Trev^jl9-K_8tONo z|96YZsRJQ~4! zZ+o;q*^gTHP_j;E-BSD%(4$sr&!xDJI;X6_4?ly)RAt!P6vW*)hDAe+<(`LI!dUtl zl9$9AVru;ug%K>-7p#x^r4%e0dFZxTHHLSUK85t18Khg_metyVp;iEp{v*|tmz>wE| zeDIMzw1<9q4JglNz_9vUBr>8yKw3krHWa5)9B4U)*?Zm^pb zu#JktGbXnQ5f{^&3RB;zfcGAye^hQg|f<)5Z-C9Tub zUj*_R*^=Zhk5ni^20E_flGkL$?Nq^{K%o-VJ3O0^aPG8DvX@Iqckm)Z7q_(=D0YIe|}xrb&(o_A$j6h@~L+QVp4#QX&R^qEYM!%$4bw zZZdB{);U+980m+h3DFWXb=ha2&KX^FL3LKyQ(cs?6f*KoEe6UGLIZR4UV~)D%+Z!i zP}y{An@r%_jkb73Mhfh^&>4BBp*FWNz*$l5$2AKep_gr`__vY)b(rQ zPJqMJ!HncVksKSv4iV_*@+w~H6eoXa@+v_Ax_5O$(}j#TPm^%}q<7TFo5R-?F#)8Ls znEIvk&^Xw00$x-x3qUlq&^J1Z+pFfV(FIS1t}^;q%Rl%o1U~m1>S`POeCT$TT<9aW zKTYdz30LwTP3TW7BJSo@B*A3o(@8JZNt6&;Vm0@i-fSJ|_3R_S`R}ImD#GcPrRPFU z*OmtU?se&^njy)*0ek{Kt@Q&tTc4=1_z`lCRHsiVm7~1K`A4`@grNw1O_5}!9>ZeN z*^q0p9-z;I?2JTbW7vaq(uyzDK`c|!c-tge*fhx)ME<4AX4gt3uhfKQ&z$8#7)6mj zFYqE3$SOI~iA~((o`TGA2M3Yv;#>og5Hon}lh7ERQ)zh4JP%ep5%98Won)HP7v~}T zK$Gfm8SyN5BTyvA)kF9}YLLYbxswTSI*wHw>{x(cjuOjMBU*qb6{LS&=V&uop9eS( z0xz0kxnno*$87ytxF%t?ZLhA4(8e4;!@Xo{8Ez_Pz%lx)8r+Z|B3#@e90@2y{y z3)tlWy_t=alCE!N8^UG-^G?%5uZF>(ZTz5SJD&$ZGumXq=FG-NHVEt^tgJH(Vq=`)gxyUN<&mY*6|~eONHoVnJx){<)oVy(ZRr_?mYl7vP>@847qr!7 zSYp4n0gNl)0p<60P-aRv89b>`swu-VKCi((ohxFM)G^n3%S@)85v2{q?1| z+T%CSPl;pqxqxg`!`vytbbr?=@8}Xnh}hIzw8uT&D2#U-+QCYFwbxp{qQvU8Tj(;- zD1Tu~ZsWc}#Ds=y`Xv9T;~N5M4LO#=E^R3?!P#D{&ROdyBX^^W+Ht3WShXBKbX^i` zBxE=@i`)vwP-0oSOqA%Ex3~4;!MTwbaFfmgSMxBbp!nDHU*VkN`h5^HD;5iXr~fl( zfWQ56<>o;iT-dB>;9PAn+aELaUW7Tp5;d)O7+TzH5jd>=gs)-kM#6^DNB7{Mj5l{!uK5*YW^Q&Fy?4I=tCUd%w*7RE2K41(?RY? zO$3s2L0-$FfuY2MuYR+*%(f+%*`3V%rRx%pGW6R2@_0&H>oY9bD)MmP-t#jE(DT8= z?I81b8K%TrHgtKTdS;algmYX*jgVud%`-uN$mAR0=7K%bkkV(f`0*c6+t)>#43u@b za<;;03u->ty%dh`A_EpKxTk`{oy~$m$3+hY*8IoQJJ%0QhND`LZD#JEg_E6@#-Js) zs?D&$K|8NGU0BZQ69U}paT%y!C%;`{U>02lg+;Dl4(>b=dBL$cCqGc0zDV);#m4ln zrJz!R{J#sO>beOfaKPNj?zz8M<=h+q=FDiLqt1vEC-eNk!tbj@sA?}r*ROq>e!d9n zM+C;`LsbvCn+oZJUV>~pOF6L78Jz%-&V=&$(BzrUgQs(#6v0lDIu}8JZUa2o(`P}H znb4}0A-yZ=paXYZgxE>?{yms8(3=mBmm?(I^4u*^tf-hfxd6{$+jgm{7mbR8YSX^n z)Ew8KY`*WNY-qvWkxAs(!{r4YnMgD=WaKr#_S3A|DL40(It`+kNwXn1^aZB^)PCN= z)+;6*F#=2u1ETmGvgR7j4RavnyF7HX?6pZcMHz`V3;H0wif{?DPt7aJ3deKj7}YI{ z;Z-}-kdUXh4+-!+<3~8vkKa486lgW7kVIypCGrn9p5N@)hQq%ss)El%kcA5^Q9=m+ znMvq#O}dq>;4U56PVM?`6z~l_$<=V?IGP=(IsS*0&8ZpcZLp^WmeZaqV?s>3{2Z7bQL=*9pM667))yf$%O&WOUCGp_^tSD$ELdC4iaHECloe zMpr^0qj7hs#XS01hfpK z4t@l^F{Gym>_N2=A)1hT8YNfBh7B6Pd>k7!z|(-rz%t||ND6xS@Wv?0;2!0TpFtGFBF7E|Jy^cr%NWQ*B^v`L9RgN8 ziDxSy#?D!g6!%I%$p#i6^UQ#!w6hUuB3^Bg zQIwoyAk+h>h%O$ZTfK{fD5*(XuqU9>wTF zeL*7(W4EC;$7KtN`*Thtzhl#IQdPYUJM;A(U>-;p={Tm_1-XUN6xX2J6z1WUD9?Sg zhU5jj3YKGQtxT@AsRl}n<(aU|#iS7#n?vEyQdS&Wy*s?D$049z>1(g9$#xp6f z049UI#283{$beuQs4L5wXG@AsC|4C;*mdBV`QTaRXXR~eZs(c{$XWv>@eYqrzTCUK zR@t|6?fZh2pT?u+L^p?iyc@*(+N(j}zT5m{v3k6194_`>I)GfHY^Am{(|Pg$h(2^S z|DR;^7XWA{uIz#KY{Vyi$UdAh?$mlOuFA{rXmABCMY{=_S`hvdAKqP{+F}eAIMsGg zkCkt2K)!x~5O{rMfKNTFVBm2uq|)>R&!y3b!7T)b)*C+44W)<=uxbQJ^UY%%Pb*ZB zPf!U^0ZtUu1Tw%X(E!eNmxv0Vdzb*EQ0USCSA{kq57&A+fK5OJxKnZv>;MWkwLw*^ z8SkxJt&8vih~EGoj{(qtXhE`pOt?dJ%c$T&b%Udc)?h^~pa$pwRx}@*479dAGZ~KX z0FJhT)7%W$Lkb^G-en+B%0-R|peAmS_Uy=yF6fIB+ zn&6Zj8h{KfuIro8h<OfMF0~S>j~bT2v)}@>_K6`}2x4Q^V^aYF z02FqK8EI#hy>cyh9e^qNOu&XFL^Vv(CcsikORRzyq;Md2f`%m+3a*0s;M*b*Yh*V` zNEG%M_Qs#J90)5>zyg%;A*ni~T{6_Gl4(HcA<1;7)){F4DFDjWZ5H4SwMXco^1ze< z>h@%IdQA4)v>G?JNLbf)#X8QyiuKHG34=lhq5#n|JIN8}3=@EL;YD~hWF0aTQm=a% za{}QV^lVH7FGdqdpqfZC(y&-kI2{}mR2U;5MghivMuaa#!GXXXKv7T)xL^bkmjM-= zi5VM$F_!kmBQ+vDmD!ZKMzmjm6QnF_*8{79ip9_tu)%slv&;~JMruTQg9H*as~XVu zup3Gar3w;RpIl(QBJXxoD7~x_LyYzyKsN}l;|1wXdc5s$om6Qor2oFXE7G1aJiELC zb`f^WXuDB+HPB{y1oCEUpa(!R!HITYLzORgcndsdTYyOzB(C630K5acX}teJ)P?cD z5zWN5tJg*VMghivMuxPL^56l%nQ^}bE|Id}F=)&OudNx4AkSgH1-&CJV&-fTHcm4x zUaa;vuBhLD9B66jci^J)oWEl?0S(1Eyo6G!~c*fJ$9E zzKyM-28h9;19kxJ28&n*lSqIZv-j+ z9CA&zn*encTL;yGfULlBJsPM!lfFgo4RZo+1lSzlW{CYEa;myTAe7Wj4%Kp z-727FK|<*nH#i~Q+jtP(-k7;PT)UA2(T230?YS^sk*yQ}V!gZ&iv!dIqP4HYl$okl zCEmjVf`!r+;n3r(l8kJ=AY0Nn5dq$$5*5UkF5r=@=kNtA+tOATAds{bf)Gg7t^hF_ z(ZQ`HLerQak-&)t3PB-VatJ{qT1Yjd!~1v;+}@q-wZH}?99%)H?*sckdu|uhd_cFP zWNy7o$KVChE=j#2e*O5FyD1?P_rT}SG&w-tUnHwHOWmWOIj{+^IluzxLDJ3QgA0KD zoKcH%95`GD?2K*LV+5BRhk*zL-{3Mk)E7miKv7^3U~z$)&nUV|Fj*SJ2!ta;79cL^ zKLcYD4ZuLIYdKuQiU-96w855Z6I}ctrP4L7mI0oaC3=@|Uw81DCq*w;7`OBzzmIOJ zoP)ZxPKz~CHvtEP8(V-}1MUMB3Ei!`0}Se{#asbdm@L5U04*R|gY809k!D05+ypCT zwTK0fKFSP*V#GZn%Hp~&=>oU{xDLECL*HXwq)33QEpf5O4oNm(hTq86qi5r`RY`U2LjdbOZ>;K;ijBfnMQs^xU^aB+e! zbzaR3r+)}#xn(DS4*=-EDBw~9=?$v^JoUI4*3*D#!1Vwch#HW7q%|a@og4>0h$yzo zZ+_>Qv%H2X4l$7>h&p$O%UE;zkPUN^M;XCC4w~28pAZ1@GIpuYiJ$=CsTmD*%aj!0 z`is!42iE{u1ML7V76I*xm=0Kg^Nd&q00Y^#qc8zB51jzf0b)Qk3jp-CDg_zGl0nJ!Jb?nG85=Q?!tF~`bM1`)9V1SKn>bC zoU-1vjk`xPHefq(5920o3PZN&eBvI>;R;%~oG1F?n|1by!~keoXwwBbW9P^6_II1z zxu{)E$*|OAj+T(AU&2uKBJ>PlS_%2d4ug%US>Mz!~oVf!~?|VP8sxX>S+Pvd*AB8 zyi@n0rZB{jR-hZhRzqV{9M^Dg4kfw^*La9fYE*Gs@_-y)N}lH8k!E{=!U01z$OjYT zgL1$@1t6J^Cpw<-0`h2EqX7ZOd?*8#;|<4?Q9y(#Rd->xuKl}B+EjD*_i!@Il10UU zANfT+KdZUg)P>-iwvaCCJ8vK1MM(}|3SonI=_RARE&Ng0nM{@ zdeBHq{AYNsWUcpO)4wqPXt6x~cb#~bJp#Mn5*?#wTB0ff^BDW8~QFF%NV3GsQ+Jfir zLI(;ILRceRnk|b;LE$e^g|*qGk^L5^4KN*$QDhBv4t5Q-U^<=)zPVi}^UMcvRP2s? z;`a$S2RZ>d2?#`H3ORAq@MlO^`{F#o89;240n~&dZ6pD*><6)cPN~+rD8Ov<0o#Ot zeJQ{FZckZ(l{sBK|>y@0kC46eWz$ZhtzBi2*bM{Yu7!cW|GQvsp%{!S_fPK zTn2Wj?f7_n1)c4UI3v4(=%Y-LHJAS@6D4C9cZFvGv?$In3=#ZR!Ilf1;~@*%mXgeQ z+o#tfYJUe6O!e3=yod$qPI)Sf_TQsiF@y0c<6J}u#!ty}%^+)m3%B~zDWmgGU4b;a zEKaw0FC*~4304u?apH^jUaN{BM?S9YHhnXLF<0_(e?lr{~i+|d=f4;hPZhN)R14h_QlN8>WNHeH!)uqL-!e;6~a@t(1*;nEIEAd$V| z7PZwLFg{ac5E@YXN+ z7N8&l`TVswZpSpl(|MmL7}*%ByU=+_L8>+0P-UuDOQ-UKeM+T-=oNqgn^*B{?*NU1 zaawsxscoYY)jQtp$CMYk@`3p??{b;EslgE++J$=FAX82Al%XAQn>VoC8bGJ=-K2^R zM0U-bwZ%Un3kP;s$a)Cb2xoUKvwGHYT9QJrRZq>0lZ6HHnY#WsYl%~`cr4exjOyds;%3_eR4p#-jw&r%A`t7J@UGrtfw03I? zHW<|A`-v~xIQs%PjOhx1)}#d1gEgU3_aBxS4h=exsUI4iwJ2lxOT?_=xFh!)t)Yre zr){~mkTxhbFg@>z?C>N#!0;zWGfhqkh6Aq)@9%sdsOZZd`wgmW=O%p|l<$ynfPr*w z-@_J{Rmws7aI6siXf`I&-WV9Y=|Tz9rJ=IJ{q#kevrC8Y`oKfa^kHD?Z4&oi5CIS# zrwPE+__72tDZp8H-2-3I1aN!>pNK9mvO%B3kQS^YXu(#XAtF`=^#{6k(F1!;w$B!g z94!Nf`RN05Y=g=1LI)Pn2bai07ISUAT*d^mx%Hs}RuJGlC1Dh3T&!S$aGJ#tuO&Y8 z)oDlP+}8%-S~xTk5v61*VCyKqCWWvFV%}A~3G(01W)UM?)ya*p&i1?n6KvIXAn$W6WCz9)H#T{aSDp(H#JN zCj7{54zUEZ-kBOJn(aTzLXHvvZWXTG_JNq$r&g>^QWS8I3vjGgv;ej_0JW``Eus;c z0Ebd`Bm+t2EfYC5lYN^kW|%Jq+Hw3%YA_lwEpzb3xHWSEOIl<4YF|MZXPj<3C#~7C z0dc?SL@CJfP1eb{!oWk`!z4!N>low-;#9kZfWa{-s~Ew6AF~jc+X6e&4@LDR+XP3g zRJ&m2@PN_)i)+y{d@9Cq&~JC&gMNOdY25LhOuW$1d8@I7c9#!oH)~5Eqt^0MqQ+x&U6u$0a~(gLy0{8P ztEuxq50(~8FhQ?Nk<omxX9{Q981I;w{&MGe{#FETs8< zJn3}sfDjYpM1F36r9}wTFWc|7X80tOPyT}63v!gK&rMtf+IPSgAa`}Z=U#wXcCy20Fm>EhS=b zKU=HN0kFz|Bkxyl+!zc|Y-LJUY)x5x8yh}@NCuXPFsw!yD0btenLvL&7+kQFc&)_e zI$`!-8@a6DfXHd&<9jbf zWE{8jOoDW*Hrc!^glj$G>HQ-u3~mmSPUBeY%WWGH4~4t>A4&@-yRcHJQu_@LK;}TI zM1o<(u()zL+h%fbT-}HGYmd)Z13zcoFjMWrJE7b7FAU4JRR7~x^Il=@(`W9Mzzene zpci0j5%*v&JeU?heDDcdjJU1X1CV59>NR8*(!S|1h5Qn zI0rcf#RMY3iF+kT^YNy1bO`Wdg5WSKls<~L5q(>}&iups2#urzAQ>)r3x*70Ucx7- zfXDo}5T_fe&t@-y?XQTS8o&lirZVUz0P#haLM3gP24v=wv6ghD#LoZvMA9SL6qq0w z!L&z4LIwQFW+8kjIC-(NXPN^^F9A9g6|;$H??+qPZ|d44s`B+TIPF{aJ*(CeS+TYm zws&T+v%49t_Bm0dZtcG|?Y6*=g*7VQ;=oUVzG~8MN1O9eyZ3JV_@8YU!SLS* zSEXMK%qZ;iFf5dH@!nFQCBbMQOI;05wrS}B#-_I&I~YS zL64cCSJKzu?Kvg@8%8r)iV zCYV{a==`L1>6%i;w}>b(*MppH^6Na@4&OlB3kb->`^^(@3*Gg&i*LU-4#qMOJ0Qqp z%&+Pt7MFi+1ueg~4B{G1J){ePqxjUatKbexBly&TFQg=*puk>)>I=VX+U~Ul_1s=3 zl}nyr8BZ%E_rCY4$jm4&qFC3WI4aNK#S+Z{w^sq8@i)JzN&w8GpuYB-)UFe!eMRCX z-v&sXBsXdwg*&e@)U9M>F7%4rDbi@ArqnX=_(6C$Dlu$uym4aeNB-L3mq~we4ot~% zPE=rV=q}}$g;E^xV?_G6+UZ&d1Vf@(ixrv&v>4eFh;-!0@=8x3)s_nJ;}z^cWdw|C zL2E`TBAIGE^_eBmGEJ~$s5@~nfH0xIO)gq6*Ch*=j#BmUYQ*X;N8gX~cpj~A#h{aG z>emdepWAy01wr?BiJ-Z9SN^OFYFl*CDH5#~2QJWK#r0Up&|br*xi2A?9Q5iKs!ldI zxxL^y{i^771^KPOW50!P1fh`&PL#<; zN!tlFso9gCIC!^VZWWMAIiipgVx@aP8!_{3#J5T_a;e!N4x3|t3gYFr9Qi-OxJ*v% z;zm?pYGUWm~ zrIykP^${DAL>)V2QZ){azNSfj6S}_^U&H}Q3xQKr?&w5JIf^jbr}U*@sO#1sHX#UjClyI?*%i;}voDZV zuUH3Q8(>=}HaKXwDIrurHO5*C`60zBttauIJk>iDHtl2OdXyS$oSdt`q0|^5DUnXYFWIYd;T44?~|Sw4H2E&x(Mt-q(mo~9NqPbHE}E=(H!gtAawi(=s}-XmL_ zxJBwy*#U-Dq~GO_UAp}UY(@k#cxhfrwV|u4^b|^Frr!d#V5%`&9gDRW&|u3+vAN6K zZGz#n7%tb3GWYckUTL8Ev^oDfxS+x-{O|?$e)JgKqW|6rC@~i$2ssOqMK8fJkhJOb{#Xyu=B`KRG#}2mWzw43 zTQbH^-OYdKmemq!SS6())fp~a@+vC{e*ZIaKLH7ofaksw@czyGAUT4A339ox>Tia) zan&rTE(a?s34RCLxfQb)W}s#znSiUp`*4IK9&C?euRc&6Go5_Ionj@fG%9)U_;Va8wX?+L6KMRM@d~&|@ zsvpl*fsgdCmD6F_o`Y39c5S%HI%{DE(akp(p)yRRH8N%^_EHKZ*pJ!|BbEDCA{vC; zc(x!X<=CrAjtfnCI zIHyhhg=^Vm^A~48&&Ibq8g}9_yjz-^C}0r+ae^!XJzDRG?s^o{P@HWJQi73XN>C9& zc~bbtGh<(wWx?{ndNT%|w=0#oKXhJnE9e6=uWHawI)E^!g(f@P;rA2ibAx`_LdRC?GB#!<=I8cATJHhHw@v)>IIQ$7q^wbv`H0nJ71dq|YAi ze>Xfg>T|$OU!tTNH0@>b?eopR^*>(ZUOKgQfhwmw&2$=!@OBp_7TY`tEdT17jJ-3Z z>%Ju6H8T6Y2umpGh;0C@JfH{zNV8L z$D_cj_bl#8R0c|28|Yj8%_gufeKTEM+~1$x}i%Xl1sl@>0;ST8XE0@DY;a zj}EI%(xf${OW}#~I`ys13HER8g^PFSC3xYpc(SmCA|Jn*L|@PM=I%%LU2n(d^7xzZ z3246Gn}Ff4MJ`C-l<`^?JaY%+%6X;PRqr!?1XtK6Y%P^BkKA4{{8H4KV2y&Mo`TWY zz5w@s+Q~)PFLGP}6uSghyEFU(JqUK2z!=HwMY%$~9{|TfC`@er-dj~LL1zUY+>&FH z8PUvKl-=mdNo{8n4VUZx>w!J#elG$y@;DGE-5`XtNof(iAJp%LKJ7qsu97Fam7f9~ z)=P=syMb<$TvWZt_`ga_`k4U9*ildw_Q_6^Q`NCqhZTG{%)0lVeV|f15ZryV8=rBWyQA* zv@!`Q)YfFX_p~O-%{O^$_Pn7Ydr;gm(^Qv4>|IlLl6-@33Qc2htrz!Zc`lY90k{UT zAY+*nl_kix0F*rvW0NY)6$>ost;ME%$wEV}O}I{%m2L%B%PvMM*w8_W^ZG`XiBTD1 zDw^fnhqdNg!Tc_N?WmIJZz25KdNl5n)^((bUVXS92GW4mmSV(JMr&+wpOBTTIu!1P zoA4!UPLXpGo8-!~-79b%7 zx4gix_fi_zSf|ss8mgazFQW++=0qf%6~-1RR!N7&4c?u*L3{MVWCd2D-P@+7EQ*Cn zbsS?xjsO><67aaz;rfmU{m*Il%#=y8DWuEq-aH@Az5PShJ841pGcWOF?QCXXV@S7| zZuqaqRlo9_5_#2;)J76&11sRIYn16$UNBHK}_^-AHG# zGt}u-w9y8oeU}-nV08+`jtf%-okjdN%*f->FOgechH(7D{j}g*PFL!rwNJ8vRC>Jz zshTKU^qT6Sxpaz)At6hxD2a6zf4b!)N6J+#F#%pY`#LL}u@jRl&g?Zy?)sB6iZGMr z6gPU&r*@x|Wq771E2uD&xDjt4k2Kd#vR_?05FI%!oa=FV$X+*VxzL3WBXwfUnwzrj zqgKNJ+UKSAooKCQtO*X${BnKB`lVtdAhw5S=={b-NGb z7&TL0+Ps5qcG?yj*>bU4Nxl7F8I{qU=St;B*#3Nk37g!y{=fez=ORt!kBkw7J%VqP=3-`U% zOgwra)bnwc@%^{3kW?Rcewqu?Gtk;`I@JFR2{oZXKW2IgGd4)hYzU7W5^YPIDCNZwR;Bl%DXE>uV3a*rxAfr);z=km;tXe-Zh+oPcv zspX*}GNO%fT~6wNdZ(RGiIW=tmgR%J7{I=xmV(8H_9HH0LIcCJpk#FgcC-b@0Rq}J zE2!<2^aGHe(abAiN&`&9vrL*3gjVTc9hc>0V|V zt`==HWTHhrZ^gA5Y2>0(*i*fJPg>9~hx(gf7{6Pd`ugAwt1jRx{q@buR;e`_-h3u^ zp4R9eYyNAkRru_#Uta#9^EoOgwkQ)vL_v)gPNqBz#^URh+3YOvThNq45REsPz5JS1J|<3A4+7CimVShW2cai)rmxZ9;z zCPAl8+bBahR8LXK>uAObD-_a&tmUkOY@M|cLS{Ks_8Yo3;n#*jcYj8|H|Z>zZ*t=; z`kx3inceIgiFMxTuQ9wqT%NuCL-jX2^fLj?FFYsT^TC;1@Y;`RHECLm`z~-|si@Uj z)NWZd8Le7~&Q%l_twy{SqEX9P2NgSP-oocBfb}H~OHll#qLJMAo$X_TQBNcqO#9sM znaz7+m;BJG2NnOq70KlFV9&J`tc8@uEw+9U4kK9Si8^;;mzZIIf#*$r4bA)elZVq2sdr#eBo zL(&Y*dO;b=qJpEO8tXbiDCMk!W6}uHNkePW2itUlmt7#8ti`|BTs~9ZhLbwIkeT(p zedaPNzEl;!o80 z;haq-_tW(tJ7c_)c9Qn-RBJ>YC)P7xmaZa|xWtjdap`JMU$_45GR5SMl4`vP%9${# zP=D+bCKcfX$^}^i`T;V4@(hlD{*Ic98L-gZs=jFYV$^-cGkIog+x z2mB^C_L?@76wCy!)KtNgbiu7@gXucp&Gn`+kXW4OUO|xwwVy$_Q|2LOc1_-CRYE0B6$m&#Rk(FOkp?6aF0XB%#Gl+lNqdInB9F^%9NFq71*(E3O4a2; zedg7;X8?@n6Wa#6wjvuT<3XNhTCyo$2_-lFbE8C)Qcqyg?FF{Wq=LPezfRpmp9fo-Hk3jYP#3aA^p02 zmP4GzzcsLhh-7xy&(&!wD9D79fJCw*QMQ@0_!Sa^9-aq<7F38}ji+zBYFvkN{bO+Z zj5~#S6^uTZzF+S8T~Wg{6LM7S1YmE_8&OlfTj_?K(^Inzq4N6-2hJxC=iL&i`o?>P z(u>N4uSO;HiY`ZgwFG_e%WBW{+#dqESXc*(qq1iO7R~rX~lWq(RcOp+5(I7caAJ%4`O@!#qyTkjW>oHZ`Q1P-G`{TQ%Y+FLpg(OVHSqHeugzB!?3M z`e2d`+ECtya8cwVI>*th3oMV#tP_mh+8lDHyP9D~JwE6gW0@#VkMA494XhDHmm%>U z6~ucx77-Vm^klbq-53E5l*!WUEFCXSoi?5*>ifpyvsQp1Tdt+EUb6%)8!`&})-h7& zw?Gi?^<+gp=j4ZYDYP|rYxwCVOuqSuXH;(K{~@)SXRk4{J!Q#VBV6)A;b%Ctw+q|+ zFRP4E)#&`Zv2`9umX}?=v}^RUz#E+W?6NMKs@r9X?fb^)-vqmz_c$ECEvNf3SCze` zP2X2q_VSi#kpXPkmO`s(I@ajk4$NjHYIWLQRb?irW|8>)NV;}4;*REwuz-W(dcJcL zEtOB-F%h*LY78Fq^`R4ki=58I2ROM@vmjEPe`j+!nFL;@wlf^fq1Sth%*Z7*Y#Gij zL?&bvg3QK}J-W@`Fd2|sOdN}=Q(GHcQ8B`vi>p&#l1NJ6?tfa4X@7-&4<*t^_|Ha0 zV~A+TD739}bZq&U=d%<2nOEo6)k_A;3Z6kln!j0PK~vWZLpk2JDx#<16W7F)@EEJE zVYR!>#hX#LU88qz0hPlzxt|qELu#h&(Y`g9%xmg#b0JlbrKr{{Mb&|hpf>d%gWQOW zXX@#@2Q|ZDfjr<@wR?t4OW7X)!hNMDe5orWMQo+}!u6H#MDC2uyjKbS%*({Bj=^Nd z_zPi;JYVoL3(gVZB=#ov7+Y(Ebn%K&S8N(g*cm9U@Z#v&3~s`-CCA#nI5Bv<@J1>b zDr@pzRKIaC%uPnY9K=7HdvTU-;%6_#s6JL4#7cTv5LyIB*0kJPn&ugfVgwYGd4dJL z7U@)_7sdxM9H#uJT_sjk)2E8RHWJQJoWk57+O=UidzZqcR0|r;%B&vxS}0>DZxoEc za}6gP$Sz}%jTV<4q>AOdKJdo!hPYKp%Rt@l0HaP z?u%XY(24v~ZKkk|)X6>Uy_gISkfD?=a!1fa#@dUR9QIKIn5GebpwOK-JsD)YOe1|H zYQQ^>4Y*q=hZ-3&?*QJ&afpgy886=Qn7*%cc!TLKxVlZSZZ_od=gLiICMvxYsm~Ca zTQnw6cUj^vaI}V1E*m8S^5wSi7-{tI&Ok`s)VL#TTa2m&%5)Q<7P+ew8Z3GX7VQa5 zO=etetWe!thE*)~X@hR8Tg7KADxhq;7sgz=lC~X-a2!O~&M2WT!37=Sw;kCd0LW^! zg8VfaxjG8tMZ-XZG|6}xUL_(G&YQ&uD^+-{#1;N49V}_rm(p#TV`)E=R^--57D*aH36$$))jvs^FbwtS)JCbxh{D z^_Y_5mI|U=ke~2fv!OX)dR8p$n8ZQcDcVzfH6L8DA}*>BwH1MLfUFi}r*WDtyPqMn zd}e=?$R1_gZ-{m({jZEH+Zf%HCLVso@Y(cZd4S_lBYv9!SYreQYkK|6WV^>TsYtBT z>fXX4-jDNz88njfmE2|HDzueEgv0X7`+GN60lUteu7`~t4@>-zks_&~$f@EZThCmvo8QLrrnI zn8|YUzjd1!Qy&%n!3FpKE>2eZOUZ6Kb6!h!fLhG;$VBOq&gaeSNDWMiP*V9UVONR* zX@ioF?){{-7KbY}1r?W)kZ!z@twxu28#0s!FoN8|@>`<>5acbJj&p(weoooAo|-{y zrp5~-v<2w6rLCbM6Tt-e=u)nTAfH58=|TzgrJkT5w$4v3wYx^yZo!}?S^CzCyua1B;32{~8GPr7?( zyI3TU%CQGB0dLu)P~LI==xmPBf(1ysYwe-#6^XQk2op-BnYKRAl^*IBmC{v(oT}Lz zo1hqA*m==5wfX~V$4rgojHIw#T?;PSe#qHII7|4BJgW1S6H@l*`+&mNmEUVd-)rJB z<0Vmk(uR{b)f=0ozixeRsp8x~l%p`oY!b2ja>HRn(8HD$?qbM6EI8$b^9&%h`GcIJ zIboP6L1$Y64d3V2LJQv-9IA;FaH$P9kAxhchA%}2h(Z|&h2&wd(CC2WdtTR$O<;!N zYxnA7lH<9pZ!Di?QZ6}PR0bu1@HO#>9jafSl-s#y9I)I*a>GBS9Oz(!>h=Vk+zj)Y8FjBs05 zaWiKyzbfW*zWwp zr?-VUGUx@QrFm&NnR6I@0!$N!IqHBV61T5h4%*2B;(!|{NV(g?aJTRBThbKv)VvYFq*;JUCEbRBG)WPXolvLG&{H($h6xC z(^|0n!pxdYp&Yi-3w@ep?@TjIwFi3mZ!)SSSS^sbW;AcRk>ppLQR$a=`WWUmzo4D6 z4iNJDGn3!+56?yRKL+gcD&BoGLOn$o=-}!rj>Jzeq_-wG;X~c zK}94}-sl-ITA7pPO&5lce0vuhpF&KSvI?_C4p)-M_|>#QoQ?D11vCpywO^!HRS_eyE5zm{(&)-k9YxY( zg{|J zRwx*6CI1++YGZa?)_ypG7E@vP$DyFV56yPt@5k&upcmow#!owd7ChnRFwCQYx|%tQ z*9l`6*JBFX$1)SVpIn;TfLIdfS$K<|Hl2&H*S7kDAQ4z>xS2wZUBn1v1~cSI== zoJ0DEE{Hid483xm0hVc+oT~enpK3 z4b`5;2q;u>a z$9=eg095)UwsY*W);iyPS*%y-ngXDHYC=rkS ztn<=)lJRC*znw{Urj|@csGxa34I(U>RFOFHa2iBe6LaW{;oIumtxe48k6dp!%K?}3 zsag8?*<&fx`0F#pfK7PRD|Qy%dxkCs&>^5DMqa0t%4E=0{X)GdrJr`#h0eI1C%`bD zX)0g>Jg!Dy5^+8N*K^1nK6$?sEVf=eyab6senukd<=GnH;w1^MGwdU`Y)%l>WlIX> z*3|n5VeZExKK-NuX<<7g7sJtnGWe`yR=I8I)JmGQnEtFC7=ny0oHCq2A`r{L&*61U z9Fka9_=Jj3NQKY_PzVlq#PK3{9QZ`|bJWX{CBe-ICW7SyB?J^n-@b+)l`36HhdoOU zKBeftdP6xFsgk&{Yh;J9eyE+OE&;#y8 z%Gi(6cx>RMU$O&b?2T}|y3cERiVgi5*V#)LVab*W!X*nWn$N1T2WAmw4oyc>!eMwK z8>ChQRs*dUaHnZb4Rgwe5+dsiXge-FOh`zJs&IlMXSXDTh`PoRv3TVeLPTsek5G{) zZd|EZA}*SHLUiavM_kg`0*#A|Mb*tOrmcIGJjQIxT+-*H_69jZQFjMsx>jcxTP`}& z!3Bn}a||9JMj$=7M%)@|(#oD(#504U%4TS1hVL{nU5hse&ni(~>FP zR0h-l*#(^RJ&;Do9VsG}<6zdn2(Hma5k?KD!gQV`Q}{F-t^KFMV)~YB!L##@$rJ$S zLMTDe0=x)FiLJ0brs(iyvm8W>yNTtTW_&h$30oI)4=P!;*8Kz-qM)$!1bEmHsT5Gt9m#Wisw1R&ps|*;>{ zpVvbPd0qWm(mV_-q$4wR2rIA*FyMp|pL zHAzSc?Mne_PWppk;4}^q^}ZNaR%PK4f>u(xw+o=tSI1;g^k(KwsNoUc#m+Z4mDGKpV0s|mWCxn>{c|=N0mJJ;iQsi)FsPc%M zyPdJ3xTLGp0^E%j6OeW{nZ(Sg`K};kkGt#|?&WiR9xj$ddaLDb7tB4F_UXK8DPN#L zEG>SEtgH_`KNV)GM@Hf^{ILIT>ib^|L^fiN%M_l=hz7YdSzz4y;l0PX=dak+RGDM3 zO_m<2^ir)!#j|!)cafG-m10H19MQn+NhYi%P#l0psD4}&>8eUK0_8dh(2HG~!T!Xs z>10AX(^;1u36)T6Ss|-+a?c-{FgHqXWK?eU6b+X@2yB84ri{CFDO!Ux;0A>@B8*U% z+Gm8CoyrB@wap;9L=%^i;krT^WPGY#CHfW54>S?pm2tC91PwE81D1XfHbHVhYGVAd z;zfIuqHG~7^7*t1iRH}p>=hPm!cbDNSr~9fb5KI83$lW8CC2ZOV7WTv6{5^Zal7T) zu1Km(VUC2|@-J5=sfe&v3liPp66q62#|S*g@0EfXzu3DJ0N8S7s-`s5qc`OiYgYHu zwp4z7XN=FpChzGT7~uoK;henND}#Jc5}@w;0tt8Cz%oQ?x-A$}x3~_f%P%&Z2IoQz?YWUPRnc=%?;HwjCdB|&LwqnTTvxLeeHq-g( zSmzuI$i&9*b8cli6aGe3r;1zHu``RFPT;GGWKz?RqZWeX(wwSN(to}1w|rcG+BSm} zD71iSe{M>K;C=hS=+SFfY=#Qwj9{Wc@LfUf|8^bPn z{I&_z!gfNhITV}2uU`@9soJ374Z09-4?Iy{mxPypIG7hMZChgh^Pyy?6+ zAFbZdj#I2Rw+yj|&N4LUBki%1Wma=|d~{^9ySKDS|MaNk#QOEfws4HAM8oHdJ-A=5 zaG|s}^X?&X@k%EgLdj>}<(1oK+${lLUjIu8Aydk*Xin`xmc|IX^bM4FZGdzVPB%az zZBw9RYiLA1MN-V#zd*X>+5v=GPBO0S&Eg8}i)hDUfkUBw-fJ`>6eYkMs!l10P2eo5 zQz39KB`MLMBG)-F z%duS!9J=NMcDu})+IEpvwx|5}SDn*>L^{;#;yqgAPRbt}WXfxE**mda8MSHAVOP-1 zZl<&J0xBVqdrgKLsk{c9wy{=O`!HoBKJAOVVuvQFS;NX}6fK&Dwy}B?Zlgc1MB$)E zl>)@4;8m)*}XOfnRo5J{toQV0O$#?(tiqj3o- zJ|cpX*S_f74T;`H;5*)&xCn#!xUh5+c<49=5N(z+a~EO0I7KJ%jp0E087DR=x5gS? z6>rcRTAQ-&@jEDNoY=rJT&A@SIRKZjP%2Axsaz*a`7l+|#|ZQ6+s6Cox_=%g8K|7y zkEOFhv|Et(VlR`k-&kd_-?2cN--Btz+gh8l$Zp5fUJ|*wSH?=V!QY%EBQuNHx$X79 zf0s6R@pHf5RKq{Tz}2gJ4BALwJXY;fRsM{|E{-=xx7)H8N70L;Qm&npT&njz=!>JG zgLJU1NM2Y=PoF1$aR@gcTk*$uV74g_0tKXt4Aw68=JqAC_jmX#3pA5A1?RzkV6Kj* zfn>v1jGg+cob^A+)4jB6aefbQE&@BLSQBX%j4g~Xt+`q|EIC&AgS0qx<^{XH;9NuC zzw9mrOWFI$4RI;(HT+X$NF+AjfnBS5hj;>g$>3ZRdPzSTC^f?DLUi#)Jmh}Vu}Ocb;-K@MH3l~ z?MKf-`Y<8%s|5Oz;)?onjzg$k%yp$@gzDmVu}A)*oe}1sKwD@ho*#;`I#*zA>Lkz1 zfvl4o^>ScU>=8*F3+v`!^CIme#2Rm;9;g-Dr|LL7$lg{=I{S_br;`UEz5saqa6-j4+z{W8;J~FAqSOMH4Tx?hKf#DRCn7373`d2*2WmLbyx#^7 z$dLe#<3b_+DmRecfq@9sKJ^OhFka(>a4{|wT5Cadvz7>#2Z&^Hz7Glg9Oj$MliNGryu{RoW}E&=uRKteO`m=aN2;HkP4tWu)4t3B{k@< zaZPlYu#6`#^)Nh0vkJ5ewFnMagVO~|g)5SQSPoG&Yn8Vtc7>v9QrSIj{Ky{Bz(83%WN zwZ;O)=D3}6LcdMITn)-$v76&u2~tK(6xxwGq)L@yy%PFf)qAIG!U`?xjZxRUtuRJ& zgSalo{lIi0rCyVAuXW~P#uc%n1~KCX&R6%)ybs=^YAf)(6~NK+K>htm`V=2eP~f*? zqnb1blALfZgUS7Wu;?2~nJAOzlT?<8@}s&FdlDb9o@g+o#fV+Z$D9wF+WF$mj1Dv# zNphj@SPiVxv@wtY<0x;>HZC6DN}x@Jc>Cu#L`mULkyM7{2U2yt|iQGT>!X2~2k%2!=1CRAeg`%N7u>TIry(SfPJm zw_4CvZP59-InS&Jr9l}pX6C?35&21{k=K?zpx-Vs_aE|kub>Ge zVYNXoxi4%CF-3tu~(8R$ceO2W6=ItkYugEoq3wJDSh(hIrSke7|D^k2>5$Olfxh2?S%0a;CeX#OOn@cQZF z-N!9FH|uABtY?P>tnh<`>O@yl!aaQOb>{XLQ#=k!QUT$lNqf7FME807{D|La$pJ|6 zLxW4n2tLbU6xSpp^f?gf4d^c)kq2Km0l}n6euFzc;ANAaa6B1f0pP*phq5wUxoJ~b z>4gYNTPnj#O_C;XLn{AcesS=xB)ageJomCR3M&bDto6YEZZ|66D;h9xM)J$zPSc#Q zy?MJS8QC(~4XwFn1vcsUe9ZOS4p>tQmJLe(hn0))YES`4F-52aC>r4ncfo=Sy%i{%%!{5caM#FWco@6SR@1Kb@g-^Dvy9T*X}ZbiZVtw>kf-X*9ckyO%#4 zm-_PKe=C;)kJgAwOs2ISIc*O6DQx>%6%TSn;%Ep<-@v6&|Wt#;G=Ur2am@M znn5JMBzp#@jp;BwrM z2XdNi@4N6&p6@@Rgm1|608*U5;F{(H9uGnypXLOAs)Rag;R}uC0orn48`?ydyVz^e zR=Zv|-0Q%s_2Yroyg{U-5joe0`Mr2`-cVguyd0k>0pKJ_dcV7wJ=?s_WN+njAW{@V zf>MY<wD>nsAne zKBu|(PHBs-dtUHgBh5G`el*f=W^hrIBV9i>d!K9hvA*f{dNZ{~*6wj6Y2Dp7_!{>F#U%dBMLc&Vf#IqHPa4G~S2% z+~9Wm?gi;N(Eo2BKwNYj@hgevhW#fz1x?QhwjA)&ejmp3!QQ8~7tHg)|9v7$+OKMR zr1gzP{i9GPO+?%FqfQ8aVAMOs{vm!NQ2xmxOUl0I*JvNy_}|0lz_Gdbk8J~LcnL+(KstobV*lc7gNyz5UV;T15KAiRJ7=WefEO2oe1B*=zy^L zCz#z3iFJ9H*I$y;qZlo69UC~eQO80Z-G24g?)m)-gr(4?sDbniqj~K%0mVz%!t2c{ zo85l=mFIw z5o8NwyvlfKKc3^-etw^M(FZQ`oD`b89@!IC!S+`)R{~X=my#byNps%`75(s+fnGJn_ybh;g7Tul z<*$VEAH#VoV)B>80LSr$v|JO=pxExPgN;0j8RlT}c^hb`8PfSA#6hACZ9%9+lmW=v$ZzUrb;uD0k14}Dln8P5eqKF3yKqRP1Kq$#3Y>`AI%)!L%(qdX1; ze;e-S*r=fVb1W_5dSZ5(3=~8kdd#JuFR0k9o1&YApf%SeKcYnb}hjt1u zYd7mE9tpYiianO{0rINtw;z}GI$;DsM9rFk_WMWAlh0>c8HsYMMuI{4snZb_`;5Qe zaMd>8v&$e<80kh>==Y(*9v@4q8lij?n6&E4!*s+DOY~<$ zQU`_AxCN_it{Ck9<X-M}v!au3h1aKH`hhy{gt^z43 z2ZxK+j|cSip;LdY(9nnI>^se=C3Jm|-o!hCTbw<~u)YdRV^qBiZ)P>e87S^UvnY1i z(I>;lya)cBki55M;VcqxTT=FDHbwZU#r8o{iUi5$I6@tP2#}dLDKSskl-j<`JmwUJ zxyv(Ybz~U2V!|wYGJ>=)`sW;4pi?`#?9$0n5V&zHSikJt3&q^={9mAAP&@P9z{$O3 z+kLx!&LR;OEbYwliq%iCZfWf@J1`jj&}&xk9iWHHjAUYq_`f!Km`?>M>1VW5LmA2? zbnI2Uq6e8y{qxhE%K+IZ1eYbtk`c-v#Gohtdu&!`SyjH9vGbDzgFL!Q_VPx*YdOtoNPKK&7(;G_>QQX9O~?E&pgub!5?SB)%qC3Wl4p)={b zNq!Z0e`f4Y>$xE!_rD7AJMq7T-+^MLi_Q7}+N8B*cjHUYeXjhS(``ck7k(ef?MIW7 z;01bq0N;=BK&0NZqnz+Yl!5;~0Xt807rCgPqPiZ8)qqxxz;Do40X2Hkj+($}dJY1> zo$g$P{ObV!(Q-VN-Vj$S;SKt)2notfDD3HNzfzShVIv-DLoZ&^So>4ZhR5joV^ zBhvBnS`cZwuMO>|A)M%)*4Z=1qa>_@znA}l^|nYZooal_ao(n*D?~a_Se`ob_pE{^ zg0F0WYk&L^JPuFl1SkKgKGAg{Pk0ju z)7}oY1^0@<3M|Eo$(tvWc5gKnk2N;0CoP_8t--GDjy$Cw+2GN%_ds(OZxh?l`Ze3c z6?%J|ON8(xOson>`f7y)Yi0 zo#e$s$(omwRZk}B;GM|b(@qy*In-94a7{yzeMNc@tlYhVByBy5$%`kGHg6`a9!=W3 z)LT5%+q|4~^Hp>OsF%9~)80Wkk-P0qE)uEVB&3XwPk^9S2J@w0zq2c05w9oPcx%$r zY5G&fW4!IVcj<~Et|=O%`)?WPlN0o(v`WZcwdwLs3MX&M2OOoDfK4-tlk;`bkE32D z4bd3}$L%;@!6*?>k-jvvHJbhAQHgZmE$>wOP-{#Z#U9wYCSbS^+u*nkxAhzVU3!iJ zzARy4iY_P1jkgX0Kc=SyuLN=ZBT7$bx{+Uz!CoDgDSe~@I%GS_nL)A4N9=uX*mKPd z|NdcR;uQ(zJm;BK@_CfZwRmZu*r~j>v*0>k_BL)01vl@mrw!VBRZ$$q3Q>lqhidAW znw~=os={h`(C(~C@R{2|qk`aGCt%fdr)4xXRc;l;N4`?8;at`^S(N2H4K>wCPfDsP z?ybN-C%H6kkBw5(f{!=(+)^k0umTfG%i9I!O7?Fybl_UaKFcK^rY?Xt;dNYawNG5K7TC=ZD3L4*;uP!w*!pl z&{l$9ADQuxyPRr&@JmWX^ZxJ1@BL0aSaX`9>UPyvJS@=r!u%>`3waMd0rE1E{j<H|&4%@Sa*Dk?<^um+5@RSv8a)l=AgSQb-c6{k53) zIJWj2@%K;g2W@Dspk{Yc-8fTwX5S(tb!5^z5@{W|G>-JI230e#leLj{9SaT&2C^eo zm`v3y4KSEV7D@J(rdP@eBO*`qBBDSCKn^Rxf*M#$5A7*oEG2Y277}6II2<;9KDZ;1 zFcEEE$K&uFE4{4$Dl>>P@L3&8wQxQ+Rkc0J{=a@Mi_g0cC(dw)tIPiLb$ztEJ8kh- zs;+i}T}xrXxEHMGfv5NvUX5CNd4vMv_j%_+U?^{u5C6vJ(5-+Ff^DPae0PtKAd0K(TrqtAk+K{LGZ&(FSO_r1;|9E()22W)r0Ll2gI)UrfjvmLo4~$y>e&5XjhS&BfARvmJqp#{o z*ZZLBw7+(il$dpYPxY=~n`~;&bd9_oDhc0HDJTy=T(ntv;8wxcfOtX-XPH298)3m1 z;6FIE!K=LC;-Ebaf|7uZ#utaB+W}5(w_g9665;KukAl4Y-#8VU{0HmC#ZG7Au{8B{^AA`*pjI$&j{WO39y3?qK5{9znWju>__O9{VUcY@gO? zNm9a6V1JZ=0E9q$zxG`ma5@u|yvar3RZ}ot^t&qL^LPJ{L+o#1{=+|vFqpqstvpMd1*bk#OYTrqY}-xvFxCoBoltS*C5$%uU!ZUMEj zYi=NN8GF1{CqrHRQPwlI_Bti;484RZuo`5&5!VsTM+K>rABS9aPB?HOm%PPNad;?Y z?EJ}+jBqaXY(zvyjLp;1= zD9s_9qPVuN+?T*H2(oGQN*5ZA#c;QHz;!J5uE z+*VB|m12b<1=fE?Xf)Z9-+Z-r`JurK`chUZlm+0!ckHC9h;lwJQX57P@l>EK5HmR} zeN0W>;8CK(zE5_in>CXtHO>Zv( zQv~(aj3AdQgy%`MU0^43gr;dgeee2Y(8)}1LH>+EGAOb? zvBX`%5v14bf14WFKFUL^{f-`3nH{yFiiDKt$UV^@$uVV~u=p4&EyAjz2A!y~&aNP-xtE5wLm| z{`;GVJMk7P_l?i;wzwII&N0RrFcK%RtLI2A5+kbxYuA?^xppN15Po+XaOppg65h5+6 z^*2uS>F-bpm*j69KipAnm7~LB$CSd2)unla8U6J7y57lQ-0H&H8?dXD@T%t&gVSav zsr5b6bR}Gc@|<5I;V&hH8{(NJWPh@Z7}*``wN|Lje59#^Ug#FyS&}6@endGC!+$)A5X5Wu81=$Z^}mkBI1G|sa39OC}q`zK7^gKH%iaFX5f z;uV0nxCQOGU2S>;bN>~!HdyPgm|Q~USMi?-WEPq-RQ1E9anb{|DN&2C5b#PETGO%m~-HOImG=^G>-=cx6A zy#~MW!ETFa;XuoYtjS9U(J3ftBLy!D=7dca$MSZYzpNq$F8f)2F( z$=q$n<7AIsKNM5u^}pX@*{c6Q_{CqXzkcT%zTr2xn0y*z_;kQe?qxgwW6zYu-+xrg zPObx&6=ln0MlI%wXn>h!`0>d3Fc3bp{dZmezoDpU|- zm+nvV{bA^tTl#5;TWVm7P+A`#HtZFZFmzP?i~vn(hTqufK|uWzX1mV8VMoM&5Ba3r z50BFB0=%A(V-~ahpX0e>_JG)ZsCW9Gyzzj4r;LdBE6$A3IpgC6a`CrLE`fY~FR<*N zTV1;S@AFA#55X_48lT%5OU+qlQjVq-mVZ?*rlIq;Omp8y&@Y5VMK$(+^*%^}|0?yY7I~ z%A%&>dRRSoR&0byNu}e*qG*0x+M`PI&sjdcn}R4FP=Qee(T6p8NHMYur2uRorV6J5 zsCiNuR2^0?SRYyxyl z_2kxdHp6euf6Uea;S*RV({JHEY|%=|<0p}5SHz58-3`lbO~qelFvfQ;rZL!{%;YH7 z+2uVIEM&2_%`c|n`eo$X5`1en9K9!~(i!5mnYSzZ(N&oQmiC05@umro7mewo^R7bv zB3WlaoHuQ@DieRIIt0R-UlaM_>Nt@?Ya(~Wnr!f+3EJAIJrJ*2R4ldTw-$Z0=zOYHcLq4FXG&;k#hR>^n4&($hId67OxMBk^D(@!@zlC zKa-4m?J>!=Z$D@f>a&Vmx2DDAf^`EY0K>YCvU|#ru<5Ed?cCFC6zXlCIJ{3Gr##NT zlgOBUPp^?A+7ZyNoq(MvMAOLt_K}WM^WG74ByQ4E75O&K^s#as(4d?4=h~X@YBkB* zW!?ph2!9j}OWH*e3^DVLU}?J)r8gOnAJG3v^dk)VQ=G^_bK{Rdnw>1IQ@4|3R)q?- zN`-!M^zeNRDbA_MuvEBIYZxsqh@Rw2huoRe*0oDLHoU6sJ$LdlQYob|l#*)i#;#{x zV5PxM?7~8uiecl{j~fQlN;Ewp6$&6yvd(YUb>gi;bfUyu$4SA?6V=GJd z9$}d2GhxXt&}o0kl1VpD@dgt(F06m9+$HuMP3&Dwd?$FdFRdql`fSjzk-hHI5AJ+f zwBfrZ5+yKP9wbw0WUFda(@VcsnpwC^#qRDOQ-D9``QCP0x@`L#G>T!ns?V*7e}3-4 zI~UXlkhwEx6L#+GBJHm2@cMnN>;tBr4Bo*r|7%2==>sq5PTVa``6(p9mzkdr^ifO} z5S?mw#x%i+M*Us3fJb2&34X6*pdKa`fL=dB5nv&e(27lHL>$L*G3@!Gle!Q(9SBt} zghfztX6@UMg7Ujv00)1o3;a3(x%_oOQ~I&sL=?ce`7!y(se!A00l>WVBv~<;Q0Eks zM9KKvR8Q`SIydGYq)*~Yf6ii`5fHApPZRx=6&B?fEVlnin_=w7@2X@9ocfgZ`SP>( zj;Hxk3&Q=+d8GH(*N;CytPa6>E58QThhaRP-@|Ez+g%&7?*Tg{T(O=zSBPZ1Lpqtp z{F90JbAMwmV7gf#)HDUYDw2^=F``~cegVhG)57ITXKiGLEt;-Owh6L#RuN=;Snb_{ zjM@je`YIWiVyK^6t^e*)z1^Z=B*#n8-uYdwlt>~+^2W0P<#Iu?Tm#8wC>3uo-b(Nx zu0x@ZK?oF3bYKG3qqSb}E??$*AnA}HPqvz0AL+R8Z&b_0yn%+0^aJ_b5U1vlf=@77 zk@QsT-`MTr1j}#i#PRzYcG!mOzy4e1C1lsJxGTS-6U1XC)d|c^m&oqCO|nd+BlZ;j zTy~fF{ax(x6uahFoL5CxQqi<_k;=4o`z9?%a3ZM^xH6TK@R=b>V9%*1@$-R?qQ24w zT8MtaVP5UyxYlWoaTpOuf=&-a9213{2U|bT={QKcFg?WT9cAu5dkC*gFPpmVjRwFO zrc?j4SC@HaDS;zX@IKLAFjv_NK`nASNL^W%TSEtbJ*j26q z+^Pa`hO1Tc)1QXbt~w%RukK@_-Mw1nQL}`Pg?-#IJ58oRR<`lAGX_t-P<)b@bNwQG5NjWRif)Dqj{FNACLOdNm_$Os}Q_(*B4Uy zg^*|yz5b=g%X}g#z5>b>|H$gy%P>EgFfS(p^b+W*-ERT{!*Wyq`I8k+@C+`2q51JY zG+5#=GW>y@nE{e@KpIx4zYJVOMPFyGYzFca9`?xf6~T|vG*5tkcn#+QvW5H#7F*HcNP(_>0?+H*pkogTD} zMO%m4EZLrbH~x`Eq>gHL@IDHR{@k&bk4^SVwG2zFh~=x>V|G z+c$UixMT0R9u*d_)cnPG1U!~XVbVWH8vl=qGxx4n%1rM<(g8JT;a^#=@?u>Heg$Aq zTDFm6?~i|~-jhd}aa`#5ftFK<1NwSbEd{0cfiic96pFo*!iDE_69W?c;P6`U18xF- zUOg`mA78``c3ePHt{`YsBwSa#K-|IN1HBz6DsCiS8;A^z;zthw#0j3~5IE&OUbMPUpIHmJhdP z#b*1q?w?HmNb_Z;6m_NyMX+LTOqYm!n2Eo6`4xujTF@A$Scm zq#Y4|l)L^FhvlB;BY2^zPl_H!2XH6LaYF5Qp-O%zN~_|A_J4{R<2YxWG(nX7|3osE z5*(uLr;HmFJYc0?7&uf_*asH{zZe<4`J)&qteD(kO3LF0p&cwceRmi(adg5zslouQ z=c@VsQLFSeIY&A{m9E2AnX-$MWIivnW&fHb8xA!52%BMF9hV|;w;Bk-E0^P~yACzT z(%Q_)M|Vc{GfUt~j@4akP4a-)fRfgD=j2Ra@vjj1S6D26VPTIK*r>su?;E~uR)kw^ zxOKrgJBl-zNL9{XZVVe9x$mOf2`}wxg1eG1sJnLqWrUm#Ktu*3!iT|NF$KdFhHpebn_S_ zj(3l8Hz=2=i8~`&OU=2|xesf;I^7w`T&CmLIIUas2G*Q=l#_YKxqF`hM%@qP9esxV zV?D!S>B(I5%sZKFu%xHS2D9Pard43Vup&k z)O_d|POE-#S@I%BXjeXRm#)l;ToasK55`zum_==8=Un`VTwAr%q^-7v(P1{&zAHM~kn1OqwnSKui?&F;PJ3MH4842Si@|VvRio{7rV~x*QseXwY50e9xkN=N6ftob%=X zFHg}CK&Oa`1x)<|G~7D#tc%Xdb!Hg_bXV?ua*X+BcNTkl@F1%6g zTU~RmQNJ0N<{-YU7fTgcN&=>cVLKeqqr4L=ARy=W`^HJkkK}WxFy=^e!37Cu{dwZr zljoegqvw{xo$$r9+k>S|Y z$~Jt5++$XTk=OpF{cuMQud2phIXhU;Tr)57U#zmMF+1TBFoEIx31bY9hp0!yqlOle zi3Y4QR%{xJ?b@zz)}sv6+#eTM0T>~;ENNMY!wA{WjfT^3VJegecPiVTS+ufFWPjPn z6D6O3Ep)~?2#mhtKS}=Sf&1HChTZ%bd3lthuiZam5701!r?xNI)18YZFNR-nq-6he z#yVEFdfRaJ)|(bfsImyM2WAmw^3XQXmUBt(HZDWqu33q(4VLHyn{2uUM-dG4OE^_1 z7&E2VyYKXD({J&yR`dagF~Eivvqb?egJww^Z*yoNQCD~xO!3T=RJ5T~9X*-n#veyj+FsBNdxGL>pHywR?L?ovKG>Img7La?7;3eFVza7w;Y=s?& z&2ACA1R)g3F(S!xR-fhE9!l=dhGLoE4hyGpCC(W#?wH=hq*WO&-tw5f?!twkFMf09 z2G;IR%%!EhVw%oOReC8{B;wh{Dm#>H!NSrRRJdlhFBfC`M8iCGpyUUpsD4})NvcXU z0_8dh(2HIA!T!Xth;r&hj%zaGY1ARQxeTgV=Mx6ebqByu(vqNTxoS0Swnki^7M6;R zq0AiU3e={?YQ+hD;443h1>LtW42G*%FT+u*lc26NTsVkBOqYSB;$$IQ<9d*Sw2xBc zK`OZ*jcd!~*~FGwnBH<+NUz_}e_@i-Nz|ZJQwJ03h*hhbwU{dvoiXbzn5>NYm-4<} z?ln+qW-}bQcA8EOn2#%%-AOW}F8y+R+6w1usfZbdxjNJqGR@H@WUfe{IJG&hqpfUz zRKel=!Kek3>WDJkQS1#e&{;dxKxL=X57qH!n|+XwrHX}~S@O{!4!5U-#(!bB#Hf0q zX4U5Gp)Bu8;QS~v1mpc$^-MH?vb4+46{aP*i$>Lftwm;#nb3FBD9M@=WB}RA;9hk8 zV2kN0%?#cp|D4W*k6+a`iYw4Bw%&BK5ctk?CUzXq`|-YhmKWm!(2~bW9Sofclf z0N!)aA+Pvp(518MB0UDp*H|f!)&`K{y4NGIBi5qN(=3`^wF?>{m2q2i%rq`vW3=;< zy&7QJZ|oXUQmJ@VU26=A_EQ7|uG*c*llFSYA>BS6(0%y&F6XXtCs}pO9_@&en*9LV zVRqQ2?7L~#xqBu+$#V0ny5=zXe(&_{3-8DAF8+&=+rl!t6od5j4uUZZmUoJ8VnE7! zLV`M}j6SJAOodQtQS-f`T8l)!=91MtRFG*ZhP4`A$Tnpt4q*kkRaE5|AcpAH^5!@o zx9=8EEor0{%(?{pk%0kvE-VO8M%*Buw}mS50txvAo;$S|C#P#Hl1U)8&Qz1$kp$#o zpDMD@TW2as@~GJUR4k@W5({l4ljjnGa4e=!5({l4ljstHfGoZBFW;ArrWr~u)s_#B z@P088in>73XQA{#z5DRKm*`Nm4%dENp!@OtMY5H8{^6Q6edV7Q$#dKbqWcI}x5d+% zMsKz<3#roWYz(P)WN%{`Vnd!*N*i$h*gVEv+3vfCDA^e=%;Oyc#WlRVe2(FOn=iQ+ zy6!@-JCTGVWkp!LBcHeSCvtme$yg+WL7=OF6B~mNe-4#`|BFQ*iLj4EcR3*ZeP)5#h9Y~ZW>JO6l_P+biZNg zZ4NHm_$(MVc{&T0J}=c5r!# z1k4@Dr9W;#EODl`6Fp1apj9!FMHGK)LeM+NOY%^SH&Jf0O?oJm6^TT3@`m$&yTV1^%EAD^@( zZVZ$nsr)-ZtB6fjT;KhHfT=&388`-jnFaxL)PM+-mSW8vOP|Tb#Hl|wI=;_Q zJi?9I^XzGKJwXObL1p)H5YHRwodj8|h5_MCDv01s((^`4v0GWyP zP#{slZh)IGy1IYU4>dry$Ss9`YI^fANPUdn$%A1xO2GnYv&}^@;4MWsZl<97cBZB^ zgZCyXkGIYz&@p>HwZl~U1%`WBiFqS6CtqQHz#r~V#kF#ME~&h?A-OwOB27Ko87662 z=E3X(Z6iqA!O}0FIH==Vi!Gm=hTT3@(=@y)L+Nz;FSc?de`%zD0HPnDF-osN$jiVq zu=HG^`U20?dQL=tF{K~kK1#mmT49+21smCM)UkYVadEfh)_m0$xfA6LTT;gAw{4$Cff> z-7nU1`ayOe(3JfB@m%S8pR9*awGQ+@k6567Nj@_V3h1q_!|M}oPC%<7R6mg*Lj!os z0Y`JacBozsGY^C@gw?>j6QMDIXE52N`9C4(W&D7vcXQrA#k^1Ge;u_KkcR5$Iz<3g zU)0`VDYa@~+dm*R4LOYpu?Mcc5(mazZTx|JjjivI0_s+!S>a3M*ggl4P3g_7S$B`* zFnbcxAaPiw(<{RpH2UsTf!RKee>r^7q7Becs9ja{48N z4{#H6`NuwEc&=cag0xrPtykQwH>g&z>Ub+n8^x*@A6-GHQK?))tHL}Nmq1smoBs85 z3yA)@*Kijn&WN!VxEU?pLMAC_5oiw}3O3OSgAbA;WfKWZtO%?JA_b+iJ+D+TjM>x$ z%`Q&Tf}gZ3Qv5Kdo5cNLVX4|nsw6DZmeGJ}FXm8ag;2S!=|NTmX+qfH+l%e1(3|J+?;4xOaZ=+< zAx&J<963KSTQZS}G6EH3u7|$&Qkmah0lpYZqM3s}NU8Jxx|~~`Kg*k(ZP#nZmN<&0 zJTRu(Mh25`mN$!^p15BkG3&-dLiYW%?991d_ZCRY8^;puENkrZK15-+Uy&GBXBz1w&5Kb67O&Ub5En5?mCqfLM?P006X!XNJ5$w#qn5yXXzdzNU>S)jz9 z{hKAKTh3-NO$BmON-F$_v{+fwfjJvnt}vodkp*yJqx-8jHmYaf-rgk3nq;n+S+91c zDxW2UE>qb(l<)#x@SVaf%S62QIR6|=A|AO;UGlyIW+u1eE7L|ic)AI{Iv%7b8oJ@< zI9zfL1_$$u3LA%VHs9_Qn44(!72%3Kpm8wh1Jgdz3xkuINED7)kdhNS#*;Bm5e5o_e%X zoTPeQQq{$wlIosCGJ+Z1y;3S2s8P4qE8W?#@go@NWN_aMi}vqCM9XU&bkux);-Er2 zh`@B(X8PU0l%hbBu&QY_Y*kH*Tc2)`;tpcDOBQ-)JJ!ZElM~-*6(+ZEhC@ zzVJn++T8brzWha|+T7RWzB|GYqYk4Aagl738BOLdtfH|eVLrmy-2T~5&`q{jdKOL; zUCReW@*aOn6wRkTinZTpxxG$Ka+`vUEEg^Fm@)m;2Y7NLbiZL_9OkbcN5X`>6YDy5 z-uUqAya)0L)+<^O7p_Zf4ECB?nsAYEL^p!N#wJbAz6Ubtmn?|e8}Fj>B&E{!CR>H` z8p{rb{2rztGslITrg(7O97O1_K0hlZ6g5m6Y1(Ilmg~-2ks_BSP>uDH z5}Y0H(9@jl&>in_P=l8SRJXL4jx0eeBnSznwI3i+iua5uW#CLenSqUg#=Lh0CvEue zo`-|U?r&R88q^dcYFo+^5?|5lT4j_b&|-saJEX9}S0&Se;dh0gXOg*L^5eR|MtY{} zEDS1#h9|pNHc+Ew49!Z)PrB%8m?b+H>d3gAEH7Xv;AstCBV#j1M*Q zy`ECQQ?mLmxd<5Xey+dq9d(o#L{gAp?_%d$8!)VoE)OEmayfLzh#7W0>z`m#QB&y;1 z@Pht75oNjbJy8+{hM72(`8Wgka zhD9U#G8VjvCpUkf<9u3n9c;+g31T^0b+%$%@%4~?@A(o7hw>xgw6P(7SB$bl8D6YQ z72Yz}j!K<@hxhiLGgkxoBz0L$x;YiGf(-91q6~q}IV_kuw5(C-wH8C+Z8%l7SU5}I z)T4#G%7NUf-UsG9wWzl%_-h0Ohd%oJv6L)7Bm-}2Z0sZ^Ywcm~V;_LXIH$^myK~zDVbEWu9Uyw9+U)XAS zV0zVjo-CB)ufB^K8ZmQ?X*v*V}@m>j2x^)1}LkISjwV%gfbt@0CtAy)}09o%eSP zFS$E`2&X9#(7!KOv|lwP)s6C++LP6#1IzhMTVekSmdkW_{a({~aFk`K^1$;xSd_m% zo-x)acYRwVF8tnFIb=$HtRh>Nhw%%>XW{#!?nX@ja?qG) z{(*snxgcyu7VJNm*42L>{DGMBDagHV`Lg;`k7-!{Io{jYuQ*5A^GD}h3Uc0X=aKV; zr##_a=vDUo&|EH@4*}-`_`fLnHoRH5UoSzze-ier<_{R4b;fnBTMg7}XmPH06BaqU ziK0ErNM2qd;bgCuLS87sUPjMl`4eylTFPDf#$1M@H7xmCBtPg`%Q>~Qy0}^-9I|n= zuWk`$!mofvpqp%N_myxFrf9n|=R0SiMkGPv!2@avZ)80NmJC@nA;BlT2CV;ivwsJ2 ztX8)`YSa1uLA#!@<-CM6^i`aK*_mO}H&%XxF^*RD?Z~ZVhS&G*?2gwbO7Q>)@2FKW z#;VFDOugD`n8e-lsT*8edw?4sMo*!l#xIRlekMPR%7#Ci_N`Tao8|ak+3~K_tAFR% z-*{f4a%|aWoQhnW?=)}GI3DJ*nPS12f?R(R;>;dLBVG1k4*iB1j2%CV_IE$&tdVNU zBX*l;7#egWf2Z`(cHT294;ku55=&AbbfVSzV%46Qm$FfSzpKzS@kn0hlr(t^lPSqR zxnNPd!}4uN@A$9BA+5VPt9l}zibB(WM$tBkue$VfVJ&jelWX1AtcFg9*xQ$MI3I<& z#RJg288)P@sorV>CW@105=#zxGA2(PXj|7SPKZwJl6yzDO5cdf^+%dtCU^ACJPgw; zHmWe8x^rRvziFp~MjDsbaM6<<89WG@d!}t9os&@qn+C{nHLwhfd%Y`?Kg;Y1tzDfW zm|@(|!i}V2-N9V&w~GLsU^TVTmwuW#$9j!jAmmv&8%(CpnbO&9;L5q=O&*rE9GgP9 zoSeYSG%qWRQbHiqzi-poA;GQv!$w>Rs&~!+^S%#Dw>qOHnC)_kmYq}zDu?Q9Zhv}p zJ~NX^tqD07Fstu@ZnCYZgv*xGMoW}mIv2>Q{AoGMs;<``jCk(Rr9oPS#=ah{|MUo( zL+!7PG`z#PtI+g%Kav=$(otzT9TqKJAIrYy7sT+y{&?a>U$6t#^35Z?ar2HfBAcvzee5`_ zS>T0Zysy%W{(pCThk0H?dHor;?e#50F9u%Xwp8r+cM6*@liA&qgPsQrZzdUg^!6*D z*)wknvRh23*M(po{lB1ULUHmKsdyQ&hUcYKicONwOuoec+*?f4qJ>kX(fwmm5ol(= zDE`fv84jGJmN7w}+p`X>!xxMiNLT9*-asfM>D zHQ*?_RKm;xnm_u8#q(~al>VhGuqeK5)RM(C*eJdF<(?_0!A0Sl%7~_=1sBb_W|XF@ z1nn;kH(9q>t4eC{QGA!O>&k0jQGA!MTNKwoqWLdk-4xfLqU{jQFe%Z*fAB) zFuw8P?X*Mpkp9U_ivGee7k|_LA>Uc;#%4}ZyN01Qx)LqqnD=tZy!I*F`}$f^^Y&v1 z*0*7yyhiV2xkQkCQ<|$GKXy8%0Q+H=$*p4^*=_cGV!h}z-0^Hwwb;Qs{l>-zl8tsR z-z?zQW8&?L^e_LFDR}6+V*TWtmDbq5g65HPbd7`BHZz%4b?8i{dz$(uBhzSc<7+O! z*ObfUGg+L@YAEFg0+RA|WL2^gm=0keg)bVxz^%Q>cd=#CD8mA|bcrCcih@!dSntZd ze~7IgEF}n*W(NsoQmj{Wr_aa93Sv%-eddzOPC{8_ZW779LRm9yeC3y890cXyOuDim zcVChE=LUmYe)s4aGyzb_DxvVoWd3cM3=KZ976x@*&IX5Yul$*B#8&L--d@i(gU1;nF~ZK2W|$jIX$8tPKo7?l&JdMM<@qr0L$Mqqt3cNXSAnnqha6$k7K9tO z~R zF3vbpO$5XL**loaa%b4o#AavYDaQ$fC7`}M^FEfgc=F9$K(AxuMWmU$D(B=@RyKPm z_o7Zd9q&`woYATioWOY6ad76de5NTkc@XH?@2k1Dva}AWurygXR<-d>L-vX+{z5~NN ztuTwEKr-Auz#{%IQegRlFN_(G-1ESl7L9jeqdJ}tB6okucsG)AgU1PG={j+_%aqS> zUrx_A0iEzIMX~UaaIk}d_u8j~@w(P$0ijl#g&83KcitH@o4q82vkPS5z8k(W^^>T+ zI~xClBsONPiq)dezvK>7r_dMY5=$fPs>TSCb}@3U5sf(4haKZmM5C$vHyz?mE!J2>8JLrI%&Or3uO>eW<>^(1J-Nfrwx$Z8Q(R} z#t5JwL&*GT2cwv>bMWBH&+V8xsK5E&#o||+U}e6ONmJ9j7}N71PwLb>^7Qo4uL}n& zU(#)%Ez;#k>^dRxy*P7<>w?av0-_D0tam74p<3nYSMnzrE^_F$)a@N)e%^A*CgXKE zpBt(3OCNUZ#rgirY}vn!iAvZ0Hu86c>U9xZ@$NL{ zB$B3&wh(NV>tk2Tjl-#ALz>muZNe4HbKC;d;}vE~@dT7?Vxu1m?mcjg_LkGfx1=!U z^ru*>rVcbcb8W!#^DUk2wJa8e9l|UvE00}ro;>0Nf{O@CYZw``9{!y1>aG|m*JK4Y zl~c0=Vu^x{?cwXLQ}ED%AXbaK+U-|0qV@(GL{D^_PaLY@d~A=cPH&xOZXZj_$EQMukQ=V{IV;=Y zUpYq|u01k&8QV9#DYP-m%;Ri>rakA^dYZIlflG&F1v9zN^__&sw{|xQOXNl|oD`~W z<7AVaQP;lm0(Lsaf? zjh3x31G~88u2fOslRv?!G_D*(HhFE<(a(f#2G^V0;Y#3Du#S8SnaSA?v(#^IqI@~S zd{@%3tKpVm7I=D95M?~JHh7>$Ff+qPq{#$p;mK}Ke0~1c6PJkJ5mw)6ktV&g|0=}O z1|EauiK zM26-FG#!=C+((2h)MpvF%NsiCJ`8p7RfN`EizHX8*y$hROyv~yyoHzkf>|ftp8fO` zw_fkU+t(%Y()K$HR+GaG+Pz4;witZPj0N!IFvF4TyjrI4!{nU92{X81ulVoKCUOEF zQl*l8+(`VDpW)pRY_nH~FIwUh=`v{9bB7+nKHCn}1ZeT#e0(@O#yo8(xd1e~ zktX{C7l?F4^``Pz*$oc;9esHd7v$)(&)R;)6%3ukK4bvW-{^4;>TWMED++lXW`<#B zP~sY5=&-~L-eLu?PgM%5KntHw9S?$)85QissJ;OXY#`rqNl~FaUmV_)#OnqRcnA)%Cg03 z6UA4py&1&1V{U!q$?CL$YBLPs$=~&jvRgLokr)6)X)u!PYerjMO6X9CcE= zi56?6?Ao}?N|a{CTRTB^85LIH5V|{%hEEu}9sitx4V%G+`qLrtglwqQb)Im z4!?n=!zSg7HkQC90f=5k&l56yN;6C!Tb4Z$nwsKGxc7;1#qeyh0SuK0vEE)haL5nN zNAkEJ6>zT&?$dl4w`HzkzoPj`+cH3{XZ!n0!M+++F*Pt5%d8Q$m4b{FccC%&Eg9hN zI6`Zd7v~pn8Cq#rKat@d2c-*pNlp>)$>7DwT-oqWM3Hcosh$usX;NwC0zaEzr*`-B z%|OhyYI&9Z|eESjauwH@f*lvzeknVJL|x*nRbSN#nuMlR%D<^ zO^N6-uqkrTD{{~-GQj7#KvU&n*+a?#wJVeEO2iYhpsweJju>p_vwu0C?3%!jvMJ#h z!ov<>@S4+W0FxSyH*%O9uJ?OlCOp`=j@d%?5p8cK*N%b+lC+Qq8$n_vzBUo zHEMd}xW~h;aKqxLfaIHy;~Qk(E_hP!RjKJy_n!*2uxwDc`_G3xiH4-7Gcv)xgw)So z{pC{{>B@NQq_gLPbg}E@w<1<2pjXO#xkXWJ0Lq_2xZ^1UAl-vgJ(&B?f%yC&AK0C# z-8PE6OAZ{Ts&xDzHtiaizf;pvFEPobTDp2XYw3_kVCjNtBuB zY_Xs1Sok)Wz#K;emc9OA@Zo(g^ad1eE?{;RCYU3a$?wawV5s0^fbdffh`rtfeALD- z&+1L+N@~t0Fg~6~90R@MN4i%W13``)C^5sG8>wVNs?ym7E0+4w)KitpmCiU;#mx>= zGefs8G&fI84QLVzTiKz`j%ZRq%qeN+hP0kqbu&Y=_hH7$!xeAqri*t8juk)szz^?_ z`B;2-`6RL6J?uE;>~X{5z~hB!FTNu()Iy#H$Yt!wmQtV2WD?zqp%>6(2jIQP4o5dppAHU9V<5BS93!MiZI;;5c^?D9G9gg}w(;dhU^RvYQs|6PR{r~L9l zrw_aj?~lsJ@cDpR&QNyRa)CK*y@+YL3DS`5&wXPOY| zJ1|z+q1$zu8?Q4%S_FdEf0`WQXGJ6o!j?*OYf0s&7dk0Qm~8%Pbh>>1g2ZV|tD6xh zdzq0^PX@>9>r(iBKSi4!z3VnQsdHfL^JA*tHaT79#c7%04}-A4Ocq{`|%{s1E&SE zk21fB^j8u;mTDz6&#fxe66j~vy)hzBnRL+5_l*e}o~cpTq$?QgTo=tsz{krYpEuO` z3uDon=OxVM=nCrB6bofB$Iy(|o}b9167y;sQ`32!E{OUX7~ej4P0=M;&vd;iaU)5a zPO&`=5f^GYE>=uuQK^|maC;ct2?rZKnO=;Y%}t+8|G4gz??Xa$1M~=u@zf&yHjk)J zbATN&jwO`;l(o7Rtv)8W$yC|11rlH59^h|`qArfxMBT$JHvI+<;`m@NCafo-E z-{WM{G?j@tl8KKMoE0`IHH%gmtU&r_a&N2Ep5ob9)ll(PpmefgA7hqXr^_=M%@>V8 zCS=lPXVuFffkb!K@jTm=wQM;fI6kg7E}8c{OC`h@dsopiX|UAvKzH|*<`73r50Qxnd@IU*5qXJg5$jW~Vz&nIU&c!E8EM*~B zE-SimWfcQpZ+Av4Wi-$-x{+qlAR0mC&Y0+QYo*C}2a~-}@;vseSeJ=;IRI-wl)u)G z8bo-0274@wM*hp^xq0Kuv;ayBq;6W{$ zLtPts`jH*GhH=GvzUPo-6XSW{I1m-o-r0C&9e(pm&ApE2_Z0kbhyCutwI{AFOV-L7 zw8#n0-~z=MX#P~*gs1j5p?eGmI3i^>VoC9D?2f_WKaPGRVqB@YkKGo1ZXLAQ;@|IQ zU(%Sbp#LH(@_%t{S;0H!^-K;__ysW6&|CKDndxa3Uh9}9I?drv0x%)bWRd-&1WAp1 zBehJ*X@eXi{c$<|#Qn8LyG{v}Yh)goQBDf@Y#<>=Jur264s6Ez&VcsL*9EzZahuc{ zw%UhoI83@1+CxRBM8k9tG!dg0%drbKenQrcz6m$D+$VuIK4I+fhKNSaR@V`g%S8LB z+qQK$=wwLL$RLFyjW}C2w;;0^giY;3+ce2_>|`se)gwalX7Y~jTJ7P!Wm_|!X(J|7 z?kp&~Yt4Fe8zNHE<1xEXWv4KHxuV=zzN2+xO4g}fW@#Akz) zjhiLDIp~Dga*?xs^tVZf%!f>clN;rPaY5LivchIi$KLokO_{&aj`A^Z;c&zkGS@~C zT_F>&8m$_qbQIIlHQh9X7K{8h^cZuy1l!Wx@AJ={XM>f6iX>axg>ajvelff%D($(f zz{ioZ;C+)UZE4q9k28iUIeF+Aaqd*9DqQ<2TQ?rAi=ikeQ8_~vxY1){FP5EdD?YX{ zytBkcI-a0s?nGzrm!47>zj_`2pK>}@!I2k37gY%**Yt!jAhsu(IagD`l$cLP#j9-d zPi#LL_)d0PSX@x~{A#c_(k8_MTZ(6uvq^tAsZ(2XzTJAh-Ij`H|95J%;>1mKOW0Amg3Gz>F${1pNW)Sq|Pu}8haa~d0`GB)Z1IXB^&oJ!GjTkCy<5$Xo)-lDGg z-#ua$W32MJBv4bUUlEOIyf5@789#fXXMVl3mQqF|3gJ~QIHUx8E4_E&K@YRqARY(u zv0e8iTKU@7j?jj2%^{xKCP4O|qemY7%>0%tg-UfsA{3SF1zmHh%WcuZSp~{XeGwt& zj6^7RcXl8@M@H31inGCE+tH$kzFv%X$54r+s79~Es!>vs zR)z4Nw&R<^&=<>_Wuws1wMLAOtOo-|685j3%se8*oN_{Vm#g?Ev(vd&S=+wzd{0Z@ ziP5j|bbuy0LElBv38}h4=+yLsM8-U7qUi>{JER45>Vco>0>-@(YW+}7xHK%h&lAJA z_ic92gl<(BRp|h9+Ckr6q!U|dB1HsUX$Ks*KC4Iz^=v@)+CX|eh#l}*h2};O#n+wT zdRCqfspES1u9$-p z(+>I0m`$PSg<39{ac!ODUKge!_U?f4Jup8;>LNoP7jfbHz6QtC@P!H= z&bC6o`J)8;UI$f152Dw$Q!PxN`3vSf?;H64ro+K17d=1@`=}lJE}%_+)C#e^NaH>a z!0G{Ky&ylss0WVpp-5_ayMG(Nx3u-0;e>^@EY{OOZ+Z%514NL)!}?vso6V6rt)Q!f zFl3I66sz>lgv@Aqmkt?f!<5k2gu@0&;}(Sn{);P5`fW4jj$Zz+ z(P3g`)nP3=&E3Yo*h4&Vd!r1N(@&4(NHV4uTPS*$eroEX=}_J^xF#Rp#`R4cjh*I; zsMJ|H?+CAM_AB8;1<>fFZ2vO(3`T(6QSwM zB=(>5J}TQ#A8&aUt2uvAT`6Zcv582*mc%BmQM!{LI<7F{^p`n!goP^X+LTTa5A_cA z_vWN0C{Bl$Cb|%13BvUuwoJzEke#A&Cc%PEP@M3Qeh2xaDVh|wgqDdA z(^1{U*Vh8AWVkR5M@v_DdPPe->4i*ia=3( z!NzF{YLHQU!MmzTYQRx^!MiNVZEz^NdZS%&O?C;|N#*BF>W*&Gn)nm6lg3>&s}J8L zG;dlXY#kAGL&HCk>q=QrPTFQYIrGV>kV;roBb4ZHL-pUC^f#&!l!7Jdgq6coBF+A*3T7iy<1@NJe485r;0zr6(^PnO-=;D&~-iZNd>k#1M(O z(Sd!skcbBO0~rbD2P}Q9GD zy+dKTiJ#Q28ydnDfUd?~$#v%J?@B{8IiplUaba@iuf3i(p$$!;-8s*LT93&*N&ZIY z3F!B9!HmleZo`KcRonej2Bl&(2y=`wWtyoAi|U56z(B%@+B)H%x!6p}z2 z&(;~s4^kFbY2n5)#bX_Wkyr^;B&yX(2{M?&gjD=l1Mu5 zLT`T0i??)(=J+XYkg9$33_WQ=v>}$z-wpDdSzkVP^>E>FU#KIF8%FE=UxnXQbkh7^ ze&4U}tu`9j(tJUo-R2rxA{PSx;qAM(iFh2-3f;>QdJo0R&kv+w9wH1Zw|HBF>I5xe zyU1ChCBs1yVRD_eZP)b~VG;Hyd)R9-UlzY)hDnFg;-$|nR@8uw3qZ~Mx!o`I%b@22-{%rZ*VF2$& zZMGS@H8h<@6nJZ@x;+|v%ii+Bee>mITh^)k46eT@F5G8HFs$DSRP*mRqkx2ZZ3rwT z0teVt9&p$wYLy;wO#%aneF_y53GKc1bK&cQ=B+@0@l4Gwrr&rP@?Cxuop0HZkbJKa8=3>oaWeUt9^`gbz z;j?zD9aUA)Y_R^jaH8FF&&iK9!zr>XTr5wjsy)idBvp>pbV|v*HL*aRIGx!>V(~Eq z8^v2ChKj}atUJs@%D&aR;eMKU7%Ea~IqXTHNpxu?|8(7tBs8vD8!J>?iz6AbsDmY!@| zHtO>f@+Dg#cPrThy?KGE>Gnp)D`pyc-;nNyu& zjoL;L>dQCCmRG|Nthz^6mtSObHKVIegS1rrBVXPFsDmoep-C9Zm(r*RBs98~uS-|y z?})$Qu3_9bwPsgc(9;Z+o?e5djpS)vjbYJMYdV(X1AN?q&j}#| z>~CF|Pe)Y<)3>Kyq1aLK7gJF7>Q=2W9VcwVN^ej4vk=F~j+?e&?my|ns(WDh=)l@= zdC>Ep(rP~08#nBG#u{9WT3oBbE#+(nxB?#ebjMaUX|ntbjus#R7c9<H#g0wqW|P$l@YFvM)W!y>1B=xTM?iAbEvgV|osL_$YV)>QS1_)d zH+wt7_inu7H9`E{nLqu?z0EU&UC_6B>$(`3=Dt?pKi#SsI~P+IoDCn)1wW{~!cHvm zx6}|QGDRKf(ZYjk*f-|;qcRp2>&*UC+tgONTn4A$i6fz{g`LF+@9QgJEUC6u2~H`{ z)`IPSax9U)zO}0=>XY{dZE04aj+d+MT`cRbO_5VlYWw=W_FaBSDq;-wTA{XNT9<>r^UV&hnzQ(JJR`)@-I&bC`LrONk1PqZ<=x*o&L z>3*xjgs`3t@+3nu$%UHYC~|19{m?IuR0dsZ7ysLV1yAvW-uS*^Ahi~zH+e^bF5y#joxrjX{8x`%)gaM6h5+LXVW!ISuX-eSL=-rV z;io5VfPEfX=;d8T3wF%lcR171M?0%@x3{WT`+BnGS)|pzfSs}J^$xV(o}qkH*+*OUH`a~&L(1)AWzL*4%MD@+mi!~jLsdA)7C(u3d1U#n-JeHWsz2x`=s)Ox+B5@P`wp|= zh;W|_6-n+z!nqX(xwh&G@A=MYt#MHDqMS=KYdlVn67z=bHQT1w(AW4D`rEr*dO1QG z+TY>tp`E8z{r=rw*dW%1{PqaCF;WQ(gf8&i&49y4LnS!Z5yXGhk}?DszcBxMXiR6c z?FqNn+~m#fWL_9|Qc|m52`>!6a+n?GsRJ0cXV7gOkWh zru&CteQKs&kEtj^t!;=#iwF0t`WVQXo%i=?wsbTU!JWS-Rr(rW;9|Fva}{7RJM%F}(ErG3htwQAgY5usJ~^p~20 ziD(kAF>oiF~e zQ~hN}ow@sZs-8O$Yn5#urtBw$HElYuD%6$2LnRs^&OsAgmrw*r}+H~O`f zR|B?pZ-_bQ+GD>QgWF?RuHQ?7_Ug&A{uZ*y|6^q4^xEpInqn;%k<4v8k2I=D`Y+g{ zz+`MkKi@KrW1iMtrL*@ed_NmjZl;lxgY%x~L0^QzRJgmP)#^gJP#Xw6r8VXOH& zN6N*Jh(qpAYr5Y>r%CrB%fXG*o7;^3uX4_b;f!5R0U#PFFM@exX)SQjdC6^ z|H_*>61Yid9GhZ#MI1k)>k-D8ts@9)B4uu;U*0ntoX5`mt9~HmJ!yD8M{7h|GN;C$ z#1xuD*_6ICksPIxCd{N`O$dKBkv3%;alx&YEgtm&?Q0#*0sjj`^I9h__`V7XRmF0lrJf4JSWY+s*FxQ_1LSP zlf}X^TW3a>H=b7nHFnl&m1uY*D_BXv^i|*%ff5%g7bX3O35u?yiDmvO!C7S_Md7|a zh3HUtXOs^lY_1M|gPZ6vi*V`kfRwbNJ#{sDEyc8)+s1-scQ}Z;HW;)wvU!K7bTmG|X3wPFnYfx6gdvN`58;BPm zE`)X{S25RdjR9P__x7@3<#O2~ffE;~6HVeqX>eKZe2C#aO#wH=oq-r5g3v)dAowFm z$mk&)G)IAufg%b@13+9)#>x=11;n`Fd?{j85Luox%6Y%0@@veiPyd}I5#U6u(>n~A z$S@0!rgA7$ajF90<)XH}Jd=MwLTYgnTXPCEDe-%a_7@&wCG)LBahd?J%FfT%Lb2;r z*yf*TA&q+iVu1tXZEZB!0}X^haNN}!Q-v@=FD@{}eq@slf;&u8K$yov|Ex5h1ETLWd=e)ug zSS?JQNoP`4C|mrZQ&Vl(3l;G%D))+p;JF?{f2bNi;pDa=q8UDqo-1*_2XIayy!toI zd;qLSa8&_SP;|C%4>r6VLnod0b3GKWe9+m!eA`RF-`G&)Vw2}SyBZ$lCEO-}yE`qD z#BTH#oth0meUVQL*9zRuJ{r@2FFyHY;a$9MYwRvx6(`F{Z}`k&wP#cPvawe*VLx}- zu~Lrk))y~_7GS*I^u!{XTvEWfXyg`pOqoimm-s%3)`dYqGTX|%Bf4$VOEzbfWfVMJ z{)1((%+{aMZsDEPFerT6GS-@`nkNP2h7Bf&oM&!uqxOE152?`u-Kncj<8|#8y&N}z ziIFhbo|$cJ3fWC~w9qFRr$H6Sq2RsGE@DAvL9cuz(46Bv79r&VQ)}8LZ3Ud9xmBF` zq6^2$2Ag#3D7s=GUi&@;%omrFu;M1R&&B)Nt!tc1hf9mc1vN`tL6rDw$+rqw0{7fl zR(>MO@9x}9J+8btNYF=vuYCtHKx92MM{&Uzxowzf3zSGnV2%SI%$Il(3!5Ptie~v< zMV8!U$v`<|4aFpJW@!IGK<`^^`I_bo8U9DpWo1JHv>09%F3)60``=3 z-WZ@{I;<$K5y@(sw{I2nLfG05aE24Jf zq;KPk6}Z`!mduKbx3*GO&MY|U34e`(=N|s<(JzSVl}T*&IbZK@11+s-bYpl82CZ@5 zs)w~&)$HGzyC46g>TGuA`ZOk11@Y$~sA~!Z@TMRC`I`Z_l^w4kV7-;Wzm~OaXQ{01 z;qxdC_L!6`7s$_M{;md&9&W?v0KNl*!z8KwbU*x5NZ|~k2b(M)h^d6WJDwOyiBj?dWM>>C#k7(Zz z9U;Mhoor~sQhvvHK$zwX2;@#gE*PdmLiXj;LPF)`X)Hr1m*-$$OP0xxs^P|?80xi+ zp%eE@-5L8JQII!D>b84b&HN{7y;sb^f-cL<%sdU%`lvDi^&KUNQsjjFjp_`fp5OX` zBH0D4jSOfc@7^2c=9ayD*cc$VFsJ&bzrNkj1a3j{S`bcha)A zkME9WuBj|``dsVRn>WipW-iyqg+>WoAwO5ki%9bjkdP*&hwV@IO=4|Bww$xsB+C}y zkPBl37O)dr^(&Q$?{Ql+(ADD<%Zy@vyY13LJjd7xXuSPVZ35ScD`F61BOsle*fgK7 z&4bz#)*+J8L}mwsRU_>UKWaJ1 z7v?0DpdGBDSK0|A+T6$L#JpC-Nr=gVd!bCBASI9vZ`F!q;?<9>3|5rPu(aoQ;-B7Q zC3?g9tHxGueK3nn z><#rLzQ9GM_6F7kzT8Eo_6O^7-?0&C%RWZLx9vn@!=u9OM)#Xn+pZCI zPEB_%~5#84^RBaIE z1g+n>%0w~&L~l<6Ey}UHWC(++7M%{Vp!Z46Sf5};#lfH(SOr$DKQqULoU|*U8C9hH zd@1e1L8SfLjxWj#I#1wli-xQ{#bD7m={#MKJ&kn+im_yz1bx_y@Z_^RvDtfvfL#s% z(T5bx#BnI(v#8BwdluM=is=2y8JKr~Y04QWTDvW}0Mj`_n7^KYo;oZBoUL+14z^sz zz>*<7GT&*xgP-7KHVA5<)D^Hai=Z&&{TKLV!`aX&o(uO^cL)Xo6D87ulnZ>EFVb}e zrO7Q=BmM>Mx2ge1#sesI?X8O8=Fu`;cq-v)%To%Z5B0_naR#30mFuArOO+Rd+Cjn8 zyt;V7BJ>d^r_anQKaW($>=6{DpD@wedF1`H&zkbh^7gAr(?k<)ML8huIpR}@1^*-Y^Ol}G^SJhLHoG&i-mGMt*2XKd@J3)8$ z9^+;kl8f<9HqR(#I`ZTC(@(-IXDJB`>7Q-@;tb^8jtBC}&t8Ed+(B?faeExeo*@ee%jU6A>W8-{qNH z=a0X9N&NrDU^c+xGW-t{-A31cuicB4hr0Jf*QXWhIiH;a6)~gDoEy?R;_jjKA;XW40 zbxO8BvdDtF-*&cNKktIB&4H`;-xn^Jz<124E@U$MvhEg$ao!gLQU@Swodw4Df*SC}t` zxhxmL9>2u<|121K+KPCun}X#sVWa$u0||0K*e(9g#Mae+b2JAFg7}LHai7v)%U1K_ zceeHi#v|hVWAm+rINh-4BeoWl+Y0u=uaohD2KDi2IHE;LR>X%4Hqu?kl&Z>(!5D|LSp7?g7yor!x zGtqC1enkpcB}CM?i`$SXifXV?bsBZ73TtptcK$q@5}NcBUC@qadQ)J6FHC+MrIW*m zm!?#v$O11;K&G7pUYXLGd=YwQ%4#r0>7yyB!A1GLAJdf8fSOD`svFi7{Gm$(tl&zA zN`;mVaqwqh{nxRWH-;wGnRmk!6Wd7F@!^lB-(X zmToS||5*AGU5V`{4sXM@fc5^%kFjJ5rT)6WdhP+kb*))Izx}{f_Y^;!aUd$*`uYm2 z58}j-BD;5ht1mMnP&Ln*w|Y*MTy$TFLUW%fsZUrbD%uMdO?-_&_^nP)l`E4D9gUQy zkHl02{l8-}@C_B$j3Xt8sCXxsVBZ!!ZZ(qgZg9gSqpjm?NB{RAqy34f0f~!l1b=j5 zB2t`I_m8nD@ihbQxEg_@_1K1^WtS^X#gfyBYL)#Y$Qyh}Lg6z9{HR21R6bSQNhR&E z`X!wv08OaykqbIBcc3l3x+v?KEHI_^Z1&_l*TE^A+B=RjKUF@PoS8Zhy0kH}tb_T3?uMpGfC* zq2>(=uh~U7XNX=mf`wvgFoOp8WOO3vE0p($3@MPi6PF&wP8vY#uXeiF@5I?csS zKPI-a{QE(!V@8%4#=BH)_o?8={3rH&8#{7rcw1u#nn2k+oBM{9zvcL>`!>WYzN*cY zyZ4+J`1M>EP13hNMJz1Jd^2rr!PeLuZTx#}^6nWGU+u*S{*4D`9&u%~k8K`QWH_-J zwxSo1G7_RX099izZlzmfTi5cU&p5&C?;}N{_`$oid=5{H9kRS&r!2z#KNwZY^W0=b zkzQ$$mV3rQrcR{e3Yj{ej4EX6&M>KytoXvFPS4t7Q0Z2jZ}00sv3XwfXi_(&jQY2AzEd-#dMN8 zL9y_qrG`^5)W^j(qdy9`pQ)NME(cZo^II%-(FdEb3;Ey`=K{}(VR=t(;{ZR~;(|?x zoVr!mhF!t2NdlZks5-Ppy^7Q;SNd0f7kddl6{f*w(KQfuci9=H3)yv*3Xp&3ck+HL zH}TTIv5-Ul-(OasuASJz`!7$}Tq%^49&G!xeUg!Ws^wgA0^chhgWKs-()nqMpQj#m0p>F7$`^awR~^sZLbq$OeW)>ju8C56IQ<`W4D2^+{| zBAbchM7(Q_2y2_rghP&3`Om@CtA7Vu%Vc#aOrwo&cUS$5-#Ry9t=6e35C{q-E%cNwV9}QEu3LVe;19Yg}aCz%$#U->n#HA zE;}r}Vuda4TZwwpRbr62)Q3gzs`8|{)`vy#s}8ie+6P7X@#?fLcLC8Buy)?O^^j|V=Xe}m zo5JUQ9A232Mkl(qF500j{G1+g+=y*BcAPCJbtqPQR5d@yl&iYO2sUXo9b_{JE3xD1 z6no&&S!9W}rZ?VqVXOHGU$JCA{i-PB=2zw>b0GBF=<%0B$}iW}Y4HD|XdHFOt%E7J ztzr-rmXOttBWKtBf^}e9qYIXG*&mV9a)0aoCiVUQz@WTgs_Xu~z*bn2H7^|l8z z47j;r86wI|2j()?gm$7^VHTQV9!zVBF-(zW$*#cO11>WgQak7u@Gv751K2QQ23`pn zcOmk}$2SAlQQ^`6BtXdklLaUT6dM)-R7P3^$SI*dLBv*LB1Yl|z9wLCvyFiB9O%jJ z{WG{Sr$M~zy04S`vo5moc7dRVH$wqGVj-RNStMJXLh-gbQd;GMc!!!ppzP*`HKJ7I z=$VwKfT{X6;&T*@4a{p@ zKAgfN>^sU+RiX#gEleO$#d5U}Ec0~`FM`EWoTp%A_tC8sI|GpFpj zQ)AcL-FkFPnmeqoxh%@*l>3J+)sTZ0?EwOD z>h=Byq3zvk1=f_*+ZZI1m)DGj_ zxN115F7i=vFrMT?%y%Lbpvh)Kw*Q8q(SR$4_%)3DD8jpiR_1Y8SDww(24D&EAK=VC zx`95EytFxeMU@O{oLcJdC;zBSQ$h5KLl%aYBKYp1Mxv#d3yf(vabu4V+{eH8Sr+|P zOy#9uU8vT}FMy4p6p^8TfPoDHWlAwx2XXJUzLs=rlws-eaE%N%^e#|{!$3oe?@uvk z)G!rK-tGDdT`)4=NwH7gJQ$tkDuN%>NmekZfv6Y%`R=Y<5Yp&EN9Q3d7W%}>)`WR5 z=LZDPvtI#G22i&pl6&5>JE`+Q1(fhD_hf_8j9lq!9AxL}(3QAJH4ol+?VI zWMe`#vAe}_UO~b;-PC80VXW~#CEYMX$y{PdDt3mugJ?qwTWg*ZLLy)GmPP&sd3=={ z2^EI`Tl98)8~~Kg{%bxO9j_kyFQ2FngXK@^@rw_1IrmF8an8NPK75iOkoK)w$JcS| zbZ|-=09Tvl4&}p{SArbJ@+7Tx0ISj*#X#3xX(oEL#KW;wHho)0zbOPv{md z&r9O;N(i21f6lOLqA`AdNN+-0I|S}d)1jDRW#&2ihl1{-+tvVdj#ME}dPFb|$2Zuh z6_g=`%VhUp0>NP}$6G_(ggsmOfB~-KlzR7b1fM=TH@P8ap_Rk3bLHbWsKkPwGJ!e#|4x>Inb$o?g%hq zd8nfbh?1@~j4AzWYr?~x6?8ud4~6D|dwW2f!;e9*_3h-|Wq?4v%r1Wkxx)z;mFFwO zhcgT0(erLetBAnwbuTwiF)ZFDxcNSs*Ntw7mZ&{e1IV&f0HflEse$o^5`8p7u##>twVe6VMGR!{_V% ze7-M~4+FNL%S95s0QKZL0rD=0{}(>h7;qaPJTE}mXnWiKgQg)0t!?D7VZ6V@M|4h> zw8=(8!2u+vM9s_Cw`w6jKqGn!L!uG28GDN8%&ulfqY-figp<7;L`N<=Z3jls&W+Ku z5S$NA2@V;9lCBrxSAz1rsNqu7#k@$e6e2aiupmuzf;2-fY&u62Ic0nw_GCrM@TwPb z65Mo+P(`v!YED2vk^Fv;=MvaC#cg%`rjdN0bTd~7>1`sn`nH@@D`L-W!skX}d+_u+ zK#qF1!Izfrboxq%PP3?Ltsz9P_Y7-4bP| zm15H>8YfU^O0xz#<;B|LqC#jtwvKruIYCcG92aJ#vxqU!v6Quh8h0UEnet3crd4eH z|3wRoy`mcxRsB)8^+UrU^gEA{%w2NLpZqAYMCPhqDpKW|#L&4}zq-4Fo|Ve0L*S!! znYe*jP(Mp0`c!8^EuUKA2*_Ybg%YBYR=O*G|EvwCO^UltL zM}E1^M^rVm3MMsqxJAVFo{SvV^K@!8Fr}V7b;=gLAV`Czf2XJvUYKnDh~9*&_8Rvr zq`JjkoJA;cMz%Rp*@NP4o~>cinY6q@*rSsU23`NIUMNbv)A! zQd(hJhfE>jXu(oxhiy)nZq(_9vJ5(t9J~E zwoCP|?u=ciYj(s7T5;z`k;S< z&kVKev)cj;D-f0IwUSn79u|g1c_02-gIV3*zq${jbS9$a;>Ib(YCy_h>=%)K6xOjHr*45m&o^B$V?RWZ-nIA@rr7=y^C0hI!=`( zLAJP@lt1j^A|dr&JZ&-g8`7=-qI9-rO}ed-LZclv6;|?lE`@4ha0JZiH7WSgB0v=X z)+5X45UAr*l80&lr}286d(ioLngAHu7#wXB392|4`at=NZk`0py(kHaXc*df2Mfv3 z%LVoQQxZ~Fs}|nYh>z_`l`I0F5z11lT|b3B-FLZ#b3qA;^vCu3J!B>dhsd}4Y}ymp z#KBO*c!{iGvhf41*p+T)Sx>m6V*S`yD^PtEp3B9Y0IQaUbj{MifuQSYdlYJMw{Rve zAaT1SE$=d$eX!K5Ae=0lqf<5{_R13e?sML!*s(8rtPKnAp*b+NZx9 z+jP{C#gjm-Pm`?Q)cCKB)xT9%q^t~b$9!?^1 zE|gq#DmA%^W^og<9m5){71<)+5%XU%VFn{-{`<0K-zVT+QFd-E-7R*dyLbP;yrJzX z5s00egkAQ+%UtHHLMW5@OSdmE43h4*FgUv&;-SzLq5Zd#b+r)Kih0Dms{Pdv=!tE@ zJdLj08by^Wb(5`dPcj|a5et(T#bNHO1h~#2dW111XRxNdrI(x(c#*FXg1$y~o(#fFB>r-7W zypS1%@fcPEOX?8nl!cE$YhlW*R@WH=!x$ zjBM+`QG*X9DPpAyBwtlj4U0m|s;HE8B|a}5U3QK5(aQ?OaNn5XTqiOgLYv~ap3{RI{eu0+DW(^yRN zzBRv6O%zDbVYxrwNe}kikSU0)_NF;w*;7{x>eIBdR3sQCZ@Re5F@v%2VDKlj6aH12G4{h4QleE-g3PiuYI&Dk~*fNDN78CKSg5aOfGI2-o-Hk*` z+=o5PJ(4i~fG!qnr}X&Si|j_HQ>fBH{|mD}UG5s2>}nNzm@~L{z&M(h5hm%$F>xw& zZ35rQWd%B$oY&&NkwT29L&0&W;72o5p*g^hl9@-kbyK|R16+=ZZAnjRPi&;oDw#Bo z(AWf2=(xBpOHR`D!#aYyPiL{Z=K~pne$+*$v)KOBx7>)e_Io2O`ym#vzVPEGXIgx@ zP_3=u^b-egPLrrD&7c`#+gF}9_(vR$6k~(Gv%NeG`g|Q> z`Lq~yg?z0uzr!pz@C_+P9k`BVK2F$uglR_?6jF{AkKbRG?F#<-fnB$LR#u?9))@-+ z+OObn1>`eyLCB(xpgrCdy7T=;>H_RjTI9R8)>iPLq7w?+o4l24EkZa6%b^MVVl7aN za-X$)PYQcNdNp|sbS4^}4R0ZYr-1gW_S8jSx}!@%q(Ew#j0kf+m@cnY7^>741-Q#0 zV2JS-hO-;Lg)b?UcI3j^lXKyfm^F5p?&NFLZ zll_}#I0kdGMB(du@X8_wV~T@#=QpWb;78fdbxDkTXiZ;!^xlM}b-NCff}kpzENWbQ2@va{qJbW>$I?Pga}6KdurQY-4T$31oiS)o@N1b`pQ-LD z2&${KfL!@YMcs%e0HYcP(^QIoe9cgnF6i>xq3yuDt*G4?U+o~l0cfFW_pV%;z}Z6k zjzhX+jy=s&RxwncbhC4O>jTwLh4dZasIRx&qKW$+<}Oh(JNF5s+6w9*-dFcH!5fT= zL1ehDwGdFA{mxHz-t~kjPEx<0{moXU5``Mo@}!w(ObnY_+_h8&bGZY7+|(Ajy-R1I zy@@$Km+zb)iyw3Y_4h;3-3iVs)>rEsVUP2oO)z_*qto6-tFGzV++CM+3X4<*-?|BV zKiappUnX(R?IDlyxCAfjfNSfAe0O#xlq1BGOKCBnVSO#NO57w*#c&pcy<@1^R<0oiG@Y%yquRGoV<9os1 zLEZ_p{ot!p-VVM$yanlYzhOP;wF1%ZUX4;@1|j!Av+qE4{pj!4ccN{NdMe(WaftH# zO}s{hf498_rR@Oteds*jXeZ?};l`O3*-*UifOx&|@4xSa(Y^SqB9cMq@_XQ1mZT5% z?}70;kTE|cn6P0VU<2Ck$9$!Lnp(hB$iYJB_WST$FJ=dTum|yWLwiYEa4nNsz!;ri z@0`{Nnu?aa1Qafg7g!71{h)arU_VFpwz?NLmC0uFS(s`K&scz$u^sPhMAUX7tvnPi zjD3hLg;*Y9#2uAeWT47rb9sJCC!b>lN3rJJCo%Oh_G2h2WBIojJ@R6`2V^fz5U<;@CT#76Zj&xf;&6_eSn96BrM`{60tO zco6g}kMMwdUI_1$@PyM|5UV-i4!>`~1;W(<;5;CI7wZFt7-5|3x|iDvKQp|x^gJDO zJq%6S0Q**hzdL9qp|llgZ3kc6v<2+-;CV|xen(z7%!c#3??%j2q}G7X>qmV~v`t;D z6>T-6ubb9_?|)DpuUZdL`iB*@?2&2aTlX;ZHL!jHq4@8&ekQwqD(zp6zQOn|qNERm z{2wn;ILn6fbz+vw!vXvJG2emViKDGWSu0W3=6GPTy>K0;h7XAAfTx#5%jC2Ck{8Ro z%P-;SiV_|m5AkX{@m?UCA>s=2k$N$?OEWE%lo&S2rLbG|l!7D?uJ{y|#IMtem< ze)J*sdd}n{01+$$S%@c@;FeGLrKpXvXZ0CkqT99-m)9x*tIAPltvfPJz-zfw141Fv zaCVtQyKL!c&=)AonY(9KF?j&m#6MvWa2~HvPkLW!ibvA-!yL4|_*Ro5|KK=^a=0ZdEDO@Q&B z7*yOMYhca)2a$P~D>BUSuMG2Ju!KLh`z?bf_n&gL_(V@H2J*w!bbn>7{bue3W*M7y zixCoQLPqD!`kD{wai7$)Kdr~X3&OQBkAh^b#}=pyt*Q<3FS4Y7W5GbB!BP558sn~G z$Y0z?`B(Grf%5})vaqJ@30O8o&a==gApWfVm9?Dxh(P!LyUd9n&)yr%YQ-zQ|CUT@ zSXd^Zmg)sF4a$roK8x9oY+cWGpA~*{2;Z%RIzCn&aKqcP_Ik;-;JTXt)skrYhX!#3 zQDN+nhKKM%9#_~8u)-wQ$d*^b5Qov3yZKu)a4|*4J)1d1*P)qVLdEZ6``N>9&Yy+x zhE1-HGGM!RdFr_rx&x5Z_I>C=lez1)O4xSKHRUy=TtNW zDH=b@)!>f%ERzchOY~Q*7g`M`1*yUO3y)NH&##>k`za*7rs%^;DEwGKq3x6N##yvo z=wN4j_ebs;`H<%T0+V6YO7DE|`MAKYK9$J0Sh}Jbr{?*eD?){IN!@qGk47eKd7v;RN+wuPJ{W8`i%4{78@&%v-Ucr z9`0|LbjM7=Z(UcQxykD5VHuChlLG~332WmOq%2g4Dgp#OpP++952d8mI%aaa`uZ## zTJjCDXC&fJ@O>CU$C;GAkGWMuGqg424O0F}?F(FK&#GFhYk{)=nb|FfoDm-OP=8)w(h_pkJf>IADaj#y@5vh$vkrKP`t zVq?;Z5gvomg)Lc@#2&kKgvbjsQA#)X??@HbPzOQjHc(Q>sA21;aYMFof7Mh*^v07* znl1eStE!9cohLK&MkycCdTkTcFmm>+6N9tl{=3sg%hIrx00ti!jmtb*Wn8n6a0nu>_e%%@ReRG4p2kyIAz< zUKHJ0POmuKHpSAWYoLokaVwi?*t8>n9roPH=T`3Xqs$?t|L=cMti#%e zcp#dc^1jF=7px@8{IPTM2y;~Xz+@@|X|oq9<~o|FjZPx znsmI^JvqN~>a*3Z^^((5u?XeY;yA;6_ws2qjHx&MAlc~-UmTYf@jsN#`|vM3%+t~< zDTk$zN1_p8E@W9@+Pd*(t**qZrdhLve^+4AX1Mi+ddU9ds|AVN_J5N_=?5ipmL4=X zyGtL0TSd51tHv4^s|!Wt({k=yXqO(`@U~)b@9>kl3UNxfcd=ofRK>)!dWCbtFr}C5 z_U{3~1aFXHUukS!M_K6BO8AEnsulHPhKEPpL7+5SENPaT-{|me-7t}>)x(RbyB#+d zW7p;B>Q#M);n-|lo!BmyqXXhygZw=lE%yLxA@By<;Vlu%D!l$dH|~r&&?&yH%D;$X z;()KOZ3Axt@(1&Q>_GmIHc&m7AJzx1OA{}K=I&y_#Q+Hcpgj-DhHOgjO8D<*J9JwpesFa zogDyms9XaJq#57l#aywwe1TdzD*V@(Zq)nmdF?4j(#YA5R)#wQPe0CY?>N1-3(tpv z{5^Dk!1LmxdD?$?-;O)rqLfebL0s8dYp&D%sM6Yey>1N*ZKkKkOFrg|eJ*0b;PmD6 zPd{GEc=;7E&&TZaJpW?(dLhq0)`~=D804?MB^i-~R8NzO$g)zw7h2OY!y3Blh3x zrWU_>QuAHBk0~P{V&}QqGkh8vN##n7f@K9VdN&XE-|JQEGrDhG{R6co?bgAxf>xTs z_0X0ab=RZU4!ntn#rD&eJ#ha$C-$h^{$l#P-~V|6JN$f~czNjU_B&7e_*88Hx8zxX z=+}jXkH@tB!aH)eGr7^!Zt3K1RNt8?C;iqMCTJpIM<= zf31*J4xjWF;|hKIbIIyHr$y|ocw_VW$N6hBO~RJFKdYH|r{VDWcvp&_)2b+^U1E{G z&9P&9z}#vxPd`b$`a`L*zVFC8(7ykbmG`%UeSUjWt zy_E1V6Y;EP`uXGI&_l27aZlXdR-CVF8{TXr|8p9#>}p5v-*r-JRj2u5Kk*N7opJl* z&8_&k8tOJH{$uB9p>n?E_Nsp&^d#+$x7>+Ruet#Re=+Q=iMo-kwZOK!~MLKD%tBuuPUI zd5`f|rZ;kresD7<{oYKM9!_cIeE)1mss7WbUW~~JPcN0$)tl$_Uz_CO-`*KVB>mo+ zR>Y3w*!l?)*QWzVNwZxGeFZBUI8pRXsaOsA2*5}Ct&{yGip#MqdcpFpdmafMz4 z<>R=sd;i4FAT*pkUu0s>=CsW+hk(99&cEL#cY=MpzycAh!=XlR#c@Qw8ruKs|`t!N(|E)s^3;BJZpE6#1-D3Xq;eB?8SOa@Y zJ5i0Q$OZPcfK0v)Kb87x2Ys!pavYaGi9t?m?OnF<8{_U-p(8{0ADXn#-e*QWpeNRe6IJYW?Gfxz7=D|DzR0-!K0t%@TEaTgpr z2`;7By)_U-p$I4j5T*lA0ta^6SdH$kY!a$s3f#<9=P^~x;^r?EQQdQ31%*c_WC;*b z7>LJI02PwV%)3>#+ef8bb2-P)zccISH_rdG5P$*gMb2~2K64-MKJu3DcYEIVz33Dw zdd~FpqT=!9XW%d4&30o5|Gl8CNvdDXK~$}BWl@Gz;kgpA^^HPg$mlAujDQS)@mJm% zfHQ1lq*VJpLq1k3KCfl>S&Sb+N~Hm5=HC5`CQYR|H7f-Jnr&^C^(>$CX%<6!%w$Xc zsM5W`f98V>7EA8Rd3#lS+-SPWh_I(6k62{ zrNwKuJ;tfhRrkIzMg)LKdX#KRhMa-t6=x!#zI6ud4ltj=2lDJ>B6iESmpB6I8zVC8 zf)urgZu_O#&f(qmSk>K4b+ysP}ltG4Kkpf2mmH_fe zwIL`Z%d4sF`%nmCk!5-i-duP>j|5m^(1x3@A24}w{?Y*%#pI)0NrFZUD{*v#B#a4m znHp68d8_KtCO@_U{EQ7H4gnZ$GoCBmiW=p=>6-6AqO zKXyMc%#H@S?JDsL9FI|#fG!0_W3}(`3|K#s0^@}H{Kp!iTP@-$Czka7d@bC~?tqo_raur7unx{hAE==|4TJ#Y65pD`|+GW{72=Dofd)P;IQ$ORyVw6*EX;5KeL~vK9v6ZX{g7(m*`&W`J2ZM!aYtQ} z@nAajDg0x1p33=C}*J6Qui+2j1rB6~Tu(%wcuS|Q0`WVC3 z;d$bAYyA?@D%_k}wXH|F#q{6%iAi1NvkK-_D*0=yFPUt+b_5r#@Uvg$(1BMr+`kmU zMInfkv5Kh9UEz0+Py_i~g|O}hiuCOPoBYHo&ziQhbk%@5g|YFXf(@;39Q&= zsqY>>nf*5Hii^0xUdH>Yt6p4CtA|j!b=s}6?bfk6eJ?}S|wj+@BU<2n2{RVA=~mA zv53K|mk0w#YAE+Tq^@RbIpbV#u{yl=gV&1~Ng?!{M>qAaZEsvG>=!;KM}lhOamoGP zpc7slVy>oevv9*DB_WNIf8apF;Nl`Ig&DJQGIOwMCqJ{B!BG)!m_S(?M-#}s`Sd=5 zB3yLlTa}j-a1F?c!{H(#D}G=n@)3ghf=}ldTyL^R8s>iFvhDElr-tH;&@RZO%>Bvw z?H+_{Etj}6eILM$wXqiUh$UD1cxatk33PQ~%1~=!Bm5C5wM2HJ4Jy>`^4QSl9gFvy$LD7*;es7arYl_c0u$4K!?ZvLUC5{t*8WE!PFf0Jw?kVLz6 zjftl}bV9sRF2=g)8@_K|^Ca>r=Rj-77}2It{BCs-Z!Z6rXvy2dXT=JuW9nhBUa zy<9-4ReSo{7l`+oh4+vug1_XF>7UmgZ5Da|ct@KWvwW;aI89GAhs-9!VN#n_$v4?j z$aAyImKl(|*tWTNt%h}uUu93yVhh;sH<1O)4}l6rjTufw2K^hnVH{1VODE;faH0v^ zMeK6;6Y&H7PXH|L z1fAAERW1LpWprib*Z+(gsrgoaYoT3V7fec^5u0$M?Wd@2MUz9Pgiv#XUBn)Fo z5MO0)cpdo?>S7D_G1fjbVhOHGo?O+$3$eHmxogCQ!*=BtQ!*}X-XQp@xFLdCYjnET z{#e>Fi2me5-uEEFDz~id9bKba8~Ct#lF!k#ZgEYykpmb;4WvNRAAiD_J2A|*Si&>= zjnX*B8&z=^#)X;8Gm}TuL|f>Pd{ouPOY*_}?!PspX@v;Z(-jXBh zepRu`5B0Z6Td&7CpUR5)sMl(PbJfXmOr;$=CAr1A1-do9O5IA|gkN8xx$7;!TZFd_ zXy6x!T*fVtSd?^$Wp$(Ch31TMEpcV;9WT3!pAs7^wIc$LgclZROgd8PgyAF7K? z?-3fH2MhCo!0EDEL%p<$(ShDy1W}bN>=91G;X*>ZJROKpIxjBM`{jhRo+(PJ`{SGo4G3YVz5quU@#ITB`H|PzB zW2Nm&aY+^`PxUIVej8yYaDhJq>yUyIc&4zAOxn$l$7}%K^5bGwt_l^X=_{#1m_eyq z%v#}X`rErCDhM$+S|$vC;TDcp6^4QJAfw^=K)hF#gSC@EwR?+;z2^UlU>-;M-^to? z_4RQ4ge~MGMz6`Vy?qv??!%R=l9Ix|9S3&CV$wX2Vv6 ztomy^|1evJP0H7})#}k}02fc?L@40Uj}~02Wg0Eoxk$40{;Qh5iW!Q(*xYnXM_3;qMt--zH8Y^2&WLan3E^WDCCKaFh1qawz zbh!H{S79>#!%-d9Dsa8W#&LMK>!MU7W_@W_6bV{I{b#ygjYz z)@@=P6ehA#I2q+K4cnW#uG34}pJIF)b^Zs&qtSD@i>&93_53|eA9-W)(cueM#RWRq z<@JQdksV^Zm2K{xNR5(LtSJIfF`zd!R3i^z1>=nauQ84VA1IB|dU9y7%jG16m@|je zY^St-_mGG42%wop?UJYE(u;o~+_=c3yJKYTr=&@PLJOE{_&+Q;iQL_9ld)ws8`UES^N7H;teN%PQ%k%x=~5n7|Kq`?~Z z-`!KekKqxZedEy~zXNf2mfx^g&)xXkXY$8rl55fjp25bM6iw>HwmfDFvSG(6l+Unn z$%?@-=$5&7+-NZFH!BjMtZpxPfD*2&mA#N_C;l>(8XBd;5++H4ORBF;?z zo-NmXB(foUi zxAg#b%?D zaC&aDZ}@kf>%RMeE?VxqykpwjuF@Bs$f#wXbzlx&bx$rCJi7Q9K$bpU1yP@#?$;f0qd6SAN?3qcP$Zr%h`8~{%*gw?w(1( z_q|6^tah(b!J&xj|Ev5GGqBP35WKXUAHH?v-DNH%e8|>2#UtX84kPo_~S5Et0)il)}ux2hMWjnvD&Jh72H> zE2*o*J74r={rxi*OZ;#LQOkxDSRT~J!bYnCg0j4v@2?#Ti>wj?2WZG#CGyeDM3;u} z5NPM2;mrOANRAI^&5oUK4F_Zk?`}GGt7q1W-*WQP0C~8J|600rdhNpDOLL*1X+}bC zor^NBmCo|s1^9oa`1L=iBL}bzKF3NM#P$;f{ZntuWV8HQG%o3 z=Te2`{k0qPDnH=0Sm|K2IA~M+6{W6LnE`vX$ZK6KLHiK5AGKwU-5F%enc^6P#?;ykB9;RudH-s$hW}KS8{)N1^ z#G>wpYC#yk8OcadT0E_D5o#M7NyHmcDENF7IE$%sI+%+!nDWK&rB@-NoJ&~0a*8G8 zt6?%l4gLUSLHlpeIWZSat?fmg;dA@{fQSkSSWb~wW>?pjli&}W!3;dtIq?E2F#N1v zE6FIkqS3d5y>~+9`nJuj^ zMYNF18#qBXbUR$(%DKY@)QO^?j!;Jc?->$?E8IfWWn7qz+iQO?S?m`+Dw9@R5|YMG zuP;2o*Dn;3dA_{i@e(ljP?U=?QT;!~m`O^YgV_Qd-Zu4WM@8(%!MP50Zqd#)6r%=V z?6n-})$C3IP8&*C)A~z|bw4m@^L5(dIOyZCTt;!Itx&mMICFoi;rqCeT8P-H@;n^h zv&WrEg*Z+pSa^P%_e&kBmH!Y;H^oe_jg~$r!6TL&ot$i+pdxgfoe18c5k1f&a(~O2 zzWhX_V{tu8SA8<(oTCKJaa0wN{xBxL!5)05l8o%Kq(oEMJR(AQo6g}^F41oAOcVaC zjxTme75@n?Q0BWGiRxl_@g$?A5(p!&euww^N|@}2aB^+}!~7;x4=w3s;uYf)oe^F{ z|Gm_@;d?pKddEnP*+X!3+&4~+#Gs>nN!ODXXa*8F)gpW_yl8Rt?TMP(Re#g@SamLG|U2x|S z8NhScT_X1Fg`dwIH{7d88Rxj@PLWjiqW;i=c=XczRaS#yw)tmV(iGAPHMmP?|G^7h zg5hn1!WP*E`Dklhtn-{gdV*@r_+Syi<7JJwAVlf$dbD(l+vTk<9C;ISlYPqK(TvMG~?pOA;Ur5CZ7CZrS*nhB5DD1k#_nF{0NG@!e@x)knR%LROZx0mIHZCjkICfY}Z zFU5cl+5B&Zljx%?+(kherdurN45wl6K;kb&AD-GU_1}_p`+!DmIx|bHvjxsBxPUu^ zjp84Wai4((YW@=wm*vXzkdEPd;Z6w2{*lQh+K{GJljOuP*KKdD7JC1a|HEgmqst=O zFjSuLNF5?r{Ywiuh}pU{&e)j$e3TrhUn|qW+3x6iXE)ujZEvU+dX>&sFL2*;mT2$J z=Xk4FI&YSy=}@*vHj8>DENFNL`DCDv*t{Gn)d&tUxn=% zI^tRMV%U!fHbVYhcryVr6l~`5_KDpSdL@yQqU3qoRQG+r#TxMiU}@vxip1`*1R#uK zZC+rz_-=QWNUbb!5VG^}4W1$`^9T&}-8HAguzgYS(5nYath)A?;)}O4f)&y$1W#e` zkr5Xycqwubrio2&B_&7e!2Ws@X#I3Wej#mz+aTeR29sBf;3m{uc;5YSD;AScJr@+v z5L@dgR;&dJc+?yH(~J#F^1(Hwjv`hT&!@fF*UDRe)1&rl!H@TYrtW_B)f32!lx(h% zSmbBQ;+Q~)i*^rznf{#?o9WTg4X(Z-_pYKX_h==*@LzExl|j>^!F;m!s9o-n%aIWl z>(-Br;w#ggL`zWfIA$!bxy!G>tVJ^i7>bYJG#_uUK6!7L@4`Q@azWTH@X7TplDfiE zM8OJK7^3Y8u7V>6(H8q89I=X!n)yv(I+$7Bw+i&yUYnjNa5`|7mFf_+i<5(`{pndi zg5HO3-#YZD+CbU5lx2arK0Uz#n&o{ zXa-pvy=*~OBZ}lVGKo7+jDvG|)Qk>wUk}Y7^aY>kT=rJ(MZTGG!ES|V)u>jdThdzL zZVKN;Z?dtf*4T8Iqe7VjK8y>sx2DBw zRkv$z*1B5yi>Xu-3r;OSv-Pw~RIOaJCAF(=7Q0$&I)zSx!EKt*)_5;!X>wwi5*H{I z(5+AmdEo1;y(^Z~Enu|1e~KVWk53lwYR^6>|R^tU5%2X_EG-YbJA1el?;bs6>gZ-<6G)1Dd@C8{J9E{ zZ;vmHObk*II>BXf$g$GAD9BjaaqzpLZk&Y7eqqn4*#MV4aA{$&Kq}x9Z+><~_>9q4 z5DX!{(LPP8_Y_q3$(9tUt|ga@Z#VK8yAQHmJF=SU1!Yu zy9hYq<$9^x)qZhuHL29ejqTJ*|DPrD*h>tfa#Uj z@5HlxL0`3?E>~wtSz6)quP`}X5Oyv3pN6mTwu;>+ur;Xui#@~%zrEZk?+b;epo3My z8ori?odjhfe`8leNHtAj9uW2Vd|%R1Cl5v$iss|v=EZ3E1>IX~#aHg-+UCV(X1k(Q zmo>A^S|*$_{CWR876tc)E?ka6c!$5v*c2z4_dvBB!WVL{uyi&z&hDa6A zK)7Oo?;5V^G;1P*c#y1GA2^C*a)pLTzdI+Hcta~2Okl<7A?>!+jNb4U=6`ryJvHXV zsJsH915EpuLCMci=v7PEgj(RCw!J#cSgX7neRd>4`Rnwo<5c|My$4Aa{ zgvHKRYcX#;yGa$PYwzU=TXa7?&sBa5eN^FYxGMa6_g+YD*dw^?0_Ax7Htx<_=oXfX zDkckmjgaqiWzR>qjfh>GoqQ;wJ^G{AfcHW>}&--N(o;Y4H=wR9P@Wm*-h;rh@ zag*)VPT9-+kIiykpEJ`W3NG|L@fX;BFS1<`^!zQ$o*?T2MNhr_ zR^~z6^nNettt}8IjB?$D58MUCOlfc23-8>?v?9BFEJ&%(Z>u)VqgW6l9w^Dvi84aE z5@-vVD;(qTuq~%^6zNO16#j0&N}NE^G?w8`?_F=JL3sU7XgAD>|2o2K0utgWF*YVy3iVGjmLu$3|xc zkWadE1?FcDLbhh@B|KbpB9Dg^n=$-0h7-BoA1*?o*`>?#Euru87tQP0+R&s=(P5R4 zx-9iq*<&UZ!Z{ScP@`UUo`hp9u1RaP48c>o#&VVkVQokKJcLxp;k;<&6z=)kOaK5! zDdmcr*5~JWxadZ7yE+grtx?69n_{|0d}^BAHuZ($&UqRB6=?7&Z5<+ySQfrH(Tt9% zxMo?3rsMgcnEK2Ji?crZx8nmP^w$>Mb{w2Gqn_}^&oEuk|0qw#JJaQU1>!2=Otz$6 zdq7c|{B0Q(Z5bR=iWW!l5=B*&XKQIt(N#>&VSAes$kA+h5#H++PGsB-gI(pRHbtd} zR*kA?{W?Gm4^c%(yjeqm7Q5DRQSimG5-G8BZ2mWEr zW(-yTP~a>nYBKC~diVR+i})da&z->7SbWp)8bN%RD8^DK}&6C%gHOq!35Z zDD=tu`W*rpG3d6u-X6v$By}b~RP$~lPa<50SPui*xKIA_N&XiMJbCbpL zA)ZRkJDPg?&wxtuyVq)TjAY8VWF5ly!K4p^im7YJ;*`<9P6HP}9zyl;XM<(VIhh4T zY!a65pT{v&oo$>Jb9CrzBZiF=+WvbN5)--9dJKM-cmLUw2RWa;Vs$M}yF#r5eb+-( zbiEF5r=%$(-hp}GoLTE-NhVVIDC%?IBp5vn1CqVwq2fEi?9h=^YBBS>JJRRH8DWW5 z16(}xjtbt8F2B29~*Dl9AoV?gXnK2p84b@u~2}{0>=#?dE#k?O>%6*-S1f~@i zW;`^~RMtGGgVfLH{cgt5kM-QzdahKw|L4?mT$##O%-9h2Nvx7rKOo~^7_Llou13j) zF+;Erig4z^AH$oZq`lkN1fwM!@}qil+Ss<7WZ}PkAF{ zkaMDd3ff4Eb^MSs@vVB_GI?s*RMOpzI{ptV>hhDdBEtCW#W#B5*p3nlA|?8u)-QLO zW-!u*WCEyG7+rMQ2{;rM9AKo+68v+o9?)4%er5?|I1n^Rb6h}Mlm%diRib08u@ZuD zrRW-$cYiNPoI!qX7ixSdd6RE7RvgEq)0v^9jQOWmwui5y1#$H{qYaX1OY+e(>VKS= zmfaVwFV4?J$^SzkH;t-M51P%7GH1>S$V>>!rJU1L{DgO*p$55SJmU_kwlZ#463r6`_?7G>0ohpU8e0yOg;Vj zo2lUL0HD4N)W=ko=xcpB^QRd}mf1@?kBU%TD>!iCC}b*m8Y@Vi>#MD}HQ&Xhc9Z<_ z!5Y`x(eT;nXDEt$%ielb`ChlnyI&2a;DSz^r2s9qUlgjGkwVF|miq3~v^3-3`Xjk1 zeXa@*`%l>+doS(;F4NM|A8v>^n!BX6{KLuu31LzyFSRSs%%q9CbcuNR$ z)IL*P%Q{PtB|6Cn$I5Ck1EgR9vOd!o5bjL=8q~?JWqx>@a=6J4r)w%$1^M4K6wuh| zjqZT#su{>e_XCq-#>Ax1EWPJ2+HiX(fAeh=uR3!ZXIK0N1wEE&;WLDmHgt52xQBZ8 zr>$ermsDmq>1d$?*cw7!4KJjXbkvF9O^4!39)T@AK8~e*Ccw4ut=&v>EZYJ67 zHJf@hbqpCmk{f)c4!1`d_DeBtQw3|ES9|hRTlRh^^^R+pvTSKPp33J-14ENM}3g4hkE-%P--^-<@z2KJp ze%-=79h~CO(wF&6Jy_-rw9R_{c6?IXHpYnJIXo`V*b0dhhTZj0_k&52D?Zr{II!nf z?Kr@5GxbX0sL>Lyq0HZ2pWlw-Be)D9{?6V$`Rhb0d78dNUbtPdJ4aPzPwI7;Mt?m; zMP1i;JJ4L*572YAa67>*=t=HIc2Cv=@aBH+eW(X`xo10+Twp3c=U*DDB-?U}QLx!_ z;F&DXFT!f-oeU?2xUg;hN0;;V2mVLnBwq5&t?JR1Z4QFUpE6yXS|AnzeCZcFzg1&S zcRn%ub|&u&!v8u4Sn-9+52wcZR2!eFg`YrQilxYp@icAC=H^r1`IYMA$ zIysBhUcY~-ljeWnS^Seo38?+ZKWljhTsf$p{;790n6dgqQdr_jw)6TRsEZc2E50oo z7F&GI?xW~=5HoiXyFJo?vB7%vyIXnNajki1xj+cF=zjeXzeDg5Fwm_) zf^=7?*6+6i&+)e&?0%qY&n8B+An$>9#rDg1$?#lP#IYan_7BosmR9yX(z!ok6?fEb z4aiFGWB%5JjH%jV&Q%xKt$@Sq^;Ow$)d!lz;%2Oq|Lb#*C>lHLgt0hNIq?S*F zx-El^!I+N$w1WFOwBy6@IyiTJlcku zQj%n?Ib*1PNv?qv`{jVglMJN)5Gr#$-K13?LvhxmKJ$hQt;}HNmRdpd%|k1kXc06D zVs=eyIo;rkD)zsr43k7n5PGMV+v}3G`Ma?{rlo{t$7w5nQnvpM0%-&vMT6o{@rORS zki7=Y6ih;BW>UBnE`H5|rkvY5T48Bm$Dm54r5+c{MptDvkOG%+8(@pS>Ww@`bSQ2k z^`_ge=H%pqIBd z5dGQpL2bJ^+PEvYqV}dEmZ+pZc{UQsdSy%okIq3&*-rTUqN>O@3O1FIq9vdOQw&xTcwQO)Ixh8uL1oRh-4 zGOw)jSI0}A{EE$WUq>MWAl1AY2k_pZHoFdLqB>&jTr7TQty~u@3%!RPH{j4oZ`!vIh^OGRx$sM@xC~`c0akMoA1!s%V9@A*EEUs zYJA;_Y24MFSD)=oU}z6^k6EO3e5Qvq?5|vP<*n?9u%!q zdwugBZlDcC8aKp@`dj4)%-_My$&4>*{k0>gdCUlwId$}9H^GY96l!ZZyHSfPyX`B6 z5*y&)ra*TyMME6*6cVn|_=R0(_-S@3FFzCenlp4BBDhRT;4qgRvIfJbK6FyAVEKnn z$Q;36d`I-8gD(n*$P?ACD?aoZ7nFHjy63Q8O%(bQ&3I%*@J0MFL7D65`pu4roIPlk#U_qa;P;-~*|a*jkno6ErTA#? z#Z`!yoK>6xX1rfgvQ&ERCzpfOyRmoS&}OQ?qJ2?Q@QO2ZRLO8Ti3C@uUZMwHV2y}3 z8a9p28A9}<`ofge4EaatwgRIuo$+hPaI$^To{7p>v>4lvm)y_>4KOH2D%DVuU?1aq zb4(DHZdYl#IRn@2BFqv^Y0^EudtN6A1t;3X9LA#l66BN%=kCQ_kt}O=0Cb+r2daH3~$w)Pv!H|#iNI0uzPtHW>V@9QyB zLnOPFK*&MT;GdjeKXyRw&&NGi? zgn7`7)E&Q*4exbG>7>T45jP2*;I>JMeG0Tu&~5+YMCXEE^h;7i=Xg$OjY=)mcRL*= znfK4Y2?U6Sfbiby^xc+u-*~+JQRfO{`%Thz2o)zvjH)nEo4X;!Zb3i4--4`at3HPU zA^-hn+oec6SDW+c9WeDilY(0H@etv={oju8#kVu+9Md)X-KUhlA|{X)nt?F%UC}c- zYFKj1Usf-@STJTh+f;Y{rp3h%XQe7UlJHdF4@i1qQrYut5tlTEs$C)4r!kb=V446l z=>xUW8bIfBo60rIrF5wO^J=^yMtJ(4Koy`2Q(}OX!77C=)mTq@|3>gQ%%#(oSq}$m z6?<6aSroI6Xq(^euEe@~=XSdKlc(<7-@TT&|cfho1Im1X+Optnh z5)rU>4^tAzhiettnnv}V+B%;)=u%kIZBpFJ2GysYgP(R$D-S)$hQAVTeUB zt6e`0ST)l+B@03TlPRWN=cX4Y2^!%d;YZ-P>mM*Xzjhiz=|lfGCHg72S69vJKI=;T z>9ojbc}NtDW{@Y9>Fis{78fhZWWFBO`TH7G(-mWmk$+}1rRSgNos3OzRm3cfNFEor zhr{rRdFBAnquV}fjJ>>5zL=1Kegt0Ynr?irU*YzZtG-2k47Sf4(}_yp7d*d zz&WNf&Vu4LM0HvUl_b<2x?rE0RP`pGT_mp{1M~3h=e!AutVHz_#$(;O;_P__Bk4bb zBJ~sYxa|F0+fNdL8pRx@*rHa;{A^zwqI}=** zZw_N}M{rC$>z4gA=gOl}j(>?;^9mjV2@FmpN(6;t?s54`afsMIZLfxa++pdAU) zu1fXW)b)kzrR-_s>}chzv#)F@`JOW@wn=GKrPh;K>dzL)m!JNfJYmtZv1dj{95yAr z=Xk!~g(%D0w9s@JSA_D4r;yXK ztNEv&J0J7-{e_U+(@$f3XNRUUKaL`fA@&~?ZKU9QrK|yyVW|t6oUPQEC8lJ{AO{`p z(T@kIoSN>c$cHIuP;JBaY#PyXMO7xe5ocK@*Louj7INYvl~UKq<_m=L@kS?Fvl%wG92YTW$o;!T+ zr#uQ{g8LP?v-_X)8QL1Wsw4(;?W>Z!PqbE2I;xnjt$ORi$sC+cQsxv0K36;a{v5t|7!=fMt}sQlpw z7o)&Whvx4)6C#Xka~yI6$@$E>s* z$^BjkGe!ap<9m0vnCqTx$cvbAA4;us2*PAk!g@g6U9DjIngAo1ItrFp3r~VVGlnmr zEO+cY-c;J;F~ai;Ub&I)ZKEDPIORO5U9}iwC`cTgU|9j^edDQvT$Og8npUjG^i_DU zan0N>ecpMO_qQ^MC&`&keCAQOXI^uhgtf>h2&Sl80eMk?V-(&Fu;j6t=&$z5hn^iI zmgiQ)Es`f2@vZ(G$$NWEI9X*o0+DxI&3MS8?cHGTHi%kMF6H~=y6zP`^fq3dy=RPv zQo=vOwrTD47%C=FGb?2gwAwoR2()@XIdp6HqdfvQN{jx={BH_W_dg2!4)*eA#gg&w zsnDyZN`vMt*sTF>;cuL=3#2V*&Ye zrIWF~W;cyJ7Ys<0$TcI!lH64X;dAoNb7{nZ%CBxW??3&N`UoA?1pnB)@^rhSACi|s zSK8CVtDzacqYV5~4D}rC76{O8EQX~#>2V|#uq`Q#f7i#c!%tnxeH7|_h;l>BA*PT^ zqj!&yQwWE(sP&je!;ir6=AGVXZH5cW@!Y~4G=KOL1x#{`1RVz=Qnvjd8AUP)E{S~X zn(2ghblIfTe+?B20_1|x{0UtQj`B6~0X zdJJl>yL%2#{LdCUl~50?ig3X3^OgrMux1ALXm47@vw1Pgdmg(}0XwyXcyQje#O6V- zV#T|KJm=(Zj|4&-m(zZTrrb^!CX|ikb6&Pg^Qh*+`zkrXRb@DV_-LtfxJ;r+l|7v} zZi60o@<`bq=n7iLeC*T@FuV{kSssJajoIt5E0!o7xWuK#dr^t8;{eA^j+-%;!Sohy zrq!!UC6Tk!O_v2k5YAF6u*XoYI9Ze?AM??t+xt2eUP^`?dyP5}Z=HT0*%qc}CyK|>zC2(7mV z=l(H+Z)l{HO*z>7jj??|&d1{`_t?KmHb2`aMns9crl|+S$?1*}oD`R<%Dc z6DeTY&iGn$750Hd%8WSs!lH?iHEL!=%8ZN3H=f$uaVD*CNP1f;eBjmBdbOAGPw8oj z);>-!+D3?XhmO4O<$fAWUNf45ZDNUK-)3JWD5f?J;phb(#;=E?On0h%@kU?95~}2U zH%k;xzD7sV=MoPDg;q0b2u*qh48_Gd`ht76WUX~0d24qGU@ThMHzYkyRN9cT8U|4C+}MEZHn!M_g`Svc>dNyf4Ze0E1XOK2QH~6J4f(fwyG`OFK;l z-7V?&>{td#1D%Q%1z=Ac=8YBul$k_f8_p-+2T$eHN>&1O$hzX=YWOa zNw%le6`-@Cda4~vAzC^;DV>CT`m>|%j|bIJ`(?JbUi9|6P7;pBpN38&&M5&OsUqS&f~+u71c!QPo))Sv=hABu&5s5%qd_B4qq zFNaSDu6klwv={P{2jsz^s~3^k+7a?t5tn#ulvQH}y#;^cB(tv|OhFrxI9+K|ei!RP z{F3m7ue&SW*7it8tF>M__`nN6*dkRCy(G-O1#z>l60u+$04DXtyBmZZMC%F2Cw?y2 zI*MhzODbNo67T5l(`F?O9gAy(PO%ZdK>Q!_2^%3imXDHT$wcwXvPX!Nj~%Tdn3_V* zU1Z=mKU?=z_O{0(vKgZDicnUHofJIz6vs3#LHXJ^Kl2A3ZQta)MMn!J0a6- zjdBy$NNGvR%Wnp6@)`C(OFOsq-Z*K`2n!UO_U`>80>z_D1!0**2yX@HGm5-nzWXmI z)*b7OSx}xfqzWLu%ocYd5<#=6&g0vr6|&|LagFF<*NnJF2IH!^l?S{(zOH$xWsFBD zE$P%=;Olny(9A^2P~Y)=y4ec*cWe{vS}!3xGQk;+Mh3F)q=nI=6Bc01yLX`Js=@j? z1n;o4Odi_nl<}a-v@h>gM}zaet6|*U|C})vvg1nn&bl@T8qrdNAKy{U1)WTZ>OUQi z*{^=c@X%7I>q_WIj$I4*p~&l;=B*ka%DEOUt~!@P5Y3;JDXl&g89}An6>vU8fvc7R z2Oay(RFfihb(J&%JY!G1i82b#tN5sZ3I85?=#n{Ni=DRz{=Cp}?Xzdr(-;Jj zMeP3ZCMRe3Jq8yKSCxoyl**5awQ<^o)5%*Fn`aAZoVnx9YH1MFo+6(t6-#YK?@+As z;Xi-|N&g)eBOC}OMpC^poFQ=e;rFc>*un;Jg&WLPGt#rt$c1pb$8sIynq$wZ|IGo% zvIwnt2h$~|jMD?Zjiba5Rw=7l=?bi6o^C~gIKilj-*Q*Nt0ex9WYR4S_N79M^>q#C!b{AoC}%9V}r%L0xS zlfybim~AIwux+~sR+0+8jN{%GDDU!H$E0(Q=T~L#i-+S95F_jdzRKp+nIfRwS$$H$ zC6|mtZGbU0IMY+jGB%g9FyOQQv+@G|uN&>PX>-)7+C2`<+2c68=|v1l65QgP4c#%6 zI;mSAPISf)#X_MHZ9p4ZT9DX_k+13Mc0N#yK*hb+6^TGbaa%I4PJ3!D?^wb}Ry4Xx z9NvUIYTr~g*+reOiN)X8onvf&CPVHal%NwX=o~ES6p;cf=o`xa_g16QD390%Wiwgj zwDF9S10|g;L>JmfcV^;X?KCKXT#oh27Lt}d*Hh-=-5$9MmwomS<5c0X;7-xsi|v-S zT6&MUV;dy6OyOw4oS`bE#JO=YDXyUQSQnpnwqsPyUjFX%id)|3&XbI6386!ajORb< zUv#ktJMn4LtUald0g7<*fsje43s1Z~t2nN_y`Fb-WJ6s!;`Lem%VT*XQ}U3o3hoL8 zk;l9LC9Fo<>-lz(Kepm4ZVz?#nt?o-jeS9w)$ty$)n)<03^#ICLS#kVGxKSt&Ci2g zg83{r?%&0upO31_2pAF08;(i>@d@ZE1=G<_$5mxw7zM^|W)mo6&wYQY z+Z_K+>>637tY^BR3|w&0Q4ANsF05h46(UknqO$)hY;!s=zy868T^~9Jg>x5>PtU1T zw8uuaZBjQ@%N0xwoW9&2WcZ5EhO|hC&V9yq;VNW3ZkWVNVY!b@P}OzKtrA)LrZb-t zu`V<}-^(*<9t(B#vd*f%ixk0AtF+zAs1i0$yMb;G-LvwI0HH_rk&8BI)dP<|=*cTZ zpA@G9mFs>HyEC^ZV!jtxwHW4*gxLAG&}5~+aTZ(Vx-Lc-aM}PZ+7ei zVV`0X#q?(e)NV1YR1%yu1^2CBw3I<2i~&C_KzQWd&$pow0_r(L2Yh$!t=VgwUvV{r z1zhQ0!`-gb$TM^7U-JjQ@;Z%*#?|nM%jWx@xVf_4g9`LJX<~XXK?b0_s_0xvY!z}q zW;~qKQ`hQl-iD?)wm0#0(_A)jK@M%ER-9U0X@?KLJtE-FWwcO_bKr=8oURq-Vh zMd#8!dFxzPPrb17(u6vhGvE)(RK zb7?Q+y?Zxsvl?y<7Li)4Fo{n&o=pO; zcy8z(U%~Xrsc=^ZzfYC(Q@y|yJc?BSWg2kNr+p7TI{+}wxiTw%Vvg>Zp;BOq_sS0`)`1Tdom0t1Iw&Unr__~RoyvBR*Xn*2H*y{$FM~`yisn2ww?UV8 zRfrtW;~Fznw=vnZH*$FU0?z>`cPrsrqfMOkOUl8oj8X>Dgb?7}$Z3z-75MMn_IOjR z)FZZ(2-B8TrH*CQ&pvv)F(ks$v+5Wa-TGLRY#=wOtCLhYIEp=%KYjK}7!yt7YE?BZ;Yr#@%>%^J^4}+P0z+WAgmA>jm7(;-cpV8YY4){KD=A_^bW}&uLdIL$G*1!>T5^R41DsXw>bd%35e*}k z%0b@#O_X3?X;vA%Ir>5q--km!wsK|b9}{!rqAxs#+~SxUuIzqZjW4!A8QiRqiNMk! z6oFvsh5?6%@vQ{>r`6i^@aq0hU@&eDU`KbPHL-mXuJE!w=fYx-?hwoSn-nk{N1&i` z_A;eE|Efchxomf(w^NY_jr9BnR0hA+ypT-Gl0`t{yNM0aN0mOG%t|X!#y^2pmY+`{ zcvK&E#N~S6(%5)nt|bQIN*hIY5GA@f5RT@rAI@0N(>Fn>YvcomiIQcDs}-82)#nq# z%_CKn2RVKxbiwI*F&WN%m1Osl^mEitYMs|-oxEfX-54C_x}<{@B8v1stw?8;n2SzB z58&qC0SNOK@hF!tEUssVL0KVrohi#1wdUjirz^RoLK5W5H6|F`;XVQtyEuHeZgE?C z-EBwR$)t!`PpfL+;dz&e!qX3DJd&@4eO$b7k5ls4;6?BFHF-@r_D#EJ{z~V$T#R*Y$LAhCf^>Q_ zI1X|u?_-gCL#Pdk$!#dKgkOZrxiP_(bZzqK)j_OR!lwX(-0I8n(WW>dO{hHhHHWAE z*ut|7;rXOOc8}xx^1nf38@EocqO<4*u6I_X#j8GZR7@k_CZP>i7||Kt<5v&>L%^R^fUnB-Qirhf z<1zt{iUjjxjYU5e*0Uney%0as>z39du)^_B3}X`2)6+k3m@|LCVfc(+zZRbpfA>?) zh)aoi=H4|pp?p%Z)!*k2Nprh( zV!GupAjf*q+zbp`nrt}biA+?vU%6=Cxc|?gt3xXxufKQHK%W6j&9!O+n=K44h+FPY zTUZ93ncT?PLhd6^*-$)ZSxp3|lWf<}4ZM}k_YJ9<;n(f>iFz_7Gz*=NWx_S7lEK+H zvCWgnv+JVJZ=EVAD{r8+@Sn~P%hHEkvN!JSl0ig{pm*e3ujei;!*r0PF7OJ&o2Msy zw2e$pgMeG#g_wAEME2LXxyUjja1Ucuz%J6Cz(Fv1a3$RP)UeC%*8H=wM{87YPlp}(WkY!KAHHSUOj|-k`8^}hhGDohI z4P#R@4rjS09Tc?$^gAxaQ|xt|iW=-Q#l0SjO6=JF6DfUCDT0qyFMi7>=5c{}o@i ztH}|>LPHch>nr+Yj@^ZS2~su^+<)B27ivS8>{f1ffLp!LuKt*0b5}oRG(EX(Ueb#p zvS}}yZVlhka@usq29`Nc^&@=%yxd-DfA$9LE3~~dCPy&_%p&SuGfAs$fKOQ1QItDS zThbB2lUCX5fZ)crV(5{&%O7F)+p!nMqG9hnDn$%wYczQwOILu~xdQ?ox!K9hm>uSp zP8~jBr>o;7EMmv49@CPgHT`;&WwP5i(CdHscO?gxV<5Gdb(-z!Tm+gR4`B6$BoAOUC|^>s|5@a#yyuQFCh54jDzWt zN!4Z8zJ^RoA{89h29&~bug3>_hu7?Jl12t^RP~M?M1Zp0-n!SfWdwV&Su(sg8*$Kc z_f`MKKP!(R*aT?+d0kuuOx5jY5OwSZ2-x_GZ?;}kQV?g`rx#a3v&2ipSl{_}bg$S> zAX7Ilq%=1snsC9uPEHSa@_YLP;p<)_QmF8ix#t;t3+Nr?X>)^{fWbQtoTn+9P?MdFv#EDy^Xb?l()#lsVd%fvJ$uivw-5a(6uOGsze#f0?4J!EooMPN z_oxT&|M(m;_!nh98RX9HRQ$lKeZafSB;%w=BX#nMlt}>lbo@0xZ_{gOtW!(GVZzp9)tim8BUN$;O)q6F_ z9P)p)KWMSFqL-S%CRYw`au9|!jk85elnF|dt*_b85mOPG*3y$^{SUqkQr>Aq*D~!Q5Ievy*O0ci+=!i?G?NQkL>8+zS86B+6mqPT7>9a&D@y#jMjfKViphRuQi(XQN{w02Ag(6Z)VE9rGpaO`- zxfeZ%-fih*qcovg3cpw1T6y-5!ucG4(Z7Pg3-u^Ga!)-9f*jo~^n9c-Fl`u+Id3}T zBwt99zq`5x1<>H*1LUd{8-|PBA>p9AEoLsVzkTwiZb~(S9`?}~mhutSAy*zJ;ze2K zca30p&@fmO-?lXL3_?|pM+6G6U;>~R`ac&W_`Aeb|0+hNLZS3;(3DHJR+5+x@?7J< zI+*eC7&LsHA0`=YSQ!1KRxP^GF(t1-ty>7vzq}i;Deo8Cs&`-A+(s3Zg!BAB(XWWU$J9fpV+*&=0Ok3hK{R*!@mbQ;sW8j8?rUmCyc*cD#Adre5K~9Aq*S^mVv3wZ?om?+b1@M+*P%}t zq_^K{005y9LyBM=f(?rc-XrnfEpUy0=cGgQ%yHlw32RPO9Q5B7i@0^5bqxbfIp=vU zGX8m7SG1%=&)!ny#6i#YIL33tb`ms=+vyMD0T~~Z{7}y0ZUzWpISAU^ zv4w`jS<>%?UHP;wPuAr3yC~RN(SMWQJJoy|J{T!RQzVq<{b{^M8A!}u|1^MFF&Ws8SZjII5 z9%!voE;qqEk~>Kw@=jHs?!Os*Bym%Ab3wpVayL~+`lGFaRRJ~*i;1UO3ItR5sKWh0jCcJ_{) z?mi#N9ed?juFPBeOP0%Zjf6f*4rcUo9CrO*;a$j=g0uxh*j!^E<1f=DDxM>l0U53_XOA(>;p86EF@f%M|zV+9$XRK;}6CWc}rZE6y{BTM=bJC1CnVG4qA@+e$=6 z6iqygY=_Wg{;{0=RGhOPxE^2NXshMcl0uT>IF+#}e&^tA+Ep38B*S9C0%5e$#I#5rWWTG=N8GWlUpdZQE8Q? zY^XWg2i)s(XgVyx$&cda{oHb{3=P6idp-TQqPI%Z65>{d-*A(xP+FRNs-1%7OXtv& zvgw@;7!6Myq;`cXf$Zqsc>ap8V~+6%ypq_IXeW-@vkP}UODh6MjG;79hrm7#*U$P* z#B#`KWN3*GQGAPW=zLN9Chz#ZrEV+@GRVZb8eJL&0{i(SYo>oO0B^79kZF+o;xChJ zXOvoH8dP$m=itfLB#uqG<{;_~^WQI>Y(;a(Zg~~Tl8VHm=GVJu_A*f@@RX$SHV?5l zS=yP6>D}sQ^m^UWvX`MX=HXnwaCOLt$1m8Y+1*6rHSXTA46YCYrzcLq4uOcuIZm+F zku>>3p4(D7L`o(GGX`z%ewbc)mPK9*wp|M({C*3%ltx_xF+(Eqn4 z61Zl*)H?Mu+QIq1ZkqLMe5|o)_kS~Np3kxEk!1d!)Rd>9X}k|CvG$-;e+=?982$c@ zJ7-Vce&RD!?P<2yjW40+?nq?5kv$EpOSJ62jIdSsCJBKNOuSlVUA%QL_2YE#I)uc?7IAMB9ibWOtJI}ofOP!rUzO70E2QSb!V-=ds+UNUaOH?aic zOJzduve<={rF+MD#idyGTW)DZZ_vd5O=>!1I8*0tPwt~WpA9eO@&pY-AY{_TUo$6x)%2fr?P2&c(EIDeVyGxFGY=yAO)k=&nmW1ex}wQr*E8#kZ;^ z(@|jY(?_J9eCNEq_QK$pWzXyH5v68X z-R$(K`xpMfqLT~$kGpik$D>%BpPW7f9T&#Ot&cB(2XiUAvVTAI-Xj$q`YhsiW`}Hc zw&%nA_K2}Qn3MLbjMRs=F|d71EgwtGE22(O(qI)iM=+j@skvCFNQfJfw}-9vZ~18i zZjLySv-}a>9?|9l!t4F~U04FnqVjoWqsFRdDG9-~6dsPH8Cwu;I?Bw)p~Bq1VhGUX zZBreo-e<)H9oUzBx?1+5H&;J2y)PZ8nrF2&?wIFD<^jvriS110L}q2Y40V(4kEYDL z9MM+eR`z{)ow}kEa5f8OAiT?s+Y+S%(K2@9t)}ojuVK}(j32_oztz1(6K`2-1y{zh zU1k0F(bid+?T8i=-SnMoc6jB&Y!R~WO2&-?Cbhucqke`086ZddcQ@cBJ{DS1+TC7R z2F3rNP0b#yS8g*Z3jPN@-u@ovGG}$eBvhsG?!qyaYO%ke6wK>u|3t=wizKe=H=I%+EQ~GlgdW70`(yQ-Hh{+8IbpyfM4KVE`La+1B;=bEd`cE2VY}%x zBTkF36Yg%S?^*pDtamrJPV* z+Olf<2hgQBq=zr{{;3=or18e@A@x~b$9Uh8dhAA;0THkg#b)^Nnp<#o(mM0j*qa2t z7L?C}vU}+l&|KpnA`+|c*dAFY*;EG|RaNftkyZJ6H+75P&yR^pLrFN`=Wgy$FK<;i!-vxL|soB0Ti2-liVnwP+S#e zOTYzJ`R@?i9y#*ND;gioNaDWj-`Yc%n6Uc(Y-3*LwLCh`Ga)3SLLm=Lvvxqzv=AM( z>Q5P1?E93$8Z*-8+iS`ZOn(7>fHJ!(PdZY{+>(R0Gh#2OA3|5x*!$&tt3kR}h+h7D6HG?M#D{Sy{79RX$@ zk(?i6zcy=a8jfXFo_u?385cHuf2Lq74vnOcxwKQXZHQ__1V_eThqW6pZS@!zV3-cn zN6^19ffPt(M>=>*ItF1!i^G;!{uveEruN0?eTzf2En|M-vDP4C*N!@X38oE!c`UjA zx}cUre8Lk1yLJg;&ozT2-71&?q&_F-Vp}}vX@gR}Ae3B0p$4mu(MZgkh3RJ*5x10k zfn8^cfnCCw75W0aa0!D=P}AyFn7}c|;0ab6dBV)ZzGR((RUhoNLX*q?a&0pn;hb)^ z#O^@>Ny>Qn(D-ex(f-Rqato^ch#knt$VbQ#;oV1T|7cj;0YCOSZdUe|{}2XSr1zyM zIh^PYE)H*CVsYuR4rcweeDu-lE+t9$v}EQAPzJBCg~7OJNzbBXksg98&Pqu&g75)0 zO$%!eiQiHk%%EsAb4dv+x>N2%5H57YSDZA_i~4xPdMw z+8Rkd!cT+T7Q=KSN0A+LDQ|JByg7_LBmN|hN7&1pReGXoanF0qSl6qXZG zEiB2*>Nt1ZKNeW@s*Z-;C3>uT0Fnr?Zj+L(1_#ATB2QKNKtJiK(J>$xfXc1L zhDGxA!!TdEKow4Sxc{GI_ioyQkHs<5nxomIN*DjK^;^)(vNHNAelEa2NUrpq^Ovhy|#@WumZ}aI?(^nX)ix!kH zU!EUgpl+2xt`p9dYUC|{ak43CkDTwe^}+b>z{$wU{_y1=$IB1TrrnQW-bQKrmEP}m zqWJBo`NR*7XD0t+NGB+w8N$IVSgaCms0N;JUOQO7r$%}eXOoz#X3(xvZj~e|v5f=< z2GtzcXeFc?XK5N=iYkmHgqQ-D@-_)!Bx5@O+*j?n*#BV=x5(R~09L z$!(i1H|rcTAfxGOJ8}F4mh7XHQ>Ey;bI-w|l>&MxVQ4Z8tyV(3aEUc;jmPmLQhtEU z%B*9YnAb-(0D2{!lWdm2#yQRKN}&asN)iRr1}cvl7tff5`0OE|w@ip}Drm|1dV+Dnr8z(G zN)L`jU#AkBqU&5v3_}Fbk?UOxCunr0;@d1raKKH3`Qg-F zjw&+cHVG_<9z1w_$RA*NoH15$Y^HDUPQwag5rhF(S%V zwnbjsfW@?!3G~qt$X|^Ot?3MzD;$cBkR>rW+O2L~IGf&-!7=lp}+j1eZ zGAgD@(#n^>SW3TZI#{gDmSyHnM{o%BmOpYoKA3Qb^4%woqW6fRJ|N-wL;a0g60{j? zY)@qR9K<>x2eaGiP9=>J9v2g?7ecLI@yv$xg>77WVwdh&(vx}T38wDUrSIyb?>xG$ zWaCP`wX-rD^bYYGG@bc|?0-c=%9xYFH^|Xl3}Elg6jtj68M&E6Y^Mng#6;e9Xk`2j zOVLPM+*<2f6huk8atNz9a+!z$tP`MwN|F^O!G9kCO{2HeM{^_P&-c7?!FTtW&ui*^RHuVa-Cahm;W_98iI{zZgki0NB#VpVxw9=;YhCG zqKfKcXERXzO_!&)(wfU+7vb=!8SWcf$Z#;H_D?CnJ!aF@hc+RVXtCJb2&-ugAcrBx zz#(~MK=fuzXHDWi3+*bhW$+gh1N&kNIDrf7kdzXAfoBDHI2$pt@|W~~m7}IhT3hVA z9SQ~`KNq~vBWM3<|7c=y8-C@fh5^&Q(>Kpv$!I!_?D!3FEW^Lqf7KiF%;}P3g)6fG zmd02B=zECZ5KJ9503OD*j~u^~-qUvCKUcA1D^e@Ce0}k!UMt99#(X{;++=cYz_%LT zSPfUz0~OD3*^hr4JRFJ23LVd1-tsXe{Rd)L_T>&R_Q$i?>{J~FBaft23hlg4aExh% zJnQ~AxLcGdi5+fWQVPC@?3As9dVQ>bqxHqQrOI;aI5de+_*_79B@_XA{tqb1Ka#gw ziadn`(LYu91Qty!XWy0OSM85O<)Eo(am+2#J==CF+v&B!)>I=?M^|j;-JGs1Wo@xX zA0$1}xHs#Z^N&xo-_4voL~Q555yHEfK?2+P#Ez3lw5gRlCP3s1b$1IglbextO_Fe0 ze?dsITY958-Kad0X<+Szuu$gg@MPQuf0#!Fg;9UxfxG>@%7d&&_zy?7FVMtCcXo%| zHRh2PC)bV<6Q?R^9^b~s6uDZMdhJs^#9_no0v}x{Q(`^ex_2?Wh1)Q!P)YG6p z2OW(4LyNT;Csp5ok9ISeJd^wz6Qx7I$|=o{6<@WHQ+cKK2W1-MAWQMVodgVW>U9or z`A8RYWc!ohU;5BzAkfjnc||C~Km>^wlla)HOE5>xOxFsfJ#ZCzozEF>FslbBUhFI% z%k}I=?V)#;_F(w&3Act>Bdy7$Y)e6Bv!v5qR`xi#x^4e-6lqL5_3<`z@GNc_Lgj{{-#xHFj-h?RsCVBB9K^zu_#8#`a9q2Xw~P+r}Md7@VE?QyJ?$l z50{?@?fnKX8RZ$fHE0=!(#g@5snRsu`7(ob2da+bGfm6D#Yt7pu`uO+@3 z<5{?X*eO^33CC%xbTBs7S^o@kqpsDi8wiub1s5`G+Ke1`8@skF zkqT}OuW+rkn)YQ|Ya{XpueGc!eI5>ek1M+|#@N)2jg2mL)^?`R?~by^?)}R}U-5Sr zhjWbN7V#S&@O3TzfNZz@hRkJ8RgLP{zA?75Q8?`ugU1TnS)a|LnY29OJSP!Zc1hz) zQ#gT8@rO+9tkAkt6DXPG%a@G&MR|jqse1wJPIHeZ*CxTA2&ES{nLR{vlsp5Gsc+DD z*StbNoD7_7NO?2j2eU|24Q!huzrMRgqL9)t`FZp2xT-950k&RB8Ok9)UD`2i!RWfs zg!l4c5XUHEgyT7xy>%1ZdT*?*P_V5l(=Yd;$-V*px+|qbsVFxFKU9g|9Y?(z zO~XF~MLeQ)h+d+UI4%MS;MpExMvgTPy=fRCW?P$kaQ!*NUL#{_w2RckPDt&*$&Tvo zr)2FH@^i83zrOeTrhgyB3BDA4PM_Ux#J_Hk2}m*@E@Cv!&3b+}+4&>>-@CeXvW$ zDT6&r>Sj#-F+EdF+J)d}Srr@Llsj6*U@qMsFX?=m{?4p6xc5_@0A-!ZQ1{o0&N7~j z5CHf~7BP(Mrb*YZhn=xZ#lP%@a94WSqt>5=`ZUmR- zS>+#0HHri&Bw39doEv6%k-kuUVWZ{0_Pn%3Cklk$B~J$X=b2<*i1JsF|LgA?cy!$9 z<`3aw>Yg&7Hot}_TV{>C=B=fC6(GQHg|vfI&yH*(_OdBiEp;JPys@glr*5c5+O;&7 z`z8(hCj7C;_{Y``?~KgE9nC6|_*3DJAJOG@wU1~#m^xZ{>KC3AlpOQ1;%=V+46>|9Rx4oSdn(&LY3n;DwUSzn%Lwn-k( z>@%=h-)QU-Hz)U#UuK>U&daTKp>knJ;!H3~;%zHU=k`3OhE%N+fzhsLN*`6F$EYyv zX@IkASyIqsu9p;_Hv^BTyV8o6&*}znaI!0HsvYAeSWPm2-41|QYX{RQmBe`%h{}%OVx}YzM-n(AwL!3a$ZT$dnTL)ybJ++W2;71JFNH#{Ur2! z4Ro*Bp`(LF@R2rB5%Vs3z!#lERZ##XC(AxAaw^Knx-ts4Je#e>Q1blq^RI-wWI57^ zGD(Wr(B=~l&Cj=-9HNIVuDWzP34^g)IG!BU(ZYAVwz`}uirT;B6V5@@Ai2YFy%K`j z*1X5xS8229-hZlLAM$FZzp_UH!bI4|Uf*X>1&p0z2?N0F8At>QMI-q9eH}FoZS=o| z4k%^4r5_he!m|%x_|4J<2*{4Vn=&B%P?zN{cE(qXb(SyH%We?GIKy%}fD|>642W^94za|a$g^^-L8=2HaiFbBxApfX%kQx7XZ&U0kJe^W^`}V;T zNG7fW8?y=QBgFBFYYAtsujSMIXyEJ)Iz3ufGBsaJcx}E19aY^zoaiL>`JoODDndv( z!-HuskP$3Ztcg>Jf2e5d?PcNJ46K>Fv!UlzmSXW^lRJ;7xx*J+50Io{w2PT05OH%Y zptG&#SjbMmM=iuLe3MmEoRetlkm<*@M)p)k{hY!Ot-^R_=Y1$Le?mg|gW^iDZDS`1 zF0#sx;t#MffY!FuEYlP{X0@^T-7h^$%RKJd9{`ZJTr|*GoyQe%5926@w4pc{8kDC- z`KH{y3=r@01^LiWL*8c!>EXk6FBtWfihL|QCrFI9w`bvBrHAoOpb0qZ`qsc}-1Vg? z^ly6)d=urRFN`L>z=mnETa%gNsYL~zun3ZN7kq>bnVKGhWrnktMX+^+F&wA38fR{m zaIXH5(V@@?Fgn~KC>9^8VaHFi(1-O6e%;-F!5&`H95SHhpkAvU7E&yqCo)xR-_Q@v zzSjZ$pUN!8OEU`o&Rr$W0jEl(R2PUTMkyHU;7&1cLe^UEo6Q6eS-FrjX$Z(AYRv+; zSc0cd8^F~Va)w&;ZIA}GOzpvG6!W446@Hu^dz%<*FV)yH)xKdwcwWDf9e~0yaBi$8 z2u2ttJAXFl!Bq27uZ?w)$aR{ZLLyZ<)P)25s08VSU2jiExmj&bHY)uwv|Cu z{=k#KDf!mLAKCTX>ZI2TQRiDLGaZP8)?p1|x~C9RzgWZns%q^8vwOi$h(!-$ukkO* z`Ohg?x65!oea@wfK^WdsNza|DI(!E-&idrI;$@)jgd6%A@_5C)d^sq2++Uhb_27+n zhWmh011arfpSZY)R2up@vK9p4S{AXebMDJwxnxgrPyIsfLH3ILEH@d@v8)z!&Kj;6 zzsA@8sggw$rrRYgpq!Upt zSB`U^pMMMI&(GV>sX*)T9bN_1a-!e7h#r=Vk3(3F2p{TO^LH6WUYXk`b5Aa<01OC z7Av?oDQ5wglQEgFA@2v^Qsp7OAuZ$9J)MPu-w_-khX#7?bPviT{(j)3Sf|f;?hG@h zb^S?=r~NbpzV;(5&Rg+DqTt#sa4oJ-lvE3=QS>4YSF3zKYIARLsn*Iv-n13S^CB2B z2rm>x2E&DV306G*82jisXA7)TNAKr7keK^TtI`ltY|t)AsppJn+IW|SD%gkI186(o zv@N%~BmUMAnnR>*vv{!#Ix*>Wsf0zO#`Es393l4T+C>qQ$T{hD}t z(j^M}L9Zmf)6A+bl0#kpD)reduF&FRvO)ARTeetb8^>7iscb6~Bz>oijRngaPa87@ zFlK(A3aPmB{+ob5W_tM4idC*hc%!CQvooA)P4>LI>6!B6f;iq4f@j-(2q=BmliiBLuBlV2%Fm}Yiaguqz4|!;-&RWY*9`NVb$sndM#mRzHA)YBbXcZsm5Wi&f}OF zA7jPhCL_N6Cx__C_DI9&3R~@$&fLB@{xo7x7h1Iv-dffxU?RpN!F9`ci+hV-_~efB z1|zvL+sR@pl+2#cwvK<#79WSOfpGL7jH)aQGAshWMrZ(*d8fdZJXe$!*!kk0Gyt;P zSKJou#cBnyV!H9Jvo^|^No=~+rQ*LQPWd!`aHN2-4h9LjshdA3$7gj34v3DPhj^hm z^0>YuY0*u{JNfHKKF$;8ASXHFh9?7gaWpxZltG`OUsoe^q8#fsGRN>I)V7G; zF=>sn_4&G!to}sIu75uq<-*^kdOr6R&$eX83`nhci#HK|kZS%iIevH1s@LnpiOfbc zj1CR}&NE%6VPW>TPaan*P;v1N{LURcZ;W_B z_ep$-Lo}JJq0gsWX&oLG$;2~At>WY%;O|2a!lW%SzgO9G$CREd{WVEy&8sL!IbE7- z)V@3|Kzqc>*D4i*vY#kN;$*aoX^VkNweP~vQh}|uG(-4u12+7CG}S;g{M2AHzIr9U zJ!6k0WzAH)dtW}zl+%~f<9TwsFV{^tn?tU4d$_-z#KM5brJE$JzBV7hyGN4EsK)g7 zIWj3Zf*u~vsW8>_Z%u*`l79dzf&rgTdW+bTkKxgDldo3-r8kahFR6JG@yu2uJ_Sr~ z`1h{*z-_Jn9~LT=vvC^lc@|WDm-2(Z&mRAl+%CWrZ|C2kvw=@{Ol2$pw#%MM(qD`j zt#uW~qQt)xK}diBMYjl~Y_KodMT2#`?-z}!dhQM5uAinEFp#D^6U}7(S^K-`T?+gF z5%QI=4l7T}pf5^XEVyMu%P}8^*g7MPP{GeQX6tXqS{&h6CKzMYEtt?7K4rQyp%jY` zSSA;yLk7`jf6S3~Gs@jlJv4b)M5SCMq-3fS~U1;K%b#cogx6>z?rJFzSPNQ-+MuiP_H~+Te!lwU* zpqyMPb!q_&;+y~CDqv#UN)>s2R5=UMr@J>8dxRM4_8KQooJyfm@CHNcPjpOOzeUP` z+{Zkt>7=u6Tl@kG(mZs%^{D3=W1^gE(TJ}Ek2&s|;nqOu@~RmB-VyDZ%*RJE&ykv8 z`enN&*ChJj1^XqneXbN?_rc-Oa?KzBl$mjBu<4?-bQgHzl*Jx$$GH{MwLQ%K4=kzU z_dLS)JQ@n7izHgL1|1vFyDne9nW}>dQzA%Ts zSuC*sH!z5g@F;FFIgX>h(zkHDkA-9WSF^81wSw=5+#+$D4=#4+WG z|4RaaiDu$s>DjwE!I*dnMZ7Ja$zMDk^QtB-$<4+Nl6N0gR&!IreFzFO#% zAm@rjrbW6UW*qKr!{>E;lxABNb<$px*I zn@z7!!|mRRPGMRS`;J+aUsS}mlam0a0Ezk){qte4n-od2_83IfjXjPaJlTo9!Qm!% z=opxea@XLPY{Gr!v3A^|>ehPvvmtQNsYue=VLHg?FG&z;IZ#OD1DyC5Wuhws_s%n7 zYFyv@tWP3YiWh6y-Hh3oOCB8WH|U4V4s}>l%(8;An>p@a^U`Wug1=A?P#l8QUlsak zkY6~gzlAxVb3-y~h4ujZ030pq!RpKmt^55qZ8ygK8QUMj!4g*MpCrW?WGO!5BAT3N zvFD(=Zv{Y)nRTz8Oyq}>*YMt$LAJ86WeUsb5(Lql`~kpFt}i z$niWEr>6)-X!9`P=13{mF3lzELf)1!%SGyGF6X%*R*e4`XQbLUG#JciYeTZMxMb7% zJd!J65Llv@BJ$4iv$|u3e&ZjFdM$naL>lkE?$J^-{!}7!k52-N8$p=I@5&}Ykuc^H zl+9JmWns3DW?EPufy%cRw__`|Ii8MlY^LJxxqHiNqM7dqo?>%E@)F9mqP(A!66TQm z2R!C;CviLams_6OYR})4?o!H|PrIqhvV708Yt1x({eEU+y!Z9JBL`|)x5EV|Rm!0B z*GIzg#r)0QUfT!lEY$v>y}5)7C2q;;e!gckw^JCD#cTO3$Iy?25oEFI9IsC4=NlF` ztEPAg(3ui1w(jPee(iPq-8+K=h3?KSL2$)*`ivxQ;k5hL_mjt*i#8+y^-9_1@&BQM zp%j9#Xs^jf5aopG3}aieyR5uC3_u1uP$h$CaJV5aTW`kYydzBR} zd7eE*p^bh}pz)>f_qci1z6hP9<@VtUGl6bhGEqTSycumjk<(~qckyoRk8cVcd9-MB z&seH+iyJ?RbWwz#m%gWJ%qm~S>;Ka<6p>BHFF?;bVvlcT;wPK!qRgDDJa1fI64d;? z)FK@eKex1#@WKUzRY|#jRqt3I%ktW0w);h>=5jTD_hd6nu?=;#%Viu=`t$8l!N*-_54Fp^ zjwj}g{AufvE6zVB-n*La0sJoe7-d7D!!fI2ybL0-k4_lVbA zXWocGk2@Wmwun87#CkAub5AGE!4Q83gUT-{G2xm7&k`^tj?Q|}w41}rDK5iF%%z^N zST29I4|CILSQbbff{p|`j>5FhTAJQ?|2!DAh+mw8?Bi`djnBnUp+l1Xz0ISZJ?tty zORG%D?f0{;LG1W>M^8O8VS;7`hF@-*3nBX9U7mn*gq7l(O|R1|M!|*I9ZUcI>gSq8 zQZm0ky-E~H|E5kFatDZFI93MN>+o*@kDtl7*2=0il!nQ{Yfk+&vI*9#jCWAI&q)}l zVlH0v*o^)^PJ5aRm23T%R7W|oC7^zcttLUmvO%2ZoKEtLi&1lPOE6DpdDFy|1oDzf;{`sF znI)luB`?|ugOF?-h5K836iWGaIOuFyqmCUGuG2MZ(LKmyr?%>MEQyfMC>P;K8)z|w z3q2l899Trs|9{g%+GNLBRic{82w#&;Et+dhUV8KY`SWLWCi$kF(;X$&URi`gOnE@H zPzr`&oM_iW<;vGL&YFbYCshi1X4e}!T_To@W613kinvRL2XC{W>ciXK2;}x;!K%~_ z61X~*`E1=>>DWV^4Qe();o(pIarTl&^EF2vXjk(a@D!b-RR01NB9qm-Dj8^+8A!w7 z3mWs>J)nBMYJD`GQM~rmY9#wCqrvolo~8?UP9V?!nMGBUxr`8Z{pwdu(M^5t5uPIO z^ZmE6MP@QlTi*Xd6LBKFy^map6Qp^tG2PEUT6;e)ZO6EqiO&%oDF%B*-5bE(iHE?a zyvdz8Uoy>>%?KXR^K66BbHI*ZGQO*<1pvv#SCVl5Otd9vEm@QyZ^$y*x4XZ6)(Z z@na97=9NDKHJMmRORmV91wxmDlc+MKcAlH)6$ZOHkdag{zXy;rDumGWgq$&Q$8x!0 zX^3F0gb|2b%S5cs-Sm4ZDr`RqxXmK4?lCfO;wT?RGhOzRk9hZHmA^KvC*P1FLCbco zBXWfo53h-bPlK>_1Lm%1N_(eHZ(KlCE88J*g}7yj*AS;)iicy}H7#9{Yp z++Tbs59};)=!B#}aMrFazuA>ympckAMM&F@eS1B-3C!0POmeDNy9u^P8X0KLgucm% z5n=&oHVhM|TI~OsbY7u)v#hS!mK0C?2ba z%;Ta|fXQY~vLmuk`!qiDt9jh&d!!E~%W=j}s&rUyC&ZTxrz)XH3MEN;?4GjKaP1go zUw3t$9@!EhZP;8Z!Xh;_D$Rgv@Ir%TQ{jSLgGV;aV-vPGr}nCvyy!Atb+`?UsWQK9 zi-IiK;TZmg*<-^iYDWOeHn#$}Em`)!ObXuuLQ8sVMqlX(w(TD*-#~>atQz8U(-xgf zE&z5Ej@MHA$P(bBdosdR{O8etwDBmyc(ccn5@y#;V%JAXJ=<6r*d#lYPH_gYKB5!P z-Ir#2tV+*%o@n>W+Lk+{1tD7Tlian-uVjp7ZZ|f3t@y@p)h$l;OtO{)c3>9^sjAz~ zQ3FYl3N2|+^YAiNx7cw*wn976yG}so>1wq2YHp>1ohR0P22&3;U6y1;Fb%X*-b!NI zf*|dN8gzuI@O984U|3D+W1p|Nkr{HbFC8P`DNdLtTL-EM zavyLIm@87aFJO*Vi4Y;BTEVCXnCPlcwCD=ZD>}CqK`e}rQ)lZB6UDusBah;qQ@IVm zg;P>j3pi+33}{2GzBDY22SDS$RZY^I8}in|7UqS^a_6nQx<7>@@)x>yL^vHC%-l3E^k_dX_V z6|=<$;$e>uq6KT9lCg=FpS2OGv*o}AItbB9Nqh3fcnB1d&~um~lGx~Bld^13tYr}U zhC1^*ZqLEc7^)+<)OU+kQi%6fxk+Q;v}LOl!jz2w4xAF*V$S8n+wzwFMfqjj*>%T{TML+*BGPi&h)ti4+M%- zAJyDrUbwFq)l-%2tbG?Q3O2(!8sZoh-*Cu1Szi-+eIcJm7VNBM@PVUpK(%<5ZLfI1 zTTjZ!yzB~kFVbWg*bucLpnLpfwDnBqzWz>kW_K6n<~-~KTW{&KPvISvFPvvZaI2{Y zZgvo>zVpoZkC+u#WFIetyFUqg|A#)o>tYeG^=zBj{>4*taF4mrh_L|pMV|f^e@vfM zKSCfGyv1j_W(DnVLY|=!?&XdYW5~NAYx)sJJ-lRR^q?8`ZKIhQ;OvTCn9c=u{F(b%))dCr*C=8dP zoccE>=hiOrecuH)xRy{H3+#of*>niOOEg*Jvk>26 zNcbN^Fnkp}hGIJ@+%`^2St^VbYbBfXyK8>Jkaf{rI|g#zNkfZh9So#WY$&DS>--~Q z=M;qw6?HwL|e;S}XhD<;7B((R$bO_mR8$1STU*db%y+1@^vi z*MF4bxov8R-V(L|HEvg_aI_xiD`8L_?jQhqZ!We6K+O=0sDvfMVh^}~@KWXa|89|S zawYi0QL(7C9sq9PbPB7LT>n~yIcexYn^SQdEu`PEiq}Rv)RV_f)sfm{&xSC}9lG|& zY(q*a?BIXK0Un3)#8?`f>`PUU55D#tZj(Ab53T~lK}CF=-#%7ClCP_RPmZF0f;==< zXjrqmjOa@c_0~q_K*P*{jMEX;F>UbO`q$#R;XD%7>_VTaZ z3`#4b1$)fIqJO)Nx4gQW<6=EedFBEA*>|Vcm-h$YAoWvw7|(3)bm6X{H(qB8Q<>_d zDcqiUm0C7rXsTXebDh;4A(9dU)k|HP1sTIWY%?~{VHJCuKY!w=Vfxhh%P0=gJ9h|6 zr1?<;b-_9yNA&wf=*&`qG~lGy@F{@-<+AHJCW z{fAX|nb&0}|2oqhV`h2Ben&!YLX9z{#aeMqC8jZ=z&|uLu#!=xJ90xXuGbg^TtJ<1 z%CyIZK1tZgttb&pmuKM=Z9dG~(@bIK1Z9OK#HIjfmeGOJy?sNE%)Xp4qckNi*lN!4 zePu?N4nwC?O%vq1Fk?P*ekOV6w+oP;>N{OuxzmKWSRRTAz|Uj}4})RVX+BCsWKpTp z7unBbPY#Zmrr4O^=zf{DOS0z>$RVH&wuVd{*(iO7&&x9a&}P+uh1v>oq{)I=c7Z}e zr(TZ#=@5ZP)i5+&poaGbNJ1sEnVQDp%!cW>Jaux?73>c5Jw9i6C6BNP3PnfLe^Hq} zMJv!`DdGY#|<>R zE`DYX4Wb7ihS;l1rqao{V`L%Jmt;?s(F7_Rvri=yq^P-FP$R>x&G;s`9CUyvSp?xxWWjo(m7S7^ef02hkERc5e_%R z63&HtHTqW~oHi^7F~98VMw!SS7I#{3O60uD#<;P&CzhAw^8AcG{Cvi6~euh2S}vD zrk&eLTe}o36~Nj3Ab%2S`($I+12a+44;DjP&<(B)}SDUz3>pG};e3VC!aN)z#M$`UZGjMjfoz>+~O1$+Z zE6nMf-Vc(r*qdz@m|HWZ2{#>+G&(&q(XaJ?@OHemKp%Cdavo_%2&sBv*pNKpJFU;v zC-gg;K zl#lMH0dsano)qE}YfDcD&;X(ka?`Sn@JqY%#p+i8GSJ;7*@alOXAL>^lY7gaKTk%O z56%o{C;x_>iB=#Ij%UtGhKCPHZHEo{x}6ze$pDIUPj7E+ldi>w`MH*82Jc%?Pi7bT zb`%>Id?^9F0|!r^p;f@ zObcN3B2MLznR-QikL;*5a&80ax{k?4jg2wNgyuPnWUJxVxheVw-zSWp>L(gQuYVU# z?UawkD4a)&GC?C^sonDCf#1_56%CqCz3I-$aayP4B{P%vtK?Cl9=@CWFSZcvfaeHg z`e`KIep;mOQ&KffMO|I2zNx(WO#Ffdj<-5_V?V`ZP`$dI{b=oT)W*EOaH8KChhM4U z1c7wP;gb3~h+-$RNr6&^d%(}p?^F+pM$E=0^&ddt@Rhgd1$-yJp9&^5?-_U=O!Fqb z9??al&BDDwbdyZ?HywLMV%cid%)PKHASe%C=pLV*C!@(5Rz|V+T`(=;)r|);F|~nF zzB6`QH}UnVA{%qpgL;eaSJ8YAGbY=braERbx$IP2Y;L;%&&Q*o^E91`5+62d6?=)A z&c)5<+64)wo_kB4CG*iv?GJDyY>0|69y?TY&8Y!RJVyVc+wgspDf697#r8n&2mgck zf)O(IN@+s~YPOI2vQ4SLl7QQ$WR4;y9C$^+zH)+bNe2ITdXY0MVqGF!&tx6*kHbPp z+u!R40TnkG)93eALyEc5{~d)6<>sJdzx@P2wt!61?$JNRAAWZ+g>jFZpg17}9~~7l zsJEp>_SL;azEl)#?NKqW)q1&Cmty!fZ->^C8@8yweJfh<3yslI8<=_`*Qp?E-v?tY z-v;;xB$m_8A8j^|y3{h4Ls5b+$R>jv7?}K9sMb1rPwPCKIH;ULL zL1Q%|dEMV;mp%d!tm1Shlz+xF{4P=@+_mgDMMgOP32eQP09X-RGu znd1GM!>lx9cS=!9BV4Jm$JeUk2SnH)uiXKW81e|Q(5EH0KTPa$*(Uu8UE{&0qeKFo z3SEosN%h`I$n#dp%JL2R6u6=5o-)6@2N5I_CH32@t^Efm?3GuJ%l&XTXBE@0g?8JS z*Ddt>r<&G0E5JlJwIHZxaM^2IirA1@r8C_*8YfCnZ#eGl$fpiTKI{^m8O-y95^E(V z+_(|qC!(KtSFt}o2z2T8z0&kY)9r7J{}WHW)bu9zOScNoQoa@TRi38P9Q-`qWu_uk zTd--xSLtdTzwr7F!?B7{7jCM19>;@k9T5)S3J|Xf^iI=h+q@`9=KF_$ji{rJZQvW1QsF5*@e)I6_K9M9{6i(XF=9z|{FPLjcJv0^wF{P*C zvGjv~DHH`X6VYav3%f)H<+-PwAn({H`XEUAA;@mz?1YBinm$J)bt}yqH>X7lyh~=F zKWFv3Ve|Ukeof+sd~yh$%CO+5%gd^f8e9~RZ4Ed!U3vj|?58l|`PON!?dUcKCu;rV zwSN3svbOyM;TI?S^&A_wdC@EW(ulS6{WGG1T8Kt_ua<7Di`4E-KCf8hd`(8NTGnsH z`9o|?KVg!<)61=7LW61cn-zILhUnDmZ=r#nyC-`o3R-Du^{z#}C4E5nCr`^&Tyn|Z zMvJ<0{?DNcew(^haz0P9Q19LK{=%sMdOi)}#=paJuQ({dB+(Qn|~p$147qQ|x1xKBbpz0eKNh4JV|!CpS4fM>@;)cGm*n@4xu z-P9V?OzDlp8-U2fczdm(!)nNd>vi(oiBk9OugtY4`zJYd31VR>L5p`#9>ivSx|@8a zz+%^2w~;_I?~!}|Ir*)2H~&3*zx-qx=p8?fj|jq=e2PGsQl{2tlTdFY?<=WJWx!_I zl=OL=;euEe05S6<6EtQ3=$6r}e3f2|b10ECW}7MM>fn&}7vaC@=tewFLUnL><(qz< zgUIWRDJliB6iZ}Wgi%aRk+_4LrEXYcHctZs+ko*83YL3BO>+v36yiAzs(>-|C=mVoVfFhR0o6fp;IXLun zW+Z~<@yVG2?WI-@Kv$wxS;seMBcgv0BySB2&K;(F##5x(zdP-?=tp#j$^6M;Z1s~$wC^az zHnd{xFQ7gY)DS2?0Cm#%1M5j&H{qUtf50$yRYTwAQUKS|4*Kdrb(J9Tk{Yfl29FmG zEID>=_-_bNLde(2ctg)G;V*I8Rp`7UcqENCQ<_0dZ=43MkZYIohx`v}WqntMA#f>k z1Uz+PyH+>J4^E%M74kOX>ww3ZQ!C+7Eaxfd2fBo^RZNd{;e+UQ;ub+8KG2qr?+irJ zt>%5vo(9RuW^8J2-;F%;j1S%)zgS<98Bt6P;Y^d98NZq71t~?lAT+=>i&KjohD2n} zr$QV&eNnQ8&ZXQuDPLAM2aw$;rJVRvB5BIxSK+oK0;*@WLQ-4i%3zAx(b)@BTFffl zqy{<S`zWA(1k_TEh zlV)7L)XGrVnr0+6wSkMH)iI?)f~pgW(h6Ndud;RtPH)uS%3)>u6E=XwLim4nS{H>d z?5Ml_DwteL*H?gY3jgsbZSh}7!MD~Rn(AeQ;NZ6x7>Md;VsNHy5gz-tvuacf}tU^?0BpJaMZnv>dY=L9d|N0Q{eXc7NUV zFgF7x(+}ecI@$}dKZJaFPZ)LBc*E`e{}={8#vcEN#{u~~ao-0{E{vxh=^AmPu7VaE zyElGboKZr^*Ui(9IqGoqwBx}fX}YWYaZI<02Y=&@aegTOjS5Ki!L8t*-4dJp-^AoP z1~c{TDXZItuK`{=tOwNIjr)(pE7I)1JUHB)|B9!+3&?UE&VXHY=lo&Nl6;&b*qtG`$L=2iylEI+2${ho5LImg>6m4Q9DtXWS75#_w8 z&SN~WDE}-E(~Q5C^0=$md7@k*Y5eDlq@Bds1w3V6%Q|qwQXkK90w{qR$r24UWbVTp zWtK4;Y{5&7VhW4x3Ji~yJ*kO2Ohzc_KY`d z>)bXC#mGN0uK&#Ff70b%_~i9!;cpV|Ysg_zJC4wGkHH!(db?ZUm3#ff6Az}8*Gl`e z^4?bW#T~L;R8r(SZ*8+~*7-hKwVC>AP|w#eQ@--Aqwsd_!#}~lAfJ<9*}{xTY5$-pGau$KR|p;Kqx;ByFI@;n4=g)NqrtrMmchTVzChMArz z8oE=0yYr_ZDZWnKxr4P7HRj28?FB8Cm-aZWguA`dq(z&Oh~=ri-(*E;vrbYb>)W1WjoDdt zM&M*hYHto$o1GN04RR@G8-0(k`(A^*#15VQN2~8@2k+KdWtJbq<$p7gvOJ}Rx5@mj zLrM^Y+*!gC@n88Y3E$AR7xY^Ci=eT;uAqDglbrdw85bMl&5v2QosJ_ycdUY)LeW zR5@KzTiS9X!o!*}oYHZ+ab9FczDE-L>c0UPIcUD$blczhWjaCNdSH^-Fs1!ld$=i7UL9Q%X8 zB!RtD-r(%1_XRv#0B(Cw)!yKhm$*GY*1&Rc-Kh24(F?!-4psYjk9p1Im2mu@yySd( zpKhRYXFca3dt#BRbMHJ?JQqo1Y-CI4-0w}Ec!B@Ue#ougOzu(l&_g9{63IBu**Q1$+AQ(Uohn@$ z1mlmDPZE~z17C(&jAc&W9`@mT=@uL?x7HFzG+Vi=;yiaIfF@VZ;g&o*gF`m*A;)JL z&EU>h3NamxXA$O!hS??KXq$t_Xx5R_sCd}vma})inp;-{DK-PPf?9QH=p~Vg9G(eB zs#Y`#upD&aJ7Rp%$(*YykfafjrEf79{gZHc3T3h@>235=p2t(Eo6noZZwib6$tlc! zzC}##Pci`TVR99Y;n(DMOqX3^70|1f$t-OyTUoC&9+o10;aN~I=yOMK5N(1^(Kg=c zVl`*FvUyk=HovvWf|ucP2bdWCj&FS3`!(Mak->9riHJK?VR6*;jQ zs=X1wyU~||UoqH7qauM6rWtr3=`|gF>6p^?ulBBZs^%#jFZ$nDyi~o*9<9)C-}@Z> zM>~+n>6(E5{k

-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

XT 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


omuF3>lFO*(L{lL6~wuDWQxg+~S?*q;TWIrT5 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ª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�b{FdH@A_c1ppZz-j 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 >`ziv$cg=~)zA-2 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 literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/TradeManage.res b/盛纺贸易管理/TradeManage.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/U.dfm b/盛纺贸易管理/U.dfm new file mode 100644 index 0000000..d5244f9 --- /dev/null +++ b/盛纺贸易管理/U.dfm @@ -0,0 +1,202 @@ +object Form1: TForm1 + Left = 204 + Top = 180 + Width = 870 + Height = 500 + Caption = 'Form1' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 862 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_RCInspection.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton2: TToolButton + Left = 0 + Top = 0 + Caption = #20445#23384 + ImageIndex = 58 + end + object TBClose: TToolButton + Left = 59 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + end + end + object Panel1: TPanel + Left = 0 + Top = 30 + Width = 862 + Height = 41 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 52 + Height = 12 + Caption = #24067#21305#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object APID: TEdit + Left = 80 + Top = 10 + Width = 138 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 71 + Width = 862 + Height = 392 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_RCInspection.TextSHuangSe + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = DataLink_RCInspection.Default + Width = 144 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_RCInspection.Default + Width = 96 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Content = DataLink_RCInspection.Default + Width = 93 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_RCInspection.Default + Width = 93 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOTmp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 336 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 200 + end + object ADOCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 288 + Top = 40 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 528 + Top = 200 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 200 + end +end diff --git a/盛纺贸易管理/U.pas b/盛纺贸易管理/U.pas new file mode 100644 index 0000000..8a7ec6b --- /dev/null +++ b/盛纺贸易管理/U.pas @@ -0,0 +1,48 @@ +unit U; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, DBClient, ADODB, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, + ComCtrls, ToolWin; + +type + TForm1 = class(TForm) + ToolBar1: TToolBar; + ToolButton2: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + APID: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOTmp: TADOQuery; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +end. diff --git a/盛纺贸易管理/U_BanCpCkSaoM.dfm b/盛纺贸易管理/U_BanCpCkSaoM.dfm new file mode 100644 index 0000000..8ad197f --- /dev/null +++ b/盛纺贸易管理/U_BanCpCkSaoM.dfm @@ -0,0 +1,201 @@ +object frmBanCpCkSaoM: TfrmBanCpCkSaoM + Left = 241 + Top = 177 + Width = 870 + Height = 500 + Caption = #21322#25104#21697#20986#24211#25195#25551 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 16 + object cxGrid2: TcxGrid + Left = 0 + Top = 81 + Width = 862 + Height = 382 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 101 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 78 + end + object v1Column3: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column5: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Width = 112 + end + object v1Column2: TcxGridDBColumn + Caption = #20986#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v2Column5: TcxGridDBColumn + Caption = #20986#24211#20844#26020#25968 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 89 + end + object v2Column6: TcxGridDBColumn + Caption = #20986#24211#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 99 + end + object v1Column6: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Width = 60 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 862 + Height = 81 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 56 + Top = 40 + Width = 68 + Height = 16 + Caption = #25195#25551#20837#21475 + end + object XJID: TEdit + Left = 124 + Top = 37 + Width = 167 + Height = 24 + TabOrder = 0 + OnKeyPress = XJIDKeyPress + end + object Button1: TButton + Left = 309 + Top = 38 + Width = 75 + Height = 23 + Caption = #20986#24211 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 413 + Top = 38 + Width = 75 + Height = 23 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 728 + Top = 136 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 760 + Top = 136 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 792 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end +end diff --git a/盛纺贸易管理/U_BanCpCkSaoM.pas b/盛纺贸易管理/U_BanCpCkSaoM.pas new file mode 100644 index 0000000..5605058 --- /dev/null +++ b/盛纺贸易管理/U_BanCpCkSaoM.pas @@ -0,0 +1,253 @@ +unit U_BanCpCkSaoM; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid; + +type + TfrmBanCpCkSaoM = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + XJID: TEdit; + Label1: TLabel; + Button1: TButton; + v1Column5: TcxGridDBColumn; + Button2: TButton; + v1Column6: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure XJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button1Click(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure Button2Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmBanCpCkSaoM: TfrmBanCpCkSaoM; + +implementation +uses +U_DataLink,U_Fun ; + +{$R *.dfm} + +procedure TfrmBanCpCkSaoM.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBanCpCkSaoM.FormDestroy(Sender: TObject); +begin + frmBanCpCkSaoM:=nil; +end; +procedure TfrmBanCpCkSaoM.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,F.KCQty,F.KCKgQty,F.KCQtyUnit,KK.GangNo '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + Sql.add(' inner join WFB_MJJY D on A.MJId=D.MJId'); + sql.Add(' inner join JYOrder_Sub_AnPai KK on D.APID=KK.APID'); + sql.Add(' inner join CK_BanCP_KC F on A.CRID=F.CRID'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBanCpCkSaoM.FormShow(Sender: TObject); +begin + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + InitGrid(); +end; + +procedure TfrmBanCpCkSaoM.XJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from CK_BanCP_CR A '); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,F.KCQty,F.KCKgQty,F.KCQtyUnit,KK.GangNo '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + Sql.add(' inner join WFB_MJJY D on A.MJId=D.MJId'); + sql.Add(' inner join JYOrder_Sub_AnPai KK on D.APID=KK.APID'); + sql.Add(' inner join CK_BanCP_KC F on A.CRID=F.CRID'); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + sql.Add(' and KCQty>0 and A.CRType='''' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if CDS_Main.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + with CDS_Main do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('MPRTCodeName').Value:=ADOQueryTemp.fieldbyname('MPRTCodeName').Value; + FieldByName('PRTColor').Value:=ADOQueryTemp.fieldbyname('PRTColor').Value; + FieldByName('GangNo').Value:=ADOQueryTemp.fieldbyname('GangNo').Value; + FieldByName('CRID').Value:=ADOQueryTemp.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryCmd); + FieldByName('KGQty').Value:=ADOQueryTemp.fieldbyname('kCKGQty').Value; + FieldByName('Qty').Value:=ADOQueryTemp.fieldbyname('KCQty').Value; + FieldByName('QtyUnit').Value:=ADOQueryTemp.fieldbyname('KCQtyUnit').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + FieldByName('APID').Value:=ADOQueryTemp.fieldbyname('APID').Value; + Post; + end; + end else + begin + Application.MessageBox('˾Ѿ⣬ٴγ⣡','ʾ',0); + Exit; + end; + XJID.Text:=''; + end; +end; + +procedure TfrmBanCpCkSaoM.Button1Click(Sender: TObject); +var + maxno:string; +begin + if CDS_Main.IsEmpty then Exit; + XJID.SetFocus; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxno,'ZC','CK_BanCp_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_CR Set NowOutFlag=1 where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + SQL.Add(' and CRType='''' '); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCp_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=CDS_Main.fieldbyname('CRTime').Value; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; + FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + InitGrid(); + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmBanCpCkSaoM.Tv1DblClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + CDS_Main.Delete; +end; + +procedure TfrmBanCpCkSaoM.Button2Click(Sender: TObject); +begin + Close; + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); +end; + +end. diff --git a/盛纺贸易管理/U_BanCpHCSaoM.dfm b/盛纺贸易管理/U_BanCpHCSaoM.dfm new file mode 100644 index 0000000..2f75146 --- /dev/null +++ b/盛纺贸易管理/U_BanCpHCSaoM.dfm @@ -0,0 +1,212 @@ +object frmBanCpHCSaoM: TfrmBanCpHCSaoM + Left = 241 + Top = 177 + Width = 905 + Height = 504 + Caption = #21322#25104#21697#22238#20179#25195#25551 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 16 + object cxGrid2: TcxGrid + Left = 0 + Top = 81 + Width = 897 + Height = 386 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v2Column1: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 112 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v1Column3: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + end + object v1Column5: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 123 + end + object v1Column2: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 88 + end + object v2Column5: TcxGridDBColumn + Caption = #22238#20179#20844#26020#25968 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Width = 100 + end + object v2Column6: TcxGridDBColumn + Caption = #22238#20179#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column6: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + Options.Focusing = False + Width = 74 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 897 + Height = 81 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 56 + Top = 40 + Width = 68 + Height = 16 + Caption = #25195#25551#20837#21475 + end + object XJID: TEdit + Left = 124 + Top = 37 + Width = 167 + Height = 24 + TabOrder = 0 + OnKeyPress = XJIDKeyPress + end + object Button1: TButton + Left = 309 + Top = 38 + Width = 75 + Height = 23 + Caption = #22238#20179 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 421 + Top = 38 + Width = 75 + Height = 23 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 728 + Top = 136 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 760 + Top = 136 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 792 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + end + end +end diff --git a/盛纺贸易管理/U_BanCpHCSaoM.pas b/盛纺贸易管理/U_BanCpHCSaoM.pas new file mode 100644 index 0000000..a45dcc6 --- /dev/null +++ b/盛纺贸易管理/U_BanCpHCSaoM.pas @@ -0,0 +1,264 @@ +unit U_BanCpHCSaoM; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid; + +type + TfrmBanCpHCSaoM = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + XJID: TEdit; + Label1: TLabel; + Button1: TButton; + v1Column5: TcxGridDBColumn; + Button2: TButton; + v1Column6: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure XJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmBanCpHCSaoM: TfrmBanCpHCSaoM; + +implementation +uses +U_DataLink,U_Fun ; + +{$R *.dfm} + +procedure TfrmBanCpHCSaoM.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBanCpHCSaoM.FormDestroy(Sender: TObject); +begin + frmBanCpHCSaoM:=nil; +end; +procedure TfrmBanCpHCSaoM.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTMF,B.MPRTKZ '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBanCpHCSaoM.FormShow(Sender: TObject); +begin + ReadCxGrid('Ʒز',Tv1,'Ʒֿ'); + InitGrid(); +end; + +procedure TfrmBanCpHCSaoM.XJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from CK_BanCP_CR A '); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTMF,B.MPRTKZ,F.KCQty,F.KCKgQty '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' inner join CK_BanCP_KC F on A.CRID=F.CRID'); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + sql.Add(' and KCQty=0 and A.CRType='''' '); + Open; + end; + if ADOQueryTemp.IsEmpty=false then + begin + if CDS_Main.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + with CDS_Main do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('MPRTCodeName').Value:=ADOQueryTemp.fieldbyname('MPRTCodeName').Value; + FieldByName('PRTColor').Value:=ADOQueryTemp.fieldbyname('PRTColor').Value; + FieldByName('MPRTMF').Value:=ADOQueryTemp.fieldbyname('MPRTMF').Value; + FieldByName('MPRTKZ').Value:=ADOQueryTemp.fieldbyname('MPRTKZ').Value; + FieldByName('CRID').Value:=ADOQueryTemp.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryCmd); + FieldByName('KGQty').Value:=ADOQueryTemp.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=ADOQueryTemp.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=ADOQueryTemp.fieldbyname('QtyUnit').Value; + FieldByName('MainID').Value:=ADOQueryTemp.fieldbyname('MainID').Value; + FieldByName('SubID').Value:=ADOQueryTemp.fieldbyname('SubID').Value; + FieldByName('APID').Value:=ADOQueryTemp.fieldbyname('APID').Value; + FieldByName('CPType').Value:=ADOQueryTemp.fieldbyname('CPType').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + Post; + end; + end else + begin + Application.MessageBox('˾ڲֿУز֣','ʾ',0); + Exit; + end; + XJID.Text:=''; + end; +end; + +procedure TfrmBanCpHCSaoM.Button1Click(Sender: TObject); +var + maxno:string; +begin + if CDS_Main.IsEmpty then Exit; + if CDS_Main.Locate('KgQty',0,[]) then + begin + Application.MessageBox('زֹΪ0','ʾ',0); + Exit; + end; + if CDS_Main.Locate('Qty',0,[]) then + begin + Application.MessageBox('زֳȲΪ0','ʾ',0); + Exit; + end; + if CDS_Main.Locate('KgQty',null,[]) then + begin + Application.MessageBox('زֹΪգ','ʾ',0); + Exit; + end; + if CDS_Main.Locate('Qty',null,[]) then + begin + Application.MessageBox('زֳȲΪգ','ʾ',0); + Exit; + end; + XJID.SetFocus; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxno,'HC','CK_BanCp_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCp_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=CDS_Main.fieldbyname('CRTime').Value; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MainID').Value:=CDS_Main.fieldbyname('MainID').Value; + FieldByName('SubID').Value:=CDS_Main.fieldbyname('SubID').Value; + FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; + FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:='ز'; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update CK_BanCp_KC set KCKgQty='+cds_main.fieldbyname('KgQty').AsString); + SQL.Add(',KCQty='+cds_main.fieldbyname('Qty').AsString); + sql.Add(' where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + InitGrid(); + Application.MessageBox('زֳɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ز쳣','ʾ',0); + end; +end; + +procedure TfrmBanCpHCSaoM.Button2Click(Sender: TObject); +begin + Close; + WriteCxGrid('Ʒز',Tv1,'Ʒֿ'); +end; + +end. diff --git a/盛纺贸易管理/U_BangAdd.dfm b/盛纺贸易管理/U_BangAdd.dfm new file mode 100644 index 0000000..02e9c95 --- /dev/null +++ b/盛纺贸易管理/U_BangAdd.dfm @@ -0,0 +1,255 @@ +object frmBangAdd: TfrmBangAdd + Left = 232 + Top = 185 + Width = 703 + Height = 396 + Caption = #26816#39564#31216#37325 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Label1: TLabel + Left = 193 + Top = 79 + Width = 52 + Height = 12 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 392 + Top = 77 + Width = 9 + Height = 16 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 193 + Top = 115 + Width = 54 + Height = 12 + Caption = #31216' '#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 387 + Top = 115 + Width = 15 + Height = 14 + Caption = #30917 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 193 + Top = 147 + Width = 54 + Height = 12 + Caption = #32440' '#31649 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 387 + Top = 147 + Width = 15 + Height = 14 + Caption = #30917 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 193 + Top = 179 + Width = 54 + Height = 12 + Caption = #33014' '#24102 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 387 + Top = 179 + Width = 15 + Height = 14 + Caption = #30917 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MJID: TEdit + Left = 248 + Top = 73 + Width = 138 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object Button1: TButton + Left = 193 + Top = 232 + Width = 57 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + OnKeyPress = Button1KeyPress + end + object Button2: TButton + Left = 343 + Top = 232 + Width = 60 + Height = 25 + Caption = #36864#20986 + TabOrder = 2 + OnClick = Button2Click + end + object Edit1: TEdit + Left = 248 + Top = 109 + Width = 136 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 3 + OnKeyPress = MJIDKeyPress + end + object CheckBox1: TCheckBox + Left = 248 + Top = 44 + Width = 97 + Height = 17 + Caption = #33258#21160#35835#21462 + Checked = True + State = cbChecked + TabOrder = 4 + OnClick = CheckBox1Click + end + object Edit2: TEdit + Left = 248 + Top = 141 + Width = 136 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 5 + OnKeyPress = MJIDKeyPress + end + object Edit3: TEdit + Left = 248 + Top = 173 + Width = 136 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 6 + OnKeyPress = MJIDKeyPress + end + object ADOCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 608 + Top = 144 + end + object ADOTmp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 608 + Top = 200 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 560 + Top = 200 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 536 + Top = 144 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 512 + Top = 184 + end +end diff --git a/盛纺贸易管理/U_BangAdd.pas b/盛纺贸易管理/U_BangAdd.pas new file mode 100644 index 0000000..d6c043b --- /dev/null +++ b/盛纺贸易管理/U_BangAdd.pas @@ -0,0 +1,308 @@ +unit U_BangAdd; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, DB, ADODB,OleCtrls, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport; + function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer;IsMessage:integer):integer;stdcall;external 'ELERS323C.DLL'; + function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'ELERS323C.DLL'; + +type + TfrmBangAdd = class(TForm) + Label1: TLabel; + MJID: TEdit; + Label2: TLabel; + Button1: TButton; + Button2: TButton; + Edit1: TEdit; + ADOCmd: TADOQuery; + ADOTmp: TADOQuery; + Label3: TLabel; + Label4: TLabel; + CheckBox1: TCheckBox; + RM2: TRMGridReport; + RMDB_Main: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + Label5: TLabel; + Label6: TLabel; + Edit2: TEdit; + Label7: TLabel; + Label8: TLabel; + Edit3: TEdit; + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure FormDestroy(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure Button1KeyPress(Sender: TObject; var Key: Char); + private + { Private declarations } + procedure On1201(Var Message:Tmessage);Message 1201; + procedure PrintData(); + public + { Public declarations } + end; + +var + frmBangAdd: TfrmBangAdd; + +implementation + +{$R *.dfm} +procedure TfrmBangAdd.On1201(Var Message:Tmessage); +var + i1,i2:integer; + unitname:string; + fdata:double; +begin + i1:=message.WParam; + i2:=message.LParam; + + Edit1.Text:= floattostr(i1 *i2 /100000 ); +end; + +procedure TfrmBangAdd.MJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(MJID.Text)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + Label2.Visible:=True; + Label2.Caption:=Trim(ADOTmp.fieldbyname('MJID').AsString); + end else + begin + MJID.Text:=''; + Label2.Visible:=False; + Label2.Caption:=''; + Application.MessageBox('!','ʾ',0); + Exit; + end; + MJID.Text:=''; + Button1.SetFocus; + end; +end; + +procedure TfrmBangAdd.FormDestroy(Sender: TObject); +begin + frmBangAdd:=nil; +end; + +procedure TfrmBangAdd.Button1Click(Sender: TObject); +var + FZG,FJD:string; + FFreal,FMJMaoZ:Double; +begin + if Label2.Caption='' then + begin + Application.MessageBox('δɨ!','ʾ',0); + Exit; + end; + if Trim(Edit1.Text)='' then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where MJID='''+Trim(Label2.Caption)+''''); + Open; + end; + if ADOTmp.FieldByName('MJMaoZ').AsFloat>0 then + begin + if Application.MessageBox('ѳأȷҪ³','ʾ',32+4)<>IDYES then Exit; + end; + if Trim(Edit2.Text)<>'' then + begin + if TryStrToFloat(Edit2.Text,FFreal)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end else + begin + FZG:=Edit2.Text; + end; + end else + begin + FZG:='0'; + end; + if Trim(Edit3.Text)<>'' then + begin + if TryStrToFloat(Edit3.Text,FFreal)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end else + begin + FJD:=Edit3.Text; + end; + end else + begin + FJD:='0'; + end; + FMJMaoZ:=StrToFloat(Edit1.Text)-StrToFloat(FZG); + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJMaoZ='+Trim(Floattostr(FMJMaoZ))); + sql.add(',MJQty1='+Trim(Edit1.Text)); + sql.add(',MJQty2='+Trim(FZG)); + sql.add(',MJQty3='+Trim(FJD)); + SQL.Add(' where MJID='''+Trim(Label2.Caption)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + PrintData(); + Label2.Caption:=''; + Label2.Visible:=False; + MJID.SetFocus; + //Application.MessageBox('ɹ!','ʾ',0); + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; +end; +procedure TfrmBangAdd.PrintData(); +var + fPrintFile,LabInt,LabName:String; +begin + with ADOTmp do + begin + Close; + SQL.Clear; + sql.Add(' select C.SLbInt,C.SLbName from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub_AnPai B on A.APID=B.APID'); + sql.Add(' inner join JYOrder_Sub C on B.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(Label2.Caption)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + LabInt:=ADOTmp.fieldbyname('SLbInt').AsString; + LabName:=ADOTmp.fieldbyname('SLbName').AsString; + end ; + if Trim(LabName)='' then + begin + Application.MessageBox('ǩδã','ʾ',0); + Exit; + end; + { try + frmLabelPrint:=TfrmLabelPrint.Create(Application); + with frmLabelPrint do + begin + fLabelId:=LabInt; + FFCDFlag:=Trim(CDFlag); + fKeyNo:=Trim(FXJID); + fIsPreviewPrint:=True; + frmLabelPrint.Button1.Click; + // if ShowModal=1 then + //begin + + // end; + end; + finally + frmLabelPrint.Free; + end; } + with ADOQueryPrint do + begin + Close; + sql.Clear; + SQL.Add('select D.OrderNo,C.PRTColor,C.PRTKZ,C.PRTType,D.OrdDefStr2,D.OrdDefStr3,D.OrdDefStr7,B.AOrdDefNote30,A.MJXH,B.GangNo'); + SQL.Add(',C.PRTMF,C.SOrddefstr3,C.SOrddefstr5,D.DlyDate,D.DLyPlace,A.MJMaoZ,B.AOrdDefNote31,C.SOrddefstr4,'); + SQL.Add('ColorEngName=(select top 1 Note from KH_Zdy E where E.ZdyName=C.PRTColor and E.Type=''OrdColor'' ),'); + {SQL.Add('MJBang=Cast((A.MJMaoZ*2.2046) as decimal(18,2)),'); + SQL.Add('MJMaoZBang=Cast(((A.MJQty1+A.MJQty3)*2.2046) as decimal(18,2)),'); + SQL.Add('MAQty=Cast((A.MJMaoZ*100*1000/(A.MJSJKZ*(A.MJFK*2.54))*0.9144) as decimal(18,2) ),'); + SQL.Add('MQty=Cast((A.MJMaoZ*100*1000/(A.MJSJKZ*(A.MJFK*2.54))) as decimal(18,2) ),'); + SQL.Add('MaoZ=A.MJQty1+A.MJQty3,'); + SQL.Add('JingZ=A.MJQty1-A.MJQty2'); } + SQL.Add('MJBang=A.MJMaoZ,'); + SQL.Add('MJMaoZBang=A.MJQty1+A.MJQty3,'); + SQL.Add('MAQty=Cast((A.MJMaoZ*0.4536*100*1000/(A.MJSJKZ*(A.MJFK*2.54))*0.9144) as decimal(18,2) ),'); + SQL.Add('MQty=Cast((A.MJMaoZ*0.4536*100*1000/(A.MJSJKZ*(A.MJFK*2.54))) as decimal(18,2) ),'); + SQL.Add('MaoZ=Cast((A.MJQty1+A.MJQty3)*0.4536 as decimal(18,2)),'); + SQL.Add('JingZ=Cast((A.MJQty1-A.MJQty2)*0.4536 as decimal(18,2))'); + SQL.Add('from WFB_MJJY A inner join JYOrder_Sub_AnPai B on A.APID=B.APID'); + SQL.Add('inner join JYOrder_Sub C on B.SubId=C.SubId'); + SQL.Add('inner join JYOrder_Main D on C.MainId=D.Mainid'); + SQL.Add('where A.MJID='''+Trim(Label2.Caption)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + Rm2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmBangAdd.Button2Click(Sender: TObject); +begin + Close; +end; + +procedure TfrmBangAdd.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; + if CheckBox1.Checked=False then + CommClose(pchar('com1')); +end; + +procedure TfrmBangAdd.FormShow(Sender: TObject); +begin + if CommOpen(frmBangAdd.Handle,pchar('com1'),500,1)<1 then + begin + showmessage('ڴʧ!'); + end + else + begin + end; +end; + +procedure TfrmBangAdd.CheckBox1Click(Sender: TObject); +begin + if CheckBox1.Checked=True then + begin + if CommOpen(frmBangAdd.Handle,pchar('com1'),500,1)<1 then + begin + showmessage('ڴʧ!'); + end + else + begin + end; + end else + begin + CommClose(pchar('com1')); + end; +end; + +procedure TfrmBangAdd.Button1KeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + Button1.Click; + end; +end; + +end. diff --git a/盛纺贸易管理/U_BefChkHX.dfm b/盛纺贸易管理/U_BefChkHX.dfm new file mode 100644 index 0000000..5c8dd00 --- /dev/null +++ b/盛纺贸易管理/U_BefChkHX.dfm @@ -0,0 +1,335 @@ +object frmBefChkHX: TfrmBefChkHX + Left = 213 + Top = 134 + Width = 870 + Height = 534 + Caption = #26816#21069#22238#20462 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 854 + Height = 73 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object orderno: TLabel + Left = 48 + Top = 24 + Width = 63 + Height = 16 + Caption = 'orderno' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PRTColor: TLabel + Left = 168 + Top = 24 + Width = 72 + Height = 16 + Caption = 'PRTColor' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object FirstName: TLabel + Left = 296 + Top = 24 + Width = 81 + Height = 16 + Caption = 'FirstName' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PBFactory: TLabel + Left = 464 + Top = 24 + Width = 81 + Height = 16 + Caption = 'PBFactory' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 854 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton2: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 111 + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 189 + Top = 0 + Caption = #25171#21360 + ImageIndex = 12 + OnClick = ToolButton5Click + end + object ToolButton1: TToolButton + Left = 248 + Top = 0 + Caption = #20851#38381 + ImageIndex = 55 + OnClick = ToolButton1Click + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 105 + Width = 854 + Height = 390 + Align = alClient + TabOrder = 2 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + Column = V2Column1 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V2Column1 + end + item + Kind = skSum + Column = V2Column7 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V2Column2: TcxGridDBColumn + Tag = 2 + Caption = #22238#20462#26102#38388 + DataBinding.FieldName = 'HXDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 96 + end + object V2Column8: TcxGridDBColumn + Tag = 2 + Caption = #26579#21378 + DataBinding.FieldName = 'HXFactory' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 84 + end + object V2Column7: TcxGridDBColumn + Tag = 2 + Caption = #21305#25968#37327 + DataBinding.FieldName = 'HXPS' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object V2Column1: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'HXQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 69 + end + object V2Column9: TcxGridDBColumn + Tag = 2 + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object V2Column5: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'HXUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 74 + end + object V2Column6: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'HXNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 123 + end + object V2Column4: TcxGridDBColumn + Tag = 2 + Caption = #31867#22411 + DataBinding.FieldName = 'HXType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 71 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 8 + end + object ADOQuery2: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 512 + Top = 8 + end + object ADOQuery3: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 440 + Top = 8 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 448 + Top = 216 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 480 + Top = 224 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 312 + Top = 256 + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 416 + Top = 160 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 464 + Top = 168 + ReportData = {} + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 392 + Top = 288 + end +end diff --git a/盛纺贸易管理/U_BefChkHX.pas b/盛纺贸易管理/U_BefChkHX.pas new file mode 100644 index 0000000..9c10c5b --- /dev/null +++ b/盛纺贸易管理/U_BefChkHX.pas @@ -0,0 +1,256 @@ +unit U_BefChkHX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxButtonEdit, + cxTextEdit, StdCtrls, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, ComCtrls, ToolWin, ExtCtrls, cxDropDownEdit, + DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common, + RM_Class, RM_GridReport, RM_System, RM_Dataset; + +type + TfrmBefChkHX = class(TForm) + Panel1: TPanel; + ToolBar2: TToolBar; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + V2Column2: TcxGridDBColumn; + V2Column8: TcxGridDBColumn; + V2Column7: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + V2Column5: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + orderno: TLabel; + PRTColor: TLabel; + FirstName: TLabel; + PBFactory: TLabel; + ADOQuery1: TADOQuery; + ADOQuery2: TADOQuery; + ADOQuery3: TADOQuery; + ClientDataSet1: TClientDataSet; + DataSource1: TDataSource; + ToolButton1: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + V2Column4: TcxGridDBColumn; + V2Column9: TcxGridDBColumn; + ToolButton5: TToolButton; + RMDBMain: TRMDBDataSet; + RM1: TRMGridReport; + CDS_PRT: TClientDataSet; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + FLLID,HXUnit:String; + end; + +var + frmBefChkHX: TfrmBefChkHX; + +implementation +uses +U_DataLink,U_Fun; + +{$R *.dfm} + +procedure TfrmBefChkHX.FormDestroy(Sender: TObject); +begin + frmBefChkHX:=nil; +end; + +procedure TfrmBefChkHX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBefChkHX.ToolButton2Click(Sender: TObject); +begin + with ClientDataSet1 do + begin + Append; + FieldByName('HXFactory').Value:=Trim(FirstName.Caption); + FieldByName('HXDate').Value:=SGetServerDate(ADOQuery2); + FieldByName('HXType').Value:='ǰ'; + FieldByName('HXUnit').Value:=Trim(HXUnit); + Post; + end; +end; + +procedure TfrmBefChkHX.ToolButton3Click(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then Exit; + if Trim(ClientDataSet1.fieldbyname('HXType').AsString)<>'ǰ' then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQuery3 do + begin + Close; + SQL.Clear; + SQL.Add('delete Contract_Cloth_BefChkHX where HXID='''+Trim(ClientDataSet1.fieldbyname('HXID').AsString)+''''); + sql.Add('Update Contract_Cloth_LL Set HXPS=(select isnull(sum(HXPS),0) from Contract_Cloth_BefChkHX A where A.LLID='''+Trim(FLLID)+''')'); + sql.Add(',HXQty=(select isnull(sum(HXQty),0) from Contract_Cloth_BefChkHX A where A.LLID='''+Trim(FLLID)+''')'); + sql.Add(',HXMQty=(select isnull(sum(HXMQty),0) from Contract_Cloth_BefChkHX A where A.LLID='''+Trim(FLLID)+''')'); + sql.Add(',HXUnit=(select Top 1 HXUnit from Contract_Cloth_BefChkHX A where A.LLID='''+Trim(FLLID)+''')'); + sql.Add(' where LLID='''+Trim(FLLID)+''''); + ExecSQL; + end; + ClientDataSet1.Delete; + +end; + +procedure TfrmBefChkHX.ToolButton4Click(Sender: TObject); +var + maxno:string; + FSubId:String; +begin + try + ADOQuery3.Connection.BeginTrans; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if Trim(ClientDataSet1.fieldbyname('HXType').AsString)='ǰ' then + begin + if Trim(ClientDataSet1.fieldbyname('HXID').AsString)='' then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where LLID='''+Trim(FLLID)+''''); + Open; + end; + FSubId:=Trim(ADOQuery1.fieldbyname('OrdSubId').AsString); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where Subid='''+Trim(FSubId)+''''); + // sql.Add(' and GangNo='''+Trim(ClientDataSet1.fieldbyname('GangNo').AsString)+''''); + Open; + end; + if ADOQuery1.IsEmpty then + begin + ADOQuery3.Connection.RollbackTrans; + Application.MessageBox('δزֲܱ!','ʾ',0); + Exit; + end; + end; + + if Trim(ClientDataSet1.fieldbyname('HXID').AsString)='' then + begin + if GetLSNo(ADOQuery3,maxno,'HX','Contract_Cloth_BefChkHX',2,1)=False then + begin + ADOQuery3.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('HXID').AsString); + end; + with ADOQuery3 do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_BefChkHX where HXID='''+Trim(ClientDataSet1.fieldbyname('HXID').AsString)+''''); + Open; + end; + with ADOQuery3 do + begin + if Trim(ClientDataSet1.fieldbyname('HXID').AsString)='' then + Append + else + Edit; + FieldByName('LLID').Value:=Trim(FLLID); + FieldByName('HXID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOQuery3,TV2,ClientDataSet1,'Contract_Cloth_BefChkHX',2); + Post; + end; + end; + Next; + end; + end; + with ADOQuery3 do + begin + Close; + SQL.Clear; + SQL.Add('Update Contract_Cloth_BefChkHX Set HXMQty=HXQty*ZSXS where LLID='''+Trim(FLLID)+''''); + sql.Add('Update Contract_Cloth_LL Set HXPS=(select sum(HXPS) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXQty=(select sum(HXQty) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXMQty=(select sum(HXMQty) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXUnit=(select Top 1 HXUnit from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(' where LLID='''+Trim(FLLID)+''''); + ExecSQL; + end; + ADOQuery3.Connection.CommitTrans; + Application.MessageBox('ɹ!','ʾ',0); + Exit; + except + ADOQuery3.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBefChkHX.ToolButton1Click(Sender: TObject); +begin + Close; + WriteCxGrid('ǰ',TV2,'زֹ'); +end; + +procedure TfrmBefChkHX.FormShow(Sender: TObject); +begin + ReadCxGrid('ǰ',TV2,'زֹ'); +end; + +procedure TfrmBefChkHX.ToolButton5Click(Sender: TObject); +var + fPrintFile:string; +begin + if ClientDataSet1.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\޵.rmf' ; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.*,C.PRTColor,D.MPRTCodeName,D.MPRTSpec,D.OrderNo from Contract_Cloth_BefChkHX A'); + sql.Add(' inner join Contract_Cloth_LL B on A.LLID=B.LLID'); + sql.Add(' inner join JYOrder_Sub C on B.OrdSubId=C.SubID'); + sql.Add(' inner join JYOrder_Main D on C.MainId=D.MainId'); + sql.Add(' where A.HXID='''+Trim(ClientDataSet1.fieldbyname('HXID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_PRT); + SInitCDSData20(ADOQuery1,CDS_PRT); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + RMVariables['DYFiller']:=Trim(DName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\޵.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CKJYList.dfm b/盛纺贸易管理/U_CKJYList.dfm new file mode 100644 index 0000000..1c2ba26 --- /dev/null +++ b/盛纺贸易管理/U_CKJYList.dfm @@ -0,0 +1,612 @@ +object frmCKJYList: TfrmCKJYList + Left = 128 + Top = 152 + Width = 1199 + Height = 547 + Caption = #25104#21697#20986#24211#27719#24635#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1183 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1183 + Height = 44 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 6 + Height = 12 + Caption = '-' + end + object Label8: TLabel + Left = 211 + Top = 100 + Width = 48 + Height = 12 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 380 + Top = 108 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 624 + Top = 84 + Width = 48 + Height = 12 + Caption = #31867' '#22411 + end + object Label10: TLabel + Left = 496 + Top = 40 + Width = 6 + Height = 12 + end + object Label11: TLabel + Left = 488 + Top = 80 + Width = 36 + Height = 12 + Caption = #19994#21153#21592 + end + object Label12: TLabel + Left = 488 + Top = 104 + Width = 36 + Height = 12 + Caption = #36319#21333#21592 + end + object Label5: TLabel + Left = 292 + Top = 12 + Width = 48 + Height = 12 + Caption = #35746' '#21333' '#21495 + end + object Label3: TLabel + Left = 439 + Top = 12 + Width = 48 + Height = 12 + Caption = #20013#25991#21517#31216 + end + object Label6: TLabel + Left = 752 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label13: TLabel + Left = 600 + Top = 12 + Width = 48 + Height = 12 + Caption = #21592#24037#21517#31216 + end + object Label4: TLabel + Left = 876 + Top = 12 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label15: TLabel + Left = 1028 + Top = 12 + Width = 18 + Height = 12 + Caption = 'PO#' + end + object BegDate: TDateTimePicker + Left = 73 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object MPRTKZ: TEdit + Tag = 2 + Left = 260 + Top = 96 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 404 + Top = 104 + Width = 65 + Height = 20 + TabOrder = 3 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 675 + Top = 80 + Width = 68 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 4 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object YWY: TEdit + Tag = 2 + Left = 526 + Top = 76 + Width = 65 + Height = 20 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 526 + Top = 100 + Width = 65 + Height = 20 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object orderNo: TEdit + Tag = 2 + Left = 342 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 7 + OnChange = MPRTCodeNameChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 492 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 8 + OnChange = MPRTCodeNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 778 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 9 + OnChange = MPRTCodeNameChange + end + object filler: TEdit + Tag = 2 + Left = 650 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 10 + OnChange = MPRTCodeNameChange + end + object conNo: TEdit + Tag = 2 + Left = 918 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 11 + OnChange = MPRTCodeNameChange + end + object KHCONNO: TEdit + Tag = 2 + Left = 1050 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 12 + OnChange = MPRTCodeNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 97 + Width = 1183 + Height = 412 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column12 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column3: TcxGridDBColumn + Caption = #26816#39564#26085#26399 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 142 + end + object v1Column2: TcxGridDBColumn + Caption = #21592#24037#21517#31216 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHCONNO' + HeaderAlignmentHorz = taCenter + Width = 94 + end + object v1Column5: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 110 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column6: TcxGridDBColumn + Caption = #21367#25968 + DataBinding.FieldName = 'JQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column7: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'MjTypeOther' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v2Column5: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column11: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 62 + Top = 139 + Width = 294 + Height = 213 + TabOrder = 4 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 77 + Width = 1183 + Height = 20 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 5 + Tabs.Strings = ( + #26410#20837#24211 + #24050#20837#24211 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 20 + ClientRectRight = 1183 + ClientRectTop = 19 + end + object MovePanel2: TMovePanel + Left = 408 + Top = 192 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + CommandTimeout = 60 + Parameters = <> + Left = 984 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 980 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end +end diff --git a/盛纺贸易管理/U_CKJYList.pas b/盛纺贸易管理/U_CKJYList.pas new file mode 100644 index 0000000..91fadda --- /dev/null +++ b/盛纺贸易管理/U_CKJYList.pas @@ -0,0 +1,289 @@ +unit U_CKJYList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxButtonEdit, + cxCalendar, cxPC; + +type + TfrmCKJYList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + MovePanel2: TMovePanel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + YWY: TEdit; + OrdPerson1: TEdit; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column3: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + orderNo: TEdit; + Label5: TLabel; + Label3: TLabel; + MPRTCodeName: TEdit; + Label6: TLabel; + PRTColor: TEdit; + Label13: TLabel; + filler: TEdit; + v1Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + conNo: TEdit; + Label4: TLabel; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column8: TcxGridDBColumn; + KHCONNO: TEdit; + Label15: TLabel; + cxTabControl1: TcxTabControl; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure PRTColorChange(Sender: TObject); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Image2Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + private + FLeft,FTop:Integer; + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKJYList: TfrmCKJYList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmCKJYList.FormDestroy(Sender: TObject); +begin + frmCKJYList:=nil; +end; + +procedure TfrmCKJYList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKJYList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKJYList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + Filtered:=False; + sql.Add('select convert(char(10),A.FillTime,120) as CRTime,A.Filler,A.mainID,A.MjTypeOther,C.OrderNo,C.MPRTCodeName,C.conNo,D.PrtColor,'); + sql.Add('count(A.MainId) as JQty,SUM(A.MJlen) as Qty,SUM(A.MJmaoZ) as KGQty,SUM(A.MJQty4) as MJQty4,'); + sql.Add('khconNO=(select top 1 khconNo from JYOrderCon_Main X where X.conNO=C.conNO)'); + sql.Add('from WFB_MJJY A '); + sql.Add('inner join JYOrder_Main C on C.MainId=A.MainId '); + sql.Add('inner join JYOrder_sub D on D.subID=A.subID '); + Sql.add('where A.FillTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + Sql.add('and A.FillTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + IF cxTabControl1.TabIndex=0 then + Sql.add('and not exists(select MJID from CK_BanCP_KC X where X.MJID=A.MJID) ') + else + IF cxTabControl1.TabIndex=1 then + Sql.add('and exists(select MJID from CK_BanCP_KC X where X.MJID=A.MJID) '); + Sql.add('group by convert(char(10),A.FillTime,120),A.Filler,A.mainID,A.MjTypeOther,C.OrderNo,C.MPRTCodeName,C.conNo,D.PrtColor'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKJYList.TBRafreshClick(Sender: TObject); +begin + //BegDate.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmCKJYList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKJYList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKJYList.FormShow(Sender: TObject); +begin + + ReadCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + if Trim(DParameters2)='' then + begin + //v1Column5.Options.Focusing:=True; + end else + begin + //v1Column5.Options.Focusing:=False; + end; + //InitGrid(); +end; + +procedure TfrmCKJYList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmCKJYList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKJYList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKJYList.v1Column5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SOrdDefStr10'; + flagname:='ŵص'; + if ShowModal=1 then + begin + with CDS_Main do + begin + Edit; + FieldByName('SOrdDefStr10').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Sub Set SOrdDefStr10='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + sql.Add(' where SubId='''+Trim(Self.CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCKJYList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKJYList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmCKJYList.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; + application.ProcessMessages; +end; + +procedure TfrmCKJYList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmCKJYList.cxTabControl1Change(Sender: TObject); +begin + TBRafresh.Click; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductBCPHCList.dfm b/盛纺贸易管理/U_CKProductBCPHCList.dfm new file mode 100644 index 0000000..94ffdf8 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPHCList.dfm @@ -0,0 +1,390 @@ +object frmCKProductBCPHCList: TfrmCKProductBCPHCList + Left = 128 + Top = 152 + Width = 1027 + Height = 511 + Caption = #25104#21697#22238#20179#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1019 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1019 + Height = 72 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 357 + Top = 12 + Width = 48 + Height = 12 + Caption = #20013#25991#21517#31216 + end + object Label4: TLabel + Left = 526 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 64 + Top = 36 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label5: TLabel + Left = 178 + Top = 12 + Width = 48 + Height = 12 + Caption = #35746' '#21333' '#21495 + end + object Label6: TLabel + Left = 178 + Top = 36 + Width = 48 + Height = 12 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 357 + Top = 36 + Width = 48 + Height = 12 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 526 + Top = 36 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 648 + Top = 36 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 406 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = MPRTCodeNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 550 + Top = 9 + Width = 65 + Height = 20 + TabOrder = 1 + OnChange = MPRTCodeNameChange + end + object BegDate: TDateTimePicker + Left = 77 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + end + object EndDate: TDateTimePicker + Left = 77 + Top = 33 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object orderNo: TEdit + Tag = 2 + Left = 228 + Top = 9 + Width = 109 + Height = 20 + TabOrder = 4 + OnChange = MPRTCodeNameChange + end + object MJID: TEdit + Tag = 2 + Left = 228 + Top = 33 + Width = 109 + Height = 20 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 406 + Top = 33 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 550 + Top = 32 + Width = 65 + Height = 20 + TabOrder = 7 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 674 + Top = 32 + Width = 68 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 8 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + '') + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 105 + Width = 1019 + Height = 369 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 92 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v1Column8: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column6: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v1Column2: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Width = 107 + end + object v2Column5: TcxGridDBColumn + Caption = #22238#20179#20844#26020#25968 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + object v2Column6: TcxGridDBColumn + Caption = #22238#20179#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 85 + end + object v1Column7: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end +end diff --git a/盛纺贸易管理/U_CKProductBCPHCList.pas b/盛纺贸易管理/U_CKProductBCPHCList.pas new file mode 100644 index 0000000..35db25e --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPHCList.pas @@ -0,0 +1,182 @@ +unit U_CKProductBCPHCList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit; + +type + TfrmCKProductBCPHCList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + MPRTCodeName: TEdit; + PRTColor: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + Label5: TLabel; + orderNo: TEdit; + Label6: TLabel; + MJID: TEdit; + v1Column7: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + v1Column3: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductBCPHCList: TfrmCKProductBCPHCList; + +implementation +uses + U_DataLink,U_Fun; + +{$R *.dfm} + +procedure TfrmCKProductBCPHCList.FormDestroy(Sender: TObject); +begin + frmCKProductBCPHCList:=nil; +end; + +procedure TfrmCKProductBCPHCList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductBCPHCList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductBCPHCList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTMF,B.MPRTKZ'); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + Sql.add(' inner join WFB_MJJY D on A.MJId=D.MJId'); + sql.add('where A.CRTime>=:begdate and A.CRTime<:enddate'); + SQL.Add(' and CRType=''ز'' '); + Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductBCPHCList.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmCKProductBCPHCList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductBCPHCList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ֿزб',Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductBCPHCList.FormShow(Sender: TObject); +begin + + ReadCxGrid('ֿزб',Tv1,'Ʒֿ'); + + InitGrid(); +end; + +procedure TfrmCKProductBCPHCList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('زб',cxGrid2); +end; + +procedure TfrmCKProductBCPHCList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKProductBCPHCList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductBCPInList.dfm b/盛纺贸易管理/U_CKProductBCPInList.dfm new file mode 100644 index 0000000..172a75f --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPInList.dfm @@ -0,0 +1,1036 @@ +object frmCKProductBCPInList: TfrmCKProductBCPInList + Left = 191 + Top = 134 + Width = 1372 + Height = 693 + Caption = #25104#21697#20837#24211#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1356 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object ToolButton1: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #21333#21495#25764#38144#20837#24211 + ImageIndex = 4 + OnClick = ToolButton1Click + end + object TBRKCX: TToolButton + Left = 300 + Top = 0 + AutoSize = True + Caption = #25764#38144#20837#24211 + ImageIndex = 105 + Visible = False + OnClick = TBRKCXClick + end + object ToolButton2: TToolButton + Left = 387 + Top = 0 + AutoSize = True + Caption = #20316#24223 + ImageIndex = 17 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 450 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object TBBao: TToolButton + Left = 513 + Top = 0 + AutoSize = True + Caption = #21253#26465#30721#37325#25171 + ImageIndex = 60 + Visible = False + OnClick = TBBaoClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1356 + Height = 91 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 352 + Top = 13 + Width = 52 + Height = 13 + Caption = #20013#25991#21517#31216 + end + object Label4: TLabel + Left = 527 + Top = 13 + Width = 26 + Height = 13 + Caption = #39068#33394 + end + object Label1: TLabel + Left = 22 + Top = 13 + Width = 52 + Height = 13 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 61 + Top = 39 + Width = 13 + Height = 13 + Caption = #33267 + end + object Label5: TLabel + Left = 193 + Top = 13 + Width = 52 + Height = 13 + Caption = #25351#31034#21333#21495 + end + object Label6: TLabel + Left = 193 + Top = 39 + Width = 54 + Height = 13 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 352 + Top = 39 + Width = 54 + Height = 13 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 527 + Top = 39 + Width = 26 + Height = 13 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 661 + Top = 39 + Width = 26 + Height = 13 + Caption = #31867#22411 + end + object Label10: TLabel + Left = 661 + Top = 13 + Width = 26 + Height = 13 + Caption = #32568#21495 + end + object Label11: TLabel + Left = 782 + Top = 13 + Width = 54 + Height = 13 + Caption = #21367' '#21495 + end + object Label12: TLabel + Left = 782 + Top = 39 + Width = 52 + Height = 13 + Caption = #20837#24211#21333#21495 + end + object Label14: TLabel + Left = 193 + Top = 65 + Width = 53 + Height = 13 + Caption = #21512' '#21516' '#21495 + end + object Label15: TLabel + Left = 353 + Top = 65 + Width = 21 + Height = 13 + Caption = 'PO#' + end + object Label16: TLabel + Left = 514 + Top = 65 + Width = 39 + Height = 13 + Caption = #32568#26465#30721 + end + object Label17: TLabel + Left = 661 + Top = 65 + Width = 26 + Height = 13 + Caption = #27454#21495 + end + object Label18: TLabel + Left = 782 + Top = 65 + Width = 54 + Height = 13 + Caption = #22791' '#27880 + end + object Label19: TLabel + Left = 932 + Top = 13 + Width = 52 + Height = 13 + Caption = #26159#21542#25171#21253 + end + object Label20: TLabel + Left = 932 + Top = 39 + Width = 52 + Height = 13 + Caption = #33457#22411#33457#21495 + end + object Label21: TLabel + Left = 932 + Top = 65 + Width = 52 + Height = 13 + Caption = #39068#33394#33521#25991 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 405 + Top = 10 + Width = 98 + Height = 21 + TabOrder = 0 + OnChange = MPRTCodeNameChange + end + object BegDate: TDateTimePicker + Left = 75 + Top = 10 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 36 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + end + object orderNo: TEdit + Tag = 2 + Left = 247 + Top = 10 + Width = 98 + Height = 21 + TabOrder = 3 + OnChange = orderNoChange + OnKeyPress = orderNoKeyPress + end + object MJID: TEdit + Tag = 2 + Left = 247 + Top = 36 + Width = 98 + Height = 21 + TabOrder = 4 + OnChange = MPRTCodeNameChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 405 + Top = 36 + Width = 98 + Height = 21 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 555 + Top = 35 + Width = 86 + Height = 21 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 690 + Top = 35 + Width = 74 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 7 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '' + '') + end + object PRTColor: TComboBox + Tag = 2 + Left = 555 + Top = 9 + Width = 86 + Height = 21 + ItemHeight = 13 + TabOrder = 8 + OnChange = PRTColorChange + end + object AOrdDefStr1: TComboBox + Tag = 2 + Left = 690 + Top = 9 + Width = 75 + Height = 21 + ItemHeight = 13 + TabOrder = 9 + OnChange = AOrdDefStr1Change + end + object MJXHM: TEdit + Tag = 2 + Left = 835 + Top = 8 + Width = 71 + Height = 21 + TabOrder = 10 + OnChange = MPRTCodeNameChange + end + object RKOrdID: TEdit + Tag = 2 + Left = 834 + Top = 35 + Width = 71 + Height = 21 + TabOrder = 11 + OnChange = MPRTCodeNameChange + end + object KHConNo: TEdit + Tag = 2 + Left = 405 + Top = 62 + Width = 98 + Height = 21 + TabOrder = 12 + OnChange = MPRTCodeNameChange + end + object APID: TEdit + Tag = 2 + Left = 555 + Top = 62 + Width = 86 + Height = 21 + TabOrder = 13 + OnChange = MPRTCodeNameChange + end + object styleno: TEdit + Tag = 2 + Left = 690 + Top = 61 + Width = 73 + Height = 21 + TabOrder = 14 + OnChange = MPRTCodeNameChange + end + object CRNote: TEdit + Tag = 2 + Left = 834 + Top = 61 + Width = 71 + Height = 21 + TabOrder = 15 + OnChange = MPRTCodeNameChange + end + object ISbao: TComboBox + Tag = 2 + Left = 988 + Top = 9 + Width = 87 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 16 + OnChange = ISbaoChange + Items.Strings = ( + '' + '' + #24050#25171#21253 + #26410#25171#21253) + end + object PRTHX: TEdit + Tag = 2 + Left = 988 + Top = 35 + Width = 87 + Height = 21 + TabOrder = 17 + OnChange = MPRTCodeNameChange + end + object PRTColorEng: TEdit + Tag = 2 + Left = 988 + Top = 61 + Width = 87 + Height = 21 + TabOrder = 18 + OnChange = MPRTCodeNameChange + end + object ConNO: TEdit + Tag = 2 + Left = 247 + Top = 62 + Width = 98 + Height = 21 + TabOrder = 19 + OnChange = MPRTCodeNameChange + OnKeyPress = ConNOKeyPress + end + object CheckBox1: TCheckBox + Left = 36 + Top = 64 + Width = 105 + Height = 18 + Caption = #20840#36873 + TabOrder = 20 + OnClick = CheckBox1Click + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 124 + Width = 1356 + Height = 529 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + Column = v1Column5 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column16 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 40 + end + object v1RKOrdID: TcxGridDBColumn + Caption = #20837#24211#21333#21495 + DataBinding.FieldName = 'RKOrdID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column1: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1Column10: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 55 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object v1PRTColorEng: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'PRTColorEng' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 87 + end + object v1Column11: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column17: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'baoID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column8: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column6: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1Column21: TcxGridDBColumn + Caption = #32568#26465#30721 + DataBinding.FieldName = 'APID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = #24211#20301 + DataBinding.FieldName = 'RKPlace' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 54 + end + object v1Column5: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v1Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 63 + end + object v1CRTime: TcxGridDBColumn + Caption = #20837#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 107 + end + object v1Column16: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJqty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v2Column5: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v2Column6: TcxGridDBColumn + Caption = #20837#24211#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1Column7: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 83 + end + object v1Column19: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column20: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHconNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column22: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1styleno: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column23: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'KHName' + Visible = False + Width = 70 + end + object v1filltime: TcxGridDBColumn + Caption = #25805#20316#26085#26399 + DataBinding.FieldName = 'filltime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1CRNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CRNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 67 + Top = 151 + Width = 319 + Height = 230 + TabOrder = 3 + Visible = False + object Label13: TLabel + Left = 52 + Top = 95 + Width = 7 + Height = 13 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 317 + Height = 25 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + object Image2: TImage + Left = 291 + Top = 3 + Width = 24 + Height = 18 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 26 + Width = 317 + Height = 203 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object MovePanel2: TMovePanel + Left = 451 + Top = 252 + Width = 313 + Height = 53 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 973 + Top = 153 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 849 + Top = 153 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 758 + Top = 173 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 423 + Top = 168 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 472 + Top = 224 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 200 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 432 + Top = 224 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 600 + Top = 224 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 568 + Top = 224 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 512 + Top = 224 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain10 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 648 + Top = 168 + ReportData = {} + end + object RMDBMain10: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 592 + Top = 264 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 540 + Top = 223 + end + object RM3: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 454 + Top = 168 + ReportData = {} + end + object RMDBMX: TRMDBDataSet + Visible = True + DataSet = CDS_JuanPRT + Left = 384 + Top = 288 + end + object CDS_BaoNo: TClientDataSet + Aggregates = <> + Params = <> + Left = 600 + Top = 336 + end + object CDS_Juan: TClientDataSet + Aggregates = <> + Params = <> + Left = 632 + Top = 336 + end + object CDS_JuanPRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 664 + Top = 336 + end + object CDS_CX: TClientDataSet + Aggregates = <> + Params = <> + Left = 700 + Top = 336 + end + object CDS_BaoPRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 336 + end + object CDS_WXPTPrint: TClientDataSet + Aggregates = <> + Params = <> + Left = 736 + Top = 260 + end + object CDS_WXPT: TClientDataSet + Aggregates = <> + Params = <> + Left = 772 + Top = 260 + end + object RMDBWXPTPrint: TRMDBDataSet + Visible = True + DataSet = CDS_WXPTPrint + Left = 700 + Top = 260 + end + object RMDBPRT: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 472 + Top = 340 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 928 + Top = 153 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1013 + Top = 155 + end +end diff --git a/盛纺贸易管理/U_CKProductBCPInList.pas b/盛纺贸易管理/U_CKProductBCPInList.pas new file mode 100644 index 0000000..614d463 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPInList.pas @@ -0,0 +1,2088 @@ +unit U_CKProductBCPInList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, MovePanel; + +type + TfrmCKProductBCPInList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryMain: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + MPRTCodeName: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Label5: TLabel; + orderNo: TEdit; + Label6: TLabel; + MJID: TEdit; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1CRTime: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + Label10: TLabel; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + RMDBHZ: TRMDBDataSet; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + TBRKCX: TToolButton; + v1Column4: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + PRTColor: TComboBox; + v1Column12: TcxGridDBColumn; + v1RKOrdID: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + AOrdDefStr1: TComboBox; + v1Column16: TcxGridDBColumn; + TBBao: TToolButton; + RM2: TRMGridReport; + RMDBMain10: TRMDBDataSet; + ClientDataSet1: TClientDataSet; + RM3: TRMGridReport; + RMDBMX: TRMDBDataSet; + CDS_BaoNo: TClientDataSet; + CDS_Juan: TClientDataSet; + CDS_JuanPRT: TClientDataSet; + CDS_CX: TClientDataSet; + CDS_BaoPRT: TClientDataSet; + CDS_WXPTPrint: TClientDataSet; + CDS_WXPT: TClientDataSet; + RMDBWXPTPrint: TRMDBDataSet; + MJXHM: TEdit; + Label11: TLabel; + Label12: TLabel; + RKOrdID: TEdit; + Panel4: TPanel; + Label13: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column17: TcxGridDBColumn; + v1PRTColorEng: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + Label14: TLabel; + KHConNo: TEdit; + Label15: TLabel; + APID: TEdit; + Label16: TLabel; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1styleno: TcxGridDBColumn; + Label17: TLabel; + styleno: TEdit; + Label18: TLabel; + CRNote: TEdit; + Label19: TLabel; + ISbao: TComboBox; + RMDBPRT: TRMDBDataSet; + PRTHX: TEdit; + Label20: TLabel; + Label21: TLabel; + PRTColorEng: TEdit; + ConNO: TEdit; + v1Column23: TcxGridDBColumn; + v1CRNote: TcxGridDBColumn; + v1filltime: TcxGridDBColumn; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ToolButton1: TToolButton; + MovePanel2: TMovePanel; + CheckBox1: TCheckBox; + ToolButton2: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure orderNoChange(Sender: TObject); + procedure orderNoKeyPress(Sender: TObject; var Key: Char); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure TBRKCXClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure PRTColorChange(Sender: TObject); + procedure AOrdDefStr1Change(Sender: TObject); + procedure TBBaoClick(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ISbaoChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure ConNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton2Click(Sender: TObject); + + private + procedure InitGrid(); + procedure GetBaleData(); + procedure GetBaoData(); + procedure GetJuanData(); + procedure GetLotData(); + procedure Print_WXPT(); + function YSData(Order_Main10:TClientDataSet):Boolean; + function YFData(Order_Main10:TClientDataSet):Boolean; + { Private declarations } + public + FLeft,FTop:Integer; + + { Public declarations } + end; + +var + frmCKProductBCPInList: TfrmCKProductBCPInList; + +implementation +uses + U_DataLink,U_Fun,U_JYOrderCDOne_LR; + +{$R *.dfm} + +function TfrmCKProductBCPInList.YFData(Order_Main10:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryMain.fieldbyname('CRID').AsString; + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryMain do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryMain,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryMain do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('Subid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + //fieldbyname('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + //fieldbyname('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNo').AsString); + //fieldbyname('PBNote').Value:=trim(CRNote.Text); + //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; + //FieldByName('HuiLv').Value:=1; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 HuiLv from YF_Money_CR '); + sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.Add(' and CRType=''Ǽ'' '); + SQL.Add(' and YFDefFlag1=0'); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryMain.FieldByName('HuiLv').Value:=ADOQueryTemp.fieldbyname('HuiLv').Value; + end; + FieldByName('BZType').Value:=''; + fieldbyname('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ޽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'''); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + sql.add(') '); + + sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' where A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRType=''ӦǼ'''); + ExecSQL; + end; + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('Qty').Value=0 then + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + + +procedure TfrmCKProductBCPInList.FormDestroy(Sender: TObject); +begin + frmCKProductBCPInList:=nil; +end; + + +procedure TfrmCKProductBCPInList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductBCPInList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-1; + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); +end; + +procedure TfrmCKProductBCPInList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTSpec,C.prtkuanNo,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,A.MJXH,C.PRTHX'); + sql.Add(',G.customerNoName KHName,G.conNO,G.KHConNO,F.styleno,F.OrderUnit,A.*'); + sql.add(' from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' left join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add(' left join JYOrderCon_Sub F on A.ConID=F.Subid '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add(' where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); + sql.Add(' and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+''''); + SQL.Add(' and A.CRFlag='''' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally; + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductBCPInList.TBRafreshClick(Sender: TObject); +begin + ToolBar1.SetFocus; + InitGrid(); +end; + +procedure TfrmCKProductBCPInList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductBCPInList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('Ʒֿ',Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductBCPInList.FormShow(Sender: TObject); +begin + + ReadCxGrid('Ʒֿ',Tv1,'Ʒֿ'); + if Trim(DParameters2)='' then + begin + TBRKCX.Visible:=True; + ToolButton1.Visible:=true; + v1Column4.Visible:=true; + ToolButton2.Visible:=true; + end else + begin + TBRKCX.Visible:=false; + ToolButton1.Visible:=false; + v1Column4.Visible:=false; + ToolButton2.Visible:=false; + end; + //InitGrid(); +end; + +procedure TfrmCKProductBCPInList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmCKProductBCPInList.TBFindClick(Sender: TObject); +var + fsj,fwhere:String; +begin + if ADOQueryMain.Active=False then Exit; + + fwhere:=SGetFilters(Panel1,1,2); + fsj:=''; + if trim(ISbao.Text)='Ѵ' then + begin + fsj:=fsj+' baoNo>''0'' '; + end else + if trim(ISbao.Text)='δ' then + begin + fsj:=fsj+' baoNo='''' '; + end; + + IF trim(fsj)<>'' then + begin + IF fwhere='' then fwhere:=fsj + else fwhere:=fwhere+' and '+fsj; + end; + + SDofilter(ADOQueryMain,fwhere); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmCKProductBCPinList.Print_WXPT(); +var + j,z:Integer; + FGangNo,FHZ:String; +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD1 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('RKOrdID').AsString))); + sql.add(',@DName='+quotedstr(Trim(DCode))); + Open; + end; + SCreateCDS20(ADOQueryCmd,CDS_WXPT); + SInitCDSData20(ADOQueryCmd,CDS_WXPT); + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select MainId=Cast('''' as varchar(20)),SubId=Cast('''' as varchar(20)),PONO=Cast('''' as varchar(20)),InvNo=Cast('''' as varchar(20)),'); + sql.Add(' PRTColor=Cast('''' as varchar(20)),GangNo=Cast('''' as varchar(20)),BaoNo=Cast('''' as varchar(20)),MZQty=Cast(0 as decimal(18,2)),'); + sql.Add(' RollNo0=Cast('''' as varchar(20)),RollNo1=Cast('''' as varchar(20)),RollNo2=Cast('''' as varchar(20)),ITEM=Cast('''' as varchar(20)),'); + sql.Add(' LenQty0=Cast(0 as decimal(18,2)),LenQty1=Cast(0 as decimal(18,2)),LenQty2=Cast(0 as decimal(18,2)),'); + sql.Add(' KGQty0=Cast(0 as decimal(18,2)),KGQty1=Cast(0 as decimal(18,2)),KGQty2=Cast(0 as decimal(18,2)),'); + sql.Add(' MKGQty0=Cast(0 as decimal(18,2)),MKGQty1=Cast(0 as decimal(18,2)),MKGQty2=Cast(0 as decimal(18,2)),'); + sql.Add(' ZS0=Cast(0 as decimal(18,2)),Zs1=Cast(0 as decimal(18,2)),Zs2=Cast(0 as decimal(18,2)),'); + sql.add(' CRTime=cast(null as datetime),JQty=Cast(0 as decimal(18,2)),XH=Cast(0 as int),SumlenQty=Cast(0 as decimal(18,2)),SumRoll=Cast(0 as decimal(18,2)),'); + sql.Add(' SumRollGanNo=Cast(0 as decimal(18,2)),SumRollColor=Cast(0 as decimal(18,2)),SumZJ=Cast(0 as decimal(18,2)),'); + sql.add(' QtyUnit=cast('''' as varchar(20))'); + Open; + end; + SCreateCDS20(ADOQueryCmd,CDS_WXPTPrint); + SInitCDSData20(ADOQueryCmd,CDS_WXPTPrint); + if CDS_WXPTPrint.IsEmpty=False then + begin + CDS_WXPTPrint.Delete; + end; + j:=0;z:=0;FGangNo:=''; + CDS_WXPT.DisableControls; + CDS_WXPTPrint.DisableControls; + with CDS_WXPT do + begin + First; + while not Eof do + begin + with CDS_WXPTPrint do + begin + if CDS_WXPTPrint.IsEmpty then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('MZQty').Value:=CDS_WXPT.fieldbyname('KGQty').Value; + CDS_WXPTPrint.FieldByName('INVNO').Value:=CDS_WXPT.fieldbyname('orderno').Value; + CDS_WXPTPrint.FieldByName('GangNo').Value:=CDS_WXPT.fieldbyname('GangNo').Value; + CDS_WXPTPrint.FieldByName('BaoNo').Value:=CDS_WXPT.fieldbyname('BaoNo').Value; + CDS_WXPTPrint.FieldByName('PONO').Value:=CDS_WXPT.fieldbyname('PONO').Value; + CDS_WXPTPrint.FieldByName('QtyUnit').Value:=trim(CDS_WXPT.fieldbyname('QtyUnit').Asstring); + CDS_WXPTPrint.FieldByName('CRTime').Value:=CDS_WXPT.fieldbyname('CRTime').asdatetime; + CDS_WXPTPrint.FieldByName('PRTColor').Value:=CDS_WXPT.fieldbyname('PRTColor').Value; + CDS_WXPTPrint.FieldByName('XH').Value:=0; + CDS_WXPTPrint.FieldByName('LenQty0').Value:=CDS_WXPT.fieldbyname('qty').AsFloat; + CDS_WXPTPrint.FieldByName('Zs0').Value:=CDS_WXPT.fieldbyname('MjQty2').AsFloat; + CDS_WXPTPrint.FieldByName('RollNo0').Value:=CDS_WXPT.fieldbyname('RollNo').Value; + CDS_WXPTPrint.FieldByName('MKGQty0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('KGQty0').Value:=CDS_WXPT.fieldbyname('MJqty4').AsFloat; + CDS_WXPTPrint.FieldByName('Sumlenqty').Value:=CDS_WXPT.fieldbyname('Sumlenqty').AsFloat; + CDS_WXPTPrint.FieldByName('sumroll').Value:=CDS_WXPT.fieldbyname('sumroll').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollGanNo').Value:=CDS_WXPT.fieldbyname('SumRollGanNo').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollColor').Value:=CDS_WXPT.fieldbyname('SumRollColor').AsFloat; + CDS_WXPTPrint.FieldByName('SumZJ').Value:=CDS_WXPT.fieldbyname('SumZJ').AsFloat; + CDS_WXPTPrint.FieldByName('SubId').Value:=CDS_WXPT.fieldbyname('SubId').Value; + CDS_WXPTPrint.FieldByName('MainId').Value:=CDS_WXPT.fieldbyname('MainId').Value; + CDS_WXPTPrint.Post; + FHZ:=Trim(CDS_WXPT.fieldbyname('PRTColor').AsString)+Trim(CDS_WXPT.fieldbyname('Baono').AsString)+Trim(CDS_WXPT.fieldbyname('GangNo').AsString); + Z:=0; + j:=0; + end + else + begin + if (Trim(CDS_WXPT.fieldbyname('PRTColor').AsString)+Trim(CDS_WXPT.fieldbyname('Baono').AsString)+Trim(CDS_WXPT.fieldbyname('GangNo').AsString))<>FHZ then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('MZQty').Value:=trim(CDS_WXPT.fieldbyname('KGQty').Asstring); + CDS_WXPTPrint.FieldByName('INVNO').Value:=trim(CDS_WXPT.fieldbyname('orderno').Asstring); + CDS_WXPTPrint.FieldByName('GangNo').Value:=trim(CDS_WXPT.fieldbyname('GangNo').Asstring); + CDS_WXPTPrint.FieldByName('BaoNo').Value:=Trim(CDS_WXPT.fieldbyname('BaoNo').Asstring); + CDS_WXPTPrint.FieldByName('PONO').Value:=trim(CDS_WXPT.fieldbyname('PONO').Asstring); + CDS_WXPTPrint.FieldByName('QtyUnit').Value:=Trim(CDS_WXPT.fieldbyname('QtyUnit').Asstring); + CDS_WXPTPrint.FieldByName('CRTime').Value:=CDS_WXPT.fieldbyname('CRTime').asdatetime; + CDS_WXPTPrint.FieldByName('PRTColor').Value:=trim(CDS_WXPT.fieldbyname('PRTColor').Asstring); + CDS_WXPTPrint.FieldByName('XH').Value:=J+1; + CDS_WXPTPrint.FieldByName('LenQty0').Value:=CDS_WXPT.fieldbyname('qty').AsFloat; + CDS_WXPTPrint.FieldByName('Zs0').Value:=CDS_WXPT.fieldbyname('MjQty2').AsFloat; + CDS_WXPTPrint.FieldByName('RollNo0').Value:=trim(CDS_WXPT.fieldbyname('RollNo').Asstring); + CDS_WXPTPrint.FieldByName('MKGQty0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('KGQty0').Value:=CDS_WXPT.fieldbyname('MJqty4').AsFloat; + CDS_WXPTPrint.FieldByName('Sumlenqty').Value:=CDS_WXPT.fieldbyname('Sumlenqty').AsFloat; + CDS_WXPTPrint.FieldByName('sumroll').Value:=CDS_WXPT.fieldbyname('sumroll').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollGanNo').Value:=CDS_WXPT.fieldbyname('SumRollGanNo').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollColor').Value:=CDS_WXPT.fieldbyname('SumRollColor').AsFloat; + CDS_WXPTPrint.FieldByName('SumZJ').Value:=CDS_WXPT.fieldbyname('SumZJ').AsFloat; + CDS_WXPTPrint.FieldByName('SubId').Value:=CDS_WXPT.fieldbyname('SubId').Asstring; + CDS_WXPTPrint.FieldByName('MainId').Value:=CDS_WXPT.fieldbyname('MainId').Asstring; + CDS_WXPTPrint.Post; + Z:=0; + j:=j+1; + FHZ:=Trim(CDS_WXPT.fieldbyname('PRTColor').AsString)+Trim(CDS_WXPT.fieldbyname('Baono').AsString)+Trim(CDS_WXPT.fieldbyname('GangNo').AsString); + end + else + begin + if Z<3 then + begin + CDS_WXPTPrint.Locate('XH',j,[]); + with CDS_WXPTPrint do + begin + Edit; + FieldByName('MZQty').Value:=CDS_WXPT.fieldbyname('KGQty').Value; + FieldByName('INVNO').Value:=CDS_WXPT.fieldbyname('orderno').Value; + FieldByName('GangNo').Value:=CDS_WXPT.fieldbyname('GangNo').Value; + CDS_WXPTPrint.FieldByName('PONO').Value:=CDS_WXPT.fieldbyname('PONO').Value; + CDS_WXPTPrint.FieldByName('QtyUnit').Value:=trim(CDS_WXPT.fieldbyname('QtyUnit').Asstring); + CDS_WXPTPrint.FieldByName('CRTime').Value:=CDS_WXPT.fieldbyname('CRTime').asdatetime; + FieldByName('BaoNO').Value:=CDS_WXPT.fieldbyname('BaoNO').Value; + CDS_WXPTPrint.FieldByName('PRTColor').Value:=CDS_WXPT.fieldbyname('PRTColor').Value; + FieldByName('LenQty'+Trim(IntToStr(Z))).Value:=CDS_WXPT.fieldbyname('qty').AsFloat; + FieldByName('Zs'+Trim(IntToStr(Z))).Value:=CDS_WXPT.fieldbyname('MJQty2').AsFloat; + CDS_WXPTPrint.FieldByName('RollNo'+Trim(IntToStr(Z))).Value:=CDS_WXPT.fieldbyname('RollNo').Value; + CDS_WXPTPrint.FieldByName('MKGQty'+Trim(IntToStr(Z))).Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('KGQty'+Trim(IntToStr(Z))).Value:=CDS_WXPT.fieldbyname('MJqty4').AsFloat; + CDS_WXPTPrint.FieldByName('Sumlenqty').Value:=CDS_WXPT.fieldbyname('Sumlenqty').AsFloat; + CDS_WXPTPrint.FieldByName('sumroll').Value:=CDS_WXPT.fieldbyname('sumroll').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollGanNo').Value:=CDS_WXPT.fieldbyname('SumRollGanNo').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollColor').Value:=CDS_WXPT.fieldbyname('SumRollColor').AsFloat; + CDS_WXPTPrint.FieldByName('SumZJ').Value:=CDS_WXPT.fieldbyname('SumZJ').AsFloat; + FieldByName('SubId').Value:=CDS_WXPT.fieldbyname('SubId').Value; + FieldByName('MainId').Value:=CDS_WXPT.fieldbyname('MainId').Value; + Post; + end; + end + else + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('MZQty').Value:=CDS_WXPT.fieldbyname('KGQty').Value; + CDS_WXPTPrint.FieldByName('INVNO').Value:=CDS_WXPT.fieldbyname('orderno').Value; + CDS_WXPTPrint.FieldByName('GangNo').Value:=CDS_WXPT.fieldbyname('GangNo').Value; + CDS_WXPTPrint.FieldByName('BaoNO').Value:=CDS_WXPT.fieldbyname('BaoNO').Value; + CDS_WXPTPrint.FieldByName('PONO').Value:=CDS_WXPT.fieldbyname('PONO').Value; + CDS_WXPTPrint.FieldByName('QtyUnit').Value:=trim(CDS_WXPT.fieldbyname('QtyUnit').Asstring); + CDS_WXPTPrint.FieldByName('CRTime').Value:=CDS_WXPT.fieldbyname('CRTime').asdatetime; + CDS_WXPTPrint.FieldByName('PRTColor').Value:=CDS_WXPT.fieldbyname('PRTColor').Value; + CDS_WXPTPrint.FieldByName('XH').Value:=J+1; + CDS_WXPTPrint.FieldByName('LenQty0').Value:=CDS_WXPT.fieldbyname('qty').AsFloat; + CDS_WXPTPrint.FieldByName('ZS0').Value:=CDS_WXPT.fieldbyname('MJQty2').AsFloat; + CDS_WXPTPrint.FieldByName('RollNo0').Value:=CDS_WXPT.fieldbyname('RollNo').Value; + CDS_WXPTPrint.FieldByName('MKGQty0').Value:=CDS_WXPT.fieldbyname('kgQty').AsFloat; + CDS_WXPTPrint.FieldByName('KGQty0').Value:=CDS_WXPT.fieldbyname('MJqty4').AsFloat; + CDS_WXPTPrint.FieldByName('Sumlenqty').Value:=CDS_WXPT.fieldbyname('Sumlenqty').AsFloat; + CDS_WXPTPrint.FieldByName('sumroll').Value:=CDS_WXPT.fieldbyname('sumroll').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollGanNo').Value:=CDS_WXPT.fieldbyname('SumRollGanNo').AsFloat; + CDS_WXPTPrint.FieldByName('SumRollColor').Value:=CDS_WXPT.fieldbyname('SumRollColor').AsFloat; + CDS_WXPTPrint.FieldByName('SumZJ').Value:=CDS_WXPT.fieldbyname('SumZJ').AsFloat; + CDS_WXPTPrint.FieldByName('SubId').Value:=CDS_WXPT.fieldbyname('SubId').Value; + CDS_WXPTPrint.FieldByName('MainId').Value:=CDS_WXPT.fieldbyname('MainId').Value; + CDS_WXPTPrint.Post; + Z:=0; + j:=j+1; + end; + end; + end + end; + Z:=Z+1; + Next; + end; + end; + CDS_WXPT.EnableControls; + CDS_WXPTPrint.EnableControls; +end; + +procedure TfrmCKProductBCPInList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPInList.GetLotData(); +var + i,j,z,h,q:Integer; + FGangNo,FHZ:String; +begin + if CDS_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select GangNo=AP.AOrdDefStr1,A.BaoNo,MJ.MJXH,MJ.MJMaoZ,MJ.MJLen,A.SubId,A.MainId,MJ.MJQty4,'); + sql.Add('DD.OrderNo,JS.PRTColor,PRTEColor=JS.SOrddefstr4,PRTColorNo=JS.SOrddefstr1,JS.PRTHX'); + sql.Add(' from CK_BanCP_CR A'); + sql.Add(' inner join WFB_MJJY MJ on A.MJID=MJ.MJID'); + sql.Add(' inner join JYOrder_Main DD on A.MainId=DD.MainId'); + sql.Add(' inner join JYOrder_Sub JS on A.SubId=JS.SubId'); + sql.Add(' inner join JYOrder_Sub_AnPai AP on A.APID=AP.APID'); + sql.Add(' where A.MainId='''+Trim(CDS_Main.fieldbyname('MainId').AsString)+''''); + //sql.Add(' and A.SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + {if Trim(CDS_Main.FieldByName('CKOrdNo').AsString)<>'' then + begin + sql.Add(' and A.CKOrdNo='''+Trim(CDS_Main.FieldByName('CKOrdNo').AsString)+''''); + end; } + if Trim(CPType.Text)<>'' then + begin + sql.Add(' and A.CPType='''+Trim(CPType.Text)+''''); + end; + sql.Add(' and A.CRType='''' '); + sql.Add(' order by A.SubId,Cast(AP.AOrdDefStr1 as int),MJ.MJXH'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Juan); + SInitCDSData20(ADOQueryTemp,CDS_Juan); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select MainId=Cast('''' as varchar(20)),SubId=Cast('''' as varchar(20)),'); + sql.Add(' PRTEColor=Cast('''' as varchar(20)),PRTHX=Cast('''' as varchar(20)),PRTColorNo=Cast('''' as varchar(20)),'); + sql.Add(' GangNo=Cast('''' as varchar(20)),BaoNo=Cast('''' as varchar(20)),XH=Cast(0 as int),'); + sql.Add(' LenQty0=Cast(1.00 as decimal(18,2)),LenQty1=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty2=Cast(1.00 as decimal(18,2)),LenQty3=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty4=Cast(1.00 as decimal(18,2)),LenQty5=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty6=Cast(1.00 as decimal(18,2)),LenQty7=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty8=Cast(1.00 as decimal(18,2)),LenQty9=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MZ0=Cast(1.00 as decimal(18,2)),MZ1=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MZ2=Cast(1.00 as decimal(18,2)),MZ3=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MZ4=Cast(1.00 as decimal(18,2)),MZ5=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MZ6=Cast(1.00 as decimal(18,2)),MZ7=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MZ8=Cast(1.00 as decimal(18,2)),MZ9=Cast(1.00 as decimal(18,2)),'); + sql.Add(' JZ0=Cast(1.00 as decimal(18,2)),JZ1=Cast(1.00 as decimal(18,2)),'); + sql.Add(' JZ2=Cast(1.00 as decimal(18,2)),JZ3=Cast(1.00 as decimal(18,2)),'); + sql.Add(' JZ4=Cast(1.00 as decimal(18,2)),JZ5=Cast(1.00 as decimal(18,2)),'); + sql.Add(' JZ6=Cast(1.00 as decimal(18,2)),JZ7=Cast(1.00 as decimal(18,2)),'); + sql.Add(' JZ8=Cast(1.00 as decimal(18,2)),JZ9=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MJPS0=Cast(1 as int),MJPS1=Cast(1 as int),'); + sql.Add(' MJPS2=Cast(1 as int),MJPS3=Cast(1 as int),'); + sql.Add(' MJPS4=Cast(1 as int),MJPS5=Cast(1 as int),'); + sql.Add(' MJPS6=Cast(1 as int),MJPS7=Cast(1 as int),'); + sql.Add(' MJPS8=Cast(1 as int),MJPS9=Cast(1 as int),'); + sql.Add(' XH=Cast(0 as int)'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_JuanPRT); + SInitCDSData20(ADOQueryTemp,CDS_JuanPRT); + if CDS_JuanPRT.IsEmpty=False then + begin + CDS_JuanPRT.Delete; + end; + i:=0;j:=0;z:=0;FGangNo:='';h:=0; + CDS_Juan.DisableControls; + with CDS_Juan do + begin + First; + while not Eof do + begin + //FHZ:=Trim(CDS_Juan.fieldbyname('SubId').AsString)+Trim(CDS_Juan.fieldbyname('BaoNO').AsString) + //+Trim(CDS_Juan.fieldbyname('GangNo').AsString); + with CDS_JuanPRT do + begin + if CDS_JuanPRT.IsEmpty then + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + // CDS_JuanPRT.FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTColorNo').Value:=CDS_Juan.fieldbyname('PRTColorNo').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=0; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MZ0').Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('JZ0').Value:=CDS_Juan.fieldbyname('MJQty4').Value; + CDS_JuanPRT.FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + CDS_JuanPRT.FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + CDS_JuanPRT.Post; + FHZ:=Trim(CDS_Juan.fieldbyname('SubId').AsString) + +Trim(CDS_Juan.fieldbyname('GangNo').AsString); + //FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + Z:=0;//gang ׺ + j:=0;//к + for i:=1 to 9 do + begin + CDS_JuanPRT.Edit; + CDS_JuanPRT.FieldByName('MJPS'+Trim(IntToStr(i))).Value:=0; + CDS_JuanPRT.Post; + end; + end else + begin + if (Trim(CDS_Juan.fieldbyname('SubId').AsString) + +Trim(CDS_Juan.fieldbyname('GangNo').AsString))<>FHZ then + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + //CDS_JuanPRT.FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTColorNo').Value:=CDS_Juan.fieldbyname('PRTColorNo').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=J+1; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MZ0').Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('JZ0').Value:=CDS_Juan.fieldbyname('MJQty4').Value; + CDS_JuanPRT.FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + CDS_JuanPRT.FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + CDS_JuanPRT.Post; + FHZ:=Trim(CDS_Juan.fieldbyname('SubId').AsString) + +Trim(CDS_Juan.fieldbyname('GangNo').AsString); + Z:=0;//gang ׺ + j:=j+1;//к + for i:=1 to 9 do + begin + CDS_JuanPRT.Edit; + CDS_JuanPRT.FieldByName('MJPS'+Trim(IntToStr(i))).Value:=0; + CDS_JuanPRT.Post; + end; + end else + begin + if Z<10 then + begin + CDS_JuanPRT.Locate('XH',j,[]); + with CDS_JuanPRT do + begin + Edit; + FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + //FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTColorNo').Value:=CDS_Juan.fieldbyname('PRTColorNo').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + FieldByName('MJPS'+Trim(IntToStr(Z))).Value:=1; + FieldByName('LenQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MZ'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('JZ'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJQty4').Value; + FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + Post; + end; + end else + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTColorNo').Value:=CDS_Juan.fieldbyname('PRTColorNo').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=J+1; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MZ0').Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('JZ0').Value:=CDS_Juan.fieldbyname('MJQty4').Value; + CDS_JuanPRT.FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + CDS_JuanPRT.FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + CDS_JuanPRT.Post; + Z:=0;//gang ׺ + j:=j+1;//к + for i:=1 to 9 do + begin + CDS_JuanPRT.Edit; + CDS_JuanPRT.FieldByName('MJPS'+Trim(IntToStr(i))).Value:=0; + CDS_JuanPRT.Post; + end; + end; + end; + end + end; + Z:=Z+1; + Next; + end; + end; + CDS_Juan.EnableControls; +end; +procedure TfrmCKProductBCPInList.GetJuanData(); +var + i,j,z,h,q:Integer; + FGangNo:String; +begin + if CDS_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select GangNo=AP.AOrdDefStr1,A.BaoNo,MJ.MJXH,MJ.MJMaoZ,MJ.MJLen,A.SubId,A.MainId'); + sql.Add(' from CK_BanCP_CR A'); + sql.Add(' inner join WFB_MJJY MJ on A.MJID=MJ.MJID'); + sql.Add(' inner join JYOrder_Main DD on A.MainId=DD.MainId'); + sql.Add(' inner join JYOrder_Sub JS on A.SubId=JS.SubId'); + sql.Add(' inner join JYOrder_Sub_AnPai AP on A.APID=AP.APID'); + sql.Add(' where A.MainId='''+Trim(CDS_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and A.SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + {if Trim(CDS_Main.FieldByName('CKOrdNo').AsString)<>'' then + begin + sql.Add(' and A.CKOrdNo='''+Trim(CDS_Main.FieldByName('CKOrdNo').AsString)+''''); + end; } + if Trim(CPType.Text)<>'' then + begin + sql.Add(' and A.CPType='''+Trim(CPType.Text)+''''); + end; + sql.Add(' and A.CRType='''' '); + sql.Add(' order by Cast(AP.AOrdDefStr1 as int),Cast(A.BaoNo as int),MJ.MJXH'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Juan); + SInitCDSData20(ADOQueryTemp,CDS_Juan); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select BaoNo0=Cast('''' as varchar(20)),MJXH0=Cast(0 as int),MJPS0=Cast(1 as int),'); + sql.Add('MJPS1=Cast(1 as int),MJPS2=Cast(1 as int),MJPS3=Cast(1 as int),MJPS4=Cast(1 as int),'); + sql.Add(' KGQty0=Cast(1.00 as decimal(18,2)),LenQty0=Cast(1.00 as decimal(18,2)),'); + sql.Add(' BaoNo1=Cast('''' as varchar(20)),MJXH1=Cast(0 as int),'); + sql.Add(' KGQty1=Cast(1.00 as decimal(18,2)),LenQty1=Cast(1.00 as decimal(18,2)),'); + sql.Add(' BaoNo2=Cast('''' as varchar(20)),MJXH2=Cast(0 as int),'); + sql.Add(' KGQty2=Cast(1.00 as decimal(18,2)),LenQty2=Cast(1.00 as decimal(18,2)),'); + sql.Add(' BaoNo3=Cast('''' as varchar(20)),MJXH3=Cast(0 as int),'); + sql.Add(' KGQty3=Cast(1.00 as decimal(18,2)),LenQty3=Cast(1.00 as decimal(18,2)),'); + sql.Add(' BaoNo4=Cast('''' as varchar(20)),MJXH4=Cast(0 as int),'); + sql.Add(' KGQty4=Cast(1.00 as decimal(18,2)),LenQty4=Cast(1.00 as decimal(18,2)),'); + sql.Add(' BaoNo5=Cast('''' as varchar(20)),MJXH5=Cast(0 as int),'); + sql.Add(' KGQty5=Cast(1.00 as decimal(18,2)),LenQty5=Cast(1.00 as decimal(18,2)),'); + sql.Add(' GangNo0=Cast('''' as varchar(20)),XH=Cast('''' as varchar(20)),'); + sql.Add(' GangNo1=Cast('''' as varchar(20)),GangNo2=Cast('''' as varchar(20)),'); + sql.Add(' GangNo3=Cast('''' as varchar(20)),GangNo4=Cast('''' as varchar(20))'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_JuanPRT); + SInitCDSData20(ADOQueryTemp,CDS_JuanPRT); + if CDS_JuanPRT.IsEmpty=False then + begin + CDS_JuanPRT.Delete; + end; + i:=0;j:=0;z:=0;FGangNo:='';h:=0; + CDS_Juan.DisableControls; + with CDS_Juan do + begin + First; + while not Eof do + begin + with CDS_JuanPRT do + begin + if CDS_JuanPRT.IsEmpty then + begin + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo0').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO0').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('MJXH0').Value:=CDS_Juan.fieldbyname('MJXH').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('KGQty0').Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('XH').Value:='0'; + CDS_JuanPRT.Post; + FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + for h:=1 to 9 do + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('XH').Value:=Trim(IntToStr(h)); + CDS_JuanPRT.Post; + end; + J:=0;//XH к + Z:=0;//gang ׺ + //h:=9;// + q:=0; //ҳ + end; + end else + begin + if i>9 then + begin + Z:=Z+1; + + if Z>4 then + begin + Z:=0; + q:=q+1; + J:=q*10; + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo0').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO0').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('MJXH0').Value:=CDS_Juan.fieldbyname('MJXH').Value; + CDS_JuanPRT.FieldByName('KGQty0').Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=Trim(IntToStr(J)); + CDS_JuanPRT.Post; + for h:=J+1 to J+9 do + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('XH').Value:=Trim(IntToStr(h)); + CDS_JuanPRT.Post; + end; + FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + end else + begin + J:=q*10; + CDS_JuanPRT.Locate('XH',Trim(IntToStr(10*q)),[]); + CDS_JuanPRT.Edit; + CDS_JuanPRT.FieldByName('GangNo'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('MJXH'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJXH').Value; + CDS_JuanPRT.FieldByName('MJPS'+Trim(IntToStr(Z))).Value:=1; + CDS_JuanPRT.FieldByName('KGQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('LenQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.Post; + FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + end; + i:=0; + end else + begin + if FGangNo<>Trim(CDS_Juan.fieldbyname('GangNo').AsString) then + begin + Z:=Z+1; + + if Z>4 then + begin + Z:=0; + q:=q+1; + J:=q*10; + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo0').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO0').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('MJXH0').Value:=CDS_Juan.fieldbyname('MJXH').Value; + CDS_JuanPRT.FieldByName('KGQty0').Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=Trim(IntToStr(J)); + CDS_JuanPRT.Post; + FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + for h:=J+1 to J+9 do + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('XH').Value:=Trim(IntToStr(h)); + CDS_JuanPRT.Post; + end; + end else + begin + J:=q*10; + CDS_JuanPRT.Locate('XH',Trim(IntToStr(10*q)),[]); + CDS_JuanPRT.Edit; + CDS_JuanPRT.FieldByName('GangNo'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('MJXH'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJXH').Value; + CDS_JuanPRT.FieldByName('KGQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('LenQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MJPS'+Trim(IntToStr(Z))).Value:=1; + CDS_JuanPRT.Post; + FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + end; + i:=0; + end else + begin + j:=j+1; + CDS_JuanPRT.Locate('XH',Trim(IntToStr(J)),[]); + CDS_JuanPRT.Edit; + CDS_JuanPRT.FieldByName('GangNo'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('MJXH'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJXH').Value; + CDS_JuanPRT.FieldByName('KGQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJMaoZ').Value; + CDS_JuanPRT.FieldByName('LenQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('MJPS'+Trim(IntToStr(Z))).Value:=1; + CDS_JuanPRT.Post; + FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + end; + end; + end; + end; + i:=i+1; + Next; + end; + end; + CDS_Juan.EnableControls; +end; +procedure TfrmCKProductBCPInList.GetBaoData(); +var + i,j,z,h:Integer; + FGangNo:String; +begin + if CDS_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select GangNo=AP.AOrdDefStr1,A.BaoNo,MJ.MJXH,MJ.MJMaoZ,MJ.MJLen'); + sql.Add(' from CK_BanCP_CR A'); + sql.Add(' inner join WFB_MJJY MJ on A.MJID=MJ.MJID'); + sql.Add(' inner join JYOrder_Main DD on A.MainId=DD.MainId'); + sql.Add(' inner join JYOrder_Sub_AnPai AP on A.APID=AP.APID'); + sql.Add(' where A.MainId='''+Trim(CDS_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and A.SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + {if Trim(CDS_Main.FieldByName('CKOrdNo').AsString)<>'' then + begin + sql.Add(' and A.CKOrdNo='''+Trim(CDS_Main.FieldByName('CKOrdNo').AsString)+''''); + end; } + if Trim(CPType.Text)<>'' then + begin + sql.Add(' and A.CPType='''+Trim(CPType.Text)+''''); + end; + sql.Add(' and A.CRType='''' '); + sql.Add(' order by Cast(AP.AOrdDefStr1 as int),Cast(A.BaoNo as int),MJ.MJXH'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_BaoNo); + SInitCDSData20(ADOQueryTemp,CDS_BaoNo); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select GangNo0=Cast('''' as varchar(20)),GangNo1=Cast('''' as varchar(20)),GangNo2=Cast('''' as varchar(20)),'); + sql.Add(' GangNo3=Cast('''' as varchar(20)),GangNo4=Cast('''' as varchar(20)),XH=Cast('''' as varchar(20))'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_BaoPRT); + SInitCDSData20(ADOQueryTemp,CDS_BaoPRT); + if CDS_BaoPRT.IsEmpty=False then + begin + CDS_BaoPRT.Delete; + end; + i:=0;j:=0;z:=0;FGangNo:='';h:=0; + CDS_BaoNo.DisableControls; + with CDS_BaoNo do + begin + First; + while not Eof do + begin + with CDS_BaoPRT do + begin + if CDS_BaoPRT.IsEmpty then + begin + if J=0 then + begin + CDS_BaoPRT.Append; + CDS_BaoPRT.FieldByName('GangNo0').Value:=CDS_BaoNo.fieldbyname('GangNo').Value; + CDS_BaoPRT.FieldByName('XH').Value:='0'; + CDS_BaoPRT.Post; + FGangNo:=Trim(CDS_BaoNo.fieldbyname('GangNo').AsString); + J:=0;//XH к + Z:=0;//gang ׺ + h:=0;//ÿеļ¼ + end; + end else + begin + if i>9 then + begin + Z:=Z+1; + if Z>4 then + begin + Z:=0; + J:=J+1; + CDS_BaoPRT.Append; + CDS_BaoPRT.FieldByName('GangNo0').Value:=CDS_BaoNo.fieldbyname('GangNo').Value; + CDS_BaoPRT.FieldByName('XH').Value:=Trim(IntToStr(J)); + CDS_BaoPRT.Post; + FGangNo:=Trim(CDS_BaoNo.fieldbyname('GangNo').AsString); + end else + begin + CDS_BaoPRT.Locate('XH',Trim(IntToStr(J)),[]); + CDS_BaoPRT.Edit; + CDS_BaoPRT.FieldByName('GangNo'+Trim(IntToStr(Z))).Value:=CDS_BaoNo.fieldbyname('GangNo').Value; + CDS_BaoPRT.Post; + FGangNo:=Trim(CDS_BaoNo.fieldbyname('GangNo').AsString); + end; + i:=0; + end else + begin + if FGangNo<>Trim(CDS_BaoNo.fieldbyname('GangNo').AsString) then + begin + Z:=Z+1; + if Z>4 then + begin + Z:=0; + J:=J+1; + CDS_BaoPRT.Append; + CDS_BaoPRT.FieldByName('GangNo0').Value:=CDS_BaoNo.fieldbyname('GangNo').Value; + CDS_BaoPRT.FieldByName('XH').Value:=Trim(IntToStr(J)); + CDS_BaoPRT.Post; + FGangNo:=Trim(CDS_BaoNo.fieldbyname('GangNo').AsString); + end else + begin + CDS_BaoPRT.Locate('XH',Trim(IntToStr(J)),[]); + CDS_BaoPRT.Edit; + CDS_BaoPRT.FieldByName('GangNo'+Trim(IntToStr(Z))).Value:=CDS_BaoNo.fieldbyname('GangNo').Value; + CDS_BaoPRT.Post; + FGangNo:=Trim(CDS_BaoNo.fieldbyname('GangNo').AsString); + end; + i:=0; + end; + end; + end; + end; + i:=i+1; + Next; + end; + end; + CDS_BaoNo.EnableControls; + +end; +procedure TfrmCKProductBCPInList.GetBaleData(); +var + i,j,z,h,q:Integer; + FGangNo,FHZ:String; +begin + if CDS_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select GangNo=AP.AOrdDefStr1,A.BaoNo,MJ.MJXH,MJ.MJMaoZ,MJ.MJLen,A.SubId,A.MainId,'); + sql.Add('DD.OrderNo,JS.PRTColor,PRTEColor=JS.SOrddefstr4,JS.PRTHX'); + sql.Add(' from CK_BanCP_CR A'); + sql.Add(' inner join WFB_MJJY MJ on A.MJID=MJ.MJID'); + sql.Add(' inner join JYOrder_Main DD on A.MainId=DD.MainId'); + sql.Add(' inner join JYOrder_Sub JS on A.SubId=JS.SubId'); + sql.Add(' inner join JYOrder_Sub_AnPai AP on A.APID=AP.APID'); + sql.Add(' where A.MainId='''+Trim(CDS_Main.fieldbyname('MainId').AsString)+''''); + //sql.Add(' and A.SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + if Trim(CDS_Main.FieldByName('CKOrdNo').AsString)<>'' then + begin + sql.Add(' and A.CKOrdNo='''+Trim(CDS_Main.FieldByName('CKOrdNo').AsString)+''''); + end; + if Trim(CPType.Text)<>'' then + begin + sql.Add(' and A.CPType='''+Trim(CPType.Text)+''''); + end; + sql.Add(' and A.CRType='''' '); + sql.Add(' order by Cast(AP.AOrdDefStr1 as int),Cast(A.BaoNo as int),MJ.MJXH'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Juan); + SInitCDSData20(ADOQueryTemp,CDS_Juan); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select MainId=Cast('''' as varchar(20)),SubId=Cast('''' as varchar(20)),'); + sql.Add(' PRTEColor=Cast('''' as varchar(20)),PRTHX=Cast('''' as varchar(20)),'); + sql.Add(' GangNo=Cast('''' as varchar(20)),BaoNo=Cast('''' as varchar(20)),MJPS=Cast(0 as int),XH=Cast(0 as int),'); + sql.Add(' LenQty0=Cast(1.00 as decimal(18,2)),LenQty1=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty2=Cast(1.00 as decimal(18,2)),LenQty3=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty4=Cast(1.00 as decimal(18,2)),LenQty5=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty6=Cast(1.00 as decimal(18,2)),LenQty7=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty8=Cast(1.00 as decimal(18,2)),LenQty9=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty10=Cast(1.00 as decimal(18,2)),LenQty11=Cast(1.00 as decimal(18,2)),'); + sql.Add(' MJPS0=Cast(0 as int),MJPS1=Cast(0 as int),'); + sql.Add(' MJPS2=Cast(0 as int),MJPS3=Cast(0 as int),'); + sql.Add(' MJPS4=Cast(0 as int),MJPS5=Cast(0 as int),'); + sql.Add(' MJPS6=Cast(0 as int),MJPS7=Cast(0 as int),'); + sql.Add(' MJPS8=Cast(0 as int),MJPS9=Cast(0 as int),'); + sql.Add(' MJPS10=Cast(0 as int),MJPS11=Cast(1 as int),XH=Cast(0 as int)'); + {sql.Add(' KgQty0=Cast(1.00 as decimal(18,2)),KgQty1=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty2=Cast(1.00 as decimal(18,2)),LenQty3=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty4=Cast(1.00 as decimal(18,2)),LenQty5=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty5=Cast(1.00 as decimal(18,2)),LenQty7=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty6=Cast(1.00 as decimal(18,2)),LenQty9=Cast(1.00 as decimal(18,2)),'); + sql.Add(' LenQty10=Cast(1.00 as decimal(18,2)),LenQty11=Cast(1.00 as decimal(18,2)),');} + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_JuanPRT); + SInitCDSData20(ADOQueryTemp,CDS_JuanPRT); + if CDS_JuanPRT.IsEmpty=False then + begin + CDS_JuanPRT.Delete; + end; + i:=0;j:=0;z:=0;FGangNo:='';h:=0; + CDS_Juan.DisableControls; + with CDS_Juan do + begin + First; + while not Eof do + begin + //FHZ:=Trim(CDS_Juan.fieldbyname('SubId').AsString)+Trim(CDS_Juan.fieldbyname('BaoNO').AsString) + //+Trim(CDS_Juan.fieldbyname('GangNo').AsString); + with CDS_JuanPRT do + begin + if CDS_JuanPRT.IsEmpty then + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=0; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + CDS_JuanPRT.FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + CDS_JuanPRT.Post; + FHZ:=Trim(CDS_Juan.fieldbyname('SubId').AsString)+Trim(CDS_Juan.fieldbyname('BaoNO').AsString) + +Trim(CDS_Juan.fieldbyname('GangNo').AsString); + //FGangNo:=Trim(CDS_Juan.fieldbyname('GangNo').AsString); + Z:=0;//gang ׺ + j:=0;//к + end else + begin + if (Trim(CDS_Juan.fieldbyname('SubId').AsString)+Trim(CDS_Juan.fieldbyname('BaoNO').AsString) + +Trim(CDS_Juan.fieldbyname('GangNo').AsString))<>FHZ then + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=J+1; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + CDS_JuanPRT.FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + CDS_JuanPRT.Post; + FHZ:=Trim(CDS_Juan.fieldbyname('SubId').AsString)+Trim(CDS_Juan.fieldbyname('BaoNO').AsString) + +Trim(CDS_Juan.fieldbyname('GangNo').AsString); + Z:=0;//gang ׺ + j:=j+1;//к + end else + begin + if Z<12 then + begin + CDS_JuanPRT.Locate('XH',j,[]); + with CDS_JuanPRT do + begin + Edit; + FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + FieldByName('MJPS'+Trim(IntToStr(Z))).Value:=1; + FieldByName('LenQty'+Trim(IntToStr(Z))).Value:=CDS_Juan.fieldbyname('MJLen').Value; + FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + Post; + end; + end else + begin + CDS_JuanPRT.Append; + CDS_JuanPRT.FieldByName('GangNo').Value:=CDS_Juan.fieldbyname('GangNo').Value; + CDS_JuanPRT.FieldByName('BaoNO').Value:=CDS_Juan.fieldbyname('BaoNO').Value; + CDS_JuanPRT.FieldByName('PRTEColor').Value:=CDS_Juan.fieldbyname('PRTEColor').Value; + CDS_JuanPRT.FieldByName('PRTHX').Value:=CDS_Juan.fieldbyname('PRTHX').Value; + CDS_JuanPRT.FieldByName('MJPS0').Value:=1; + CDS_JuanPRT.FieldByName('XH').Value:=J+1; + CDS_JuanPRT.FieldByName('LenQty0').Value:=CDS_Juan.fieldbyname('MJLen').Value; + CDS_JuanPRT.FieldByName('SubId').Value:=CDS_Juan.fieldbyname('SubId').Value; + CDS_JuanPRT.FieldByName('MainId').Value:=CDS_Juan.fieldbyname('MainId').Value; + CDS_JuanPRT.Post; + Z:=0;//gang ׺ + j:=j+1;//к + end; + end; + end + end; + Z:=Z+1; + Next; + end; + end; + CDS_Juan.EnableControls; +end; + +procedure TfrmCKProductBCPInList.orderNoChange(Sender: TObject); +begin + if Length(Trim(orderNo.Text))<4 then Exit; + TBFind.Click; +end; + +procedure TfrmCKProductBCPInList.orderNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(orderNo.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTSpec,C.prtkuanNo,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,A.MJXH,C.PRTHX'); + sql.Add(',G.customerNoName KHName,G.conNO,G.KHConNO,F.styleno,F.OrderUnit,A.*'); + sql.add(' from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' left join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add(' left join JYOrderCon_Sub F on A.ConID=F.Subid '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add(' where B.OrderNo like '''+'%'+trim(OrderNo.Text)+'%'+''''); + SQL.Add(' and A.CRFlag='''' '); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +function TfrmCKProductBCPInList.YSData(Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit:String; +begin + Result:=False; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryCmd.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryCmd.fieldbyname('OrderUnit').AsString); + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryMain.fieldbyname('CRID').AsString; + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryMain do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.add(' and Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.add(' and YFName=''Ʒ۽'''); + sql.add(' and isnull(PBNote,'''')='''+Trim(Order_Main10.fieldbyname('CRNote').AsString)+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryCmd.IsEmpty then + begin + if GetLSNo(ADOQueryMain,YFID,'CS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryMain do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('YFType').Value:='Զ'; + //FieldByName('Price').Value:=Price; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=Trim(PriceUnit); + FieldByName('QtyUnit').Value:=Trim(OrderUnit); + FieldByName('YFName').Value:='Ʒ۽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryCmd.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if (Trim(OrderUnit)<>'KG') and (Trim(OrderUnit)<>'Kg') and (Trim(OrderUnit)<>'kg') then + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A '); + end else + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + end; + sql.add('where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote)'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A where'); + SQL.Add(' A.conid=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.add(' where A.Conid=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.Conid=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',MQty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.Conid=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryCmd.FieldByName('PS').AsFloat=0 then + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryCmd.IsEmpty then + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +procedure TfrmCKProductBCPInList.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmCKProductBCPInList.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmCKProductBCPInList.TBRKCXClick(Sender: TObject); +var FFF:String; +begin + if CDS_Main.IsEmpty then Exit; + ToolBar1.SetFocus; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + CDS_Main.DisableControls; + with CDS_Main do + begin + first; + while not eof do + begin + if FieldByName('Ssel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select MJID from CK_BanCP_CR where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''' '); + sql.Add(' and CRFlag='''''); + Open; + end; + if ADOQueryCmd.IsEmpty=false then + begin + Application.MessageBox('ѳⲻܳ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select YFID from YF_Money_CR where FactoryName='''+Trim(CDS_Main.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(CDS_Main.fieldbyname('ConID').AsString)+''''); + sql.add(' and Mainid='''+Trim(CDS_Main.fieldbyname('Mainid').AsString)+''''); + sql.add(' and YFName=''Ʒ۽'''); + sql.add(' and isnull(PBNote,'''')='''+Trim(CDS_Main.fieldbyname('CRNote').AsString)+''''); + sql.add(' and CRFlag=''Ӧ'''); + sql.add(' and isnull(Status,''0'')<>''0'''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox(',ܳ','ʾ',0); + Exit; + end; + end; + next; + end; + end; + CDS_Main.EnableControls; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + ToolBar1.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + first; + while not eof do + begin + if FieldByName('Ssel').AsBoolean=true then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + SQL.Add(',BaoNo=NULL '); + SQL.Add(',BaoID=NULL '); + sql.Add(',RKOrdId='''''); + sql.Add(',CRFlagQty=0'); + SQL.Add(',RKPlace='''' '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if CDS_Main.fieldbyname('CRID').AsFloat<>0 then + begin + sql.Add('Update WFB_MJJY Set MJStr2=''δ'',BaoNo=NULL,BaoID=NULL where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + end; + ExecSQL; + end; + if trim(CDS_Main.fieldbyname('CRType').AsString)='' then + begin + if FFF='' then + begin + FFF:=Trim(CDS_Main.fieldbyname('KHName').AsString)+Trim(CDS_Main.fieldbyname('ConID').AsString) + +Trim(CDS_Main.fieldbyname('Mainid').AsString)+Trim(CDS_Main.fieldbyname('CRNote').AsString); + if YSData(CDS_Main)=False then + begin + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; + end + else + if FFF<>Trim(CDS_Main.fieldbyname('KHName').AsString)+Trim(CDS_Main.fieldbyname('ConID').AsString) + +Trim(CDS_Main.fieldbyname('Mainid').AsString)+Trim(CDS_Main.fieldbyname('CRNote').AsString) then + begin + if YSData(CDS_Main)=False then + begin + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; + end; + end; + if trim(CDS_Main.fieldbyname('CRType').AsString)='' then + begin + IF not YFData(CDS_Main) then + begin + application.MessageBox('ʧܣ','ʾϢ',0); + exit; + end; + end; + end; + next; + end; + end; + CDS_Main.EnableControls; + Application.MessageBox('ɹ','ʾ'); + InitGrid(); + ADOQueryCmd.Connection.CommitTrans; + except; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; +end; + +procedure TfrmCKProductBCPInList.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_Main.IsEmpty=False then + begin + InitOrderColor(Trim(CDS_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + InitBCGangNo(Trim(CDS_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmCKProductBCPInList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; + if CDS_Main.IsEmpty=False then + begin + //InitOrderColor(Trim(CDS_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + InitBCGangNo(Trim(CDS_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmCKProductBCPInList.AOrdDefStr1Change(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPInList.TBBaoClick(Sender: TObject); +var + fPrintFile:String; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select A.BaoId,A.BaoNo,A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO SOrddefstr1,E.SOrddefstr4 PRTColorEng,C.PRtHX,'); + sql.Add(' F.KHConNO,Count(A.BaoId) JSl,Sum(WM.MJQty4) MJQty4,Sum(WM.MJQty2) MJQty2,Sum(WM.MJMaoZ) MJMaoZ,Sum(WM.MJLen) MJLen'); + sql.add(' ,D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4 GangNo'); + sql.add(' ,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode '); + sql.Add(' from CK_BanCP_CR A inner join WFB_MJJY WM on A.MJID=WM.MJID'); + sql.Add(' inner join CK_SXPB_CR B on WM.APID=B.SPID'); + sql.Add(' Left join JYOrder_Sub C on WM.SubID=C.SubID'); + sql.Add(' Left join JYOrder_Main D on WM.MainID=D.MainID'); + SQL.ADD(' Left join JYOrderCon_Sub E on E.Subid=A.ConID '); + sql.add(' Left join JYOrderCon_Main F on F.Mainid=E.Mainid '); + sql.Add(' where A.BaoId='''+Trim(CDS_Main.Fieldbyname('Baoid').AsString)+''' and A.CRflag='''' '); + sql.Add(' Group by A.BaoId,A.BaoNo,A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO,E.SOrddefstr4,F.KHConNO,C.PRtHX'); + sql.add(',D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode'); + Open; + end; + if ADOQueryTemp.RecordCount>1 then + begin + Application.MessageBox('볷!','ʾ',0); + Exit; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(CDS_Main.fieldbyname('BaoId').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + if FileExists(fPrintFile) then + begin + //RMVariables['RKOrdID']:=Trim(CDS_MainSel.fieldbyname('RKOrdID').AsString); + //RMVariables['OrderNo']:=Trim(CDS_MainSel.fieldbyname('OrderNo').AsString); + //RMVariables['PS']:=Trim(RKOrdPS.Text); + //RMVariables['QtyUnit']:=Trim(CDS_MainSel.fieldbyname('QtyUnit').AsString); + RMVariables['QRBARCODE']:=fImagePath; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmCKProductBCPInList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmCKProductBCPInList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; + application.ProcessMessages; +end; + +procedure TfrmCKProductBCPInList.ISbaoChange(Sender: TObject); +begin + Tbfind.Click; +end; + +procedure TfrmCKProductBCPInList.ToolButton1Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + ToolBar1.SetFocus; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select A.MJID from CK_BanCP_CR A '); + sql.Add('inner join CK_BanCP_CR B on B.MJID=A.MJID and B.CRFlag='''' and A.CRFlag='''''); + SQL.Add('where B.RKOrdID='''+Trim(CDS_Main.fieldbyname('RKOrdID').AsString)+''' '); + Open; + end; + if ADOQueryCmd.IsEmpty=false then + begin + Application.MessageBox('ѳⲻܳ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select A.YFID from YF_Money_CR A '); + SQL.Add('inner join CK_BanCP_CR B on B.ConID=A.YFTypeID and B.Mainid=A.Mainid and isnull(B.CRNote,'''')=isnull(A.PBNote,'''')'); + sql.Add('where A.FactoryName='''+Trim(CDS_Main.fieldbyname('KHName').AsString)+''''); + sql.Add(' and A.YFTypeId='''+Trim(CDS_Main.fieldbyname('ConID').AsString)+''''); + sql.add(' and A.Mainid='''+Trim(CDS_Main.fieldbyname('Mainid').AsString)+''''); + sql.add(' and A.YFName=''Ʒ۽'''); + sql.add(' and isnull(A.PBNote,'''')='''+Trim(CDS_Main.fieldbyname('CRNote').AsString)+''''); + SQL.Add(' and B.RKOrdID='''+Trim(CDS_Main.fieldbyname('RKOrdID').AsString)+''' '); + sql.add(' and A.CRFlag=''Ӧ'''); + sql.add(' and isnull(A.Status,''0'')<>''0'''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox(',ܳ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''δ'',BaoNo=null,BaoID=null '); + sql.Add('where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID'); + sql.add(' and B.RKOrdId='''+Trim(CDS_Main.fieldbyname('RKOrdID').AsString)+''')'); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + SQL.Add(',BaoNo=NULL '); + SQL.Add(',BaoID=NULL '); + SQL.Add(',RKPlace='''' '); + sql.Add(',CRFlagQty=0'); + sql.Add(' where RKOrdID='''+trim(CDS_Main.fieldbyname('RKOrdID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + MovePanel2.Visible:=False; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid,CRType'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.CRFlag='''' and A.RKOrdID='''+Trim(CDS_Main.fieldbyname('RKOrdID').AsString)+''' group by Conid,Mainid,CRType'); + Open; + end; + SCreateCDS20(ADOQueryCmd,ClientDataSet1); + SInitCDSData20(ADOQueryCmd,ClientDataSet1); + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if FieldByName('CRType').AsString='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if FieldByName('CRType').AsString='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.Add('RKOrdId='''' '); + sql.Add('where RKOrdID='''+trim(CDS_Main.fieldbyname('RKOrdID').AsString)+''''); + ExecSQL; + end; + application.MessageBox('ɹ','ʾ'); + InitGrid(); + ADOQueryCmd.Connection.CommitTrans; + except; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmCKProductBCPInList.CheckBox1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,CheckBox1.Checked); +end; + +procedure TfrmCKProductBCPInList.ConNOKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNO.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTSpec,C.prtkuanNo,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,A.MJXH,C.PRTHX'); + sql.Add(',G.customerNoName KHName,G.conNO,G.KHConNO,F.styleno,F.OrderUnit,A.*'); + sql.add(' from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' left join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add(' left join JYOrderCon_Sub F on A.ConID=F.Subid '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add(' where G.ConNO like '''+'%'+trim(ConNO.Text)+'%'+''''); + SQL.Add(' and A.CRFlag='''' '); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally; + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmCKProductBCPInList.ToolButton2Click(Sender: TObject); +var FFF:String; +begin + if CDS_Main.IsEmpty then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + CDS_Main.DisableControls; + with CDS_Main do + begin + first; + while not eof do + begin + if FieldByName('Ssel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select YFID from YF_Money_CR where FactoryName='''+Trim(CDS_Main.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(CDS_Main.fieldbyname('ConID').AsString)+''''); + sql.add(' and Mainid='''+Trim(CDS_Main.fieldbyname('Mainid').AsString)+''''); + sql.add(' and YFName=''Ʒ۽'''); + sql.add(' and isnull(PBNote,'''')='''+Trim(CDS_Main.fieldbyname('CRNote').AsString)+''''); + sql.add(' and CRFlag=''Ӧ'''); + sql.add(' and isnull(Status,''0'')<>''0'''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox(',ܳ','ʾ',0); + Exit; + end; + end; + next; + end; + end; + CDS_Main.EnableControls; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + ToolBar1.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + first; + while not eof do + begin + if FieldByName('Ssel').AsBoolean=true then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from CK_BanCP_CR '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + //sql.Add(' and CRFlag='''''); + ExecSQL; + end; + Delete; + end + else + next; + end; + end; + CDS_Main.EnableControls; + Application.MessageBox('ϳɹ','ʾ'); + InitGrid(); + ADOQueryCmd.Connection.CommitTrans; + except; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductBCPKC.dfm b/盛纺贸易管理/U_CKProductBCPKC.dfm new file mode 100644 index 0000000..15b89ba --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPKC.dfm @@ -0,0 +1,330 @@ +object frmCKProductBCPKC: TfrmCKProductBCPKC + Left = 128 + Top = 152 + Width = 1027 + Height = 511 + Caption = #21322#25104#21697#20986#20837#23384 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1019 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1019 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 302 + Top = 12 + Width = 48 + Height = 12 + Caption = #20135#21697#20195#21495 + end + object Label4: TLabel + Left = 478 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label7: TLabel + Left = 638 + Top = 12 + Width = 24 + Height = 12 + Caption = #33457#22411 + end + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object YCLName: TEdit + Tag = 2 + Left = 351 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = YCLNameChange + end + object SWFBColor: TEdit + Tag = 2 + Left = 502 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 1 + OnChange = YCLNameChange + end + object SWFBHW: TEdit + Tag = 2 + Left = 663 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = YCLNameChange + end + object BegDate: TDateTimePicker + Left = 77 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 75 + Width = 1019 + Height = 399 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + Column = v1Column1 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column7 + end + item + Kind = skSum + Column = v2Column8 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object v2Column1: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 92 + end + object v2Column2: TcxGridDBColumn + Caption = #24133#23485 + DataBinding.FieldName = 'XJFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v2Column4: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object v1Column3: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + Width = 57 + end + object v2Column5: TcxGridDBColumn + Caption = #19978#26399#25968#37327 + DataBinding.FieldName = 'SQJCS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 73 + end + object v2Column6: TcxGridDBColumn + Caption = #26412#26399#20837#24211#25968#37327 + DataBinding.FieldName = 'RKS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 101 + end + object v1Column1: TcxGridDBColumn + Caption = #26412#26399#22238#20179#25968#37327 + DataBinding.FieldName = 'HCS' + Options.Focusing = False + Width = 87 + end + object v2Column7: TcxGridDBColumn + Caption = #26412#26399#20986#24211#25968#37327 + DataBinding.FieldName = 'CKS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 93 + end + object v2Column8: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 56 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 904 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 840 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 872 + Top = 40 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 624 + Top = 184 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 544 + Top = 176 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 192 + end +end diff --git a/盛纺贸易管理/U_CKProductBCPKC.pas b/盛纺贸易管理/U_CKProductBCPKC.pas new file mode 100644 index 0000000..b141d79 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPKC.pas @@ -0,0 +1,207 @@ +unit U_CKProductBCPKC; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit; + +type + TfrmCKProductBCPKC = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + Label7: TLabel; + YCLName: TEdit; + SWFBColor: TEdit; + SWFBHW: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure YCLNameChange(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductBCPKC: TfrmCKProductBCPKC; + +implementation +uses + U_DataLink,U_Fun,U_CRMX; + +{$R *.dfm} + +procedure TfrmCKProductBCPKC.FormDestroy(Sender: TObject); +begin + frmCKProductBCPKC:=nil; +end; + +procedure TfrmCKProductBCPKC.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductBCPKC.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-30; + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductBCPKC.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('exec CK_YCL_CRCHZ :begdate,:enddate,:CKName'); + Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)); + Parameters.ParamByName('CKName').Value:=Trim(DParameters1); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductBCPKC.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmCKProductBCPKC.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductBCPKC.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ԭϿ2',Tv1,'ԭϲֿ'); + Close; +end; + +procedure TfrmCKProductBCPKC.FormShow(Sender: TObject); +begin + + ReadCxGrid('ԭϿ2',Tv1,'ԭϲֿ'); + if Trim(DParameters2)='ԭ' then + begin + ToolButton1.Visible:=True; + v2Column9.Options.Focusing:=True; + v2Column9.Visible:=True; + end else + begin + ToolButton1.Visible:=False; + v2Column9.Options.Focusing:=False; + v2Column9.Visible:=False; + end; + InitGrid(); +end; + +procedure TfrmCKProductBCPKC.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel(Trim(DParameters1)+'',cxGrid2); +end; + +procedure TfrmCKProductBCPKC.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKProductBCPKC.YCLNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPKC.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + try + frmCRMX:=TfrmCRMX.Create(Application); + with frmCRMX do + begin + Fbegdate:=FormatDateTime('yyyy-MM-dd',Self.BegDate.DateTime); + Fenddate:=FormatDateTime('yyyy-MM-dd',Self.enddate.DateTime+1); + {FGYS:=Trim(Self.CDS_Main.fieldbyname('GYS').AsString); + FYCLCode:=Trim(Self.CDS_Main.fieldbyname('YCLCode').AsString); + FYCLSpec:=Trim(Self.CDS_Main.fieldbyname('YCLSpec').AsString); + FCRUnit:=Trim(Self.CDS_Main.fieldbyname('KCUint').AsString); } + CRID:=Trim(Self.CDS_Main.fieldbyname('CRID').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmCRMX.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductBCPKCHZList.dfm b/盛纺贸易管理/U_CKProductBCPKCHZList.dfm new file mode 100644 index 0000000..d12cd54 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPKCHZList.dfm @@ -0,0 +1,499 @@ +object frmCKProductBCPKCHZList: TfrmCKProductBCPKCHZList + Left = 198 + Top = 137 + Width = 1187 + Height = 521 + Caption = #25104#21697#24211#23384#27719#24635#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1171 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1171 + Height = 60 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 39 + Top = 39 + Width = 52 + Height = 13 + Caption = #20013#25991#21517#31216 + end + object Label4: TLabel + Left = 390 + Top = 13 + Width = 26 + Height = 13 + Caption = #39068#33394 + end + object Label1: TLabel + Left = 849 + Top = 13 + Width = 52 + Height = 13 + Caption = #26597#35810#26102#38388 + Visible = False + end + object Label2: TLabel + Left = 884 + Top = 39 + Width = 13 + Height = 13 + Caption = #33267 + Visible = False + end + object Label5: TLabel + Left = 39 + Top = 13 + Width = 53 + Height = 13 + Caption = #35746' '#21333' '#21495 + end + object Label6: TLabel + Left = 39 + Top = 78 + Width = 54 + Height = 13 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 234 + Top = 39 + Width = 26 + Height = 13 + Caption = #20811#37325 + end + object Label9: TLabel + Left = 234 + Top = 13 + Width = 26 + Height = 13 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 390 + Top = 39 + Width = 26 + Height = 13 + Caption = #31867#22411 + end + object Label10: TLabel + Left = 546 + Top = 39 + Width = 7 + Height = 13 + end + object Label11: TLabel + Left = 550 + Top = 13 + Width = 39 + Height = 13 + Caption = #19994#21153#21592 + end + object Label12: TLabel + Left = 550 + Top = 39 + Width = 39 + Height = 13 + Caption = #36319#21333#21592 + end + object Label13: TLabel + Left = 728 + Top = 13 + Width = 26 + Height = 13 + Caption = #24211#20301 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 93 + Top = 35 + Width = 109 + Height = 20 + TabOrder = 0 + OnChange = MPRTCodeNameChange + end + object BegDate: TDateTimePicker + Left = 898 + Top = 10 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + Visible = False + end + object EndDate: TDateTimePicker + Left = 898 + Top = 36 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + Visible = False + end + object orderNo: TEdit + Tag = 2 + Left = 93 + Top = 9 + Width = 109 + Height = 20 + TabOrder = 3 + OnChange = MPRTCodeNameChange + end + object MJID: TEdit + Tag = 2 + Left = 89 + Top = 74 + Width = 118 + Height = 20 + TabOrder = 4 + OnChange = MPRTCodeNameChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 264 + Top = 35 + Width = 87 + Height = 20 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 264 + Top = 9 + Width = 87 + Height = 20 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 425 + Top = 35 + Width = 86 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 7 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object YWY: TEdit + Tag = 2 + Left = 592 + Top = 9 + Width = 86 + Height = 20 + TabOrder = 8 + OnChange = MPRTCodeNameChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 592 + Top = 35 + Width = 86 + Height = 20 + TabOrder = 9 + OnChange = MPRTCodeNameChange + end + object PRTColor: TComboBox + Tag = 1 + Left = 425 + Top = 9 + Width = 86 + Height = 21 + ItemHeight = 13 + TabOrder = 10 + OnChange = PRTColorChange + end + object RKplace: TEdit + Tag = 2 + Left = 756 + Top = 9 + Width = 87 + Height = 20 + TabOrder = 11 + OnChange = MPRTCodeNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 93 + Width = 1171 + Height = 388 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column11: TcxGridDBColumn + Caption = #24211#20301 + DataBinding.FieldName = 'RKPlace' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 91 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 74 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 92 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v1Column5: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v1Column10: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1Column2: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'YWY' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 52 + end + object v1Column4: TcxGridDBColumn + Caption = #36319#21333#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 53 + end + object v1Column8: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 59 + end + object v1Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v1Column6: TcxGridDBColumn + Caption = #21367#25968#37327 + DataBinding.FieldName = 'JQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #24211#23384#20844#26020#25968 + DataBinding.FieldName = 'KCKGQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + object v2Column6: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 85 + end + object v1Column7: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'KCQtyUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object MovePanel2: TMovePanel + Left = 442 + Top = 208 + Width = 313 + Height = 53 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end +end diff --git a/盛纺贸易管理/U_CKProductBCPKCHZList.pas b/盛纺贸易管理/U_CKProductBCPKCHZList.pas new file mode 100644 index 0000000..b43a0d7 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPKCHZList.pas @@ -0,0 +1,261 @@ +unit U_CKProductBCPKCHZList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxButtonEdit; + +type + TfrmCKProductBCPKCHZList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + MPRTCodeName: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + Label5: TLabel; + orderNo: TEdit; + Label6: TLabel; + MJID: TEdit; + v1Column7: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + v1Column3: TcxGridDBColumn; + MovePanel2: TMovePanel; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + YWY: TEdit; + OrdPerson1: TEdit; + v1Column5: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + PRTColor: TComboBox; + v1Column11: TcxGridDBColumn; + RKplace: TEdit; + Label13: TLabel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure PRTColorChange(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductBCPKCHZList: TfrmCKProductBCPKCHZList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmCKProductBCPKCHZList.FormDestroy(Sender: TObject); +begin + frmCKProductBCPKCHZList:=nil; +end; + +procedure TfrmCKProductBCPKCHZList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductBCPKCHZList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductBCPKCHZList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select YWY=B.OrdPerson2,B.OrdPerson1,C.SOrdDefStr10,C.SubId,A.* ,B.OrdDefStr1,B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTMF,B.MPRTKZ '); + sql.Add(',C.SOrddefstr1,C.PRTHX'); + sql.Add(' from(select sum(KCQty) KCQty,Sum(KCKgQty) KCKgQty,count(*) JQty,AA.MainId,AA.SubId,AA.CPType,AA.RKPlace,KC.KCQtyUnit '); + sql.Add(' from CK_BanCP_KC KC inner join CK_BanCP_CR AA on KC.CRID=AA.CRID and AA.CRType='''''); + sql.Add(' where (KC.KCQty>0 or KC.KCKgQty>0) group by AA.MainId,AA.SubId,AA.CPType,AA.RKPlace,KC.KCQtyUnit ) A'); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + if Trim(DParameters1)<>'Ȩ' then + begin + // sql.Add(' where B.Filler='''+Trim(DName)+''''); + end else + begin + end; + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductBCPKCHZList.TBRafreshClick(Sender: TObject); +begin + //BegDate.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmCKProductBCPKCHZList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductBCPKCHZList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductBCPKCHZList.FormShow(Sender: TObject); +begin + + ReadCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + if Trim(DParameters2)='' then + begin + //v1Column5.Options.Focusing:=True; + end else + begin + //v1Column5.Options.Focusing:=False; + end; + //InitGrid(); +end; + +procedure TfrmCKProductBCPKCHZList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmCKProductBCPKCHZList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKProductBCPKCHZList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPKCHZList.v1Column5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SOrdDefStr10'; + flagname:='ŵص'; + if ShowModal=1 then + begin + with CDS_Main do + begin + Edit; + FieldByName('SOrdDefStr10').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Sub Set SOrdDefStr10='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + sql.Add(' where SubId='''+Trim(Self.CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCKProductBCPKCHZList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPKCHZList.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_Main.IsEmpty=False then + begin + InitOrderColor(Trim(CDS_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + //InitBCGangNo(Trim(CDS_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductBCPKCList.dfm b/盛纺贸易管理/U_CKProductBCPKCList.dfm new file mode 100644 index 0000000..11d41c2 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPKCList.dfm @@ -0,0 +1,934 @@ +object frmCKProductBCPKCList: TfrmCKProductBCPKCList + Left = 190 + Top = 119 + Width = 1274 + Height = 609 + Caption = #25104#21697#24211#23384#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1258 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBZD: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #36716#21333 + ImageIndex = 102 + OnClick = TBZDClick + end + object ToolButton1: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 57 + OnClick = ToolButton1Click + end + object print: TToolButton + Left = 378 + Top = 0 + Caption = #25171#21360#26631#31614 + ImageIndex = 12 + OnClick = printClick + end + object TBClose: TToolButton + Left = 461 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1258 + Height = 84 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 193 + Top = 12 + Width = 48 + Height = 12 + Caption = #20013#25991#21517#31216 + end + object Label1: TLabel + Left = 1172 + Top = 68 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + Visible = False + end + object Label2: TLabel + Left = 1200 + Top = 96 + Width = 12 + Height = 12 + Caption = #33267 + Visible = False + end + object Label5: TLabel + Left = 22 + Top = 12 + Width = 48 + Height = 12 + Caption = #35746' '#21333' '#21495 + end + object Label6: TLabel + Left = 22 + Top = 36 + Width = 48 + Height = 12 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 193 + Top = 36 + Width = 48 + Height = 12 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 358 + Top = 36 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 508 + Top = 36 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object Label4: TLabel + Left = 358 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label10: TLabel + Left = 508 + Top = 12 + Width = 24 + Height = 12 + Caption = #32568#21495 + end + object Label12: TLabel + Left = 656 + Top = 12 + Width = 24 + Height = 12 + Caption = #21253#21495 + end + object Label34: TLabel + Left = 68 + Top = 62 + Width = 52 + Height = 12 + Caption = #25171#21360#20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 656 + Top = 36 + Width = 24 + Height = 12 + Caption = #27454#21495 + end + object Label14: TLabel + Left = 861 + Top = 12 + Width = 26 + Height = 12 + Caption = #24211#20301 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 193 + Top = 60 + Width = 48 + Height = 12 + Caption = #24211' '#20301 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 242 + Top = 8 + Width = 90 + Height = 21 + TabOrder = 0 + OnChange = MPRTCodeNameChange + end + object BegDate: TDateTimePicker + Left = 1221 + Top = 65 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + Visible = False + end + object EndDate: TDateTimePicker + Left = 1221 + Top = 89 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 2 + Visible = False + end + object orderNo: TEdit + Tag = 2 + Left = 72 + Top = 8 + Width = 90 + Height = 21 + TabOrder = 3 + OnChange = MPRTCodeNameChange + end + object MJID: TEdit + Tag = 2 + Left = 72 + Top = 33 + Width = 90 + Height = 21 + TabOrder = 4 + OnChange = MPRTCodeNameChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 242 + Top = 33 + Width = 90 + Height = 21 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 382 + Top = 32 + Width = 90 + Height = 21 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 535 + Top = 32 + Width = 90 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 7 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '' + '' + '') + end + object PRTColor: TComboBox + Tag = 1 + Left = 384 + Top = 8 + Width = 90 + Height = 20 + ItemHeight = 12 + TabOrder = 8 + OnChange = PRTColorChange + end + object AOrdDefStr1: TComboBox + Tag = 1 + Left = 535 + Top = 8 + Width = 90 + Height = 20 + ItemHeight = 12 + TabOrder = 9 + OnChange = AOrdDefStr1Change + end + object baoNo: TEdit + Tag = 1 + Left = 682 + Top = 8 + Width = 90 + Height = 21 + TabOrder = 10 + OnChange = MPRTCodeNameChange + end + object CheckBox1: TCheckBox + Left = 16 + Top = 60 + Width = 49 + Height = 17 + Caption = #20840#36873 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + OnClick = CheckBox1Click + end + object ComboBox1: TComboBox + Left = 122 + Top = 60 + Width = 40 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemHeight = 12 + ItemIndex = 1 + ParentFont = False + TabOrder = 12 + Text = '2' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object PRTKuanNO: TEdit + Tag = 2 + Left = 682 + Top = 32 + Width = 90 + Height = 21 + TabOrder = 13 + OnChange = MPRTCodeNameChange + end + object RKPlace1: TBtnEditA + Left = 888 + Top = 7 + Width = 100 + Height = 21 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 14 + OnBtnClick = RKPlace1BtnClick + end + object Button1: TButton + Left = 988 + Top = 8 + Width = 65 + Height = 21 + Caption = #30830#23450 + TabOrder = 15 + OnClick = Button1Click + end + object RKplace: TEdit + Tag = 2 + Left = 242 + Top = 57 + Width = 90 + Height = 21 + TabOrder = 16 + OnChange = MPRTCodeNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 117 + Width = 1258 + Height = 454 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv1CellClick + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column12: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 53 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 92 + end + object v1Column10: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column13: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 58 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 77 + end + object v1Column8: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column6: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1Column2: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column14: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'baoNO' + HeaderAlignmentHorz = taCenter + Styles.Content = FontBlue + Styles.Footer = FontBlue + Styles.Header = FontBlue + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 63 + end + object v2Column5: TcxGridDBColumn + Caption = #24211#23384#20844#26020#25968 + DataBinding.FieldName = 'KCKGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 83 + end + object v2Column6: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 85 + end + object v1Column7: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 83 + end + object v1Column5: TcxGridDBColumn + Caption = #30133#28857#24773#20917 + DataBinding.FieldName = 'CDQK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 96 + end + object v1Column11: TcxGridDBColumn + Caption = #20837#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + Options.Editing = False + Width = 61 + end + object v1Column15: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'PRTKuanNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column16: TcxGridDBColumn + Caption = #24211#20301 + DataBinding.FieldName = 'RKplace' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 62 + Top = 139 + Width = 294 + Height = 213 + TabOrder = 3 + Visible = False + object Label11: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 1 + end + end + object MovePanel2: TMovePanel + Left = 408 + Top = 192 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#25805#20316#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1200 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1148 + Top = 20 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1036 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 608 + Top = 160 + end + object PopupMenu1: TPopupMenu + Left = 392 + Top = 152 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object ThreeColorBase: TcxStyleRepository + Left = 539 + Top = 316 + PixelsPerInch = 96 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 1172 + Top = 68 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1088 + Top = 4 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 796 + Top = 88 + ReportData = {} + end +end diff --git a/盛纺贸易管理/U_CKProductBCPKCList.pas b/盛纺贸易管理/U_CKProductBCPKCList.pas new file mode 100644 index 0000000..9d86288 --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPKCList.pas @@ -0,0 +1,652 @@ +unit U_CKProductBCPKCList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxCheckBox, + Menus, cxCalendar, RM_Common, RM_Class, RM_GridReport, RM_System, + RM_Dataset, BtnEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; + +type + TfrmCKProductBCPKCList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + MPRTCodeName: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + Label5: TLabel; + orderNo: TEdit; + Label6: TLabel; + MJID: TEdit; + v1Column7: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + v1Column3: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + Panel4: TPanel; + Label11: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + MovePanel2: TMovePanel; + v1Column11: TcxGridDBColumn; + TBZD: TToolButton; + v1Column12: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + v1Column10: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label4: TLabel; + Label10: TLabel; + PRTColor: TComboBox; + AOrdDefStr1: TComboBox; + v1Column14: TcxGridDBColumn; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + ToolButton1: TToolButton; + Label12: TLabel; + baoNo: TEdit; + CheckBox1: TCheckBox; + print: TToolButton; + RMDB_Main: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + RM2: TRMGridReport; + ComboBox1: TComboBox; + Label34: TLabel; + v1Column15: TcxGridDBColumn; + PRTKuanNO: TEdit; + Label13: TLabel; + v1Column16: TcxGridDBColumn; + RKPlace1: TBtnEditA; + Label14: TLabel; + Button1: TButton; + RKplace: TEdit; + Label15: TLabel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBZDClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure PRTColorChange(Sender: TObject); + procedure AOrdDefStr1Change(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure printClick(Sender: TObject); + procedure RKPlace1BtnClick(Sender: TObject); + procedure Button1Click(Sender: TObject); + private + FLeft,FTop:Integer; + procedure InitGrid(); + function PrtData(FMJID:String):boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductBCPKCList: TfrmCKProductBCPKCList; + +implementation +uses + U_DataLink,U_Fun,U_ProductOrderListSel, U_ZDYHelp; + +{$R *.dfm} +function TfrmCKProductBCPKCList.PrtData(FMJID:String):boolean; +var + fPrintFile:String; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + result:=false; + try + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,B.conNo,GangNo=D.AOrddefStr1,PRTColorEng=E.Note,B.LBName '); + sql.Add(',khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=B.conNO) '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,C.*,A.* '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(FMJID)+''''); + Open; + end; + + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + if Trim(ADOQueryPrint.fieldbyname('LBName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1); + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end + else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)),'ʾ',0); + exit; + end; + result:=true; + except + end; +end; + +procedure TfrmCKProductBCPKCList.FormDestroy(Sender: TObject); +begin + frmCKProductBCPKCList:=nil; +end; + +procedure TfrmCKProductBCPKCList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductBCPKCList.FormCreate(Sender: TObject); +begin + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductBCPKCList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('exec P_View_CPKCMX :WSQl'); + if Trim(DParameters2)<>'' then + begin + //Parameters.ParamByName('WSQl').Value:=' and B.Filler='''+Trim(DName)+''''; + end else + begin + //Parameters.ParamByName('WSQl').Value:=''; + end; + Parameters.ParamByName('WSQl').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductBCPKCList.TBRafreshClick(Sender: TObject); +begin + // BegDate.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmCKProductBCPKCList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductBCPKCList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ֿб',Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductBCPKCList.FormShow(Sender: TObject); +begin + + ReadCxGrid('ֿб',Tv1,'Ʒֿ'); + if Trim(DParameters2)='' then + begin + TBZD.Visible:=True; + // ToolButton1.Visible:=true; + end else + begin + TBZD.Visible:=False; + // ToolButton1.Visible:=false; + end; + //InitGrid(); +end; + +procedure TfrmCKProductBCPKCList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmCKProductBCPKCList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKProductBCPKCList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPKCList.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmCKProductBCPKCList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmCKProductBCPKCList.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmCKProductBCPKCList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + {if Trim(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName)<>'CDQK' then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select CDQK=dbo.F_Get_Order_SubStr(:MJID,''MJCDHZSL'')'); + Parameters.ParamByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + Open; + end; + with CDS_Main do + begin + Edit; + FieldByName('CDQK').Value:=Trim(ADOQueryTemp.fieldbyname('CDQK').AsString); + Post; + end; } + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel4.Refresh; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + + RichEdit1.Text:=CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; +end; + +procedure TfrmCKProductBCPKCList.TBZDClick(Sender: TObject); +var + FMainid,FSubId,FOrderNo,FColor,FSH,FHX,FCodeName,FMPRTMF,FMPRTKZ:String; +begin + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + FMainid:=''; + try + frmProductOrderListSel:=TfrmProductOrderListSel.Create(Application); + with frmProductOrderListSel do + begin + FFInt:=1; + if ShowModal=1 then + begin + FMainid:=frmProductOrderListSel.Order_Main.fieldbyname('Mainid').AsString; + FSubId:=frmProductOrderListSel.Order_Main.fieldbyname('SubId').AsString; + FOrderNo:=frmProductOrderListSel.Order_Main.fieldbyname('OrderNo').Value; + FCodeName:=frmProductOrderListSel.Order_Main.fieldbyname('MPRTCodeName').Value; + FColor:=frmProductOrderListSel.Order_Main.fieldbyname('PRTColor').Value; + if Trim(frmProductOrderListSel.Order_Main.fieldbyname('SOrddefstr1').AsString)<>'' then + FSH:=frmProductOrderListSel.Order_Main.fieldbyname('SOrddefstr1').AsString; + if Trim(frmProductOrderListSel.Order_Main.fieldbyname('PRTHX').AsString)<>'' then + FHX:=frmProductOrderListSel.Order_Main.fieldbyname('PRTHX').Value; + FMPRTMF:=frmProductOrderListSel.Order_Main.fieldbyname('MPRTMF').AsString; + FMPRTKZ:=frmProductOrderListSel.Order_Main.fieldbyname('MPRTKZ').AsString; + end; + end; + finally + frmProductOrderListSel.Free; + end; + if Trim(FMainid)<>'' then + begin + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + Self.ADOQueryCmd.Connection.BeginTrans; + Self.CDS_Main.DisableControls; + with Self.CDS_Main do + begin + while not Eof do + begin + if Self.CDS_Main.FieldByName('SSEl').AsBoolean=True then + begin + with Self.ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate CK_BanCP_CR Set MainId='''+Trim(FMainid)+''''); + sql.Add(',SubId='''+Trim(FSubId)+''''); + sql.Add(',ZDPerson='''+Trim(DName)+''',ZDTime=getdate() '); + sql.Add(' where CRID='+self.CDS_Main.fieldbyname('CRID').AsString); + SQL.Add(' and CRType='''' '); + sql.Add('UPdate WFB_MJJY Set MainId='''+Trim(FMainid)+''''); + sql.Add(',SubId='''+Trim(FSubId)+''''); + //sql.Add(',ZDPerson='''+Trim(DName)+''',ZDTime=getdate() '); + sql.Add(' where MJID='+self.CDS_Main.fieldbyname('MJID').AsString); + ExecSQL; + end; + Edit; + FieldByName('OrderNo').Value:=FOrderNo; + FieldByName('MPRTCodeName').Value:=FCodeName; + FieldByName('PRTColor').Value:=FColor; + FieldByName('SOrddefstr1').Value:=FSH; + FieldByName('PRTHX').Value:=FHX; + FieldByName('MPRTMF').Value:=FMPRTMF; + FieldByName('MPRTKZ').Value:=FMPRTKZ; + Post; + end; + Next; + end; + end; + Self.CDS_Main.EnableControls; + Self.ADOQueryCmd.Connection.CommitTrans; + MovePanel2.Visible:=False; + except + Self.ADOQueryCmd.Connection.RollbackTrans; + MovePanel2.Visible:=False; + Application.MessageBox('תʧ!','ʾ',0) ; + end; + end; +end; + +procedure TfrmCKProductBCPKCList.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmCKProductBCPKCList.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmCKProductBCPKCList.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_Main.IsEmpty=False then + begin + InitOrderColor(Trim(CDS_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + InitBCGangNo(Trim(CDS_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmCKProductBCPKCList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; + if CDS_Main.IsEmpty=False then + begin + //InitOrderColor(Trim(CDS_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + InitBCGangNo(Trim(CDS_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmCKProductBCPKCList.AOrdDefStr1Change(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPKCList.ToolButton1Click(Sender: TObject); +begin + IF CDS_main.IsEmpty then exit; + orderNo.SetFocus; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + + ADOQueryCmd.Connection.BeginTrans; + try + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + IF fieldbyname('ssel').AsBoolean then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update CK_BanCP_CR '); + sql.Add('SET baoNO='+quotedstr(CDS_Main.fieldbyname('baoNO').AsString)); + sql.Add('where BCID='+quotedstr(CDS_Main.fieldbyname('BCID').AsString)); + sql.Add('and MJID='+quotedstr(CDS_Main.fieldbyname('MJID').AsString)); + execsql; + end; + end; + next; + end; + first; + EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('ݱɹ','ʾϢ'); + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ݱʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; +end; + +procedure TfrmCKProductBCPKCList.CheckBox1Click(Sender: TObject); +begin + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + edit; + fieldbyname('ssel').Value:=checkbox1.Checked; + post; + next; + end; + first; + EnableControls; + end; +end; + +procedure TfrmCKProductBCPKCList.printClick(Sender: TObject); +begin + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + + with CDS_Main do + begin + DisableControls; + first; + while not Eof do + begin + if Self.CDS_Main.FieldByName('SSEl').AsBoolean=True then + begin + iF not PrtData(CDS_Main.fieldbyname('MJID').AsString) then + begin + EnableControls; + exit; + end; + end; + Next; + end; + EnableControls; + end; +end; + +procedure TfrmCKProductBCPKCList.RKPlace1BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KuWei'; + flagname:='λ'; + if ShowModal=1 then + begin + RKPlace1.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCKProductBCPKCList.Button1Click(Sender: TObject); +begin + // IF trim(RKPlace1.Text)='' then exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + Self.ADOQueryCmd.Connection.BeginTrans; + Self.CDS_Main.DisableControls; + with Self.CDS_Main do + begin + while not Eof do + begin + if Self.CDS_Main.FieldByName('SSEl').AsBoolean=True then + begin + with Self.ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate CK_BanCP_CR Set RKPlace='+quotedstr(trim(RKPlace1.Text))); + sql.Add(' where BCID='+quotedstr(trim(self.CDS_Main.fieldbyname('BCID').AsString))); + ExecSQL; + end; + Edit; + FieldByName('RKPlace').Value:=trim(rkplace1.Text); + Post; + end; + Next; + end; + end; + Self.CDS_Main.EnableControls; + Self.ADOQueryCmd.Connection.CommitTrans; + MovePanel2.Visible:=False; + except + Self.ADOQueryCmd.Connection.RollbackTrans; + MovePanel2.Visible:=False; + Application.MessageBox('תƿλʧ!','ʾ',0) ; + end; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductBCPOutList.dfm b/盛纺贸易管理/U_CKProductBCPOutList.dfm new file mode 100644 index 0000000..69cd7ed --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPOutList.dfm @@ -0,0 +1,1455 @@ +object frmCKProductBCPOutList: TfrmCKProductBCPOutList + Left = 190 + Top = 135 + Width = 1378 + Height = 698 + Caption = #25104#21697#20986#24211#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1362 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TDH: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21333#21495#25764#38144 + ImageIndex = 86 + OnClick = TDHClick + end + object TBCKCX: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #25764#38144#20986#24211 + ImageIndex = 129 + Visible = False + OnClick = TBCKCXClick + end + object ToolButton1: TToolButton + Left = 300 + Top = 0 + AutoSize = True + Caption = #36864#24211#25195#25551 + ImageIndex = 129 + Visible = False + OnClick = ToolButton1Click + end + object TBExport: TToolButton + Left = 387 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 450 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ComboBox1: TComboBox + Left = 513 + Top = 3 + Width = 171 + Height = 24 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + Items.Strings = ( + #20986#24211#30721#21333'2' + #20986#24211#30721#21333'3' + #20986#24211#30721#21333#32568#21495 + #20986#24211#30721#21333#25171#21253'('#31616#21333')' + #20986#24211#30721#21333#25171#21253#20844#26020#30721 + #20986#24211#30721#21333#25171#21253#31859#30721 + #20986#24211#30721#21333#38463#26681#24311 + #38463#26681#24311#26368#26032#29256#30721#21333 + #20986#24211#30721#21333'TAG NO') + end + object TBClose: TToolButton + Left = 684 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 747 + Top = 0 + AutoSize = True + Caption = #26816#39564#25253#21578 + ImageIndex = 12 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 834 + Top = 0 + Caption = #26816#39564#27719#24635#25253#21578 + ImageIndex = 12 + Visible = False + OnClick = ToolButton3Click + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1362 + Height = 106 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 365 + Top = 13 + Width = 52 + Height = 13 + Caption = #20013#25991#21517#31216 + end + object Label4: TLabel + Left = 536 + Top = 13 + Width = 26 + Height = 13 + Caption = #39068#33394 + end + object Label1: TLabel + Left = 46 + Top = 13 + Width = 52 + Height = 13 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 85 + Top = 39 + Width = 13 + Height = 13 + Caption = #33267 + end + object Label5: TLabel + Left = 210 + Top = 13 + Width = 52 + Height = 13 + Caption = #25351#31034#21333#21495 + end + object Label6: TLabel + Left = 210 + Top = 39 + Width = 54 + Height = 13 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 365 + Top = 39 + Width = 54 + Height = 13 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 536 + Top = 39 + Width = 26 + Height = 13 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 665 + Top = 39 + Width = 54 + Height = 13 + Caption = #31867' '#22411 + end + object Label10: TLabel + Left = 665 + Top = 13 + Width = 52 + Height = 13 + Caption = #20986#24211#21333#21495 + end + object Label11: TLabel + Left = 830 + Top = 13 + Width = 26 + Height = 13 + Caption = #32568#21495 + end + object Label12: TLabel + Left = 830 + Top = 39 + Width = 26 + Height = 13 + Caption = #21367#21495 + end + object Label15: TLabel + Left = 210 + Top = 65 + Width = 53 + Height = 13 + Caption = #21512' '#21516' '#21495 + end + object Label16: TLabel + Left = 366 + Top = 65 + Width = 21 + Height = 13 + Caption = 'PO#' + end + object Label17: TLabel + Left = 526 + Top = 65 + Width = 39 + Height = 13 + Caption = #32568#26465#30721 + end + object Label18: TLabel + Left = 665 + Top = 65 + Width = 54 + Height = 13 + Caption = #27454' '#21495 + end + object Label19: TLabel + Left = 830 + Top = 65 + Width = 26 + Height = 13 + Caption = #22791#27880 + end + object Label20: TLabel + Left = 956 + Top = 13 + Width = 52 + Height = 13 + Caption = #33457#22411#33457#21495 + end + object Label21: TLabel + Left = 956 + Top = 39 + Width = 52 + Height = 13 + Caption = #39068#33394#33521#25991 + end + object Label22: TLabel + Left = 404 + Top = 87 + Width = 434 + Height = 16 + Caption = #27880':'#36755#20837#21512#21516#21495#65292#25110#32773#25351#31034#21333#21495#25353#22238#36710#38190#65292#33021#33410#30465#26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 423 + Top = 10 + Width = 97 + Height = 21 + TabOrder = 0 + OnChange = MPRTCodeNameChange + end + object BegDate: TDateTimePicker + Left = 103 + Top = 10 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object EndDate: TDateTimePicker + Left = 103 + Top = 36 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + end + object orderNo: TEdit + Tag = 2 + Left = 264 + Top = 10 + Width = 98 + Height = 21 + TabOrder = 3 + OnChange = orderNoChange + OnKeyPress = orderNoKeyPress + end + object MJID: TEdit + Tag = 2 + Left = 264 + Top = 36 + Width = 98 + Height = 21 + TabOrder = 4 + OnChange = MPRTCodeNameChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 423 + Top = 36 + Width = 97 + Height = 21 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 564 + Top = 35 + Width = 87 + Height = 21 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 723 + Top = 35 + Width = 72 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 7 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object CkOrdNo: TEdit + Tag = 2 + Left = 723 + Top = 10 + Width = 70 + Height = 21 + TabOrder = 8 + OnChange = MPRTCodeNameChange + end + object PRTColor: TComboBox + Tag = 2 + Left = 564 + Top = 9 + Width = 87 + Height = 21 + ItemHeight = 13 + TabOrder = 9 + OnChange = PRTColorChange + end + object AOrdDefStr1: TComboBox + Tag = 2 + Left = 855 + Top = 9 + Width = 76 + Height = 21 + ItemHeight = 13 + TabOrder = 10 + OnChange = AOrdDefStr1Change + end + object MJXH: TEdit + Tag = 2 + Left = 855 + Top = 35 + Width = 76 + Height = 21 + TabOrder = 11 + OnChange = MPRTCodeNameChange + end + object CheckBox1: TCheckBox + Left = 54 + Top = 69 + Width = 105 + Height = 18 + Caption = #20840#36873 + TabOrder = 12 + OnClick = CheckBox1Click + end + object KHConNo: TEdit + Tag = 2 + Left = 423 + Top = 62 + Width = 97 + Height = 21 + TabOrder = 13 + OnChange = MPRTCodeNameChange + OnKeyPress = KHConNoKeyPress + end + object apid: TEdit + Tag = 2 + Left = 564 + Top = 61 + Width = 87 + Height = 21 + TabOrder = 14 + OnChange = MPRTCodeNameChange + end + object styleno: TEdit + Tag = 2 + Left = 722 + Top = 61 + Width = 70 + Height = 21 + TabOrder = 15 + OnChange = MPRTCodeNameChange + end + object CRNote: TEdit + Tag = 2 + Left = 855 + Top = 61 + Width = 76 + Height = 21 + TabOrder = 16 + OnChange = MPRTCodeNameChange + end + object PRTHX: TEdit + Tag = 2 + Left = 1010 + Top = 9 + Width = 86 + Height = 21 + TabOrder = 17 + OnChange = MPRTCodeNameChange + end + object PRTColorEng: TEdit + Tag = 2 + Left = 1010 + Top = 35 + Width = 86 + Height = 21 + TabOrder = 18 + OnChange = MPRTCodeNameChange + end + object ConNOHT: TEdit + Tag = 2 + Left = 264 + Top = 62 + Width = 98 + Height = 21 + TabOrder = 19 + OnChange = ConNOHTChange + OnKeyPress = ConNOHTKeyPress + end + end + object cxGrid2: TcxGrid + Left = 131 + Top = 139 + Width = 1231 + Height = 519 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + Column = v1Column5 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + Column = v1Column14 + end + item + Kind = skSum + Column = v1Column15 + end + item + Kind = skSum + Column = v1MJLen + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column11: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 44 + end + object v1Column4: TcxGridDBColumn + Caption = #20986#24211#21333#21495 + DataBinding.FieldName = 'CKOrdNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.FoneRed + Width = 73 + end + object v1Column1: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1KHName: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object v1PRTColorEng: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'PRTColorEng' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column12: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column8: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column6: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column5: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 63 + end + object v1Column2: TcxGridDBColumn + Caption = #20986#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 101 + end + object v1Column14: TcxGridDBColumn + Caption = #30382#37325 + DataBinding.FieldName = 'MJQty3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column15: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 55 + end + object v2Column5: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object v2Column6: TcxGridDBColumn + Caption = #20986#24211#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1MJLen: TcxGridDBColumn + Caption = #26816#39564#38271#24230 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column7: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 83 + end + object v1Column10: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 55 + end + object v1Column13: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column19: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column20: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHCONNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object v1Column22: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1styleno: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1CRType: TcxGridDBColumn + Caption = #20986#24211#31867#22411 + DataBinding.FieldName = 'CRType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1CRNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CRNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object MovePanel2: TMovePanel + Left = 373 + Top = 208 + Width = 313 + Height = 53 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object cxGrid1: TcxGrid + Left = 0 + Top = 139 + Width = 131 + Height = 519 + Align = alLeft + PopupMenu = PopupMenu1 + TabOrder = 4 + Visible = False + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_BaoPRT + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn2: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XH' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 74 + end + object v2Column2: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo0' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v2Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo1' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v2Column7: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo2' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v2Column8: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo3' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v2Column9: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo4' + HeaderAlignmentHorz = taCenter + Width = 53 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 4 + Top = 423 + Width = 677 + Height = 140 + PopupMenu = PopupMenu1 + TabOrder = 5 + Visible = False + object Tv3: TcxGridDBTableView + PopupMenu = PopupMenu1 + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_JuanPRT + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XH' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 44 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #21253#21495'0' + DataBinding.FieldName = 'BaoNo0' + HeaderAlignmentHorz = taCenter + Width = 40 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21305#21495'0' + DataBinding.FieldName = 'MJXH0' + HeaderAlignmentHorz = taCenter + Width = 42 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #20844#26020'0' + DataBinding.FieldName = 'KGQty0' + HeaderAlignmentHorz = taCenter + Width = 41 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38271#24230'0' + DataBinding.FieldName = 'LenQty0' + HeaderAlignmentHorz = taCenter + Width = 43 + end + object Tv3Column1: TcxGridDBColumn + Caption = #21253#21495'1' + DataBinding.FieldName = 'BaoNo1' + Width = 41 + end + object Tv3Column2: TcxGridDBColumn + Caption = #21253#21495'2' + DataBinding.FieldName = 'BaoNo2' + Width = 50 + end + object Tv3Column3: TcxGridDBColumn + Caption = #21253#21495'3' + DataBinding.FieldName = 'BaoNo3' + Width = 41 + end + object Tv3Column4: TcxGridDBColumn + Caption = #21253#21495'4' + DataBinding.FieldName = 'BaoNo4' + Width = 40 + end + object v3Column1: TcxGridDBColumn + Caption = #21305#21495'1' + DataBinding.FieldName = 'MJXH1' + Width = 60 + end + object v3Column2: TcxGridDBColumn + Caption = #21305#21495'2' + DataBinding.FieldName = 'MJXH2' + Width = 62 + end + object v3Column3: TcxGridDBColumn + Caption = #21305#21495'3' + DataBinding.FieldName = 'MJXH3' + Width = 60 + end + object v3Column4: TcxGridDBColumn + Caption = #21305#21495'4' + DataBinding.FieldName = 'MJXH4' + Width = 54 + end + object v3Column5: TcxGridDBColumn + Caption = #20844#26020'1' + DataBinding.FieldName = 'KGQty1' + Width = 63 + end + object v3Column6: TcxGridDBColumn + Caption = #20844#26020'2' + DataBinding.FieldName = 'KGQty2' + Width = 62 + end + object v3Column7: TcxGridDBColumn + Caption = #20844#26020'3' + DataBinding.FieldName = 'KGQty3' + Width = 59 + end + object v3Column8: TcxGridDBColumn + Caption = #20844#26020'4' + DataBinding.FieldName = 'KGQty4' + Width = 58 + end + object v3Column9: TcxGridDBColumn + Caption = #38271#24230'1' + DataBinding.FieldName = 'LenQty1' + Width = 63 + end + object v3Column10: TcxGridDBColumn + Caption = #38271#24230'2' + DataBinding.FieldName = 'LenQty2' + Width = 61 + end + object v3Column11: TcxGridDBColumn + Caption = #38271#24230'3' + DataBinding.FieldName = 'LenQty3' + Width = 63 + end + object v3Column12: TcxGridDBColumn + Caption = #38271#24230'4' + DataBinding.FieldName = 'LenQty4' + Width = 60 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid4: TcxGrid + Left = 689 + Top = 423 + Width = 569 + Height = 140 + PopupMenu = PopupMenu1 + TabOrder = 6 + Visible = False + object TV4: TcxGridDBTableView + PopupMenu = PopupMenu1 + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn7: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XH' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 46 + end + object cxGridDBColumn12: TcxGridDBColumn + Caption = #21253#21495'1' + DataBinding.FieldName = 'BaoNo1' + Width = 46 + end + object cxGridDBColumn13: TcxGridDBColumn + Caption = #21253#21495'2' + DataBinding.FieldName = 'BaoNo2' + Width = 50 + end + object cxGridDBColumn16: TcxGridDBColumn + Caption = #21305#21495'1' + DataBinding.FieldName = 'MJXH1' + Width = 60 + end + object cxGridDBColumn17: TcxGridDBColumn + Caption = #21305#21495'2' + DataBinding.FieldName = 'MJXH2' + Width = 62 + end + object cxGridDBColumn20: TcxGridDBColumn + Caption = #20844#26020'1' + DataBinding.FieldName = 'KGQty1' + Width = 63 + end + object cxGridDBColumn21: TcxGridDBColumn + Caption = #20844#26020'2' + DataBinding.FieldName = 'KGQty2' + Width = 62 + end + object cxGridDBColumn24: TcxGridDBColumn + Caption = #38271#24230'1' + DataBinding.FieldName = 'LenQty1' + Width = 63 + end + object cxGridDBColumn25: TcxGridDBColumn + Caption = #38271#24230'2' + DataBinding.FieldName = 'LenQty2' + Width = 61 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TV4 + end + end + object Panel4: TPanel + Left = 67 + Top = 157 + Width = 319 + Height = 230 + TabOrder = 7 + Visible = False + object Label13: TLabel + Left = 52 + Top = 95 + Width = 7 + Height = 13 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 317 + Height = 25 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + object Image2: TImage + Left = 291 + Top = 3 + Width = 24 + Height = 18 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 26 + Width = 317 + Height = 203 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object Panel2: TPanel + Left = 486 + Top = 170 + Width = 274 + Height = 114 + Color = clSkyBlue + TabOrder = 8 + Visible = False + OnDblClick = Panel2DblClick + object Label14: TLabel + Left = 30 + Top = 43 + Width = 56 + Height = 13 + Caption = #26465#30721#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object THMJID: TEdit + Left = 91 + Top = 39 + Width = 135 + Height = 21 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnKeyPress = THMJIDKeyPress + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + CommandTimeout = 600 + Parameters = <> + Left = 876 + Top = 253 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1080 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + CommandTimeout = 600 + Parameters = <> + Left = 1112 + Top = 40 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 814 + Top = 251 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 784 + Top = 248 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 844 + Top = 252 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 200 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 428 + Top = 256 + end + object PopupMenu1: TPopupMenu + Left = 556 + Top = 282 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object CDS_CX: TClientDataSet + Aggregates = <> + Params = <> + Left = 991 + Top = 302 + end + object CDS_BaoNo: TClientDataSet + Aggregates = <> + Params = <> + Left = 680 + Top = 296 + end + object CDS_Juan: TClientDataSet + Aggregates = <> + Params = <> + Left = 712 + Top = 296 + end + object CDS_BaoPRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 104 + Top = 208 + end + object DS_BaoPRT: TDataSource + DataSet = CDS_BaoPRT + Left = 96 + Top = 264 + end + object DS_JuanPRT: TDataSource + Left = 360 + Top = 384 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 216 + Top = 216 + end + object cxGridPopupMenu3: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 600 + Top = 376 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 716 + Top = 484 + end + object RMDBWXPTPrint: TRMDBDataSet + Visible = True + DataSet = CDS_WXPTPrint + Left = 752 + Top = 460 + end + object CDS_WXPT: TClientDataSet + Aggregates = <> + Params = <> + Left = 780 + Top = 460 + end + object DataSource2: TDataSource + DataSet = CDS_WXPTPrint + Left = 812 + Top = 460 + end + object CDS_WXPTPrint: TClientDataSet + Aggregates = <> + Params = <> + Left = 860 + Top = 456 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1140 + Top = 41 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_WXPTPrint + Left = 816 + Top = 298 + end + object RMDBPRT: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 516 + Top = 285 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 1041 + Top = 12 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 480 + Top = 284 + end + object RM3: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 745 + Top = 295 + ReportData = {} + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + CommandTimeout = 600 + Parameters = <> + Left = 220 + Top = 444 + end + object RMDBCKHZ: TRMDBDataSet + Visible = True + DataSet = Print_HZ + Left = 256 + Top = 444 + end + object Print_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 292 + Top = 444 + end + object RMDBCOL: TRMDBDataSet + Visible = True + DataSet = CDS_COL + Left = 999 + Top = 10 + end + object CDS_COL: TClientDataSet + Aggregates = <> + Params = <> + Left = 960 + Top = 12 + end + object RMDBCX: TRMDBDataSet + Visible = True + DataSet = CDS_CX + Left = 957 + Top = 302 + end + object CDS_CD: TClientDataSet + Aggregates = <> + Params = <> + Left = 1191 + Top = 397 + end + object CDS_LS: TClientDataSet + Aggregates = <> + Params = <> + Left = 1231 + Top = 397 + end + object RMDBCD: TRMDBDataSet + Visible = True + DataSet = CDS_CD + Left = 1264 + Top = 400 + end + object Ord_Mx: TClientDataSet + Aggregates = <> + Params = <> + Left = 1191 + Top = 442 + end + object RMDB_MXCol: TRMDBDataSet + Visible = True + DataSet = Ord_Mx + Left = 1264 + Top = 445 + end +end diff --git a/盛纺贸易管理/U_CKProductBCPOutList.pas b/盛纺贸易管理/U_CKProductBCPOutList.pas new file mode 100644 index 0000000..e287ccd --- /dev/null +++ b/盛纺贸易管理/U_CKProductBCPOutList.pas @@ -0,0 +1,1943 @@ +unit U_CKProductBCPOutList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, RM_Common, RM_Class, + RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxCheckBox, Menus, + MovePanel, RM_E_llPDF; + +type + TfrmCKProductBCPOutList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + MPRTCodeName: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + Label5: TLabel; + orderNo: TEdit; + Label6: TLabel; + MJID: TEdit; + v1Column7: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + v1Column3: TcxGridDBColumn; + RMXLSExport1: TRMXLSExport; + v1Column4: TcxGridDBColumn; + Label10: TLabel; + CkOrdNo: TEdit; + v1Column5: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + TBCKCX: TToolButton; + v1Column11: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + MovePanel2: TMovePanel; + CDS_CX: TClientDataSet; + v1Column12: TcxGridDBColumn; + CDS_BaoNo: TClientDataSet; + CDS_Juan: TClientDataSet; + CDS_BaoPRT: TClientDataSet; + DS_BaoPRT: TDataSource; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn2: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + v2Column2: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Tv3Column1: TcxGridDBColumn; + Tv3Column2: TcxGridDBColumn; + Tv3Column3: TcxGridDBColumn; + Tv3Column4: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + v3Column9: TcxGridDBColumn; + v3Column10: TcxGridDBColumn; + v3Column11: TcxGridDBColumn; + v3Column12: TcxGridDBColumn; + DS_JuanPRT: TDataSource; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + PRTColor: TComboBox; + Label11: TLabel; + AOrdDefStr1: TComboBox; + ComboBox1: TComboBox; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + cxGrid4: TcxGrid; + TV4: TcxGridDBTableView; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridDBColumn20: TcxGridDBColumn; + cxGridDBColumn21: TcxGridDBColumn; + cxGridDBColumn24: TcxGridDBColumn; + cxGridDBColumn25: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + cxGridPopupMenu4: TcxGridPopupMenu; + RMDBWXPTPrint: TRMDBDataSet; + CDS_WXPT: TClientDataSet; + DataSource2: TDataSource; + CDS_WXPTPrint: TClientDataSet; + MJXH: TEdit; + Label12: TLabel; + CheckBox1: TCheckBox; + Panel4: TPanel; + Label13: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + ToolButton1: TToolButton; + Panel2: TPanel; + Label14: TLabel; + THMJID: TEdit; + v1PRTColorEng: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + Label15: TLabel; + Label16: TLabel; + KHConNo: TEdit; + Label17: TLabel; + apid: TEdit; + v1Column22: TcxGridDBColumn; + v1styleno: TcxGridDBColumn; + styleno: TEdit; + Label18: TLabel; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ADOQueryPrint: TADOQuery; + CRNote: TEdit; + Label19: TLabel; + RMDBHZ: TRMDBDataSet; + RMDBPRT: TRMDBDataSet; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + RM3: TRMGridReport; + PRTHX: TEdit; + Label20: TLabel; + PRTColorEng: TEdit; + Label21: TLabel; + ADOQuery1: TADOQuery; + RMDBCKHZ: TRMDBDataSet; + Print_HZ: TClientDataSet; + RMDBCOL: TRMDBDataSet; + CDS_COL: TClientDataSet; + ConNOHT: TEdit; + v1KHName: TcxGridDBColumn; + Label22: TLabel; + v1CRType: TcxGridDBColumn; + v1MJLen: TcxGridDBColumn; + v1CRNote: TcxGridDBColumn; + TDH: TToolButton; + RMDBCX: TRMDBDataSet; + CDS_CD: TClientDataSet; + CDS_LS: TClientDataSet; + RMDBCD: TRMDBDataSet; + Ord_Mx: TClientDataSet; + RMDB_MXCol: TRMDBDataSet; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure orderNoChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure TBCKCXClick(Sender: TObject); + procedure orderNoKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure PRTColorChange(Sender: TObject); + procedure AOrdDefStr1Change(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Panel2DblClick(Sender: TObject); + procedure THMJIDKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ConNOHTChange(Sender: TObject); + procedure ConNOHTKeyPress(Sender: TObject; var Key: Char); + procedure KHConNoKeyPress(Sender: TObject; var Key: Char); + procedure TDHClick(Sender: TObject); + private + FLeft,FTop:Integer; + FPRTColorNo1,FPRTColorNo2,FPRTColorNo3,FPRTColorNo4,FPRTColorNo5:string; + procedure InitGrid(); + function YSData(Order_Main10:TClientDataSet):Boolean; + function YFData(Order_Main10:TClientDataSet):Boolean; + + procedure Print_WXPT(); + procedure Print_WXPT1(); + procedure Print_WXPT2(); + procedure Print_WXPT3(); + procedure Print_WXPT4(); + procedure GetCDSData(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductBCPOutList: TfrmCKProductBCPOutList; + +implementation +uses + U_DataLink,U_Fun, U_JYMJIDPRINT; + +{$R *.dfm} +procedure TfrmCKProductBCPOutList.GetCDSData(); +begin + CDS_CD.fieldbyname('MPrtCodeName').Value:=trim(CDS_LS.fieldbyname('PrtCodeName').AsString); + CDS_CD.fieldbyname('CustomerNoName').Value:=trim(CDS_LS.fieldbyname('CustomerNoName').AsString); + CDS_CD.fieldbyname('PRTSpec').Value:=trim(CDS_LS.fieldbyname('PRTSpec').AsString); + CDS_CD.fieldbyname('PRTMF').Value:=trim(CDS_LS.fieldbyname('PRTMF').AsString); + CDS_CD.fieldbyname('prtkz').Value:=trim(CDS_LS.fieldbyname('prtkz').AsString); + CDS_CD.FieldByName('SYRName').Value:=CDS_LS.fieldbyname('SYRName').Value; + CDS_CD.FieldByName('ConNO').Value:=CDS_LS.fieldbyname('ConNO').Value; + CDS_CD.FieldByName('Filltime').Value:=CDS_LS.fieldbyname('Filltime').AsDateTime; + CDS_CD.FieldByName('PrtCodeNo').Value:=CDS_LS.fieldbyname('PrtCodeNo').Value; + CDS_CD.FieldByName('orddefstr3').Value:=CDS_LS.fieldbyname('orddefstr3').Value; + CDS_CD.FieldByName('PRTColorNo').Value:=CDS_LS.fieldbyname('PRTColorNo').Value; + CDS_CD.FieldByName('SOrddefstr4').Value:=CDS_LS.fieldbyname('SOrddefstr4').Value; + CDS_CD.FieldByName('GangNo').Value:=CDS_LS.fieldbyname('GangNo').Value; + CDS_CD.FieldByName('PRTHX').Value:=CDS_LS.fieldbyname('PRTHX').Value; +end; + +procedure TfrmCKProductBCPOutList.Print_WXPT3(); +var + FMJId:string; + i,j,z:Integer; + FSumQty,FSumQtyM,FSumPS:Double; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select SYRName=cast('''' as varchar(70)),ConNO=cast('''' as varchar(70)),Filltime=cast(NULL as datetime),PRTHX=cast('''' as varchar(70)),'); + sql.add('orddefstr3=cast('''' as varchar(70)),MPRTCodeName=cast('''' as varchar(60)),PRTColorNo=cast('''' as varchar(60))'); + sql.add(',PrtCodeNo=cast('''' as varchar(70)),GangNo=cast('''' as varchar(70)),SOrddefstr4=cast('''' as varchar(70)),XX=cast('''' as varchar(70)),XH=Cast(0 as int)'); + sql.Add(',Qty0=Cast('''' as varchar(50)),PRTspec=cast('''' as varchar(70))'); + sql.Add(',Qty1=Cast('''' as varchar(50)),PRTMF=cast('''' as varchar(70))'); + sql.Add(',Qty2=Cast('''' as varchar(50)),PRTKZ=cast('''' as varchar(70))'); + sql.Add(',Qty3=Cast('''' as varchar(50)),CustomerNoName=cast('''' as varchar(70))'); + sql.Add(',Qty4=Cast('''' as varchar(50))'); + sql.Add(',Qty5=Cast('''' as varchar(50))'); + sql.Add(',Qty6=Cast('''' as varchar(50))'); + sql.Add(',Qty7=Cast('''' as varchar(50))'); + sql.Add(',Qty8=Cast('''' as varchar(50))'); + sql.Add(',Qty9=Cast('''' as varchar(50))'); + sql.add(',SumMQty=cast(0 as decimal(18,2)),SumYQty=cast(0 as decimal(18,2)),SumKGQty=cast(0 as decimal(18,2))'); + sql.Add(',SumJZQty=cast(0 as decimal(18,2)),PS=cast(0 as decimal(18,2))'); + sql.add(',CPPS=cast(0 as decimal(18,2)),CPQty=cast(0 as decimal(18,2)),CPKGQty=cast(0 as decimal(18,2))'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_CD); + SInitCDSData20(ADOQueryTemp,CDS_CD); + if CDS_CD.IsEmpty=False then CDS_CD.Delete; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD3 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('ConNOHT').AsString))); + sql.add(',@flag=''1'''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_LS); + SInitCDSData20(ADOQueryTemp,CDS_LS); + CDS_LS.DisableControls; + with CDS_LS do + begin + First; + while not Eof do + begin + if CDS_CD.IsEmpty then + begin + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value:=1; + FieldByName('XX').Value:='RL NO'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumMQty').AsFloat:=1; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value:=2; + FieldByName('XX').Value:='MTS'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumYQty').AsFloat:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value:=3; + FieldByName('XX').Value:='KGS'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumKGQty').AsFloat:=CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId:=Trim(CDS_LS.fieldbyname('PRTHX').AsString)+Trim(CDS_LS.fieldbyname('PRTColorNo').AsString)+Trim(CDS_LS.fieldbyname('GangNo').AsString); + i:=0;//к + j:=0;//ҳ + z:=3;//к + end; + FSumQty:=FSumQty+CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM:=FSumQtyM+CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS:=FSumPS+1; + end else + begin + if Trim(CDS_LS.fieldbyname('PRTHX').AsString)+Trim(CDS_LS.fieldbyname('PRTColorNo').AsString)+Trim(CDS_LS.fieldbyname('GangNo').AsString)=FMJId then + begin + i:=i+1; + if i<10 then + begin + CDS_CD.Locate('XH',z-2,[]); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value:=i+1; + fieldbyname('SumMQty').Value:=fieldbyname('SumMQty').Value+1; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + CDS_CD.Locate('XH',z-1,[]); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value:=i+1; + fieldbyname('SumYQty').Value:=fieldbyname('SumYQty').Value+CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + CDS_CD.Locate('XH',z,[]); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('MJqty4').Value; + fieldbyname('PS').Value:=i+1; + fieldbyname('SumKGQty').Value:=fieldbyname('SumKGQty').Value+CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + FSumQty:=FSumQty+CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM:=FSumQtyM+CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS:=FSumPS+1; + end else + begin + i:=0; + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value:=z+1; + FieldByName('XX').Value:='RL NO'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumMQty').AsFloat:=1; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value:=Z+2; + FieldByName('XX').Value:='MTS'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumYQty').AsFloat:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value:=z+3; + FieldByName('XX').Value:='KGS'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumKGQty').AsFloat:=CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId:=Trim(CDS_LS.fieldbyname('PRTHX').AsString)+Trim(CDS_LS.fieldbyname('PRTColorNo').AsString)+Trim(CDS_LS.fieldbyname('GangNo').AsString); + i:=0;//к + j:=0;//ҳ + z:=z+3;//к + end; + FSumQty:=FSumQty+CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM:=FSumQtyM+CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS:=FSumPS+1; + end; + end else + begin + i:=0; + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value:=z+1; + FieldByName('XX').Value:='RL NO'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumMQty').AsFloat:=1; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value:=Z+2; + FieldByName('XX').Value:='MTS'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumYQty').AsFloat:=CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value:=z+3; + FieldByName('XX').Value:='KGS'; + FieldByName('Qty0').Value:=CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value:=1; + fieldbyname('SumKGQty').AsFloat:=CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat:=CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat:=CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat:=CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId:=Trim(CDS_LS.fieldbyname('PRTHX').AsString)+Trim(CDS_LS.fieldbyname('PRTColorNo').AsString)+Trim(CDS_LS.fieldbyname('GangNo').AsString); + i:=0;//к + j:=0;//ҳ + z:=z+3;//к + end; + FSumQty:=FSumQty+CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM:=FSumQtyM+CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS:=FSumPS+1; + FMJId:=Trim(CDS_LS.fieldbyname('PRTHX').AsString)+Trim(CDS_LS.fieldbyname('PRTColorNo').AsString)+Trim(CDS_LS.fieldbyname('GangNo').AsString); + end; + end; + Next; + end; + end; + CDS_LS.EnableControls; +end; + +procedure TfrmCKProductBCPOutList.Print_WXPT1(); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD2 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('CKOrdNo').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@flag=''3'''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_WXPTPrint); + SInitCDSData20(ADOQueryTemp,CDS_WXPTPrint); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD2 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('CKOrdNo').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_COL); + SInitCDSData20(ADOQuery1,CDS_COL); +end; + +procedure TfrmCKProductBCPOutList.Print_WXPT4(); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD2 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('CKOrdNo').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@flag=''3'''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_WXPTPrint); + SInitCDSData20(ADOQueryTemp,CDS_WXPTPrint); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD2 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('CKOrdNo').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_COL); + SInitCDSData20(ADOQuery1,CDS_COL); +end; + +function TfrmCKProductBCPOutList.YFData(Order_Main10:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('Subid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + //fieldbyname('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + //fieldbyname('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNo').AsString); + //fieldbyname('PBNote').Value:=trim(CRNote.Text); + //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; + //FieldByName('HuiLv').Value:=1; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 HuiLv from YF_Money_CR '); + sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.Add(' and CRType=''Ǽ'' '); + SQL.Add(' and YFDefFlag1=0'); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.FieldByName('HuiLv').Value:=ADOQueryTemp.fieldbyname('HuiLv').Value; + end; + FieldByName('BZType').Value:=''; + fieldbyname('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ޽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'''); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + sql.add(') '); + + sql.Add(',JZQty=(select isnull(Sum(MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRType=''ӦǼ'''); + ExecSQL; + end; + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('Qty').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +procedure TfrmckproductBCPOutList.Print_WXPT(); +var + j,z,i,x:Integer; + FSumJZQty0,FSumQty0,FSumJZQty1,FSumQty1: Double; + FGangNo,FHZ,FPRTColorNo:String; +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD1 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('ConNOHT').AsString))); + sql.add(',@flag=''1'''); + Open; + end; + SCreateCDS20(ADOQueryCmd,CDS_WXPT); + SInitCDSData20(ADOQueryCmd,CDS_WXPT); + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select XH=cast(0 as int),SYRName=Cast('''' as varchar(70)),ConNO=Cast('''' as varchar(30)),CustomerNoName=Cast('''' as varchar(50)),'); + sql.Add(' PRTHX=Cast('''' as varchar(50)),BaoNo=Cast('''' as varchar(50)),PRTColorNo=cast('''' as varchar(50)),'); + sql.add(' KG0=Cast(0 as decimal(18,2)),KG1=Cast(0 as decimal(18,2)),KG2=Cast(0 as decimal(18,2)),KG3=Cast(0 as decimal(18,2)),'); + sql.add(' Qty0=Cast(0 as decimal(18,2)),Qty1=Cast(0 as decimal(18,2)),Qty2=Cast(0 as decimal(18,2)),Qty3=Cast(0 as decimal(18,2)),'); + sql.Add(' sumBaoKG=cast(0 as decimal(18,2)),sumBaoQty=cast(0 as decimal(18,2)),'); + sql.Add(' SumZKGQty=cast(0 as decimal(18,2)),SumZQty=cast(0 as decimal(18,2)),'); + sql.Add(' sumHXKG=cast(0 as decimal(18,2)),sumHXQty=cast(0 as decimal(18,2))'); + open; + end; + SCreateCDS20(ADOQueryCmd,CDS_WXPTPrint); + SInitCDSData20(ADOQueryCmd,CDS_WXPTPrint); + if CDS_WXPTPrint.IsEmpty=False then + begin + CDS_WXPTPrint.Delete; + end; + j:=0;z:=0;i:=0;x:=0;FGangNo:='';FPRTColorNo:=''; + FSumJZQty1:=0;FSumQty1:=0;FSumJZQty0:=0;FSumQty0:=0; + CDS_WXPT.DisableControls; + CDS_WXPTPrint.DisableControls; + with CDS_WXPT do + begin + First; + while not Eof do + begin + with CDS_WXPTPrint do + begin + if CDS_WXPTPrint.IsEmpty then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value:=0; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX').Value:=CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_WXPTPrint.FieldByName('PRTColorNo').Value:=CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_WXPTPrint.FieldByName('BaoNo').Value:=CDS_WXPT.fieldbyname('BaoNo').Value; + CDS_WXPTPrint.FieldByName('KG0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + Z:=0; // + j:=0; // + FGangNo:=Trim(CDS_WXPT.fieldbyname('BaoNo').AsString)+Trim(CDS_WXPT.fieldbyname('PRTHX').AsString); + end + else + begin + if Z<3 then + begin + if FGangNo<>Trim(CDS_WXPT.fieldbyname('BaoNo').AsString)+Trim(CDS_WXPT.fieldbyname('PRTHX').AsString) then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value:=j+1; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTColorNo').Value:=CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_WXPTPrint.FieldByName('PRTHX').Value:=CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_WXPTPrint.FieldByName('BaoNo').Value:=CDS_WXPT.fieldbyname('BaoNo').Value; + CDS_WXPTPrint.FieldByName('KG0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.Post; + Z:=0; + j:=j+1; + FGangNo:=Trim(CDS_WXPT.fieldbyname('BaoNo').AsString)+Trim(CDS_WXPT.fieldbyname('PRTHX').AsString); + end + else + begin + CDS_WXPTPrint.Edit; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTColorNo').Value:=CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_WXPTPrint.FieldByName('PRTHX').Value:=CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_WXPTPrint.FieldByName('BaoNo').Value:=CDS_WXPT.fieldbyname('BaoNo').Value; + CDS_WXPTPrint.FieldByName('KG'+inttostr(z+1)).Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty'+inttostr(z+1)).Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + Z:=Z+1; + FGangNo:=Trim(CDS_WXPT.fieldbyname('BaoNo').AsString)+Trim(CDS_WXPT.fieldbyname('PRTHX').AsString); + end; + end + else + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value:=j+1; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTColorNo').Value:=CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_WXPTPrint.FieldByName('PRTHX').Value:=CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_WXPTPrint.FieldByName('BaoNo').Value:=CDS_WXPT.fieldbyname('BaoNo').Value; + CDS_WXPTPrint.FieldByName('KG0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.Post; + Z:=0; + j:=j+1; + FGangNo:=Trim(CDS_WXPT.fieldbyname('BaoNo').AsString)+Trim(CDS_WXPT.fieldbyname('PRTHX').AsString); + end; + end + end; + Next; + end; + end; + CDS_WXPT.EnableControls; + CDS_WXPTPrint.EnableControls; +end; + +procedure TfrmckproductBCPOutList.Print_WXPT2(); +var + j,z,i,x:Integer; + FSumJZQty0,FSumQty0,FSumJZQty1,FSumQty1: Double; + FGangNo,FHZ,FPRTColorNo:String; +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD1 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('ConNOHT').AsString))); + sql.add(',@flag=''3'''); + Open; + end; + SCreateCDS20(ADOQueryCmd,CDS_WXPT); + SInitCDSData20(ADOQueryCmd,CDS_WXPT); + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select XH=cast(0 as int),YS=cast(0 as int),SYRName=Cast('''' as varchar(70)),ConNO=Cast('''' as varchar(30)),'); + sql.Add(' CustomerNoName=Cast('''' as varchar(50)),'); + sql.add(' ROLL0=Cast('''' as varchar(50)),ROLL1=Cast('''' as varchar(50)),ROLL2=Cast('''' as varchar(50)),'); + sql.add(' PRTColorEng0=Cast('''' as varchar(50)),PRTColorEng1=Cast('''' as varchar(50)),PRTColorEng2=Cast('''' as varchar(50)),'); + sql.add(' PRTHX0=Cast('''' as varchar(50)),PRTHX1=Cast('''' as varchar(50)),PRTHX2=Cast('''' as varchar(50)),'); + sql.add(' KG0=Cast(0 as decimal(18,2)),KG1=Cast(0 as decimal(18,2)),KG2=Cast(0 as decimal(18,2)),'); + sql.add(' Qty0=Cast(0 as decimal(18,2)),Qty1=Cast(0 as decimal(18,2)),Qty2=Cast(0 as decimal(18,2)),'); + sql.Add(' sumBaoKG=cast(0 as decimal(18,2)),sumBaoQty=cast(0 as decimal(18,2)),'); + sql.Add(' SumZKGQty=cast(0 as decimal(18,2)),SumZQty=cast(0 as decimal(18,2)),'); + sql.Add(' sumHXKG=cast(0 as decimal(18,2)),sumHXQty=cast(0 as decimal(18,2))'); + open; + end; + SCreateCDS20(ADOQueryCmd,CDS_WXPTPrint); + SInitCDSData20(ADOQueryCmd,CDS_WXPTPrint); + if CDS_WXPTPrint.IsEmpty=False then + begin + CDS_WXPTPrint.Delete; + end; + j:=0;z:=0;i:=0;x:=0;FGangNo:='';FPRTColorNo:=''; + FSumJZQty1:=0;FSumQty1:=0;FSumJZQty0:=0;FSumQty0:=0; + CDS_WXPT.DisableControls; + CDS_WXPTPrint.DisableControls; + with CDS_WXPT do + begin + First; + while not Eof do + begin + with CDS_WXPTPrint do + begin + if CDS_WXPTPrint.IsEmpty then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value:=0; + CDS_WXPTPrint.FieldByName('YS').Value:=i; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX0').Value:=CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL0').Value:=CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng0').Value:=CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + Z:=0; // + j:=0; // + i:=0; //ҳ + FGangNo:=Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end + else + begin + if j<8*(i+1)-1 then + begin + if Z=0 then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value:=j+1; + CDS_WXPTPrint.FieldByName('YS').Value:=i; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX0').Value:=CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL0').Value:=CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng0').Value:=CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.Post; + j:=j+1; + FGangNo:=Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end + else + begin + CDS_WXPTPrint.Locate('XH',j+1,[]); + CDS_WXPTPrint.Edit; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + FGangNo:=Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + j:=j+1; + end; + end + else + begin + if Z<2 then + begin + Z:=Z+1; + j:=8*i; + CDS_WXPTPrint.Locate('XH',j,[]); + CDS_WXPTPrint.Edit; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty'+inttostr(z)).Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + FGangNo:=Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end + else + begin + i:=i+1; + Z:=0; + J:=8*i; + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value:=j; + CDS_WXPTPrint.FieldByName('YS').Value:=i; + CDS_WXPTPrint.FieldByName('SYRName').Value:=CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value:=CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value:=CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX0').Value:=CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL0').Value:=CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng0').Value:=CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG0').Value:=CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value:=CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value:=CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value:=CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value:=CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value:=CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value:=CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value:=CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.Post; + FGangNo:=Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end; + end; + end; + end; + Next; + end; + end; + CDS_WXPT.EnableControls; + CDS_WXPTPrint.EnableControls; +end; + + +procedure TfrmCKProductBCPOutList.FormDestroy(Sender: TObject); +begin + frmCKProductBCPOutList:=nil; +end; + + +procedure TfrmCKProductBCPOutList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductBCPOutList.FormCreate(Sender: TObject); +begin + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-3; + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductBCPOutList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select B.OrderNo,G.conNO,G.ConNo ConNOHT,G.KHConNO,F.styleno,B.MPRTCodeName,B.MPRTSpec,B.MprtkuanNo,C.PRTColor,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,A.MJXH,C.PRTPrice,C.PRTHX '); + sql.Add(',A.MJQty4,isnull(B.customerNoName,B.OrderNo) KHName,A.* '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on B.MainId=A.MainId'); + Sql.add(' left join JYOrder_Sub C on C.mainID=A.mainID and C.SubId=A.SubId'); + sql.add(' left join JYOrderCon_Sub F on F.Subid=A.ConID '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add(' where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); + sql.Add(' and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+''''); + SQL.Add(' and A.CRFlag='''' '); + sql.add(' order by CRTime'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductBCPOutList.TBRafreshClick(Sender: TObject); +begin + toolbar1.SetFocus; + InitGrid(); +end; + +procedure TfrmCKProductBCPOutList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductBCPOutList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ֿб',Tv1,'Ʒֿ'); + WriteCxGrid('ֿб2',Tv3,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductBCPOutList.FormShow(Sender: TObject); +begin + ReadCxGrid('ֿб',Tv1,'Ʒֿ'); + ReadCxGrid('ֿб2',Tv3,'Ʒֿ'); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Cast('''' as varchar(20)) MainId,Cast('''' as varchar(80)) KHName,Cast('''' as varchar(80)) Conid,'); + SQL.ADD('Cast('''' as varchar(80)) Subid,Cast('''' as varchar(80)) QtyUnit,Cast(0 as decimal(18,4)) PRTPrice '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_CX); + SInitCDSData20(ADOQueryTemp,CDS_CX); + CDS_CX.Delete; + //InitGrid(); + if Trim(DParameters2)='' then + begin + TBCKCX.Visible:=True; + ToolButton1.Visible:=true; + v1Column11.Visible:=True; + end + else + begin + if trim(DCode)='005' then + v1KHName.Visible:=true + else + v1KHName.Visible:=false; + v1Column11.Visible:=False; + end; + RM3.CanExport:=true; +end; + +procedure TfrmCKProductBCPOutList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + SelExportData(Tv1,ADOQueryMain,''); +end; + +procedure TfrmCKProductBCPOutList.TBFindClick(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmCKProductBCPOutList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPOutList.TBPrintClick(Sender: TObject); +var + fPrintFile,fPrintFile10,FMainID,fZMFile:String; +begin + if CDS_Main.IsEmpty then Exit; + IF trim(ComboBox1.Text)='뵥()' then + begin + Print_WXPT1(); + end; + IF trim(ComboBox1.Text)='뵥' then + begin + Print_WXPT(); + end; + IF trim(ComboBox1.Text)='뵥' then + begin + Print_WXPT(); + end; + IF trim(ComboBox1.Text)='뵥2' then + begin + Print_WXPT1(); + end; + IF trim(ComboBox1.Text)='뵥3' then + begin + Print_WXPT1(); + end; + if Trim(ComboBox1.Text)='뵥׺' then + begin + Print_WXPT1(); + end; + if Trim(ComboBox1.Text)='뵥͢' then + begin + Print_WXPT2(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD1 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('ConNOHT').AsString))); + sql.add(',@flag=''4'''); + Open; + end; + SCreateCDS20(ADOQueryCmd,CDS_CX); + SInitCDSData20(ADOQueryCmd,CDS_CX); + end; + if Trim(ComboBox1.Text)='͢°뵥' then + begin + Print_WXPT3(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_CKMD3 '); + sql.add('@mainID='+quotedstr(Trim(CDS_Main.FieldByName('ConNOHT').AsString))); + sql.add(',@flag=''4'''); + Open; + end; + SCreateCDS20(ADOQueryCmd,Ord_Mx); + SInitCDSData20(ADOQueryCmd,Ord_Mx); + end; + if Trim(ComboBox1.Text)='뵥TAG NO' then + begin + Print_WXPT4(); + end; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ComboBox1.Text)+'.rmf' ; + if FileExists(fPrintFile) then + begin + if RM3.CanExport=true then + begin + fZMFile:='C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile:='C:\Documents and Settings\Administrator\\'+trim(CDS_Main.fieldbyname('ConNOHT').AsString)+' DETAILED PL.XLS'; + end + else + begin + fZMFile:='C:\Users\Administrator\Desktop\'+trim(CDS_Main.fieldbyname('ConNOHT').AsString)+' DETAILED PL.XLS'; + end; + RM3.ExportTo(RMXLSExport1,fZMFile); + end; + RM3.CanExport:=true; + RM3.LoadFromFile(fPrintFile); + RM3.ShowReport; + RM3.CanExport:=False; + end + else + begin + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + end; +end; + +procedure TfrmCKProductBCPOutList.orderNoChange(Sender: TObject); +begin + if Length(orderNo.Text)<4 then Exit; + TBFind.Click; +end; + +procedure TfrmCKProductBCPOutList.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmCKProductBCPOutList.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmCKProductBCPOutList.TBCKCXClick(Sender: TObject); +var + FFMainId,FPrice:String; +begin + if CDS_Main.IsEmpty then Exit; + ToolBar1.SetFocus; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + //First; + while CDS_Main.Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + sql.Add(',CKOrdNo='''''); + sql.Add(',CRFlagQty=0'); + SQL.Add(',RKPlace='''',BaoNo='''',BaoID='''' '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if CDS_Main.fieldbyname('CRID').AsFloat<>0 then + begin + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(' where exists (select MJID from CK_BanCP_CR where MJID=CK_BanCP_KC.MJID and MJID='''+trim(CDS_Main.fieldbyname('MJID').AsString)+''') '); + end; + ExecSQL; + end; + CDS_Main.Delete; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + MovePanel2.Visible:=False; + Exit; + except + MovePanel2.Visible:=False; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +function TfrmCKProductBCPOutList.YSData(Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + {Price:=ADOQueryTemp.fieldbyname('PRTPrice').AsString; + if Trim(Price)='' then + begin + Price:='0'; + end; } + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('YFType').Value:='Զ'; + //FieldByName('Price').Value:=Price; + //FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=Trim(PriceUnit); + FieldByName('QtyUnit').Value:=Trim(OrderUnit); + FieldByName('YFName').Value:='Ʒ۽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if Trim(OrderUnit)<>'Kg' then + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A '); + end else + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + end; + sql.add('where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); //and B.PRTPrice=YF_Money_CR.Price + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A where'); + SQL.Add(' A.conid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); //and B.PRTPrice=YF_Money_CR.Price + sql.Add(',JZQty=(select isnull(Sum(MJQty4),0) from CK_BanCP_CR A '); + sql.add(' inner join WFB_MJJY D on D.MJID=A.MJID where'); + SQL.Add(' A.Conid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.Conid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MQty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.Conid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Conid').AsString)+''''); + sql.add(' and CRType=''ӦտǼ'''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +procedure TfrmCKProductBCPOutList.orderNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(orderNo.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select B.OrderNo,G.conNO,G.conNO ConNoHT,G.KHConNO,F.styleno,B.MPRTCodeName,B.MPRTSpec,B.MprtkuanNo'); + sql.Add(',C.PRTColor,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,D.MJXH,C.PRTPrice,C.PRTHX '); + sql.Add(',D.MJQty3,D.MJQty4'); + sql.Add(',isnull(G.customerNoName,B.OrderNo) KHName'); + sql.Add(',D.mjstr4 as AOrdDefStr1,cast(D.MJXH as varchar) as MJXHM,A.* '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on B.MainId=A.MainId'); + Sql.add(' left join JYOrder_Sub C on C.mainID=A.mainID and C.SubId=A.SubId'); + Sql.add(' left join WFB_MJJY D on D.MJId=A.MJId'); + sql.Add(' left join CK_SXPB_CR E on A.APID=E.SPID '); + sql.add(' left join JYOrderCon_Sub F on F.Subid=A.ConID '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add('where B.OrderNo like '''+'%'+Trim(orderNo.Text)+'%'+''''); + SQL.Add(' and A.CRFlag='''' '); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally; + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmCKProductBCPOutList.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_Main.IsEmpty=False then + begin + InitOrderColor(Trim(CDS_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + InitBCGangNo(Trim(CDS_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmCKProductBCPOutList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPOutList.AOrdDefStr1Change(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPOutList.CheckBox1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,CheckBox1.Checked); +end; + +procedure TfrmCKProductBCPOutList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Visible:=true; + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; + application.ProcessMessages; +end; + +procedure TfrmCKProductBCPOutList.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmCKProductBCPOutList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmCKProductBCPOutList.Panel2DblClick(Sender: TObject); +begin + Panel2.Visible:=false; +end; + +procedure TfrmCKProductBCPOutList.THMJIDKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(THMJID.Text)='' then + begin + Application.MessageBox('벻Ϊ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR A '); + sql.Add('where MJID='+quotedstr(trim(THMJID.Text))); + sql.Add('and CRflag='''''); + open; + end; + IF ADOQueryTemp.IsEmpty then + begin + application.MessageBox('˾δ','ʾϢ',MB_ICONERROR); + exit; + end; + try + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete CK_BanCP_CR where BCID='+quotedstr(ADOQueryTemp.fieldbyname('BCID').AsString)); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRType='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRType='''') '); + SQL.Add(' where CRID='+quotedstr(ADOQueryTemp.fieldbyname('CRID').AsString)); + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='+quotedstr(ADOQueryTemp.fieldbyname('MJID').AsString)); + ExecSQL; + end; + IF CDS_Main.Locate('BCID',trim(ADOQueryTemp.fieldbyname('BCID').AsString),[]) then + CDS_Main.Delete; + THMJID.Text:=''; + THMJID.SetFocus; + Exit; + except + THMJID.Text:=''; + THMJID.SetFocus; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCKProductBCPOutList.ToolButton1Click(Sender: TObject); +begin + Panel2.Visible:=true; + THMJID.Text:=''; + THMJID.SetFocus; +end; + +procedure TfrmCKProductBCPOutList.ToolButton3Click(Sender: TObject); +var + fPrintFile:string; +begin + if CDS_Main.IsEmpty then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + with ADOqueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete TBSubID where DName='''+Trim(DCode)+''''); + ExecSQL; + end; + with ADOqueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * FROM TBSubID where 1=2 '); + open; + end; + ADOqueryCmd.Connection.BeginTrans; + try + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean then + begin + ADOQueryCmd.append; + ADOQueryCmd.fieldbyname('SubId').Value:=Trim(fieldbyname('MJID').AsString); + ADOQueryCmd.fieldbyname('Dname').Value:=Trim(DCode); + ADOQueryCmd.post; + end; + Next; + end; + end; + CDS_Main.EnableControls; + ADOqueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + end; + with ADOqueryPrint do + begin + close; + sql.Clear; + sql.Add(' exec P_Get_JYMJID_Main '); + sql.Add(' @MJID='+quotedstr('')); + sql.Add(',@flag=''0'' '); + sql.Add(',@userID='+quotedstr(trim(DCode))); + open; + end; + + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\Ϣ.rmf';; + if NOT FileExists(fPrintFile) then + begin + Application.MessageBox(PChar('û'+trim(fPrintFile)),'ʾ',MB_ICONERROR); + exit; + end; +end; + +procedure TfrmCKProductBCPOutList.ToolButton2Click(Sender: TObject); +begin + IF CDS_Main.IsEmpty then exit; + frmJYMJIDPRINT:=TfrmJYMJIDPRINT.create(self); + with frmJYMJIDPRINT do + begin + fMJID:=trim(self.CDS_Main.fieldbyname('MJID').AsString); + fflag:=1; + show; + end; +end; + +procedure TfrmCKProductBCPOutList.ConNOHTChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductBCPOutList.ConNOHTKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNOHT.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select B.OrderNo,G.conNO,G.conNO ConNoHT,D.MJLen,G.KHConNO,F.styleno,B.MPRTCodeName,B.MPRTSpec,B.MprtkuanNo,C.PRTColor,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,D.MJXH,C.PRTPrice,C.PRTHX '); + sql.Add(',D.MJQty3,D.MJQty4'); + sql.Add(',isnull(G.customerNoName,B.OrderNo) KHName'); + sql.Add(',D.mjstr4 as AOrdDefStr1,cast(D.MJXH as varchar) as MJXHM,A.* '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on B.MainId=A.MainId'); + Sql.add(' left join JYOrder_Sub C on C.mainID=A.mainID and C.SubId=A.SubId'); + Sql.add(' left join WFB_MJJY D on D.MJId=A.MJId'); + sql.Add(' left join CK_SXPB_CR E on A.APID=E.SPID '); + sql.add(' left join JYOrderCon_Sub F on F.Subid=D.Conid '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add('where G.conNO like '''+'%'+Trim(ConNOHT.Text)+'%'+''''); + SQL.Add(' and A.CRFlag='''' '); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmCKProductBCPOutList.KHConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(KHConNo.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select B.OrderNo,G.conNO,G.KHConNO,F.styleno,B.MPRTCodeName,B.MPRTSpec,B.MprtkuanNo,C.PRTColor,C.PRTColorNO SOrddefstr1,C.PRTColorEng,B.MPRTMF,B.MPRTKZ,D.MJXH,C.PRTPrice,C.PRTHX '); + sql.Add(',D.MJQty3,D.MJQty4'); + sql.Add(',isnull(G.customerNoName,B.OrderNo) KHName'); + sql.Add(',D.mjstr4 as AOrdDefStr1,cast(D.MJXH as varchar) as MJXHM,A.* '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' left join JYOrder_Main B on B.MainId=A.MainId'); + Sql.add(' left join JYOrder_Sub C on C.mainID=A.mainID and C.SubId=A.SubId'); + Sql.add(' left join WFB_MJJY D on D.MJId=A.MJId'); + sql.Add(' left join CK_SXPB_CR E on A.APID=E.SPID '); + sql.add(' left join JYOrderCon_Sub F on F.Subid=D.ConID '); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + sql.add('where G.KHConNo like '''+'%'+Trim(KHConNo.Text)+'%'+''''); + SQL.Add(' and A.CRFlag='''' '); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmCKProductBCPOutList.TDHClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + ToolBar1.SetFocus; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where '); + sql.Add('exists (select MJID from CK_BanCP_CR where MJID=WFB_MJJY.MJID and CKOrdNo='''+trim(CDS_Main.fieldbyname('CKOrdNo').AsString)+''') '); + sql.Add('UPdate CK_BanCP_CR set CRFlag='''',CRFlagQty=0 where CKOrdNo='''+Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)+''' '); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(' where exists (select MJID from CK_BanCP_CR where MJID=CK_BanCP_KC.MJID and CKOrdNo='''+trim(CDS_Main.fieldbyname('CKOrdNo').AsString)+''') '); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + SQL.Add(',CKOrdNo='''' '); + sql.Add(',CRFlagQty=0'); + sql.Add('where CKOrdNo='''+trim(CDS_Main.fieldbyname('CKOrdNo').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('','ʾ'); + InitGrid(); + MovePanel2.Visible:=False; + Exit; + except + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductCKHZList.dfm b/盛纺贸易管理/U_CKProductCKHZList.dfm new file mode 100644 index 0000000..567ca76 --- /dev/null +++ b/盛纺贸易管理/U_CKProductCKHZList.dfm @@ -0,0 +1,620 @@ +object frmCKProductCKHZList: TfrmCKProductCKHZList + Left = 202 + Top = 135 + Width = 1392 + Height = 611 + Caption = #25104#21697#20986#24211#27719#24635#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1376 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1376 + Height = 73 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 26 + Top = 13 + Width = 52 + Height = 13 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 65 + Top = 39 + Width = 13 + Height = 13 + Caption = #33267 + end + object Label8: TLabel + Left = 229 + Top = 108 + Width = 54 + Height = 13 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 412 + Top = 117 + Width = 26 + Height = 13 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 828 + Top = 17 + Width = 54 + Height = 13 + Caption = #31867' '#22411 + end + object Label10: TLabel + Left = 537 + Top = 43 + Width = 7 + Height = 13 + end + object Label11: TLabel + Left = 529 + Top = 87 + Width = 39 + Height = 13 + Caption = #19994#21153#21592 + end + object Label12: TLabel + Left = 529 + Top = 113 + Width = 39 + Height = 13 + Caption = #36319#21333#21592 + end + object Label5: TLabel + Left = 225 + Top = 17 + Width = 53 + Height = 13 + Caption = #35746' '#21333' '#21495 + end + object Label3: TLabel + Left = 224 + Top = 43 + Width = 52 + Height = 13 + Caption = #20013#25991#21517#31216 + end + object Label6: TLabel + Left = 438 + Top = 17 + Width = 26 + Height = 13 + Caption = #39068#33394 + end + object Label13: TLabel + Left = 438 + Top = 43 + Width = 26 + Height = 13 + Caption = #32568#21495 + end + object Label14: TLabel + Left = 633 + Top = 17 + Width = 39 + Height = 13 + Caption = #21512#21516#21495 + end + object Label15: TLabel + Left = 650 + Top = 43 + Width = 21 + Height = 13 + Caption = 'PO#' + end + object BegDate: TDateTimePicker + Left = 79 + Top = 10 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 79 + Top = 36 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object MPRTKZ: TEdit + Tag = 2 + Left = 282 + Top = 104 + Width = 108 + Height = 20 + TabOrder = 2 + OnChange = MPRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 438 + Top = 113 + Width = 70 + Height = 20 + TabOrder = 3 + OnChange = MPRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 883 + Top = 13 + Width = 74 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 4 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object YWY: TEdit + Tag = 2 + Left = 570 + Top = 82 + Width = 70 + Height = 20 + TabOrder = 5 + OnChange = MPRTCodeNameChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 570 + Top = 108 + Width = 70 + Height = 20 + TabOrder = 6 + OnChange = MPRTCodeNameChange + end + object orderNo: TEdit + Tag = 2 + Left = 280 + Top = 13 + Width = 86 + Height = 20 + TabOrder = 7 + OnChange = MPRTCodeNameChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 280 + Top = 39 + Width = 86 + Height = 20 + TabOrder = 8 + OnChange = MPRTCodeNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 466 + Top = 13 + Width = 87 + Height = 20 + TabOrder = 9 + OnChange = MPRTCodeNameChange + end + object MJstr4: TEdit + Tag = 1 + Left = 466 + Top = 39 + Width = 87 + Height = 20 + TabOrder = 10 + OnChange = MPRTCodeNameChange + end + object conNo: TEdit + Tag = 2 + Left = 674 + Top = 13 + Width = 87 + Height = 20 + TabOrder = 11 + OnChange = MPRTCodeNameChange + end + object KHCONNO: TEdit + Tag = 2 + Left = 674 + Top = 39 + Width = 87 + Height = 20 + TabOrder = 12 + OnChange = MPRTCodeNameChange + end + end + object MovePanel2: TMovePanel + Left = 442 + Top = 208 + Width = 313 + Height = 53 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + end + object cxGrid2: TcxGrid + Left = 0 + Top = 106 + Width = 1376 + Height = 465 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column12 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column3: TcxGridDBColumn + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1ConNO: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNO' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Column9: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column10: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHCONNO' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 125 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column2: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column8: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column5: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column6: TcxGridDBColumn + Caption = #21367#25968 + DataBinding.FieldName = 'JQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column7: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 83 + end + object v2Column5: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column11: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1customerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'customerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 67 + Top = 151 + Width = 319 + Height = 230 + TabOrder = 4 + Visible = False + object Label4: TLabel + Left = 52 + Top = 95 + Width = 7 + Height = 13 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 317 + Height = 25 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + object Image2: TImage + Left = 291 + Top = 3 + Width = 24 + Height = 18 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 26 + Width = 317 + Height = 203 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1020 + Top = 8 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1036 + Top = 8 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 996 + Top = 65532 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end +end diff --git a/盛纺贸易管理/U_CKProductCKHZList.pas b/盛纺贸易管理/U_CKProductCKHZList.pas new file mode 100644 index 0000000..116c801 --- /dev/null +++ b/盛纺贸易管理/U_CKProductCKHZList.pas @@ -0,0 +1,290 @@ +unit U_CKProductCKHZList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxButtonEdit, + cxCalendar; + +type + TfrmCKProductCKHZList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + MovePanel2: TMovePanel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + YWY: TEdit; + OrdPerson1: TEdit; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column3: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + orderNo: TEdit; + Label5: TLabel; + Label3: TLabel; + MPRTCodeName: TEdit; + Label6: TLabel; + PRTColor: TEdit; + Label13: TLabel; + MJstr4: TEdit; + Panel4: TPanel; + Label4: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column2: TcxGridDBColumn; + conNo: TEdit; + Label14: TLabel; + v1ConNO: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + KHCONNO: TEdit; + Label15: TLabel; + v1Column9: TcxGridDBColumn; + v1customerNoName: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure PRTColorChange(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Image2Click(Sender: TObject); + private + FLeft,FTop:Integer; + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductCKHZList: TfrmCKProductCKHZList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmCKProductCKHZList.FormDestroy(Sender: TObject); +begin + frmCKProductCKHZList:=nil; +end; + +procedure TfrmCKProductCKHZList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductCKHZList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductCKHZList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + Filtered:=False; + sql.Add('select convert(char(10),A.CRTime,120) as CRTime,A.CPType,A.MainId,A.QtyUnit,B.Mjstr4,C.OrderNo,F.KHconNO,F.conNO,E.PRTCodeName,D.PrtColor,D.PrtHX,E.SOrddefstr4, '); + sql.Add('count(A.MainId) as JQty,SUM(A.Qty) as Qty,SUM(A.KGQty) as KGQty,SUM(B.MJQty4) as MJQty4,F.customerNoName '); + sql.Add('from CK_BanCP_CR A '); + sql.Add('inner join WFB_MJJY B on B.MJID=A.MJID'); + sql.Add('left join JYOrder_Main C on C.MainId=A.MainId '); + sql.Add('left join JYOrder_sub D on D.subID=A.subID '); + sql.Add('inner join JYOrderCon_sub E on E.subID=B.ConID '); + sql.Add('inner join JYOrderCon_Main F on F.MainId=E.MainId '); + Sql.add('where A.CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + Sql.add('and A.CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + Sql.add('and A.CRFlag='''' '); + Sql.add('group by convert(char(10),A.CRTime,120),A.CPType,A.MainId,A.QtyUnit,B.Mjstr4,C.OrderNo,F.KHconNO,F.conNO,E.PRTCodeName,D.PrtColor,D.PrtHX,E.SOrddefstr4,F.customerNoName'); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductCKHZList.TBRafreshClick(Sender: TObject); +begin + //BegDate.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmCKProductCKHZList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductCKHZList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductCKHZList.FormShow(Sender: TObject); +begin + + ReadCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + if Trim(DParameters2)='' then + begin + //v1Column5.Options.Focusing:=True; + end else + begin + //v1Column5.Options.Focusing:=False; + end; + if trim(DCode)='005' then + v1customerNoName.Visible:=true + else + v1customerNoName.Visible:=False; + //InitGrid(); +end; + +procedure TfrmCKProductCKHZList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmCKProductCKHZList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKProductCKHZList.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductCKHZList.v1Column5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SOrdDefStr10'; + flagname:='ŵص'; + if ShowModal=1 then + begin + with CDS_Main do + begin + Edit; + FieldByName('SOrdDefStr10').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Sub Set SOrdDefStr10='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + sql.Add(' where SubId='''+Trim(Self.CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCKProductCKHZList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductCKHZList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; + application.ProcessMessages; +end; + +procedure TfrmCKProductCKHZList.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmCKProductCKHZList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +end. diff --git a/盛纺贸易管理/U_CKProductRKHZList.dfm b/盛纺贸易管理/U_CKProductRKHZList.dfm new file mode 100644 index 0000000..7f6d9fa --- /dev/null +++ b/盛纺贸易管理/U_CKProductRKHZList.dfm @@ -0,0 +1,622 @@ +object frmCKProductRKHZList: TfrmCKProductRKHZList + Left = 186 + Top = 126 + Width = 1162 + Height = 556 + Caption = #25104#21697#20837#24211#27719#24635#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 68 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 212 + Top = 36 + Width = 48 + Height = 12 + Caption = #20013#25991#21517#31216 + end + object Label1: TLabel + Left = 24 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 60 + Top = 36 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label5: TLabel + Left = 212 + Top = 12 + Width = 48 + Height = 12 + Caption = #35746' '#21333' '#21495 + end + object Label6: TLabel + Left = 420 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label8: TLabel + Left = 211 + Top = 100 + Width = 48 + Height = 12 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 380 + Top = 108 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 780 + Top = 16 + Width = 48 + Height = 12 + Caption = #31867' '#22411 + end + object Label10: TLabel + Left = 504 + Top = 36 + Width = 6 + Height = 12 + end + object Label11: TLabel + Left = 488 + Top = 80 + Width = 36 + Height = 12 + Caption = #19994#21153#21592 + end + object Label12: TLabel + Left = 488 + Top = 104 + Width = 36 + Height = 12 + Caption = #36319#21333#21592 + end + object Label4: TLabel + Left = 420 + Top = 36 + Width = 24 + Height = 12 + Caption = #32568#21495 + end + object Label14: TLabel + Left = 600 + Top = 16 + Width = 36 + Height = 12 + Caption = #21512#21516#21495 + end + object Label15: TLabel + Left = 616 + Top = 40 + Width = 18 + Height = 12 + Caption = 'PO#' + end + object PRTCodeName: TEdit + Tag = 2 + Left = 266 + Top = 32 + Width = 80 + Height = 20 + TabOrder = 0 + OnChange = PRTCodeNameChange + end + object BegDate: TDateTimePicker + Left = 73 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 1 + end + object EndDate: TDateTimePicker + Left = 73 + Top = 33 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + end + object orderNo: TEdit + Tag = 2 + Left = 266 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 3 + OnChange = PRTCodeNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 446 + Top = 8 + Width = 80 + Height = 20 + TabOrder = 4 + OnChange = PRTCodeNameChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 260 + Top = 96 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = PRTCodeNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 404 + Top = 104 + Width = 65 + Height = 20 + TabOrder = 6 + OnChange = PRTCodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 831 + Top = 12 + Width = 68 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 7 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object YWY: TEdit + Tag = 2 + Left = 526 + Top = 76 + Width = 65 + Height = 20 + TabOrder = 8 + OnChange = PRTCodeNameChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 526 + Top = 100 + Width = 65 + Height = 20 + TabOrder = 9 + OnChange = PRTCodeNameChange + end + object MJstr4: TEdit + Tag = 1 + Left = 446 + Top = 32 + Width = 80 + Height = 20 + TabOrder = 10 + OnChange = PRTCodeNameChange + end + object conNo: TEdit + Tag = 2 + Left = 638 + Top = 12 + Width = 80 + Height = 20 + TabOrder = 11 + OnChange = PRTCodeNameChange + end + object KHCONNO: TEdit + Tag = 2 + Left = 638 + Top = 36 + Width = 80 + Height = 20 + TabOrder = 12 + OnChange = PRTCodeNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 101 + Width = 1146 + Height = 417 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column12 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column3: TcxGridDBColumn + Caption = #20837#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 89 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1Column9: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column10: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'khconNO' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v2PRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 105 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column2: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column8: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column5: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column6: TcxGridDBColumn + Caption = #21367#25968 + DataBinding.FieldName = 'JQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column7: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Width = 83 + end + object v2Column5: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column11: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column13: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object MovePanel2: TMovePanel + Left = 408 + Top = 192 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object Panel4: TPanel + Left = 62 + Top = 139 + Width = 294 + Height = 213 + TabOrder = 4 + Visible = False + object Label13: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 980 + Top = 144 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 996 + Top = 144 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 956 + Top = 136 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 720 + Top = 136 + ReportData = {} + end +end diff --git a/盛纺贸易管理/U_CKProductRKHZList.pas b/盛纺贸易管理/U_CKProductRKHZList.pas new file mode 100644 index 0000000..c3c9fa3 --- /dev/null +++ b/盛纺贸易管理/U_CKProductRKHZList.pas @@ -0,0 +1,292 @@ +unit U_CKProductRKHZList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxButtonEdit, + cxCalendar, RM_System, RM_Common, RM_Class, RM_GridReport; + +type + TfrmCKProductRKHZList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + PRTCodeName: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2PRTCodeName: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + Label5: TLabel; + orderNo: TEdit; + Label6: TLabel; + PRTColor: TEdit; + v1Column7: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + Label7: TLabel; + CPType: TComboBox; + MovePanel2: TMovePanel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + YWY: TEdit; + OrdPerson1: TEdit; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + MJstr4: TEdit; + Label4: TLabel; + Panel4: TPanel; + Label13: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column2: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + conNo: TEdit; + Label14: TLabel; + KHCONNO: TEdit; + Label15: TLabel; + v1Column13: TcxGridDBColumn; + RMGridReport1: TRMGridReport; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure PRTCodeNameChange(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure PRTColorChange(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure TBPrintClick(Sender: TObject); + private + FLeft,FTop:Integer; + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKProductRKHZList: TfrmCKProductRKHZList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmCKProductRKHZList.FormDestroy(Sender: TObject); +begin + frmCKProductRKHZList:=nil; +end; + +procedure TfrmCKProductRKHZList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKProductRKHZList.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKProductRKHZList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + Filtered:=False; + sql.Add('select convert(char(10),A.CRTime,120) as CRTime,A.CPType,A.MainId,A.QtyUnit,B.Mjstr4,C.OrderNo,F.KHConNO,F.ConNO,E.PRTCodeName,D.PrtColor,D.PrtHX,E.SOrddefstr4, '); + sql.Add('count(A.MainId) as JQty,SUM(A.Qty) as Qty,SUM(A.KGQty) as KGQty,SUM(B.MJQty4) as MJQty4 '); + sql.Add('from CK_BanCP_CR A '); + sql.Add('inner join WFB_MJJY B on B.MJID=A.MJID'); + sql.Add('left join JYOrder_Main C on C.MainId=A.MainId '); + sql.Add('left join JYOrder_sub D on D.subID=A.subID '); + sql.add('inner join JYOrderCon_Sub E on E.Subid=B.ConID'); + SQL.ADD('inner join JYOrderCon_Main F on F.Mainid=E.Mainid'); + Sql.add('where A.CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + Sql.add('and A.CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + Sql.add('and A.CRType='''' '); + Sql.add('group by convert(char(10),A.CRTime,120),A.CPType,A.MainId,A.QtyUnit,B.Mjstr4,C.OrderNo,F.KHConNO,F.ConNO,E.PRTCodeName,D.PrtColor,D.PrtHX,E.SOrddefstr4'); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKProductRKHZList.TBRafreshClick(Sender: TObject); +begin + //BegDate.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmCKProductRKHZList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKProductRKHZList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmCKProductRKHZList.FormShow(Sender: TObject); +begin + + ReadCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + if Trim(DParameters2)='' then + begin + //v1Column5.Options.Focusing:=True; + end else + begin + //v1Column5.Options.Focusing:=False; + end; + //InitGrid(); +end; + +procedure TfrmCKProductRKHZList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmCKProductRKHZList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKProductRKHZList.PRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductRKHZList.v1Column5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SOrdDefStr10'; + flagname:='ŵص'; + if ShowModal=1 then + begin + with CDS_Main do + begin + Edit; + FieldByName('SOrdDefStr10').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Sub Set SOrdDefStr10='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + sql.Add(' where SubId='''+Trim(Self.CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCKProductRKHZList.PRTColorChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKProductRKHZList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmCKProductRKHZList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; + application.ProcessMessages; +end; + +procedure TfrmCKProductRKHZList.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmCKProductRKHZList.TBPrintClick(Sender: TObject); +begin + RMGridReport1.PreviewButtons:=[pbZoom,pbLoad,pbSave,pbPrint,pbFind,pbPageSetup,pbExit,pbExport,pbNavigator]; +end; + +end. diff --git a/盛纺贸易管理/U_CKYCLKC.dfm b/盛纺贸易管理/U_CKYCLKC.dfm new file mode 100644 index 0000000..0b2966e --- /dev/null +++ b/盛纺贸易管理/U_CKYCLKC.dfm @@ -0,0 +1,345 @@ +object frmCKYCLKC: TfrmCKYCLKC + Left = 128 + Top = 152 + Width = 1027 + Height = 511 + Caption = #21407#26448#26009#20986#20837#23384 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1019 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_JWLCK.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object ToolButton1: TToolButton + Left = 252 + Top = 0 + Caption = #20445#23384 + ImageIndex = 14 + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1019 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 302 + Top = 12 + Width = 48 + Height = 12 + Caption = #29289#26009#21517#31216 + end + object Label4: TLabel + Left = 478 + Top = 12 + Width = 36 + Height = 12 + Caption = #35268' '#26684 + end + object Label7: TLabel + Left = 638 + Top = 12 + Width = 48 + Height = 12 + Caption = #20379' '#24212' '#21830 + end + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 168 + Top = 12 + Width = 12 + Height = 12 + Caption = #33267 + end + object YCLName: TEdit + Tag = 2 + Left = 351 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = YCLNameChange + end + object YCLSpec: TEdit + Tag = 2 + Left = 516 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 1 + OnChange = YCLNameChange + end + object GYSName: TEdit + Tag = 2 + Left = 687 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = YCLNameChange + end + object BegDate: TDateTimePicker + Left = 77 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 75 + Width = 1019 + Height = 399 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + Column = v1Column1 + end + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v2Column7 + end + item + Kind = skSum + Column = v2Column8 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_JWLCK.Default + object v2Column1: TcxGridDBColumn + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 92 + end + object v2Column2: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v2Column3: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v2Column4: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object v2Column5: TcxGridDBColumn + Caption = #19978#26399#25968#37327 + DataBinding.FieldName = 'SQJCS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 73 + end + object v2Column6: TcxGridDBColumn + Caption = #26412#26399#20837#24211#25968#37327 + DataBinding.FieldName = 'RKS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 101 + end + object v1Column1: TcxGridDBColumn + Caption = #26412#26399#22238#20179#25968#37327 + DataBinding.FieldName = 'HCS' + Options.Focusing = False + Width = 87 + end + object v1Column2: TcxGridDBColumn + Caption = #26412#26399#36864#36135#25968#37327 + DataBinding.FieldName = 'THS' + Options.Focusing = False + Width = 88 + end + object v2Column7: TcxGridDBColumn + Caption = #26412#26399#20986#24211#25968#37327 + DataBinding.FieldName = 'CKS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 93 + end + object v2Column8: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 78 + end + object v2Column9: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'KCType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + #20027#35201 + #36741#21161 + #20854#23427 + '') + HeaderAlignmentHorz = taCenter + Width = 81 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_JWLCK.ADOLink + Parameters = <> + Left = 904 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_JWLCK.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 840 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_JWLCK.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 872 + Top = 40 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 624 + Top = 184 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 544 + Top = 176 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 192 + end +end diff --git a/盛纺贸易管理/U_CKYCLKC.pas b/盛纺贸易管理/U_CKYCLKC.pas new file mode 100644 index 0000000..a388bcb --- /dev/null +++ b/盛纺贸易管理/U_CKYCLKC.pas @@ -0,0 +1,241 @@ +unit U_CKYCLKC; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit; + +type + TfrmCKYCLKC = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + Label7: TLabel; + YCLName: TEdit; + YCLSpec: TEdit; + GYSName: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + ToolButton1: TToolButton; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure YCLNameChange(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton1Click(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCKYCLKC: TfrmCKYCLKC; + +implementation +uses + U_DataLink,U_Fun,U_CRMX; + +{$R *.dfm} + +procedure TfrmCKYCLKC.FormDestroy(Sender: TObject); +begin + frmCKYCLKC:=nil; +end; + +procedure TfrmCKYCLKC.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCKYCLKC.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-30; + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmCKYCLKC.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('exec CK_YCL_CRCHZ :begdate,:enddate,:CKName'); + Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)); + Parameters.ParamByName('CKName').Value:=Trim(DParameters1); + Open; + //ShowMessage(SQL.Text); + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCKYCLKC.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmCKYCLKC.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmCKYCLKC.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ԭϿ2',Tv1,'ԭϲֿ'); + Close; +end; + +procedure TfrmCKYCLKC.FormShow(Sender: TObject); +begin + + ReadCxGrid('ԭϿ2',Tv1,'ԭϲֿ'); + if Trim(DParameters2)='ԭ' then + begin + ToolButton1.Visible:=True; + v2Column9.Options.Focusing:=True; + v2Column9.Visible:=True; + end else + begin + ToolButton1.Visible:=False; + v2Column9.Options.Focusing:=False; + v2Column9.Visible:=False; + end; + InitGrid(); +end; + +procedure TfrmCKYCLKC.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel(Trim(DParameters1)+'',cxGrid2); +end; + +procedure TfrmCKYCLKC.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCKYCLKC.YCLNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmCKYCLKC.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + try + frmCRMX:=TfrmCRMX.Create(Application); + with frmCRMX do + begin + Fbegdate:=FormatDateTime('yyyy-MM-dd',Self.BegDate.DateTime); + Fenddate:=FormatDateTime('yyyy-MM-dd',Self.enddate.DateTime+1); + {FGYS:=Trim(Self.CDS_Main.fieldbyname('GYS').AsString); + FYCLCode:=Trim(Self.CDS_Main.fieldbyname('YCLCode').AsString); + FYCLSpec:=Trim(Self.CDS_Main.fieldbyname('YCLSpec').AsString); + FCRUnit:=Trim(Self.CDS_Main.fieldbyname('KCUint').AsString); } + CRID:=Trim(Self.CDS_Main.fieldbyname('CRID').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmCRMX.Free; + end; +end; + +procedure TfrmCKYCLKC.ToolButton1Click(Sender: TObject); +begin + try + ADOQueryCmd.Connection.BeginTrans; + BegDate.SetFocus; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_YCL_KC Set KCType='''+Trim(CDS_Main.fieldbyname('KCType').AsString)+''''); + SQL.Add(' where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + Next; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; + +end; + +end. diff --git a/盛纺贸易管理/U_CPDBAO.dfm b/盛纺贸易管理/U_CPDBAO.dfm new file mode 100644 index 0000000..4ca4175 --- /dev/null +++ b/盛纺贸易管理/U_CPDBAO.dfm @@ -0,0 +1,1696 @@ +object frmCPDBao: TfrmCPDBao + Left = 166 + Top = 122 + Width = 1264 + Height = 605 + VertScrollBar.Position = 2 + Caption = #25171#21253#31383#21475 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = -2 + Width = 1533 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + Visible = False + object TBClose: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1533 + Height = 76 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label16: TLabel + Left = 420 + Top = 88 + Width = 48 + Height = 12 + Caption = #36135#36816#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label15: TLabel + Left = 40 + Top = 84 + Width = 48 + Height = 12 + Caption = #37197#36135#20154#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label14: TLabel + Left = 234 + Top = 80 + Width = 24 + Height = 12 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label1: TLabel + Left = 32 + Top = 14 + Width = 100 + Height = 24 + Caption = #26465#30721#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 1168 + Top = 85 + Width = 50 + Height = 24 + Caption = #24211#20301 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 327 + Top = 14 + Width = 50 + Height = 24 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 473 + Top = 14 + Width = 75 + Height = 24 + Caption = #21253#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PHYG: TBtnEditA + Left = 92 + Top = 84 + Width = 100 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + Visible = False + end + object defstr2: TComboBox + Left = 472 + Top = 84 + Width = 101 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 12 + ItemIndex = 0 + ParentFont = False + TabOrder = 2 + Visible = False + Items.Strings = ( + '' + #24555#20214 + #24930#20214) + end + object packNo: TcxCurrencyEdit + Left = 262 + Top = 76 + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = '0' + TabOrder = 3 + Visible = False + Width = 100 + end + object SmNO: TEdit + Left = 136 + Top = 10 + Width = 165 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnKeyPress = SmNOKeyPress + end + object kcKw: TBtnEditA + Left = 1228 + Top = 81 + Width = 89 + Height = 33 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 4 + Visible = False + OnBtnClick = kcKwBtnClick + end + object baoNo: TEdit + Left = 383 + Top = 10 + Width = 66 + Height = 32 + Hint = 'baoNo' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 5 + OnClick = baoNoClick + OnExit = baoNoExit + OnKeyPress = baoNoKeyPress + end + object BaoID: TEdit + Left = 550 + Top = 10 + Width = 170 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 6 + OnClick = baoNoClick + end + object FileName: TcxButton + Left = 984 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #25171#21360#21253#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 1068 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #20851#38381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object ComboBox1: TComboBox + Left = 920 + Top = 12 + Width = 49 + Height = 23 + Style = csDropDownList + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Times New Roman' + Font.Style = [] + ItemHeight = 15 + ItemIndex = 0 + ParentFont = False + TabOrder = 9 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object cxButton3: TcxButton + Left = 728 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #21024#38500 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton2: TcxButton + Left = 704 + Top = 80 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #20445#23384 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton4: TcxButton + Left = 728 + Top = 40 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #25764#38144#25171#21253 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 12 + OnClick = cxButton4Click + LookAndFeel.Kind = lfOffice11 + end + object check_Fbz: TCheckBox + Left = 864 + Top = 80 + Width = 105 + Height = 17 + Caption = #21253#21103#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 13 + end + object Fbq: TBtnEditA + Left = 960 + Top = 80 + Width = 121 + Height = 20 + TabOrder = 14 + OnBtnClick = FbqBtnClick + end + object ComboBox2: TComboBox + Left = 1077 + Top = 80 + Width = 49 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ItemIndex = 0 + ParentFont = False + TabOrder = 15 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object check_bz: TCheckBox + Left = 828 + Top = 16 + Width = 89 + Height = 17 + Caption = #21253#26631#31614 + Checked = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + State = cbChecked + TabOrder = 16 + end + object BaoBq: TBtnEditA + Left = 1144 + Top = 56 + Width = 141 + Height = 20 + TabOrder = 17 + Visible = False + OnBtnClick = BaoBqBtnClick + end + object CheckBox1: TCheckBox + Left = 828 + Top = 48 + Width = 133 + Height = 17 + Caption = #33258#21160#25171#21253 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 18 + end + object ComboBox3: TComboBox + Left = 920 + Top = 44 + Width = 49 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 19 + Items.Strings = ( + '1' + '2' + '3' + '4' + '5' + '6' + '7' + '8' + '9' + '10' + '11' + '12' + '13' + '14' + '15' + '16' + '17' + '18' + '19' + '20' + '21' + '22' + '23' + '24' + '25') + end + end + object Panel2: TPanel + Left = 400 + Top = 139 + Width = 1133 + Height = 560 + Caption = 'Panel2' + TabOrder = 2 + object cxGrid2: TcxGrid + Left = 1 + Top = 1 + Width = 1131 + Height = 266 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = TV2CustomDrawCell + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2Column2 + end + item + Kind = skSum + Column = V2Column3 + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #25195#25551#20449#24687 + DataBinding.FieldName = 'SDefNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 154 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #26465#30721#21495 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 113 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 116 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 94 + end + object V2Column5: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V2Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V2Column1: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'BCGangNO' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 120 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Width = 46 + end + object V2BaoID: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'BaoID' + HeaderAlignmentHorz = taCenter + Width = 94 + end + object V2BaoNO: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNO' + HeaderAlignmentHorz = taCenter + Width = 51 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column2: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column3: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2FHConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'FHConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object cxGrid1: TcxGrid + Left = 1 + Top = 267 + Width = 1131 + Height = 292 + Align = alClient + TabOrder = 1 + object TV4: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSEL + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn16 + end + item + Kind = skSum + Column = cxGridDBColumn17 + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn18 + end + item + Kind = skSum + Column = cxGridDBColumn19 + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn8: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 53 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #26465#30721#21495 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 113 + end + object cxGridDBColumn10: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 116 + end + object cxGridDBColumn11: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 94 + end + object cxGridDBColumn12: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'BCGangNO' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 120 + end + object V4Column1: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V4Column2: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJstr4' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn13: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object cxGridDBColumn14: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'BaoID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 94 + end + object cxGridDBColumn15: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object cxGridDBColumn16: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn17: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn18: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn19: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V4FHConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'FHConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TV4 + end + end + end + object Panel3: TPanel + Left = 999 + Top = 225 + Width = 290 + Height = 286 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 4 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 211 + Width = 140 + Height = 70 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 4 + Top = 143 + Width = 70 + Height = 70 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 74 + Top = 143 + Width = 70 + Height = 70 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 144 + Top = 143 + Width = 70 + Height = 70 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 4 + Top = 73 + Width = 70 + Height = 70 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 74 + Top = 73 + Width = 70 + Height = 70 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 144 + Top = 73 + Width = 70 + Height = 70 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 4 + Top = 3 + Width = 70 + Height = 70 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 74 + Top = 2 + Width = 70 + Height = 70 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 144 + Top = 2 + Width = 70 + Height = 70 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 144 + Top = 213 + Width = 70 + Height = 68 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 214 + Top = 2 + Width = 70 + Height = 70 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 214 + Top = 73 + Width = 70 + Height = 208 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object Panel4: TPanel + Left = 0 + Top = 107 + Width = 553 + Height = 592 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel4' + TabOrder = 5 + object cxGrid3: TcxGrid + Left = 2 + Top = 85 + Width = 549 + Height = 505 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSTm + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object v3Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 42 + end + object Tv3Column1: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Width = 88 + end + object v3Column1: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v3Column2: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 44 + end + object v3Column4: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 43 + end + object v3Column3: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJlen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 47 + end + object v3Column8: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v3Column6: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v3Column7: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v3ConNO: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3StyleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Panel5: TPanel + Left = 2 + Top = 2 + Width = 549 + Height = 83 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object Label6: TLabel + Left = 8 + Top = 13 + Width = 45 + Height = 14 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 8 + Top = 54 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label8: TLabel + Left = 96 + Top = 54 + Width = 24 + Height = 12 + Caption = #33394#21495 + end + object Label9: TLabel + Left = 180 + Top = 54 + Width = 24 + Height = 12 + Caption = #33457#22411 + end + object Label10: TLabel + Left = 268 + Top = 54 + Width = 24 + Height = 12 + Caption = #32568#21495 + end + object Label11: TLabel + Left = 356 + Top = 54 + Width = 24 + Height = 12 + Caption = #21367#21495 + end + object Label12: TLabel + Left = 236 + Top = 113 + Width = 45 + Height = 14 + Caption = #26381#35013#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object BtnEditA1: TBtnEditA + Left = 56 + Top = 9 + Width = 153 + Height = 22 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnBtnClick = BtnEditA1BtnClick + end + object cxButton5: TcxButton + Left = 416 + Top = 8 + Width = 49 + Height = 25 + Hint = 'Filesother' + Caption = #21047#26032 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = cxButton5Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton6: TcxButton + Left = 468 + Top = 8 + Width = 61 + Height = 25 + Hint = 'Filesother' + Caption = #30830#23450#36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = cxButton6Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton7: TcxButton + Left = 468 + Top = 46 + Width = 57 + Height = 25 + Hint = 'Filesother' + Caption = #36807#28388 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = cxButton7Click + LookAndFeel.Kind = lfOffice11 + end + object PRTColor: TEdit + Tag = 2 + Left = 32 + Top = 50 + Width = 60 + Height = 20 + TabOrder = 4 + end + object SOrddefstr1: TEdit + Tag = 1 + Left = 120 + Top = 50 + Width = 60 + Height = 20 + TabOrder = 5 + end + object PRTHX: TEdit + Tag = 2 + Left = 204 + Top = 50 + Width = 60 + Height = 20 + TabOrder = 6 + end + object mjstr4: TEdit + Tag = 1 + Left = 292 + Top = 50 + Width = 60 + Height = 20 + TabOrder = 7 + end + object MJXH: TEdit + Tag = 1 + Left = 380 + Top = 50 + Width = 60 + Height = 20 + TabOrder = 8 + end + object FHPlace: TBtnEditA + Left = 280 + Top = 109 + Width = 137 + Height = 22 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnBtnClick = FHPlaceBtnClick + end + object FHConNo: TEdit + Tag = 2 + Left = 60 + Top = 124 + Width = 60 + Height = 20 + TabOrder = 10 + Visible = False + end + object FHKHConNO: TEdit + Tag = 2 + Left = 248 + Top = 124 + Width = 60 + Height = 20 + TabOrder = 11 + Visible = False + end + object FZCMainid: TEdit + Tag = 2 + Left = 376 + Top = 124 + Width = 60 + Height = 20 + TabOrder = 12 + Visible = False + end + end + end + object MovePanel1: TMovePanel + Left = 462 + Top = 230 + Width = 715 + Height = 327 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 184 + Top = 160 + Width = 198 + Height = 64 + Caption = 'Label2' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit2: TEdit + Left = 177 + Top = 43 + Width = 412 + Height = 72 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '91209120001' + end + object Button4: TButton + Left = 300 + Top = 272 + Width = 75 + Height = 41 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button4Click + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 552 + Top = 136 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 500 + Top = 232 + end + object CDSMJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 732 + Top = 212 + end + object DataSource2: TDataSource + DataSet = CDSMJID + Left = 836 + Top = 248 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 388 + Top = 324 + end + object cxStyleRepository1: TcxStyleRepository + Left = 317 + Top = 306 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clInactiveCaption + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBtnText + end + object cxStyle_gridRow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16311512 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridFoot: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridHead: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridGroupBox: TcxStyle + AssignedValues = [svColor, svFont] + Color = clMoneyGreen + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_yellow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontclFuchsia: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clFuchsia + end + object cxStyle_fontclPurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object cxStyle_fontclGreen: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clGreen + end + object cxStyle_fontclBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle_fontclTeal: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clTeal + end + object cxStyle_fontclOlive: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 252 + Top = 428 + end + object DataSource1: TDataSource + DataSet = ADOQuery1 + Left = 312 + Top = 464 + end + object ADOQueryTm: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 156 + Top = 220 + end + object DSTm: TDataSource + DataSet = CDSTM + Left = 88 + Top = 216 + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 576 + Top = 256 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 424 + Top = 256 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 652 + Top = 232 + end + object CDSTM: TClientDataSet + Aggregates = <> + Params = <> + Left = 212 + Top = 221 + end + object CDSSEL: TClientDataSet + Aggregates = <> + Params = <> + Left = 957 + Top = 497 + end + object DSSEL: TDataSource + DataSet = CDSSEL + Left = 849 + Top = 501 + end +end diff --git a/盛纺贸易管理/U_CPDBAO.pas b/盛纺贸易管理/U_CPDBAO.pas new file mode 100644 index 0000000..d7e3371 --- /dev/null +++ b/盛纺贸易管理/U_CPDBAO.pas @@ -0,0 +1,1232 @@ +unit U_CPDBAO; + +interface + +uses + Windows, Messages, strutils,SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, StdCtrls, cxContainer, cxTextEdit, + cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, + MovePanel, Buttons, Menus, cxLookAndFeelPainters, cxButtons, RM_Common, + RM_Class, RM_GridReport, RM_System, RM_Dataset, cxCheckBox; + +type + TfrmCPDBao = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel1: TPanel; + PHYG: TBtnEditA; + defstr2: TComboBox; + Label16: TLabel; + Label15: TLabel; + packNo: TcxCurrencyEdit; + Label14: TLabel; + Label1: TLabel; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOQueryMain: TADOQuery; + ADOQueryCmd: TADOQuery; + CDSMJID: TClientDataSet; + DataSource2: TDataSource; + SmNO: TEdit; + ADOQueryTmp: TADOQuery; + V2Column1: TcxGridDBColumn; + kcKw: TBtnEditA; + Label5: TLabel; + MovePanel1: TMovePanel; + Edit2: TEdit; + Button4: TButton; + Label2: TLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle_gridRow: TcxStyle; + cxStyle_gridFoot: TcxStyle; + cxStyle_gridHead: TcxStyle; + cxStyle_gridGroupBox: TcxStyle; + cxStyle_yellow: TcxStyle; + cxStyle_Red: TcxStyle; + cxStyle_fontBlack: TcxStyle; + cxStyle_fontclFuchsia: TcxStyle; + cxStyle_fontclPurple: TcxStyle; + cxStyle_fontclGreen: TcxStyle; + cxStyle_fontclBlue: TcxStyle; + cxStyle_fontclTeal: TcxStyle; + cxStyle_fontclOlive: TcxStyle; + ADOQuery1: TADOQuery; + DataSource1: TDataSource; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridLevel2: TcxGridLevel; + Tv3Column1: TcxGridDBColumn; + ADOQueryTm: TADOQuery; + DSTm: TDataSource; + baoNo: TEdit; + BaoID: TEdit; + Label3: TLabel; + Label4: TLabel; + V2BaoNO: TcxGridDBColumn; + V2BaoID: TcxGridDBColumn; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + FileName: TcxButton; + RMDBMain: TRMDBDataSet; + RM2: TRMGridReport; + cxButton1: TcxButton; + ComboBox1: TComboBox; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + Panel4: TPanel; + ADOQueryPrint: TADOQuery; + v3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + CDSTM: TClientDataSet; + cxButton3: TcxButton; + cxButton2: TcxButton; + CDSSEL: TClientDataSet; + cxGrid1: TcxGrid; + TV4: TcxGridDBTableView; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridDBColumn18: TcxGridDBColumn; + cxGridDBColumn19: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + DSSEL: TDataSource; + cxButton4: TcxButton; + V2Column5: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + V4Column1: TcxGridDBColumn; + V4Column2: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + check_Fbz: TCheckBox; + Fbq: TBtnEditA; + ComboBox2: TComboBox; + check_bz: TCheckBox; + BaoBq: TBtnEditA; + v3Column5: TcxGridDBColumn; + CheckBox1: TCheckBox; + ComboBox3: TComboBox; + v3Column6: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + Panel5: TPanel; + Label6: TLabel; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + BtnEditA1: TBtnEditA; + cxButton5: TcxButton; + cxButton6: TcxButton; + cxButton7: TcxButton; + PRTColor: TEdit; + SOrddefstr1: TEdit; + PRTHX: TEdit; + mjstr4: TEdit; + MJXH: TEdit; + FHPlace: TBtnEditA; + FHConNo: TEdit; + FHKHConNO: TEdit; + FZCMainid: TEdit; + V2FHConNo: TcxGridDBColumn; + V4FHConNo: TcxGridDBColumn; + v3ConNO: TcxGridDBColumn; + v3StyleNo: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + + procedure FormCreate(Sender: TObject); + procedure SmNOKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TV2CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure kcKwBtnClick(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure baoNoKeyPress(Sender: TObject; var Key: Char); + procedure baoNoClick(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure baoNoExit(Sender: TObject); + procedure BtnEditA1BtnClick(Sender: TObject); + procedure cxButton3Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + procedure cxButton4Click(Sender: TObject); + procedure FbqBtnClick(Sender: TObject); + procedure BaoBqBtnClick(Sender: TObject); + procedure cxButton5Click(Sender: TObject); + procedure cxButton6Click(Sender: TObject); + procedure cxButton7Click(Sender: TObject); + procedure FHPlaceBtnClick(Sender: TObject); + private + Rolls:integer; + procedure InitGrid(); + procedure InitMJID(); + function SaveRK():Boolean; + Procedure QueryRk(); + Procedure QueryTM(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCPDBao: TfrmCPDBao; + newh:hwnd; + +implementation +uses + U_DataLink,U_Fun, U_ZDYHelp, U_OrderSelRK,U_ZdyAttachment; +{$R *.dfm} +Procedure TfrmCPDBao.QueryTm(); +var + FBaoID:string; +begin + with ADOQueryTM do + begin + close; + sql.Clear; + sql.Add('select E.StyleNo,F.ConPerson2,F.conDefstr2,F.conDefstr3,F.KHConNo,F.ConNo,C.MPrtCodeName,C.orderNo as OrderNoM,A.*,B.*'); + sql.Add('from WFB_MJJY A '); + sql.Add('inner join JYOrder_sub B on B.subID=A.subID '); + sql.Add('inner join JYOrder_main C on C.mainID=A.MainID '); + sql.add('left join CK_SXPB_CR D on D.SPID=A.APID'); + Sql.add('left join JYOrderCon_Sub E on E.Subid=D.ConCKID '); + Sql.add('left join JYOrderCon_Main F on F.Mainid=E.Mainid '); + sql.Add('where A.mjstr2=''δ'' and isnull(A.BaoID,'''')='''' and C.orderNo='+quotedstr(trim(BtnEditA1.Text))); + open; + end; + SCreateCDS20(ADOQueryTM,CDSTM); + SInitCDSData20(ADOQueryTM,CDSTM); + + SCreateCDS20(ADOQueryTM,CDSMJID); +// SInitCDSData20(ADOQueryMain,CDSMJID); + SCreateCDS20(ADOQueryTM,CDSSEL); +// SInitCDSData20(ADOQueryMain,CDSSEL); + + IF not CDSTM.IsEmpty then + begin + with ADOQuery1 do + begin + close; + sql.clear; + sql.add('select isnull(max(cast(baoNo as int)),0)+1 as MaxBaoNo from WFB_MJJY '); + sql.Add('where mainID='+quotedstr(trim(CDSTM.fieldbyname('MainID').AsString))); + open; + end; + baoNo.text:=ADOQuery1.fieldbyname('MaxBaoNo').AsString; + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end; + SMNO.SetFocus; +end; + +Procedure TfrmCPDBao.QueryRk(); +begin + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select A.*,hC_ps=A.AordQty2,JY_ps=(select count(MainID) from WFB_MJJY X where X.APID=A.APID),'); + sql.Add('JY_Qty=(select sum(MJLen) from WFB_MJJY X where X.APID=A.APID), '); + sql.Add('RK_RollNum=(select sum(SOrdQty1) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''''),'); + sql.Add('RK_Qty=(select sum(MJLen) from CK_BanCP_CR X where X.APID=A.APID and X.CRType='''') '); + sql.Add('from JYOrder_sub_anPai A '); + SQL.Add('WHERE exists(select MJID from WFB_MJJY X where X.APID=A.APID and X.MJID='+quotedstr(trim(smNO.Text))); + sql.Add(')'); + open; + end; +end; + +function TfrmCPDBao.SaveRK():Boolean; +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; + MhcTime:TdateTime; +begin + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + + try + {with ADOQueryTmp do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryTmp.fieldbyname('CRID').AsInteger; + if GetLSNo(ADOQueryTmp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + mhcTime:=SGetServerDateTime(ADOQueryTmp); + + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(ADOQueryMain.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(ADOQueryMain.fieldbyname('SubId').AsString); + FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('PRTCode').AsString); + FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('PRTCodeName').AsString); + //FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString); + FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('PRTColor').AsString); + FieldByName('APID').Value:=Trim(ADOQueryMain.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJId').AsString); + FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(BaoID.Text); + + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=0; + FieldByName('Qty').Value:=ADOQueryMain.fieldbyname('MJLen').Value; + FieldByName('RollNum').Value:=1; + FieldByName('QtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value; + FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value; + //FieldByName('Note').Value:=ADOQueryMain.fieldbyname('Note').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp); + //fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('PRTCodeName').AsString,ADOQueryMain.fieldbyname('PRTColor').AsString); + Post; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); + FieldByName('CRType').Value:=''; + FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value; + FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('PRTCode').AsString); + FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('PRTCodeName').AsString); + //FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString); + FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('PRTColor').AsString); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(BaoID.Text); + FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=0; + FieldByName('KCQty').Value:=ADOQueryMain.fieldbyname('MJlen').Value; + FieldByName('RollNum').Value:=1; + FieldByName('KCQtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value; + FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString); + //FieldByName('KCNote').Value:=ADOQueryMain.fieldbyname('Note').Value; + //fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('PRTCodeName').AsString,ADOQueryMain.fieldbyname('PRTColor').AsString); + Post; + end; } + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Baoid.text)+''' where MJID='''+Trim(ADOQueryMain.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=true; + except + ADOQueryCmd.Connection.RollbackTrans; + end; +end; + +procedure TfrmCPDBao.InitGrid(); +begin + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.*,C.MprtCodeName,C.orderNo as OrderNoM from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId'); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID'); + SQL.Add('where 1=2 '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDSMJID); + SInitCDSData20(ADOQueryMain,CDSMJID); + SCreateCDS20(ADOQueryMain,CDSSEL); + SInitCDSData20(ADOQueryMain,CDSSEL); +end; + +procedure TfrmCPDBao.InitMJID(); +begin + MovePanel1.Visible:=false; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select E.StyleNo,F.ConNO,F.KHConNo,C.MprtCodeName,A.*,B.*,C.orderNo as OrderNoM, '); + sql.add('F.ConPerson2,F.conDefstr2,F.conDefstr3 '); + sql.add('from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId '); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID '); + sql.add('left join CK_SXPB_CR D on D.SPID=A.APID '); + sql.add('left join JYOrderCon_Sub E on E.Subid=D.ConCKID '); + sql.add('left join JYOrderCon_Main F on F.Mainid=E.Mainid '); + sql.Add('where MJID='+quotedstr(trim(SmNO.Text))); + Open; + if not IsEmpty then + begin + IF trim(Fieldbyname('MJstr2').AsString)='' then + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:=''; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end + else + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ɹ'; + CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString); + CDSMJID.FieldByName('PRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('PRTCodeName').AsString); + CDSMJID.FieldByName('MPRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('MPRTCodeName').AsString); + CDSMJID.FieldByName('PRTColor').Value:=trim(ADOQueryMain.Fieldbyname('PRTColor').AsString); + CDSMJID.FieldByName('PRTHX').Value:=trim(ADOQueryMain.Fieldbyname('PRTHX').AsString); + CDSMJID.FieldByName('MJStr4').Value:=trim(ADOQueryMain.Fieldbyname('MJStr4').AsString); + CDSMJID.FieldByName('MJType').Value:=trim(ADOQueryMain.Fieldbyname('MJType').AsString); + CDSMJID.FieldByName('BaoNo').Value:=trim(BaoNo.Text); + CDSMJID.FieldByName('BaoID').Value:=trim(BaoID.Text); + CDSMJID.FieldByName('FHConNO').Value:=trim(ADOQueryMain.Fieldbyname('ConNo').AsString); + CDSMJID.FieldByName('FHPlace').Value:=trim(FHPlace.Text); + CDSMJID.FieldByName('SOrdQty1').Value:=1; + CDSMJID.FieldByName('MJLen').Value:=ADOQueryMain.Fieldbyname('MJLen').AsFloat; + CDSMJID.FieldByName('MJMaoZ').Value:=ADOQueryMain.Fieldbyname('MJMaoZ').AsFloat; + CDSMJID.FieldByName('MJQty3').Value:=ADOQueryMain.Fieldbyname('MJQty3').AsFloat; + CDSMJID.FieldByName('MJQty4').Value:=ADOQueryMain.Fieldbyname('MJQty4').AsFloat; + CDSMJID.FieldByName('MJTypeOther').Value:=trim(ADOQueryMain.Fieldbyname('MJTypeOther').AsString); + CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString); + CDSMJID.FieldByName('subID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString); + CDSMJID.Post; + + Rolls:=Rolls+1; + end; + end + else + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='벻'; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end; + end; + IF trim(CDSMJID.FieldByName('SDefNote').AsString)<>'ɹ' then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:=trim(CDSMJID.FieldByName('SDefNote').AsString); + CDSMJID.delete; + end; + If CDSTM.Locate('MJID',trim(smno.Text),[]) then + begin + // application.MessageBox('AAAA','AAAAAAAA',0); + CDSTM.Delete; + tv2.Controller.EditingController.ShowEdit(); + tv3.Controller.EditingController.ShowEdit(); + end; + IF CheckBox1.Checked then + begin + IF (Rolls=strtointdef(trim(ComboBox3.Text),0)) and (strtointdef(trim(ComboBox3.Text),0)>0) then + begin + FileName.Click; + end; + end; +end; + +procedure TfrmCPDBao.FormDestroy(Sender: TObject); +begin + frmCPDBao:=nil; +end; + +procedure TfrmCPDBao.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + //writeCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + writeCxGrid(self.Caption+Tv2.Name,Tv2,'Ʒֿ'); + writeCxGrid(self.Caption+Tv3.Name+'1',Tv3,'Ʒֿ'); + writeCxGrid(self.Caption+Tv4.Name,Tv4,'Ʒֿ'); + Action:=cafree; +end; + +procedure TfrmCPDBao.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmCPDBao.FormCreate(Sender: TObject); +begin + Panel2.Align:=alClient; + //readCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + readCxGrid(self.Caption+Tv2.Name,Tv2,'Ʒֿ'); + readCxGrid(self.Caption+Tv3.Name+'1',Tv3,'Ʒֿ'); + readCxGrid(self.Caption+Tv4.Name,Tv4,'Ʒֿ'); + Rolls:=0; +end; + +procedure TfrmCPDBao.SmNOKeyPress(Sender: TObject; var Key: Char); +begin + IF key=#13 then + begin + + if trim(BaoNo.Text)='' then + begin + application.MessageBox('ŲΪ','ʾ'); + exit; + end; + if trim(BaoID.Text)='' then + begin + application.MessageBox('벻Ϊ','ʾ'); + exit; + end; + IF CDSTM.IsEmpty then exit; + if trim(smno.Text)='' then exit; + IF CDSMJID.Locate('MJID',trim(smno.Text),[]) then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾ظɨ裡'; + smno.Text:=''; + smno.SetFocus; + exit; + end; + If not CDSTM.Locate('MJID',trim(smno.Text),[]) then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select E.StyleNo,F.ConPerson2,F.conDefstr2,F.conDefstr3,C.MprtCodeName,C.OrderNO as orderNoM,A.*,B.* from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId '); + sql.add('inner join JYOrder_Main C on C.mainid=A.mainID '); + sql.add('left join CK_SXPB_CR D on D.SPID=A.APID '); + sql.add('left join JYOrderCon_Sub E on E.Subid=D.ConCKID '); + SQL.add('left join JYOrderCon_Main F on F.Mainid=E.Mainid '); + sql.Add('where MJID='+quotedstr(trim(SmNO.Text))); + Open; + IF isempty then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾Ŵ'; + end + else + begin + If not CDSTM.Locate('orderNoM',trim(fieldbyname('OrderNoM').AsString),[]) then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾ڵǰ'; + end + else + begin + IF Fieldbyname('MJstr2').AsString<>'δ' then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:=fieldbyname('Mjstr2').AsString; + end + else + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾Ѵ'; + end; + end; + end; + end; + smno.Text:=''; + smno.SetFocus; + exit; + end + else + begin + initMJID(); + end; + smno.Text:=''; + smno.SetFocus; + end; +end; + +procedure TfrmCPDBao.FormShow(Sender: TObject); +begin + MovePanel1.Left:=(Width-MovePanel1.Width) div 2; + MovePanel1.top:=(Height-MovePanel1.Height-200) div 2; + // InitGrid(); +end; + +procedure TfrmCPDBao.TV2CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); +var + i:integer; +begin + i:=tv2.GetColumnByFieldName('SDefNote').Index; + if (AViewInfo.GridRecord.Values[i]<>'ɹ') then + ACanvas.Brush.Color:=clred; +end; + +procedure TfrmCPDBao.kcKwBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CPKWFlag'; + flagname:='λϢ'; + V1Name.Caption:='λ'; + V1Note.Caption:='Ӣ'; +// MainType:=Trim(DName); + fnote:=FALSE; + if ShowModal=1 then + begin + kcKw.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCPDBao.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; + SmNO.SetFocus; +end; + +procedure TfrmCPDBao.baoNoKeyPress(Sender: TObject; var Key: Char); +var FBaoID: string; +begin + +end; + +procedure TfrmCPDBao.baoNoClick(Sender: TObject); +var + i:Integer; +begin +// Panel3.Visible:=True; + { with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; } +end; + +procedure TfrmCPDBao.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmCPDBao.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmCPDBao.SpeedButton49Click(Sender: TObject); +var + FBaoID:string; +begin + IF trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Hint)<>'' then + begin + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end; + Panel3.Visible:=False; +end; + +procedure TfrmCPDBao.FileNameClick(Sender: TObject); +var fPrintFile: string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; + FBaoID:string; + i:Integer; +begin + if trim(BaoID.Text)='' then + begin + application.MessageBox('벻δ','ʾ'); + exit; + end; + IF CDSMJID.IsEmpty then exit; + + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add(' SELECT D.ConLBName,D.ConNLBName'); + sql.Add(' from WFB_MJJY A'); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID'); + SQL.ADD(' left join JYOrderCon_Sub C on C.Subid=B.ConCKID '); + sql.add(' left join JYOrderCon_Main D on D.Mainid=C.Mainid '); + SQL.Add('where A.MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + Open; + IF not ADOQueryPrint.IsEmpty then + begin + if Trim(ADOQueryPrint.fieldbyname('ConNLBName').AsString)='' then + begin + application.MessageBox('ûðǩܴ','ʾϢ',0); + exit; + end; + end; + end; + ADOQueryCmd.Connection.BeginTrans; + try + with CDSMJID do + begin + DisableControls; + first; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Baoid.text)+''' '); + sql.add(' where MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + edit; + fieldByName('Sflag').AsString :='2'; + fieldbyname('BaoNo').Value:=trim(BaoNo.Text); + fieldbyname('BaoID').Value:=trim(BaoID.Text); + post; + next; + end; + EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('޸ʧܣ','ʾϢ',0); + exit; + end; + + +{ if trim(BaoID.Text)='' then + begin + application.MessageBox('벻δ','ʾ'); + exit; + end; } + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther as QtyUnit,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + SQL.ADD('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,'); + sql.Add('MprtCodeNameEng=(select top 1 Note from KH_Zdy X where X.zdyName=D.MprtCodeName), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.add(' ,substring(G.ConNo,LEN(G.ConNO)-3,LEN(G.ConNO)) HS,F.XHNo'); + sql.Add('from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + sql.add(' left join CK_SXPB_CR E on E.SPID=A.APID'); + sql.add(' inner join JYOrderCon_Sub F on F.Subid=E.ConCKID '); + sql.add(' inner join JYOrderCon_Main G on G.Mainid=F.Mainid '); + SQL.Add('where A.BaoID='''+Trim(BaoID.Text)+''''); + SQL.ADD('group by A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + sql.add('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,F.XHNo'); + Open; + end; + + if ADOQueryPrint.RecordCount>1 then + begin + Application.MessageBox('´!','ʾ',0); + Exit; + end; + if ADOQueryPrint.RecordCount<1 then + begin + Application.MessageBox('˰Żδ棬뱣ݣڴӡ룡','ʾ',0); + Exit; + end; + + + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=trim(BaoID.Text); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + baoNo.Text:=inttostr(strtointdef(trim(baoNo.Text),0)+1); + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + CDSsel.Last; + with CDSMJID do + begin + DisableControls; + first; + while not eof do + begin + CDSsel.Append; + for i:=0 to FieldCount-1 do + begin + CDSsel.fields[i].value:=Fields[i].Value ; + end; + CDSsel.Post; + next; + end; + EnableControls; + end; + CDSMJID.EmptyDataSet; + + IF check_bz.Checked then + begin + if Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)<>'' then + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'; + IF Not FileExists(fPrintFile) then + begin + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RMVariables['ID']:=trim(ADOQueryPrint.fieldbyname('HS').AsString)+Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1); + //RM2.ShowReport; + RM2.printReport; + end; + end; + + Rolls:=0; + SmNO.SetFocus; +{ + IF check_Fbz.Checked then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(Fbq.Text)+'.rmf' ; + IF Not FileExists(fPrintFile) then + begin + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies:=strtointdef(trim(ComboBox2.Text),1); + //RM2.ShowReport; + RM2.printReport; + end; + end; + } +end; + +procedure TfrmCPDBao.cxButton1Click(Sender: TObject); +begin + TBClose.Click; +end; + +procedure TfrmCPDBao.baoNoExit(Sender: TObject); +var + FBaoID:string; +begin + IF baoNo.Text<>'' then + begin + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end + else + BaoID.Text:=''; +end; + +procedure TfrmCPDBao.BtnEditA1BtnClick(Sender: TObject); +begin + frmOrderSelRK:=TfrmOrderSelRK.Create(Application); + with frmOrderSelRK do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + BtnEditA1.Text:=trim(CDS_OrderSel.fieldbyname('OrderNo').asstring); + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + end; + end; + QueryTm(); +end; + +procedure TfrmCPDBao.cxButton3Click(Sender: TObject); +var + i:integer; +begin + IF CDSMJID.IsEmpty then exit; + IF CDSMJID.fieldByName('Sflag').AsString='2' then + begin + application.MessageBox('Ѵɾ','ʾϢ',0); + exit; + end + else + begin + with CDSMJID do + begin + CDSTM.Last; + + CDSTM.Append; + for i:=0 to FieldCount-1 do + begin + CDSTM.fields[i].value:=Fields[i].Value ; + end; + CDSTM.Post; + end; + CDSMJID.Delete; + end; +end; + +procedure TfrmCPDBao.cxButton2Click(Sender: TObject); +begin + IF CDSMJID.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with CDSMJID do + begin + DisableControls; + first; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Baoid.text)+''' where MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + edit; + fieldByName('Sflag').AsString :='2'; + fieldbyname('BaoNo').Value:=trim(BaoNo.Text); + fieldbyname('BaoID').Value:=trim(BaoID.Text); + post; + next; + end; + EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + // application.MessageBox('޸ijɹ','ʾϢ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('޸ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmCPDBao.cxButton4Click(Sender: TObject); +begin + if CDSSEL.IsEmpty then Exit; + if CDSSEL.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + try + CDSSEL.DisableControls; + // ADOQueryCmd.Connection.BeginTrans; + with CDSSEL do + begin + First; + while FieldByName('SSel').AsBoolean do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set baoID='''',baoNo='''' '); + sql.Add('where MJID='''+Trim(CDSSEL.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + delete; + end; + end; + // ADOQueryCmd.Connection.CommitTrans; + CDSSEL.EnableControls; + application.MessageBox('ݳɹ','ʾϢ'); + QueryTm(); + exit; + except + // ADOQueryCmd.Connection.RollbackTrans; + CDSSEL.EnableControls; + application.MessageBox('ݳʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmCPDBao.FbqBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BAOFFLAG'; + flagname:='ǩ'; + if ShowModal=1 then + begin + Fbq.Text:=trim(ClientDataSet1.fieldbyname('zdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCPDBao.BaoBqBtnClick(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + // LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + BaoBq.Text:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + +end; + +procedure TfrmCPDBao.cxButton5Click(Sender: TObject); +begin + QueryTm(); +end; + +procedure TfrmCPDBao.cxButton6Click(Sender: TObject); +begin + IF CDSTM.IsEmpty then exit; + if trim(BaoNo.Text)='' then + begin + application.MessageBox('ŲΪ','ʾ'); + exit; + end; + if trim(BaoID.Text)='' then + begin + application.MessageBox('벻Ϊ','ʾ'); + exit; + end; + + with CDSTM do + begin + DisableControls; + // first; + while Locate('ssel',true,[]) do + begin + IF CDSMJID.Locate('MJID',trim(CDSTM.fieldbyname('MJID').AsString),[]) then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾ظɨ裡'; + smno.Text:=''; + smno.SetFocus; + EnableControls; + exit; + end; + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ɹ'; + CDSMJID.FieldByName('MJID').Value:=trim(Fieldbyname('MJID').AsString); + CDSMJID.FieldByName('PRTCodeName').Value:=trim(Fieldbyname('PRTCodeName').AsString); + CDSMJID.FieldByName('MPRTCodeName').Value:=trim(Fieldbyname('MPRTCodeName').AsString); + CDSMJID.FieldByName('PRTColor').Value:=trim(Fieldbyname('PRTColor').AsString); + CDSMJID.FieldByName('PRTHX').Value:=trim(Fieldbyname('PRTHX').AsString); + CDSMJID.FieldByName('MJStr4').Value:=trim(Fieldbyname('MJStr4').AsString); + CDSMJID.FieldByName('MJType').Value:=trim(Fieldbyname('MJType').AsString); + CDSMJID.FieldByName('BaoNo').Value:=trim(BaoNo.Text); + CDSMJID.FieldByName('BaoID').Value:=trim(BaoID.Text); + CDSMJID.FieldByName('FHConNO').Value:=trim(fieldbyname('ConNO').AsString); + CDSMJID.FieldByName('FHPlace').Value:=trim(FHPlace.Text); + CDSMJID.FieldByName('SOrdQty1').Value:=1; + CDSMJID.FieldByName('MJLen').Value:=Fieldbyname('MJLen').AsFloat; + CDSMJID.FieldByName('MJMaoZ').Value:=Fieldbyname('MJMaoZ').AsFloat; + CDSMJID.FieldByName('MJQty3').Value:=Fieldbyname('MJQty3').AsFloat; + CDSMJID.FieldByName('MJQty4').Value:=Fieldbyname('MJQty4').AsFloat; + CDSMJID.FieldByName('MJTypeOther').Value:=trim(Fieldbyname('MJTypeOther').AsString); + CDSMJID.FieldByName('mainID').Value:=trim(Fieldbyname('mainID').AsString); + CDSMJID.FieldByName('subID').Value:=trim(Fieldbyname('subID').AsString); + CDSMJID.Post; + + CDSTM.Delete; + tv2.Controller.EditingController.ShowEdit(); + tv3.Controller.EditingController.ShowEdit(); + end; + first; + EnableControls; + end; +end; + +procedure TfrmCPDBao.cxButton7Click(Sender: TObject); +begin + SDofilter(ADOQueryTM,SGetFilters(Panel5,1,2)); + SCreateCDS20(ADOQueryTM,CDSTM); + SInitCDSData20(ADOQueryTM,CDSTM); +end; + +procedure TfrmCPDBao.FHPlaceBtnClick(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + FHPlace.Text:=trim(CDS_HZ.fieldbyname('ZdyName').AsString); + FZCMainid.text:=trim(CDS_HZ.fieldbyname('DEFNote2').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_CPGangNo.dfm b/盛纺贸易管理/U_CPGangNo.dfm new file mode 100644 index 0000000..659b7e1 --- /dev/null +++ b/盛纺贸易管理/U_CPGangNo.dfm @@ -0,0 +1,1131 @@ +object frmCPGangNo: TfrmCPGangNo + Left = 41 + Top = 60 + Width = 1350 + Height = 671 + Caption = #25442#32568#21495#31383#21475 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1446 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + Visible = False + object TBClose: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1446 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label16: TLabel + Left = 420 + Top = 56 + Width = 48 + Height = 12 + Caption = #36135#36816#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label15: TLabel + Left = 44 + Top = 56 + Width = 48 + Height = 12 + Caption = #37197#36135#20154#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label14: TLabel + Left = 234 + Top = 56 + Width = 24 + Height = 12 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label1: TLabel + Left = 40 + Top = 14 + Width = 100 + Height = 24 + Caption = #26465#30721#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 395 + Top = 14 + Width = 125 + Height = 24 + Caption = #20462#25913#21518#32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 545 + Top = 66 + Width = 75 + Height = 24 + Caption = #21253#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 1023 + Top = 14 + Width = 80 + Height = 22 + Caption = #25171#21360#20221#25968 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object PHYG: TBtnEditA + Left = 96 + Top = 52 + Width = 100 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + Visible = False + end + object defstr2: TComboBox + Left = 472 + Top = 52 + Width = 101 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 12 + ItemIndex = 0 + ParentFont = False + TabOrder = 2 + Visible = False + Items.Strings = ( + '' + #24555#20214 + #24930#20214) + end + object packNo: TcxCurrencyEdit + Left = 262 + Top = 52 + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = '0' + TabOrder = 3 + Visible = False + Width = 100 + end + object SmNO: TEdit + Left = 144 + Top = 10 + Width = 165 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 1 + OnKeyPress = SmNOKeyPress + end + object baoNo: TEdit + Left = 523 + Top = 10 + Width = 66 + Height = 32 + Hint = 'baoNo' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 4 + OnClick = baoNoClick + end + object BaoID: TEdit + Left = 618 + Top = 58 + Width = 170 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 5 + OnClick = baoNoClick + end + object FileName: TcxButton + Left = 1184 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #25171#21360#21367#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 1268 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #20851#38381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object ComboBox1: TComboBox + Left = 1104 + Top = 4 + Width = 49 + Height = 40 + Style = csDropDownList + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = 'Times New Roman' + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 32 + ItemIndex = 0 + ParentFont = False + TabOrder = 8 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object cxButton2: TcxButton + Left = 672 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #20445#23384 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton3: TcxButton + Left = 796 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #21024#38500 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + end + object Panel2: TPanel + Left = 184 + Top = 233 + Width = 1262 + Height = 464 + Caption = 'Panel2' + TabOrder = 2 + object cxGrid2: TcxGrid + Left = 1 + Top = 1 + Width = 1260 + Height = 462 + Align = alClient + TabOrder = 0 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = TV2CustomDrawCell + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2Column2 + end + item + Kind = skSum + Column = V2Column3 + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object V2Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #25195#25551#20449#24687 + DataBinding.FieldName = 'SDefNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 157 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #26465#30721#21495 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 113 + end + object V2OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 116 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 107 + end + object V2MJstr4: TcxGridDBColumn + Caption = #21407#32568#21495 + DataBinding.FieldName = 'MJstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object V2Column1: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'BCGangNO' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 120 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 105 + end + object V2BaoID: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'BaoID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + object V2BaoNO: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column2: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column3: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + end + object Panel3: TPanel + Left = 1027 + Top = 423 + Width = 290 + Height = 286 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 4 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 211 + Width = 140 + Height = 70 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 4 + Top = 143 + Width = 70 + Height = 70 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 74 + Top = 143 + Width = 70 + Height = 70 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 144 + Top = 143 + Width = 70 + Height = 70 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 4 + Top = 73 + Width = 70 + Height = 70 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 74 + Top = 73 + Width = 70 + Height = 70 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 144 + Top = 73 + Width = 70 + Height = 70 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 4 + Top = 3 + Width = 70 + Height = 70 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 74 + Top = 2 + Width = 70 + Height = 70 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 144 + Top = 2 + Width = 70 + Height = 70 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 144 + Top = 213 + Width = 70 + Height = 68 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 214 + Top = 2 + Width = 70 + Height = 70 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 214 + Top = 73 + Width = 70 + Height = 208 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object Panel4: TPanel + Left = 0 + Top = 81 + Width = 149 + Height = 616 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel4' + TabOrder = 5 + Visible = False + object cxGrid3: TcxGrid + Left = 2 + Top = 57 + Width = 145 + Height = 557 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSTm + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + OptionsView.IndicatorWidth = 20 + Styles.Header = DataLink_TradeManage.Default + object Tv3Column1: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Width = 80 + end + object v3Column1: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3Column2: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3Column3: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJlen' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Panel5: TPanel + Left = 2 + Top = 2 + Width = 145 + Height = 55 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object Label6: TLabel + Left = 32 + Top = 21 + Width = 45 + Height = 14 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BtnEditA1: TBtnEditA + Left = 80 + Top = 17 + Width = 153 + Height = 22 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnBtnClick = BtnEditA1BtnClick + end + end + end + object MovePanel1: TMovePanel + Left = 430 + Top = 156 + Width = 801 + Height = 353 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 244 + Top = 164 + Width = 198 + Height = 64 + Caption = 'Label2' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit2: TEdit + Left = 177 + Top = 43 + Width = 412 + Height = 72 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '91209120001' + end + object Button4: TButton + Left = 296 + Top = 272 + Width = 75 + Height = 41 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button4Click + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 552 + Top = 136 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 500 + Top = 232 + end + object CDSMJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 732 + Top = 212 + end + object DataSource2: TDataSource + DataSet = CDSMJID + Left = 836 + Top = 248 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 388 + Top = 324 + end + object cxStyleRepository1: TcxStyleRepository + Left = 241 + Top = 142 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clInactiveCaption + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBtnText + end + object cxStyle_gridRow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16311512 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridFoot: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridHead: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridGroupBox: TcxStyle + AssignedValues = [svColor, svFont] + Color = clMoneyGreen + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_yellow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontclFuchsia: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clFuchsia + end + object cxStyle_fontclPurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object cxStyle_fontclGreen: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clGreen + end + object cxStyle_fontclBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle_fontclTeal: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clTeal + end + object cxStyle_fontclOlive: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 252 + Top = 428 + end + object DataSource1: TDataSource + DataSet = ADOQuery1 + Left = 312 + Top = 464 + end + object ADOQueryTm: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 152 + Top = 192 + end + object DSTm: TDataSource + DataSet = ADOQueryTm + Left = 88 + Top = 216 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 576 + Top = 256 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 424 + Top = 256 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 652 + Top = 232 + end + object CDSTM: TClientDataSet + Aggregates = <> + Params = <> + Left = 212 + Top = 221 + end +end diff --git a/盛纺贸易管理/U_CPGangNo.pas b/盛纺贸易管理/U_CPGangNo.pas new file mode 100644 index 0000000..f7c1023 --- /dev/null +++ b/盛纺贸易管理/U_CPGangNo.pas @@ -0,0 +1,746 @@ +unit U_CPGangNo; + +interface + +uses + Windows, Messages, strutils,SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, StdCtrls, cxContainer, cxTextEdit, + cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, + MovePanel, Buttons, Menus, cxLookAndFeelPainters, cxButtons, RM_Common, + RM_Class, RM_GridReport, RM_System, RM_Dataset, cxCheckBox; + +type + TfrmCPGangNo = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel1: TPanel; + PHYG: TBtnEditA; + defstr2: TComboBox; + Label16: TLabel; + Label15: TLabel; + packNo: TcxCurrencyEdit; + Label14: TLabel; + Label1: TLabel; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOQueryMain: TADOQuery; + ADOQueryCmd: TADOQuery; + CDSMJID: TClientDataSet; + DataSource2: TDataSource; + SmNO: TEdit; + ADOQueryTmp: TADOQuery; + V2Column1: TcxGridDBColumn; + MovePanel1: TMovePanel; + Edit2: TEdit; + Button4: TButton; + Label2: TLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle_gridRow: TcxStyle; + cxStyle_gridFoot: TcxStyle; + cxStyle_gridHead: TcxStyle; + cxStyle_gridGroupBox: TcxStyle; + cxStyle_yellow: TcxStyle; + cxStyle_Red: TcxStyle; + cxStyle_fontBlack: TcxStyle; + cxStyle_fontclFuchsia: TcxStyle; + cxStyle_fontclPurple: TcxStyle; + cxStyle_fontclGreen: TcxStyle; + cxStyle_fontclBlue: TcxStyle; + cxStyle_fontclTeal: TcxStyle; + cxStyle_fontclOlive: TcxStyle; + ADOQuery1: TADOQuery; + DataSource1: TDataSource; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridLevel2: TcxGridLevel; + Tv3Column1: TcxGridDBColumn; + ADOQueryTm: TADOQuery; + DSTm: TDataSource; + baoNo: TEdit; + BaoID: TEdit; + Label3: TLabel; + Label4: TLabel; + V2BaoNO: TcxGridDBColumn; + V2BaoID: TcxGridDBColumn; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + FileName: TcxButton; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + cxButton1: TcxButton; + ComboBox1: TComboBox; + Label34: TLabel; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + Panel4: TPanel; + ADOQueryPrint: TADOQuery; + Label6: TLabel; + BtnEditA1: TBtnEditA; + v3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + CDSTM: TClientDataSet; + Panel5: TPanel; + V2MJstr4: TcxGridDBColumn; + V2OrderNo: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + cxButton2: TcxButton; + cxButton3: TcxButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + + procedure FormCreate(Sender: TObject); + procedure SmNOKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TV2CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure kcKwBtnClick(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure baoNoClick(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure BtnEditA1BtnClick(Sender: TObject); + procedure cxButton3Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + private + procedure InitGrid(); + procedure InitMJID(); + function SaveRK():Boolean; + Procedure QueryRk(); + Procedure QueryTM(); + { Private declarations } + public + { Public declarations } + end; + +var + frmCPGangNo: TfrmCPGangNo; + +implementation +uses + U_DataLink,U_Fun, U_ZDYHelp, U_OrderSelRK; +{$R *.dfm} +Procedure TfrmCPGangNo.QueryTm(); +var + FBaoID:string; +begin + with ADOQueryTM do + begin + close; + sql.Clear; + sql.Add('select A.*,B.PrtColor,C.MPrtCodeName'); + sql.Add('from WFB_MJJY A '); + sql.Add('inner join JYOrder_sub B on B.subID=A.subID '); + sql.Add('inner join JYOrder_main C on C.mainID=A.MainID '); + sql.Add('and A.mjstr2=''δ'' and isnull(A.BaoID,'''')='''' and C.orderNo='+quotedstr(trim(BtnEditA1.Text))); + open; + end; + SCreateCDS20(ADOQueryTM,CDSTM); + SInitCDSData20(ADOQueryTM,CDSTM); + + IF not CDSTM.IsEmpty then + begin + with ADOQuery1 do + begin + close; + sql.clear; + sql.add('select isnull(max(cast(baoNo as int)),0)+1 as MaxBaoNo from WFB_MJJY '); + sql.Add('where mainID='+quotedstr(trim(CDSTM.fieldbyname('MainID').AsString))); + open; + end; + baoNo.text:=ADOQuery1.fieldbyname('MaxBaoNo').AsString; + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end; +end; + +Procedure TfrmCPGangNo.QueryRk(); +begin + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select A.*,hC_ps=A.AordQty2,JY_ps=(select count(MainID) from WFB_MJJY X where X.APID=A.APID),'); + sql.Add('JY_Qty=(select sum(MJLen) from WFB_MJJY X where X.APID=A.APID), '); + sql.Add('RK_RollNum=(select sum(SOrdQty1) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''''),'); + sql.Add('RK_Qty=(select sum(MJLen) from CK_BanCP_CR X where X.APID=A.APID and X.CRType='''') '); + sql.Add('from JYOrder_sub_anPai A '); + SQL.Add('WHERE exists(select MJID from WFB_MJJY X where X.APID=A.APID and X.MJID='+quotedstr(trim(smNO.Text))); + sql.Add(')'); + open; + end; +end; + +function TfrmCPGangNo.SaveRK():Boolean; +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; + MhcTime:TdateTime; +begin + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + + try + {with ADOQueryTmp do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryTmp.fieldbyname('CRID').AsInteger; + if GetLSNo(ADOQueryTmp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + mhcTime:=SGetServerDateTime(ADOQueryTmp); + + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(ADOQueryMain.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(ADOQueryMain.fieldbyname('SubId').AsString); + FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('PRTCode').AsString); + FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('PRTCodeName').AsString); + //FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString); + FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('PRTColor').AsString); + FieldByName('APID').Value:=Trim(ADOQueryMain.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJId').AsString); + FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(BaoID.Text); + + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=0; + FieldByName('Qty').Value:=ADOQueryMain.fieldbyname('MJLen').Value; + FieldByName('RollNum').Value:=1; + FieldByName('QtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value; + FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value; + //FieldByName('Note').Value:=ADOQueryMain.fieldbyname('Note').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp); + //fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('PRTCodeName').AsString,ADOQueryMain.fieldbyname('PRTColor').AsString); + Post; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); + FieldByName('CRType').Value:=''; + FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value; + FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('PRTCode').AsString); + FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('PRTCodeName').AsString); + //FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString); + FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('PRTColor').AsString); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(BaoID.Text); + FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=0; + FieldByName('KCQty').Value:=ADOQueryMain.fieldbyname('MJlen').Value; + FieldByName('RollNum').Value:=1; + FieldByName('KCQtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value; + FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString); + //FieldByName('KCNote').Value:=ADOQueryMain.fieldbyname('Note').Value; + //fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('PRTCodeName').AsString,ADOQueryMain.fieldbyname('PRTColor').AsString); + Post; + end; } + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Baoid.text)+''' where MJID='''+Trim(ADOQueryMain.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=true; + except + ADOQueryCmd.Connection.RollbackTrans; + end; +end; + +procedure TfrmCPGangNo.InitGrid(); +begin + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.*,C.MprtCodeName from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId'); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID'); + SQL.Add('where 1=2 '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDSMJID); + SInitCDSData20(ADOQueryMain,CDSMJID); +end; + +procedure TfrmCPGangNo.InitMJID(); +begin + MovePanel1.Visible:=false; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.*,C.MprtCodeName,C.OrderNo as OrderNoM from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId'); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID'); + sql.Add('where MJID='+quotedstr(trim(SmNO.Text))); + Open; + if not IsEmpty then + begin + IF not CDSMJID.IsEmpty then + begin + IF not CDSMJID.Locate('OrderNo',trim(ADOQueryMain.fieldbyname('OrderNoM').AsString),[]) then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='Ųͬ'; + exit; + end; + end; + IF trim(Fieldbyname('MJstr2').AsString)='' then + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:=''; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end + else + IF trim(Fieldbyname('MJstr2').AsString)='ѳ' then + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ѳ'; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end + else + begin + IF CDSMJID.Locate('MJID',trim(ADOQueryMain.Fieldbyname('MJID').AsString),[]) then + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ɨ'; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end + else + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ɨɹ'; + CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString); +// CDSMJID.FieldByName('CRID').Value:=trim(ADOQueryMain.Fieldbyname('CRID').AsString); + CDSMJID.FieldByName('orderNo').Value:=trim(ADOQueryMain.Fieldbyname('OrderNoM').AsString); + CDSMJID.FieldByName('PRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('PRTCodeName').AsString); + CDSMJID.FieldByName('MPRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('MPRTCodeName').AsString); + CDSMJID.FieldByName('PRTColor').Value:=trim(ADOQueryMain.Fieldbyname('PRTColor').AsString); + CDSMJID.FieldByName('MJType').Value:=trim(ADOQueryMain.Fieldbyname('MJType').AsString); + CDSMJID.FieldByName('Mjstr4').Value:=trim(ADOQueryMain.Fieldbyname('Mjstr4').AsString); + // CDSMJID.FieldByName('BaoNo').Value:=trim(BaoNo.Text); + // CDSMJID.FieldByName('BaoID').Value:=trim(BaoID.Text); + CDSMJID.FieldByName('SOrdQty1').Value:=1; + CDSMJID.FieldByName('MJLen').Value:=ADOQueryMain.Fieldbyname('MJLen').AsFloat; + CDSMJID.FieldByName('MJMaoZ').Value:=ADOQueryMain.Fieldbyname('MJMaoZ').AsFloat; + CDSMJID.FieldByName('MJQty3').Value:=ADOQueryMain.Fieldbyname('MJQty3').AsFloat; + CDSMJID.FieldByName('MJQty4').Value:=ADOQueryMain.Fieldbyname('MJQty4').AsFloat; + CDSMJID.FieldByName('MJTypeOther').Value:=trim(ADOQueryMain.Fieldbyname('MJTypeOther').AsString); + CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString); + CDSMJID.FieldByName('subID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString); + CDSMJID.Post; + end; + { IF saveRk() then + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ɹ'; + CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString); +// CDSMJID.FieldByName('CRID').Value:=trim(ADOQueryMain.Fieldbyname('CRID').AsString); + CDSMJID.FieldByName('PRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('PRTCodeName').AsString); + CDSMJID.FieldByName('MPRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('MPRTCodeName').AsString); + CDSMJID.FieldByName('PRTColor').Value:=trim(ADOQueryMain.Fieldbyname('PRTColor').AsString); + CDSMJID.FieldByName('MJType').Value:=trim(ADOQueryMain.Fieldbyname('MJType').AsString); + CDSMJID.FieldByName('BaoNo').Value:=trim(BaoNo.Text); + CDSMJID.FieldByName('BaoID').Value:=trim(BaoID.Text); + CDSMJID.FieldByName('SOrdQty1').Value:=1; + CDSMJID.FieldByName('MJLen').Value:=ADOQueryMain.Fieldbyname('MJLen').AsFloat; + CDSMJID.FieldByName('MJMaoZ').Value:=ADOQueryMain.Fieldbyname('MJMaoZ').AsFloat; + CDSMJID.FieldByName('MJQty3').Value:=ADOQueryMain.Fieldbyname('MJQty3').AsFloat; + CDSMJID.FieldByName('MJQty4').Value:=ADOQueryMain.Fieldbyname('MJQty4').AsFloat; + CDSMJID.FieldByName('MJTypeOther').Value:=trim(ADOQueryMain.Fieldbyname('MJTypeOther').AsString); + CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString); + CDSMJID.FieldByName('subID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString); + CDSMJID.Post; + //QueryRk(); + QueryTm(); + end + else + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ʧ'; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end; } + end; + end + else + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='벻'; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end; + end; + IF trim(CDSMJID.FieldByName('SDefNote').AsString)<>'ɨɹ' then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:=trim(CDSMJID.FieldByName('SDefNote').AsString); + CDSMJID.Delete; + end; +end; + +procedure TfrmCPGangNo.FormDestroy(Sender: TObject); +begin + frmCPGangNo:=nil; +end; + +procedure TfrmCPGangNo.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + //writeCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + writeCxGrid(self.Caption+Tv2.Name,Tv2,'Ʒֿ'); + writeCxGrid(self.Caption+Tv3.Name,Tv3,'Ʒֿ'); + Action:=cafree; +end; + +procedure TfrmCPGangNo.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmCPGangNo.FormCreate(Sender: TObject); +begin + Panel2.Align:=alClient; + //readCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + readCxGrid(self.Caption+Tv2.Name,Tv2,'Ʒֿ'); + readCxGrid(self.Caption+Tv3.Name,Tv3,'Ʒֿ'); +end; + +procedure TfrmCPGangNo.SmNOKeyPress(Sender: TObject; var Key: Char); +begin + IF key=#13 then + begin + if trim(smno.Text)='' then exit; + initMJID(); + smno.Text:=''; + smno.SetFocus; + tv2.Controller.EditingController.ShowEdit(); + end; +end; + +procedure TfrmCPGangNo.FormShow(Sender: TObject); +begin + MovePanel1.Left:=(Width-MovePanel1.Width) div 2; + MovePanel1.top:=(Height-MovePanel1.Height-200) div 2; + InitGrid(); +end; + +procedure TfrmCPGangNo.TV2CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); +var + i:integer; +begin +{ i:=tv2.GetColumnByFieldName('SDefNote').Index; + if (AViewInfo.GridRecord.Values[i]<>'ɹ') then + ACanvas.Brush.Color:=clred; } +end; + +procedure TfrmCPGangNo.kcKwBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CPKWFlag'; + flagname:='λϢ'; + V1Name.Caption:='λ'; + V1Note.Caption:='Ӣ'; +// MainType:=Trim(DName); + fnote:=FALSE; + if ShowModal=1 then + begin + // kcKw.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCPGangNo.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; + SmNO.SetFocus; +end; + +procedure TfrmCPGangNo.baoNoClick(Sender: TObject); +var + i:Integer; +begin +// Panel3.Visible:=True; + { with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; } +end; + +procedure TfrmCPGangNo.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmCPGangNo.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; +procedure TfrmCPGangNo.SpeedButton49Click(Sender: TObject); +var + FBaoID:string; +begin + IF trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Hint)<>'' then + begin + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end; + Panel3.Visible:=False; +end; + +procedure TfrmCPGangNo.FileNameClick(Sender: TObject); +var + fPrintFile:string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if CDSMJID.IsEmpty then Exit; + if CDSMJID.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + CDSMJID.DisableControls; + with CDSMJID do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,B.conNo,GangNo=D.AOrddefStr1,PRTColorEng=E.Note,B.LBName '); + sql.Add(',khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=B.conNO) '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,C.*,A.* '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + if Trim(ADOQueryPrint.fieldbyname('LbName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LbName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM2.LoadFromFile(fPrintFile); + RM2.ShowReport; + // RM2.PrintReport; + end else + begin + CDSMJID.EnableControls; + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; + end; + Next; + end; + end; + CDSMJID.EnableControls; +end; + +procedure TfrmCPGangNo.cxButton1Click(Sender: TObject); +begin + TBClose.Click; +end; + +procedure TfrmCPGangNo.BtnEditA1BtnClick(Sender: TObject); +begin + frmOrderSelRK:=TfrmOrderSelRK.Create(Application); + with frmOrderSelRK do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + BtnEditA1.Text:=trim(CDS_OrderSel.fieldbyname('OrderNo').asstring); + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + end; + end; + QueryTm(); +end; + +procedure TfrmCPGangNo.cxButton3Click(Sender: TObject); +begin + IF CDSMJID.IsEmpty then exit; + CDSMJID.Delete; +end; + +procedure TfrmCPGangNo.cxButton2Click(Sender: TObject); +begin + IF CDSMJID.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with CDSMJID do + begin + DisableControls; + first; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJstr4='''+trim(BaoNo.Text)+''' where MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + edit; + fieldbyname('MJstr4').Value:=trim(BaoNo.Text); + post; + next; + end; + EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('޸ijɹ','ʾϢ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('޸ʧܣ','ʾϢ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CPManageFMSel.dfm b/盛纺贸易管理/U_CPManageFMSel.dfm new file mode 100644 index 0000000..dfc0bef --- /dev/null +++ b/盛纺贸易管理/U_CPManageFMSel.dfm @@ -0,0 +1,871 @@ +object frmCPManageFMSel: TfrmCPManageFMSel + Left = 19 + Top = 70 + Width = 1382 + Height = 754 + Caption = #26679#21697#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnKeyDown = FormKeyDown + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton4: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + OnClick = ToolButton4Click + end + object ToolButton8: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26631#31614#39044#35272 + ImageIndex = 12 + Visible = False + OnClick = ToolButton8Click + end + object TBClose: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ComboBox1: TComboBox + Left = 339 + Top = 5 + Width = 112 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 0 + Text = #26679#21697#26631#31614 + Visible = False + Items.Strings = ( + #26679#21697#26631#31614 + #26679#21697#26631#31614'1') + end + end + object cxSplitter1: TcxSplitter + Left = 220 + Top = 93 + Width = 8 + Height = 622 + HotZoneClassName = 'TcxMediaPlayer9Style' + Control = Panel5 + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1366 + Height = 62 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label2: TLabel + Left = 16 + Top = 15 + Width = 48 + Height = 12 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label1: TLabel + Left = 364 + Top = 15 + Width = 48 + Height = 12 + Caption = #20013#25991#21517#31216 + end + object Label4: TLabel + Left = 474 + Top = 15 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#32534#21495 + end + object Label5: TLabel + Left = 216 + Top = 39 + Width = 48 + Height = 12 + Caption = #32433' '#25903 + end + object Label3: TLabel + Left = 216 + Top = 15 + Width = 48 + Height = 12 + Caption = #20135#21697#32534#21495 + end + object Label6: TLabel + Left = 1033 + Top = 15 + Width = 24 + Height = 12 + Caption = #20221#25968 + end + object Label7: TLabel + Left = 606 + Top = 39 + Width = 24 + Height = 12 + Caption = #20811#37325 + end + object Label8: TLabel + Left = 364 + Top = 39 + Width = 48 + Height = 12 + Caption = #20013#25991#25104#20998 + end + object Label9: TLabel + Left = 482 + Top = 39 + Width = 48 + Height = 12 + Caption = #25104' '#20998 + end + object Label10: TLabel + Left = 606 + Top = 15 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label11: TLabel + Left = 1088 + Top = 11 + Width = 7 + Height = 12 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 1088 + Top = 31 + Width = 7 + Height = 12 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 726 + Top = 15 + Width = 48 + Height = 12 + Caption = #32769' '#32534' '#21495 + end + object Label14: TLabel + Left = 726 + Top = 39 + Width = 48 + Height = 12 + Caption = #24211#20301#20301#32622 + end + object Label15: TLabel + Left = 850 + Top = 39 + Width = 48 + Height = 12 + Caption = #20379' '#24212' '#21830 + end + object Label16: TLabel + Left = 850 + Top = 15 + Width = 48 + Height = 12 + Caption = #35746#21333#26469#28304 + end + object CYID: TEdit + Tag = 3 + Left = 72 + Top = 11 + Width = 121 + Height = 20 + TabOrder = 0 + OnKeyPress = CYIDKeyPress + end + object CYName: TEdit + Tag = 2 + Left = 414 + Top = 11 + Width = 56 + Height = 20 + TabOrder = 1 + OnChange = CYNameChange + end + object DefStr6: TEdit + Tag = 2 + Left = 531 + Top = 11 + Width = 59 + Height = 20 + TabOrder = 2 + OnChange = CYNameChange + end + object defnote5: TEdit + Tag = 2 + Left = 265 + Top = 35 + Width = 89 + Height = 20 + TabOrder = 3 + OnChange = CYNoChange + end + object CYNO: TEdit + Tag = 2 + Left = 265 + Top = 11 + Width = 89 + Height = 20 + TabOrder = 4 + OnChange = CYNoChange + OnKeyPress = CYNOKeyPress + end + object Edit1: TEdit + Left = 991 + Top = 11 + Width = 38 + Height = 20 + TabOrder = 5 + end + object CYKZ: TEdit + Tag = 2 + Left = 632 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = CYMFChange + end + object CYCF: TEdit + Tag = 2 + Left = 414 + Top = 35 + Width = 56 + Height = 20 + TabOrder = 7 + OnChange = CYNameChange + end + object CYECF: TEdit + Tag = 2 + Left = 531 + Top = 35 + Width = 59 + Height = 20 + TabOrder = 8 + OnChange = CYNameChange + end + object CYMF: TEdit + Tag = 2 + Left = 632 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 9 + OnChange = CYMFChange + end + object defstr1: TEdit + Tag = 2 + Left = 776 + Top = 11 + Width = 65 + Height = 20 + TabOrder = 10 + OnChange = CYMFChange + end + object DefStr2: TEdit + Tag = 2 + Left = 776 + Top = 35 + Width = 65 + Height = 20 + TabOrder = 11 + OnChange = CYMFChange + end + object defstr7: TEdit + Tag = 2 + Left = 900 + Top = 35 + Width = 65 + Height = 20 + TabOrder = 12 + OnChange = CYMFChange + end + object defnote3: TEdit + Tag = 2 + Left = 900 + Top = 11 + Width = 65 + Height = 20 + TabOrder = 13 + OnChange = CYMFChange + end + end + object Panel2: TPanel + Left = 512 + Top = 232 + Width = 185 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object Panel5: TPanel + Left = 0 + Top = 93 + Width = 220 + Height = 622 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object cxDBTreeList1: TcxDBTreeList + Left = 2 + Top = 2 + Width = 216 + Height = 618 + Align = alClient + Bands = < + item + end> + BufferedPaint = False + DataController.DataSource = DataSource1 + DataController.ParentField = 'CPParent' + DataController.KeyField = 'CPID' + OptionsBehavior.ExpandOnDblClick = False + OptionsSelection.CellSelect = False + OptionsView.CellAutoHeight = True + OptionsView.Headers = False + RootValue = -1 + Styles.Inactive = DataLink_TradeManage.Red + Styles.Selection = DataLink_TradeManage.Red + Styles.IncSearch = DataLink_TradeManage.Red + TabOrder = 0 + OnDblClick = cxDBTreeList1DblClick + object cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn + DataBinding.FieldName = 'CPName' + Width = 210 + Position.ColIndex = 1 + Position.RowIndex = 0 + Position.BandIndex = 0 + end + end + end + object Panel3: TPanel + Left = 224 + Top = 100 + Width = 1073 + Height = 609 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel3' + TabOrder = 5 + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1069 + Height = 410 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column12: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column15: TcxGridDBColumn + Caption = #24211#20301#20301#32622 + DataBinding.FieldName = 'DefStr2' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Column2: TcxGridDBColumn + Caption = #24120#35268#21697#21517 + DataBinding.FieldName = 'CYName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'CYNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1Column4: TcxGridDBColumn + Caption = #22383#24067#35268#26684 + DataBinding.FieldName = 'CYSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column5: TcxGridDBColumn + Caption = #20013#25991#25104#20998 + DataBinding.FieldName = 'CYCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Column3: TcxGridDBColumn + Caption = #33521#25991#21517#31216 + DataBinding.FieldName = 'CYEName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Column6: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'CYECF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1Column8: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'CYKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column7: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'CYMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1Column9: TcxGridDBColumn + Caption = #20013#25991#39068#33394 + DataBinding.FieldName = 'CYColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column16: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'CYHX' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column42: TcxGridDBColumn + Caption = #33521#25991#39068#33394 + DataBinding.FieldName = 'CYColorEng' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column11: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CYNote' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Column22: TcxGridDBColumn + Caption = #32433#25903 + DataBinding.FieldName = 'defnote5' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column14: TcxGridDBColumn + Caption = #22270#29255#19978#20256 + DataBinding.FieldName = 'TPFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 59 + end + object v1Column10: TcxGridDBColumn + Caption = #20844#26020#20215 + DataBinding.FieldName = 'CYPriceKg' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Options.Editing = False + Width = 56 + end + object v1Column13: TcxGridDBColumn + Caption = #31859#20215 + DataBinding.FieldName = 'CYPriceM' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Options.Editing = False + Width = 54 + end + object v1Column17: TcxGridDBColumn + Caption = #32769#32534#21495 + DataBinding.FieldName = 'defstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column18: TcxGridDBColumn + Caption = #23494#24230 + DataBinding.FieldName = 'defstr3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column20: TcxGridDBColumn + Caption = #32463#32428#25467#24230 + DataBinding.FieldName = 'defstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column21: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'defstr5' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column24: TcxGridDBColumn + Caption = #35746#21333#26469#28304 + DataBinding.FieldName = 'defnote3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column25: TcxGridDBColumn + Caption = #26222#36890#26469#28304 + DataBinding.FieldName = 'defnote4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column26: TcxGridDBColumn + Caption = #32553#29575 + DataBinding.FieldName = 'price1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column27: TcxGridDBColumn + Caption = #22383#24067#36153 + DataBinding.FieldName = 'Price2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column28: TcxGridDBColumn + Caption = #26579#36153 + DataBinding.FieldName = 'price3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column29: TcxGridDBColumn + Caption = 'FOB'#36816#36153'+'#21253#35013 + DataBinding.FieldName = 'price4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column30: TcxGridDBColumn + Caption = #21518#21152#24037#36153 + DataBinding.FieldName = 'price5' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column31: TcxGridDBColumn + Caption = #20215#26684 + DataBinding.FieldName = 'price6' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column32: TcxGridDBColumn + Caption = #22383#24067#38376#24133 + DataBinding.FieldName = 'PBMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column33: TcxGridDBColumn + Caption = #22383#24067#20811#37325 + DataBinding.FieldName = 'PBKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column23: TcxGridDBColumn + Caption = #20379#24212#21830#32534#21495 + DataBinding.FieldName = 'DefStr6' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column34: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'DefStr7' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column35: TcxGridDBColumn + Caption = #21407#26009#32452#25104 + DataBinding.FieldName = 'DefStr8' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column36: TcxGridDBColumn + Caption = #19978#26426#35268#26684 + DataBinding.FieldName = 'DefStr9' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object GroupBox1: TGroupBox + Left = 2 + Top = 412 + Width = 1069 + Height = 195 + Align = alBottom + Caption = #26679#21697#32553#30053#22270#65288#21452#20987#22270#29255#26597#30475#21407#22270#65289 + TabOrder = 1 + object ScrollBox1: TScrollBox + Left = 2 + Top = 14 + Width = 1065 + Height = 179 + Align = alClient + BevelInner = bvLowered + BorderStyle = bsNone + TabOrder = 0 + end + end + end + object DataSource1: TDataSource + DataSet = ADOQueryTree + Left = 91 + Top = 147 + end + object ADOQueryTree20: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 61 + Top = 145 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 989 + Top = 1 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1029 + Top = 1 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 432 + Top = 184 + end + object DataSource2: TDataSource + DataSet = CDS_Main + Left = 451 + Top = 155 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 493 + Top = 193 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 392 + Top = 184 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 392 + Top = 152 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = CDS_Main + Left = 424 + Top = 152 + end + object ODPat: TOpenDialog + Options = [ofReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing] + Left = 484 + Top = 157 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 461 + Top = 188 + end + object SaveDialog1: TSaveDialog + Left = 513 + Top = 157 + end + object DSCYNO: TDataSource + DataSet = CDS_CYNO + Left = 771 + Top = 235 + end + object CDS_CYNO: TClientDataSet + Aggregates = <> + Params = <> + Left = 712 + Top = 264 + end + object ADOQueryTree: TClientDataSet + Aggregates = <> + Params = <> + Left = 32 + Top = 200 + end + object adoqueryPicture: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 479 + Top = 256 + end +end diff --git a/盛纺贸易管理/U_CPManageFMSel.pas b/盛纺贸易管理/U_CPManageFMSel.pas new file mode 100644 index 0000000..5ab72d4 --- /dev/null +++ b/盛纺贸易管理/U_CPManageFMSel.pas @@ -0,0 +1,634 @@ +unit U_CPManageFMSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox,jpeg,U_SLT; + +type + TfrmCPManageFMSel = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + DataSource1: TDataSource; + ADOQueryTree20: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + cxGridPopupMenu1: TcxGridPopupMenu; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxSplitter1: TcxSplitter; + Panel1: TPanel; + Label2: TLabel; + CYID: TEdit; + ToolButton2: TToolButton; + Label1: TLabel; + CYName: TEdit; + Label4: TLabel; + DefStr6: TEdit; + Label5: TLabel; + defnote5: TEdit; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + DataSource2: TDataSource; + ADOQueryMain: TADOQuery; + CDS_Main: TClientDataSet; + v1Column12: TcxGridDBColumn; + ToolButton4: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + ODPat: TOpenDialog; + IdFTP1: TIdFTP; + SaveDialog1: TSaveDialog; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + Label3: TLabel; + CYNO: TEdit; + v1Column16: TcxGridDBColumn; + Panel2: TPanel; + DSCYNO: TDataSource; + CDS_CYNO: TClientDataSet; + Edit1: TEdit; + Label6: TLabel; + Label7: TLabel; + CYKZ: TEdit; + Label8: TLabel; + Label9: TLabel; + CYCF: TEdit; + CYECF: TEdit; + Label10: TLabel; + CYMF: TEdit; + v1Column42: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + ADOQueryTree: TClientDataSet; + Panel5: TPanel; + cxDBTreeList1: TcxDBTreeList; + cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; + Label11: TLabel; + Label12: TLabel; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + defstr1: TEdit; + Label13: TLabel; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + v1Column31: TcxGridDBColumn; + DefStr2: TEdit; + Label14: TLabel; + defstr7: TEdit; + Label15: TLabel; + defnote3: TEdit; + Label16: TLabel; + v1Column32: TcxGridDBColumn; + v1Column33: TcxGridDBColumn; + ComboBox1: TComboBox; + Panel3: TPanel; + GroupBox1: TGroupBox; + ScrollBox1: TScrollBox; + adoqueryPicture: TADOQuery; + ToolButton8: TToolButton; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column34: TcxGridDBColumn; + v1Column35: TcxGridDBColumn; + v1Column36: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxDBTreeList1DblClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CYIDKeyPress(Sender: TObject; var Key: Char); + procedure CYNoChange(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure v1Column19PropertiesChange(Sender: TObject); + procedure CYMFChange(Sender: TObject); + procedure CYNameChange(Sender: TObject); + procedure CYNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton8Click(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + private + { Private declarations } + CPID:string; + PState:Integer; + FCPID,FTopID:String; + procedure InitTree(); + procedure InitGrid(); + procedure ReadINIFile(); + procedure InitImage(); + procedure TJGS(); + + public + { Public declarations } + end; + + +var + frmCPManageFMSel: TfrmCPManageFMSel; + Mach: array of TfrmSlt; + +implementation +uses + U_DataLink,U_Fun,U_FileUp; + +{$R *.dfm} + +procedure TfrmCPManageFMSel.InitTree(); +var + i:Integer; +begin + with ADOQueryTree20 do + begin + Close; + SQL.Clear; + SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName'); + Open; + end; + SCreateCDS20(ADOQueryTree20,ADOQueryTree); + SInitCDSData20(ADOQueryTree20,ADOQueryTree); + cxDBTreeList1.Items[0].Expand(false); + //cxDBTreeList1.Items[1].Expand(False); +end; + +procedure TfrmCPManageFMSel.InitGrid(); +begin + Panel2.Visible:=True; + Panel2.Refresh; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); + Parameters.ParamByName('Code').Value:=''; + Parameters.ParamByName('PState').Value:=0; + Parameters.ParamByName('CYType').Value:=Trim(ADOQueryTree.fieldbyname('CPID').AsString); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + Panel2.Visible:=False; +end; +procedure TfrmCPManageFMSel.TJGS(); +var + i,j:Integer; +begin + i:=0; + j:=0; + CDS_Main.DisableControls; + with CDS_Main do + begin + first; + while not Eof do + begin + if FieldByName('CYPriceKg').Value=0 then + begin + i:=i+1; + end else + begin + j:=j+1; + end; + Next; + end; + end; + CDS_Main.EnableControls; + Label11.Caption:='Ʒ:'+Trim(IntToStr(j)); + Label12.Caption:='δƷ:'+Trim(IntToStr(i)); +end; +procedure TfrmCPManageFMSel.FormDestroy(Sender: TObject); +begin + frmCPManageFMSel:=nil; +end; + +procedure TfrmCPManageFMSel.FormClose(Sender: TObject; var Action: TCloseAction); +var + i,j:integer; +begin + j:=length(Mach); + if j>0 then + begin + for i:=0 to j-1 do + begin + Mach[i].free; + end; + end; + SetLength(Mach, 0); +// writeCxGrid(self.Caption+tv1.Name,tv1); + // Application := mainApplication; + action:=cafree; +end; + +procedure TfrmCPManageFMSel.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ƷбYT',Tv1,'Ʒ'); + if DirectoryExists(ExtractFileDir('D:\Right1209')) then + winexec('cmd /c rd /s /q D:\Right1209',sw_hide); + Close; +end; +procedure TfrmCPManageFMSel.FormShow(Sender: TObject); +begin + Panel3.Align:=alclient; + InitTree(); + ReadCxGrid('ƷбYT',Tv1,'Ʒ'); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select CYID='''' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_CYNO); + SInitCDSData20(ADOQueryTemp,CDS_CYNO); + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); + Parameters.ParamByName('Code').Value:=''; + Parameters.ParamByName('PState').Value:=0; + Parameters.ParamByName('CYType').Value:='XXXXXXX'; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + CDS_CYNO.Delete; +end; + +procedure TfrmCPManageFMSel.cxDBTreeList1DblClick(Sender: TObject); +begin + InitGrid(); + TJGS(); +end; + +procedure TfrmCPManageFMSel.TBRafreshClick(Sender: TObject); +begin + InitTree(); + InitGrid(); + TJGS(); +end; + +procedure TfrmCPManageFMSel.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + TJGS(); + end; + +end; + +procedure TfrmCPManageFMSel.CYIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Trim(CYID.Text)='' then Exit; + with ADOQueryMain do + begin + Close; + Filtered:=False; + sql.Clear; + sql.Add('exec P_Select_CP_YDang :Code,1,'''' '); + Parameters.ParamByName('Code').Value:=Trim(CYID.Text); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + CYID.Text:=''; + ADOQueryTree.Locate('CPID',CPID,[]); + end; +end; + +procedure TfrmCPManageFMSel.CYNoChange(Sender: TObject); +begin + //if Length(Trim(TEdit(Sender).Text))<4 then Exit; + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + TJGS(); + end; + +end; + +procedure TfrmCPManageFMSel.ToolButton4Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + ModalResult:=1; +end; + +procedure TfrmCPManageFMSel.ReadINIFile(); +var + programIni:Tinifile; //ļ + FileName:string; +begin + FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; + programIni:=Tinifile.create(FileName); + server:=programIni.ReadString('SERVER','ַ','127.0.0.1'); + programIni.Free; +end; + +procedure TfrmCPManageFMSel.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_Main.IsEmpty then Exit; +{ with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').asstring)+''''); + Open; + end; + CPID:=Trim(ADOQueryTemp.fieldbyname('CYType').AsString); + ADOQueryTree.Locate('CPID',CPID,[]); } + InitImage(); +end; +procedure TfrmCPManageFMSel.InitImage(); +var + i,j:integer; + jpg:TJpegImage; + myStream: TADOBlobStream; +begin + + j:=length(Mach); + if j>0 then + begin + for i:=0 to j-1 do + begin + Mach[i].free; + end; + end; + SetLength(Mach, 0); + IF CDS_Main.IsEmpty then exit; + try + with adoqueryPicture do + begin + close; + sql.Clear; + sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B where A.TFID =B.XFID and A.WBID='+quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString))); + open; + end; + j:=adoqueryPicture.RecordCount; + if j<1 then exit; + adoqueryPicture.DisableControls; + adoqueryPicture.First; + SetLength(Mach, j); + jpg:=TJpegImage.Create(); + for i:=0 to j-1 do + begin + if triM(adoqueryPicture.fieldbyname('FilesOther').AsString)<>'' then + begin + myStream:=tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')),bmread); + jpg.LoadFromStream(myStream); + Mach[i] := TfrmSlt.Create(Self); + Mach[i].Name:=trim(adoqueryPicture.fieldbyname('TFID').AsString); + Mach[i].Parent := ScrollBox1; + Mach[I].Left:=0+i*165; + Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString,adoqueryPicture.fieldbyname('FileName').AsString,jpg); + end; + adoqueryPicture.Next; + end; + adoqueryPicture.EnableControls; + finally + jpg.free; + application.ProcessMessages; + end; +end; + +procedure TfrmCPManageFMSel.FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if Key= then + begin + if CDS_Main.IsEmpty then Exit; + if Application.MessageBox('ȷ6666Ҫɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_Main.fieldbyname('CYID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+''''); + ExecSQL; + end; + end; + + CDS_Main.Delete; + end; } +end; + +procedure TfrmCPManageFMSel.v1Column19PropertiesChange(Sender: TObject); +var + mvalue:Boolean; +begin + { mvalue:=TcxCheckBox(Sender).EditingValue; + if mvalue=True then + begin + with CDS_CYNO do + begin + if Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[])=False then + begin + Append; + FieldByName('CYID').Value:=Trim(CDS_Main.fieldbyname('CYID').AsString); + Post; + end; + end; + end else + begin + //with CDS_CYNO do + //begin + CDS_CYNO.Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[]); + CDS_CYNO.Delete; + //end; + end; } +end; + +procedure TfrmCPManageFMSel.CYMFChange(Sender: TObject); +begin + //if Length(Trim(TEdit(Sender).Text))<2 then Exit; + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + TJGS(); + end; + +end; + +procedure TfrmCPManageFMSel.CYNameChange(Sender: TObject); +begin + //if Length(Trim(TEdit(Sender).Text))<2 then Exit; + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + TJGS(); + end; + +end; + +procedure TfrmCPManageFMSel.CYNOKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Trim(CYNO.Text)='' then Exit; + if Length(Trim(CYNO.Text))<4 then Exit; + with ADOQueryMain do + begin + Close; + Filtered:=False; + sql.Clear; + sql.Add('exec P_Select_CP_YDang :Code,2,'''' '); + Parameters.ParamByName('Code').Value:='%'+Trim(CYNO.Text)+'%'; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + CYID.Text:=''; + ADOQueryTree.Locate('CPID',CPID,[]); + TJGS(); + end; +end; + +procedure TfrmCPManageFMSel.ToolButton8Click(Sender: TObject); +var + fPrintFile,FFCYID:string; + DPS,i,j:Integer; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + CYID.SetFocus; + if CDS_Main.IsEmpty then Exit; + + IF trim(ComboBox1.Text)='' then + begin + Application.MessageBox('ƷǩΪ!','ʾ',0); + exit; + end; + //if CDS_CYNO.IsEmpty then Exit; + if Trim(Edit1.Text)<>'' then + begin + if TryStrToInt(Edit1.Text,i)=False then + begin + Application.MessageBox('¼!','ʾ',0); + exit; + end; + end; + + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+trim(ComboBox1.Text)+'.rmf'; + CDS_Main.DisableControls; + DPS:=0; + FFCYID:=''; + i:=1; + if Trim(Edit1.Text)='' then + begin + j:=1; + end else + begin + j:=StrToInt(Edit1.Text); + end; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(CDS_Main.fieldbyname('CYID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + RMVariables['QRBARCODE']:=fImagePath; + + for i:=1 to j do + begin + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + // RM1.PrintReport; + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\Ʒǩ.rmf'),'ʾ',0); + Exit; + end; + end; + + if DPS=0 then + begin + FFCYID:=Trim(CDS_Main.fieldbyname('CYID').AsString); + end; + end; + //CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]); + + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Main.Locate('CYID',FFCYID,[]); + Edit1.Text:='1'; + +end; + +procedure TfrmCPManageFMSel.Tv1DblClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_CPManageSel.dfm b/盛纺贸易管理/U_CPManageSel.dfm new file mode 100644 index 0000000..cfafa84 --- /dev/null +++ b/盛纺贸易管理/U_CPManageSel.dfm @@ -0,0 +1,703 @@ +object frmCPManageSel: TfrmCPManageSel + Left = -174 + Top = 91 + Width = 1382 + Height = 754 + Caption = #20135#21697#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnKeyDown = FormKeyDown + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object TOK: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 41 + OnClick = TOKClick + end + object ToolButton1: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + OnClick = ToolButton1Click + end + object ToolButton4: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #26631#31614#25171#21360 + ImageIndex = 12 + Visible = False + OnClick = ToolButton4Click + end + object TBClose: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ComboBox1: TComboBox + Left = 402 + Top = 5 + Width = 112 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 0 + Text = #26679#21697#26631#31614 + Visible = False + Items.Strings = ( + #26679#21697#26631#31614 + #26679#21697#26631#31614'1') + end + end + object cxDBTreeList1: TcxDBTreeList + Left = 0 + Top = 73 + Width = 121 + Height = 642 + Align = alLeft + Bands = < + item + end> + BufferedPaint = False + DataController.DataSource = DataSource1 + DataController.ParentField = 'CPParent' + DataController.KeyField = 'CPID' + OptionsBehavior.ExpandOnDblClick = False + OptionsSelection.CellSelect = False + OptionsView.CellAutoHeight = True + OptionsView.Headers = False + RootValue = -1 + Styles.Inactive = DataLink_TradeManage.Red + Styles.Selection = DataLink_TradeManage.Red + Styles.IncSearch = DataLink_TradeManage.Red + TabOrder = 1 + OnDblClick = cxDBTreeList1DblClick + object cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn + DataBinding.FieldName = 'CPName' + Width = 210 + Position.ColIndex = 1 + Position.RowIndex = 0 + Position.BandIndex = 0 + end + end + object cxSplitter1: TcxSplitter + Left = 121 + Top = 73 + Width = 8 + Height = 642 + HotZoneClassName = 'TcxMediaPlayer9Style' + Control = cxDBTreeList1 + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1366 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + object Label2: TLabel + Left = 12 + Top = 55 + Width = 48 + Height = 12 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label1: TLabel + Left = 177 + Top = 15 + Width = 48 + Height = 12 + Caption = #20013#25991#21517#31216 + end + object Label4: TLabel + Left = 295 + Top = 15 + Width = 48 + Height = 12 + Caption = #33521#25991#21517#31216 + end + object Label5: TLabel + Left = 419 + Top = 15 + Width = 24 + Height = 12 + Caption = #35268#26684 + end + object Label3: TLabel + Left = 32 + Top = 15 + Width = 48 + Height = 12 + Caption = #20135#21697#32534#21495 + end + object Label6: TLabel + Left = 1046 + Top = 48 + Width = 24 + Height = 12 + Caption = #20221#25968 + end + object Label7: TLabel + Left = 539 + Top = 15 + Width = 24 + Height = 12 + Caption = #20811#37325 + end + object Label13: TLabel + Left = 842 + Top = 15 + Width = 36 + Height = 12 + Caption = #32769#32534#21495 + end + object CYID: TEdit + Tag = 3 + Left = 60 + Top = 51 + Width = 121 + Height = 20 + TabOrder = 0 + OnKeyPress = CYIDKeyPress + end + object CYName: TEdit + Tag = 2 + Left = 227 + Top = 11 + Width = 56 + Height = 20 + TabOrder = 1 + OnChange = CYNoChange + end + object CYEName: TEdit + Tag = 2 + Left = 344 + Top = 11 + Width = 59 + Height = 20 + TabOrder = 2 + OnChange = CYNoChange + end + object CYSpec: TEdit + Tag = 2 + Left = 445 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = CYSpecChange + end + object CYNO: TEdit + Tag = 2 + Left = 78 + Top = 11 + Width = 89 + Height = 20 + TabOrder = 4 + OnChange = CYNoChange + end + object Edit1: TEdit + Left = 1004 + Top = 43 + Width = 38 + Height = 20 + TabOrder = 5 + end + object CYKZ: TEdit + Tag = 2 + Left = 565 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = CYSpecChange + end + object defstr1: TEdit + Tag = 2 + Left = 880 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = CYSpecChange + end + end + object Panel2: TPanel + Left = 512 + Top = 232 + Width = 193 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object Panel3: TPanel + Left = 127 + Top = 83 + Width = 1073 + Height = 609 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel3' + TabOrder = 5 + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1069 + Height = 410 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column19: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 40 + end + object v1Column12: TcxGridDBColumn + Caption = #31867#21035 + DataBinding.FieldName = 'CPName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column15: TcxGridDBColumn + Caption = #38472#21015#20301#32622 + DataBinding.FieldName = 'DefStr2' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Column2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'CYName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'CYNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1Column4: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'CYSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column5: TcxGridDBColumn + Caption = #20013#25991#25104#20998 + DataBinding.FieldName = 'CYCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Column3: TcxGridDBColumn + Caption = #33521#25991#21517#31216 + DataBinding.FieldName = 'CYEName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Column6: TcxGridDBColumn + Caption = #33521#25991#25104#20998 + DataBinding.FieldName = 'CYECF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1Column8: TcxGridDBColumn + Caption = #25104#21697#20811#37325 + DataBinding.FieldName = 'CYKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column7: TcxGridDBColumn + Caption = #25104#21697#38376#24133 + DataBinding.FieldName = 'CYMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1Column16: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'CYHX' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column9: TcxGridDBColumn + Caption = #20013#25991#39068#33394 + DataBinding.FieldName = 'CYColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column42: TcxGridDBColumn + Caption = #33521#25991#39068#33394 + DataBinding.FieldName = 'CYColorEng' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column11: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CYNote' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Column14: TcxGridDBColumn + Caption = #22270#29255#19978#20256 + DataBinding.FieldName = 'TPFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 59 + end + object v1Column10: TcxGridDBColumn + Caption = #20844#26020#20215 + DataBinding.FieldName = 'CYPriceKg' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Options.Editing = False + Width = 56 + end + object v1Column13: TcxGridDBColumn + Caption = #31859#20215 + DataBinding.FieldName = 'CYPriceM' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Options.Editing = False + Width = 54 + end + object v1Column17: TcxGridDBColumn + Caption = #32769#32534#21495 + DataBinding.FieldName = 'defstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column18: TcxGridDBColumn + Caption = #22383#24067#23494#24230 + DataBinding.FieldName = 'defstr3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column20: TcxGridDBColumn + Caption = #32463#32428#25467#24230 + DataBinding.FieldName = 'defstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column21: TcxGridDBColumn + Caption = #25346#38057#25968 + DataBinding.FieldName = 'defstr5' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column24: TcxGridDBColumn + Caption = #35746#21333#26469#28304 + DataBinding.FieldName = 'defnote3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column25: TcxGridDBColumn + Caption = #26222#36890#26469#28304 + DataBinding.FieldName = 'defnote4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column26: TcxGridDBColumn + Caption = #32553#29575 + DataBinding.FieldName = 'price1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column27: TcxGridDBColumn + Caption = #22383#24067#36153 + DataBinding.FieldName = 'Price2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column28: TcxGridDBColumn + Caption = #26579#36153 + DataBinding.FieldName = 'price3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column29: TcxGridDBColumn + Caption = 'FOB'#36816#36153'+'#21253#35013 + DataBinding.FieldName = 'price4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column30: TcxGridDBColumn + Caption = #21518#21152#24037#36153 + DataBinding.FieldName = 'price5' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column31: TcxGridDBColumn + Caption = #21442#32771#20215 + DataBinding.FieldName = 'price6' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column32: TcxGridDBColumn + Caption = #22383#24067#38376#24133 + DataBinding.FieldName = 'PBMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column33: TcxGridDBColumn + Caption = #22383#24067#20811#37325 + DataBinding.FieldName = 'PBKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object GroupBox1: TGroupBox + Left = 2 + Top = 412 + Width = 1069 + Height = 195 + Align = alBottom + Caption = #26679#21697#32553#30053#22270#65288#21452#20987#22270#29255#26597#30475#21407#22270#65289 + TabOrder = 1 + object ScrollBox1: TScrollBox + Left = 2 + Top = 14 + Width = 1065 + Height = 179 + Align = alClient + BevelInner = bvLowered + BorderStyle = bsNone + TabOrder = 0 + end + end + end + object DataSource1: TDataSource + DataSet = ADOQueryTree + Left = 91 + Top = 147 + end + object ADOQueryTree: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 117 + Top = 145 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 909 + Top = 17 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 877 + Top = 17 + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 456 + Top = 184 + end + object DataSource2: TDataSource + DataSet = CDS_Main + Left = 451 + Top = 155 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 429 + Top = 185 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 392 + Top = 184 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 392 + Top = 152 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = CDS_Main + Left = 424 + Top = 152 + end + object ODPat: TOpenDialog + Options = [ofReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing] + Left = 484 + Top = 157 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 485 + Top = 188 + end + object SaveDialog1: TSaveDialog + Left = 521 + Top = 157 + end + object adoqueryPicture: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 479 + Top = 256 + end +end diff --git a/盛纺贸易管理/U_CPManageSel.pas b/盛纺贸易管理/U_CPManageSel.pas new file mode 100644 index 0000000..92c1ee9 --- /dev/null +++ b/盛纺贸易管理/U_CPManageSel.pas @@ -0,0 +1,482 @@ +unit U_CPManageSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox,jpeg,U_SLT; + +type + TfrmCPManageSel = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + cxDBTreeList1: TcxDBTreeList; + cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; + DataSource1: TDataSource; + ADOQueryTree: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + cxGridPopupMenu1: TcxGridPopupMenu; + cxSplitter1: TcxSplitter; + Panel1: TPanel; + Label2: TLabel; + CYID: TEdit; + ToolButton2: TToolButton; + DataSource2: TDataSource; + ADOQueryMain: TADOQuery; + CDS_Main: TClientDataSet; + ToolButton1: TToolButton; + ToolButton4: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + ODPat: TOpenDialog; + IdFTP1: TIdFTP; + SaveDialog1: TSaveDialog; + TOK: TToolButton; + Panel2: TPanel; + Label1: TLabel; + Label4: TLabel; + Label5: TLabel; + Label3: TLabel; + Label6: TLabel; + CYName: TEdit; + CYEName: TEdit; + CYSpec: TEdit; + CYNO: TEdit; + Edit1: TEdit; + Label7: TLabel; + CYKZ: TEdit; + defstr1: TEdit; + Label13: TLabel; + ComboBox1: TComboBox; + Panel3: TPanel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column19: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column42: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1Column30: TcxGridDBColumn; + v1Column31: TcxGridDBColumn; + v1Column32: TcxGridDBColumn; + v1Column33: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + GroupBox1: TGroupBox; + ScrollBox1: TScrollBox; + adoqueryPicture: TADOQuery; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxDBTreeList1DblClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CYIDKeyPress(Sender: TObject; var Key: Char); + procedure CYNoChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure CYSpecChange(Sender: TObject); + procedure TOKClick(Sender: TObject); + private + { Private declarations } + CPID:string; + PState:Integer; + FCPID,FTopID:String; + procedure InitTree(); + procedure InitGrid(); + procedure ReadINIFile(); + procedure InitImage(); + + public + { Public declarations } + end; + +var + frmCPManageSel: TfrmCPManageSel; + Mach: array of TfrmSlt; + +implementation +uses + U_DataLink,U_Fun10; + +{$R *.dfm} + +procedure TfrmCPManageSel.InitImage(); +var + i,j:integer; + jpg:TJpegImage; + myStream: TADOBlobStream; +begin + + j:=length(Mach); + if j>0 then + begin + for i:=0 to j-1 do + begin + Mach[i].free; + end; + end; + SetLength(Mach, 0); + + try + with adoqueryPicture do + begin + close; + sql.Clear; + sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B where A.TFID =B.XFID and A.WBID='+quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString))); + open; + end; + j:=adoqueryPicture.RecordCount; + if j<1 then exit; + adoqueryPicture.DisableControls; + adoqueryPicture.First; + SetLength(Mach, j); + jpg:=TJpegImage.Create(); + for i:=0 to j-1 do + begin + if triM(adoqueryPicture.fieldbyname('FilesOther').AsString)<>'' then + begin + myStream:=tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')),bmread); + jpg.LoadFromStream(myStream); + Mach[i] := TfrmSlt.Create(Self); + Mach[i].Name:=trim(adoqueryPicture.fieldbyname('TFID').AsString); + Mach[i].Parent := ScrollBox1; + Mach[I].Left:=0+i*165; + Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString,adoqueryPicture.fieldbyname('FileName').AsString,jpg); + end; + adoqueryPicture.Next; + end; + adoqueryPicture.EnableControls; + finally + jpg.free; + application.ProcessMessages; + end; +end; + +procedure TfrmCPManageSel.InitTree(); +var + i:Integer; +begin + with ADOQueryTree do + begin + Close; + SQL.Clear; + SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName'); + Open; + end; + cxDBTreeList1.Items[0].Expand(false); + //cxDBTreeList1.Items[1].Expand(False); +end; + +procedure TfrmCPManageSel.InitGrid(); +begin + Panel2.Visible:=True; + Panel2.Refresh; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); + Parameters.ParamByName('Code').Value:=''; + Parameters.ParamByName('PState').Value:=0; + Parameters.ParamByName('CYType').Value:=Trim(ADOQueryTree.fieldbyname('CPID').AsString); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + Panel2.Visible:=False; +end; + +procedure TfrmCPManageSel.FormDestroy(Sender: TObject); +begin + frmCPManageSel:=nil; +end; + +procedure TfrmCPManageSel.FormClose(Sender: TObject; var Action: TCloseAction); +var + i,j:integer; +begin + j:=length(Mach); + if j>0 then + begin + for i:=0 to j-1 do + begin + Mach[i].free; + end; + end; + SetLength(Mach, 0); + Action:=caFree; +end; + +procedure TfrmCPManageSel.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption,Tv1,'Ʒ'); + if DirectoryExists(ExtractFileDir('D:\Right1209')) then + winexec('cmd /c rd /s /q D:\Right1209',sw_hide); + Close; +end; +procedure TfrmCPManageSel.FormShow(Sender: TObject); +begin + Panel3.Align:=alclient; + InitTree(); + ReadCxGrid(self.Caption,Tv1,'Ʒ'); + //InitGrid(); +end; + +procedure TfrmCPManageSel.cxDBTreeList1DblClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmCPManageSel.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmCPManageSel.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCPManageSel.CYIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CP_YDang where CYID='''+Trim(CYID.Text)+''''); + Open; + end; + CPID:=Trim(ADOQueryTemp.fieldbyname('CYType').AsString); + if Trim(CYID.Text)='' then Exit; + SDofilter(ADOQueryMain,' CYID='''+Trim(CYID.Text)+''' '); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + CYID.Text:=''; + ADOQueryTree.Locate('CPID',CPID,[]); + end; +end; + +procedure TfrmCPManageSel.CYNoChange(Sender: TObject); +begin +// if Length(Trim(CYNO.Text))<4 then Exit; + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCPManageSel.ToolButton1Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel('Ʒ',cxGrid1); +end; + +procedure TfrmCPManageSel.ToolButton4Click(Sender: TObject); +var + fPrintFile,FFCYID:string; + DPS,i,j:Integer; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + CYID.SetFocus; + if CDS_Main.IsEmpty then Exit; + //if CDS_CYNO.IsEmpty then Exit; + IF trim(ComboBox1.Text)='' then + begin + Application.MessageBox('ƷǩΪ!','ʾ',0); + exit; + end; + if Trim(Edit1.Text)<>'' then + begin + if TryStrToInt(Edit1.Text,i)=False then + begin + Application.MessageBox('¼!','ʾ',0); + exit; + end; + end; + + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+trim(ComboBox1.Text)+'.rmf'; + CDS_Main.DisableControls; + DPS:=0; + FFCYID:=''; + i:=1; + if Trim(Edit1.Text)='' then + begin + j:=1; + end else + begin + j:=StrToInt(Edit1.Text); + end; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(CDS_Main.fieldbyname('CYID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + RMVariables['QRBARCODE']:=fImagePath; + for i:=1 to j do + begin + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\Ʒǩ.rmf'),'ʾ',0); + Exit; + end; + end; + + if DPS=0 then + begin + FFCYID:=Trim(CDS_Main.fieldbyname('CYID').AsString); + end; + end; + //CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]); + + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Main.Locate('CYID',FFCYID,[]); + Edit1.Text:='1'; +end; + +procedure TfrmCPManageSel.ReadINIFile(); +var + programIni:Tinifile; //ļ + FileName:string; +begin + FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; + programIni:=Tinifile.create(FileName); + server:=programIni.ReadString('SERVER','ַ','127.0.0.1'); + programIni.Free; +end; + +procedure TfrmCPManageSel.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_Main.IsEmpty then Exit; + { with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').asstring)+''''); + Open; + end; + CPID:=Trim(ADOQueryTemp.fieldbyname('CYType').AsString); + ADOQueryTree.Locate('CPID',CPID,[]); } + initimage(); +end; + +procedure TfrmCPManageSel.FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if Key= then + begin + if CDS_Main.IsEmpty then Exit; + if Application.MessageBox('ȷ6666Ҫɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_Main.fieldbyname('CYID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+''''); + ExecSQL; + end; + end; + + CDS_Main.Delete; + end; } +end; + +procedure TfrmCPManageSel.CYSpecChange(Sender: TObject); +begin +// if Length(Trim(CYSpec.Text))<3 then Exit; + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmCPManageSel.TOKClick(Sender: TObject); +begin + IF CDS_main.IsEmpty then exit; + ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractInPut.dfm b/盛纺贸易管理/U_ClothContractInPut.dfm new file mode 100644 index 0000000..a8301e8 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPut.dfm @@ -0,0 +1,653 @@ +object frmClothContractInPut: TfrmClothContractInPut + Left = 132 + Top = 120 + Width = 864 + Height = 625 + Caption = #22383#24067#35746#36141#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 856 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 856 + Height = 241 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 14 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 295 + Top = 14 + Width = 67 + Height = 12 + Caption = #20379' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 546 + Top = 14 + Width = 67 + Height = 12 + Caption = #38656' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 546 + Top = 45 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 24 + Top = 45 + Width = 65 + Height = 12 + Caption = #31614#35746#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 295 + Top = 45 + Width = 65 + Height = 12 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 298 + Top = 89 + Width = 65 + Height = 12 + Caption = #20132#36135#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 24 + Top = 77 + Width = 65 + Height = 36 + Caption = #20379#36135#36136#37327#13#10' '#21450#13#10#25216#26415#26631#20934#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 544 + Top = 77 + Width = 65 + Height = 36 + Caption = #36816#36755#26041#24335#13#10' '#21450#13#10#36153#29992#25215#25285#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 24 + Top = 137 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 298 + Top = 137 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 24 + Top = 177 + Width = 195 + Height = 12 + Caption = #39564#25910#26631#20934#12289#26041#27861#21450#25552#20986#24322#35758#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 24 + Top = 209 + Width = 91 + Height = 12 + Caption = #20854#23427#32422#23450#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Left = 86 + Top = 11 + Width = 181 + Height = 18 + TabOrder = 0 + OnKeyPress = ConNoKeyPress + end + object FactoryNoName: TcxButtonEdit + Left = 359 + Top = 10 + Hint = 'FactoryNo' + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = FactoryNoNamePropertiesButtonClick + Properties.OnChange = FactoryNoNamePropertiesChange + TabOrder = 1 + OnKeyDown = PRTCodeNameKeyDown + Width = 162 + end + object PanZDY: TPanel + Left = 841 + Top = 128 + Width = 202 + Height = 153 + TabOrder = 2 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 197 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 163 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 64 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object CompanyName: TcxButtonEdit + Left = 609 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = CompanyNamePropertiesButtonClick + TabOrder = 3 + OnKeyDown = PRTCodeNameKeyDown + Width = 175 + end + object DeliveryDate: TDateTimePicker + Left = 609 + Top = 41 + Width = 177 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 4 + end + object QDTime: TDateTimePicker + Left = 86 + Top = 41 + Width = 183 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 5 + end + object QDPalce: TEdit + Left = 359 + Top = 42 + Width = 161 + Height = 18 + TabOrder = 6 + end + object JHPlace: TcxButtonEdit + Left = 361 + Top = 85 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = JHPlacePropertiesButtonClick + TabOrder = 7 + Width = 162 + end + object ConTK1: TcxButtonEdit + Left = 86 + Top = 85 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + TabOrder = 8 + Width = 183 + end + object ConTk2: TcxButtonEdit + Left = 609 + Top = 85 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + TabOrder = 9 + Width = 179 + end + object ConTK3: TcxButtonEdit + Left = 86 + Top = 133 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + TabOrder = 10 + Width = 184 + end + object ConTK4: TcxButtonEdit + Left = 361 + Top = 133 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + TabOrder = 11 + Width = 162 + end + object ConTK5: TcxButtonEdit + Left = 216 + Top = 173 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + TabOrder = 12 + Width = 576 + end + object ConTk6: TcxButtonEdit + Left = 110 + Top = 205 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + TabOrder = 13 + Width = 683 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 270 + Width = 856 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 299 + Width = 856 + Height = 289 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 103 + end + object v1PRTColor: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 78 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 80 + end + object v1Price: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 58 + end + object v1ClothQty: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1ClothQtyPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1Column5: TcxGridDBColumn + Caption = #21305#25968#37327 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 54 + end + object v1ClothUnit: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'C_Unit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column3: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 816 + Top = 85 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 800 + Top = 109 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 240 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 280 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 16 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 792 + Top = 125 + end +end diff --git a/盛纺贸易管理/U_ClothContractInPut.pas b/盛纺贸易管理/U_ClothContractInPut.pas new file mode 100644 index 0000000..5faca51 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPut.pas @@ -0,0 +1,760 @@ +unit U_ClothContractInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit; + +type + TfrmClothContractInPut = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + ConNo: TEdit; + Label5: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1PRTSpec: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1PRTKZ: TcxGridDBColumn; + v1ClothQty: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1ClothUnit: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + FactoryNoName: TcxButtonEdit; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + v1Column4: TcxGridDBColumn; + Label3: TLabel; + CompanyName: TcxButtonEdit; + v1Column5: TcxGridDBColumn; + Label4: TLabel; + Label2: TLabel; + Label6: TLabel; + Label8: TLabel; + DeliveryDate: TDateTimePicker; + QDTime: TDateTimePicker; + QDPalce: TEdit; + JHPlace: TcxButtonEdit; + Label7: TLabel; + ConTK1: TcxButtonEdit; + Label9: TLabel; + ConTk2: TcxButtonEdit; + Label10: TLabel; + ConTK3: TcxButtonEdit; + Label11: TLabel; + ConTK4: TcxButtonEdit; + Label12: TLabel; + ConTK5: TcxButtonEdit; + Label13: TLabel; + ConTk6: TcxButtonEdit; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTMFPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FactoryNoNamePropertiesChange(Sender: TObject); + procedure CompanyNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure JHPlacePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState:Integer; + FMainId,FConNo:String; + { Public declarations } + end; + +var + frmClothContractInPut: TfrmClothContractInPut; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun; + +{$R *.dfm} + +procedure TfrmClothContractInPut.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmClothContractInPut.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec ClothContract_QryList :MainId,:WSql'); + if PState=1 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSQl').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 '; + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from Contract_Main order by FillTime desc '); + Open; + end; + QDTime.DateTime:=SGetServerDate(ADOTemp); + DeliveryDate.DateTime:=SGetServerDate(ADOTemp); + QDTime.Checked:=True; + DeliveryDate.Checked:=False; + end; + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmClothContractInPut.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPut.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPut.PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; } +end; + +procedure TfrmClothContractInPut.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmClothContractInPut.FormShow(Sender: TObject); +begin + {if Trim(DParameters1)='1' then + begin + v1Price.Visible:=False; + v1ClothQty.Visible:=False; + v1PRTQty.Visible:=False; + end else + begin + v1Price.Visible:=True; + v1ClothQty.Visible:=True; + v1PRTQty.Visible:=True; + end; } + InitData(); +end; + +function TfrmClothContractInPut.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from Contract_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + if GetLSNo(ADOTemp,maxno,'CM','Contract_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSql(ADOCmd,'Contract_Main',ScrollBox1,0); + + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + FMainId:=Trim(maxno); + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('C_Unit').AsString)='Kg' then + begin + if Trim(Order_Sub.fieldbyname('KZqty').AsString)='' then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + if Trim(Order_Sub.fieldbyname('MFqty').AsString)='' then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'CS','Contract_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Contract_Sub',0); + if Trim(Order_Sub.fieldbyname('C_Qty').AsString)='' then + begin + FieldByName('C_Qty').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Qty1').AsString)='' then + begin + FieldByName('Qty1').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Price').AsString)='' then + begin + FieldByName('Price').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('C_Unit').AsString)='Kg' then + begin + FieldByName('MQty').Value:=Order_Sub.fieldbyname('C_Qty').Value*1.00*1000 + /(Order_Sub.fieldbyname('MFQty').Value*1.00/100*Order_Sub.fieldbyname('KZQty').Value); + end else + begin + FieldByName('MQty').Value:=Order_Sub.fieldbyname('C_Qty').Value; + end; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPut.TBSaveClick(Sender: TObject); +begin + DeliveryDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + if Trim(FactoryNoName.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if Order_Sub.Locate('C_Qty',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('C_Unit',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('KZQty',null,[]) then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('MFQty',null,[]) then + begin + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + if PState=1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where MainId='''+Trim(FMainId)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + if Trim(FConNo)<>Trim(ConNo.Text) then + begin + Application.MessageBox('Ѿ޸ĺͬ!','ʾ',0); + Exit; + end; + end; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + Post; + end; +end; + +procedure TfrmClothContractInPut.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѵɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmClothContractInPut.FactoryNoNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from Contract_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='PBFactory'; + if ShowModal=1 then + begin + FXS:=99; + FactoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + FactoryNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Cloth'; + flagname:=''; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1PRTMFPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KZ'; + flagname:='صλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1OrderQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MF'; + flagname:='ŷλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1ClothQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.v1Column2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.FactoryNoNamePropertiesChange( + Sender: TObject); +begin + {if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(FactoryNoName,'FactoryNo1Name'); } +end; + +procedure TfrmClothContractInPut.CompanyNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='跽'; + if ShowModal=1 then + begin + FXS:=99; + CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.JHPlacePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='JHPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + JHPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPut.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(ConNo.Text)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(ConNo.Text)+''''); + Open; + end; + FactoryNoName.Text:=Trim(ADOTemp.fieldbyname('YCLFactory').AsString); + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractInPutHZ.dfm b/盛纺贸易管理/U_ClothContractInPutHZ.dfm new file mode 100644 index 0000000..cc858b8 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutHZ.dfm @@ -0,0 +1,645 @@ +object frmClothContractInPutHZ: TfrmClothContractInPutHZ + Left = 198 + Top = 90 + Width = 831 + Height = 622 + Caption = #32433#32447#21152#24037#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 815 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 815 + Height = 220 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 14 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 290 + Top = 46 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 511 + Top = 222 + Width = 67 + Height = 12 + Caption = #20379' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 552 + Top = 14 + Width = 65 + Height = 12 + Caption = #31614#35746#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 290 + Top = 14 + Width = 67 + Height = 12 + Caption = #38656' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 24 + Top = 46 + Width = 65 + Height = 12 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 552 + Top = 42 + Width = 65 + Height = 12 + Caption = #20132#36135#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 24 + Top = 68 + Width = 65 + Height = 36 + Caption = #20379#36135#36136#37327#13#10' '#21450#13#10#25216#26415#26631#20934#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 552 + Top = 68 + Width = 65 + Height = 36 + Caption = #36816#36755#26041#24335#13#10' '#21450#13#10#36153#29992#25215#25285#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 24 + Top = 118 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 290 + Top = 80 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 24 + Top = 154 + Width = 195 + Height = 12 + Caption = #39564#25910#26631#20934#12289#26041#27861#21450#25552#20986#24322#35758#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 24 + Top = 190 + Width = 91 + Height = 12 + Caption = #20854#23427#32422#23450#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Left = 86 + Top = 11 + Width = 180 + Height = 18 + TabOrder = 0 + OnKeyPress = ConNoKeyPress + end + object DeliveryDate: TDateTimePicker + Left = 353 + Top = 42 + Width = 177 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object FactoryNoName: TcxButtonEdit + Tag = 77 + Left = 575 + Top = 218 + Hint = 'FactoryNo' + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = FactoryNoNamePropertiesButtonClick + Properties.OnChange = FactoryNoNamePropertiesChange + TabOrder = 2 + Visible = False + OnKeyDown = PRTCodeNameKeyDown + Width = 162 + end + object PanZDY: TPanel + Left = 841 + Top = 128 + Width = 202 + Height = 153 + TabOrder = 3 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 197 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 163 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 64 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object QDTime: TDateTimePicker + Left = 614 + Top = 10 + Width = 162 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 4 + end + object CompanyName: TcxButtonEdit + Left = 353 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = CompanyNamePropertiesButtonClick + TabOrder = 5 + OnKeyDown = PRTCodeNameKeyDown + Width = 177 + end + object QDPalce: TEdit + Left = 86 + Top = 43 + Width = 179 + Height = 18 + TabOrder = 6 + end + object JHPlace: TcxButtonEdit + Left = 614 + Top = 38 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = JHPlacePropertiesButtonClick + TabOrder = 7 + Width = 162 + end + object ConTK1: TcxButtonEdit + Left = 86 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK1PropertiesButtonClick + TabOrder = 8 + Width = 183 + end + object ConTk2: TcxButtonEdit + Left = 614 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk2PropertiesButtonClick + TabOrder = 9 + Width = 162 + end + object ConTK3: TcxButtonEdit + Left = 86 + Top = 114 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK3PropertiesButtonClick + TabOrder = 10 + Width = 691 + end + object ConTK4: TcxButtonEdit + Left = 353 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK4PropertiesButtonClick + TabOrder = 11 + Width = 177 + end + object ConTK5: TcxButtonEdit + Left = 216 + Top = 150 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK5PropertiesButtonClick + TabOrder = 12 + Width = 563 + end + object ConTk6: TcxButtonEdit + Left = 110 + Top = 186 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk6PropertiesButtonClick + TabOrder = 13 + Width = 669 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 249 + Width = 815 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 278 + Width = 815 + Height = 305 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object v1Column3: TcxGridDBColumn + Tag = 1 + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FactoryNoName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 117 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 103 + end + object v1Price: TcxGridDBColumn + Caption = #21152#24037#21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 58 + end + object v1ClothQty: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1ClothQtyPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1ClothUnit: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'C_Unit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 384 + Top = 65533 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 520 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 240 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 280 + Top = 65533 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 456 + Top = 5 + end +end diff --git a/盛纺贸易管理/U_ClothContractInPutHZ.pas b/盛纺贸易管理/U_ClothContractInPutHZ.pas new file mode 100644 index 0000000..62bd29b --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutHZ.pas @@ -0,0 +1,878 @@ +unit U_ClothContractInPutHZ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit; + +type + TfrmClothContractInPutHZ = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + ConNo: TEdit; + Label4: TLabel; + DeliveryDate: TDateTimePicker; + Label5: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1PRTSpec: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1ClothQty: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1ClothUnit: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + FactoryNoName: TcxButtonEdit; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + v1Column4: TcxGridDBColumn; + Label2: TLabel; + QDTime: TDateTimePicker; + Label3: TLabel; + CompanyName: TcxButtonEdit; + Label6: TLabel; + QDPalce: TEdit; + Label8: TLabel; + JHPlace: TcxButtonEdit; + Label7: TLabel; + ConTK1: TcxButtonEdit; + Label9: TLabel; + ConTk2: TcxButtonEdit; + Label10: TLabel; + ConTK3: TcxButtonEdit; + Label11: TLabel; + ConTK4: TcxButtonEdit; + Label12: TLabel; + ConTK5: TcxButtonEdit; + Label13: TLabel; + ConTk6: TcxButtonEdit; + v1Column3: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTMFPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FactoryNoNamePropertiesChange(Sender: TObject); + procedure CompanyNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure JHPlacePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure v1Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState,PCopyInt:Integer; + FMainId,FConNo,CPFlag,CPFlagName,FactoryFlag,FConType:String; + { Public declarations } + end; + +var + frmClothContractInPutHZ: TfrmClothContractInPutHZ; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun; + +{$R *.dfm} + +procedure TfrmClothContractInPutHZ.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmClothContractInPutHZ.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from ContractHZ_Main A inner join ContractHZ_Sub B on A.MainId=B.MainId'); + sql.Add(' where A.MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from ContractHZ_Main where ConType='''+Trim(FConType)+'''order by FillTime desc '); + Open; + end; + ConTK1.Text:=Trim(ADOTemp.fieldbyname('ConTK1').AsString); + ConTK2.Text:=Trim(ADOTemp.fieldbyname('ConTK2').AsString); + ConTK3.Text:=Trim(ADOTemp.fieldbyname('ConTK3').AsString); + ConTK4.Text:=Trim(ADOTemp.fieldbyname('ConTK4').AsString); + ConTK5.Text:=Trim(ADOTemp.fieldbyname('ConTK5').AsString); + ConTK6.Text:=Trim(ADOTemp.fieldbyname('ConTK6').AsString); + QDTime.DateTime:=SGetServerDate(ADOTemp); + DeliveryDate.DateTime:=SGetServerDate(ADOTemp); + QDTime.Checked:=True; + DeliveryDate.Checked:=False; + + QDPalce.Text:=''; + end; + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutHZ.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmClothContractInPutHZ.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutHZ.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutHZ.PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; } +end; + +procedure TfrmClothContractInPutHZ.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmClothContractInPutHZ.FormShow(Sender: TObject); +begin + {if Trim(DParameters1)='1' then + begin + v1Price.Visible:=False; + v1ClothQty.Visible:=False; + v1PRTQty.Visible:=False; + end else + begin + v1Price.Visible:=True; + v1ClothQty.Visible:=True; + v1PRTQty.Visible:=True; + end; } + InitData(); + if PCopyInt=1 then + begin + FMainId:=''; + FConNo:=''; + ConNo.Text:=''; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + +function TfrmClothContractInPutHZ.SaveData():Boolean; +var + maxno,maxSubNo:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'HM','ContractHZ_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from ContractHZ_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSql(ADOCmd,'ContractSX_Main',ScrollBox1,0); + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('FactoryNoName').Value:=Trim(Order_Sub.fieldbyname('FactoryNoName').AsString); + FieldByName('ConType').Value:=Trim(FConType); + Post; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxSubNo,'HS','ContractHZ_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxSubNo:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from ContractHZ_Sub where MainId='''+Trim(maxno)+''''); + sql.Add(' and SubId='''+Trim(maxSubNo)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(maxSubNo); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'ContractHZ_Sub',0); + if Trim(Order_Sub.fieldbyname('C_Qty').AsString)='' then + begin + FieldByName('C_Qty').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Price').AsString)='' then + begin + FieldByName('Price').Value:=0; + end; + FieldByName('C_Unit').Value:=Trim(Order_Sub.fieldbyname('C_Unit').AsString); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxSubNo); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPutHZ.TBSaveClick(Sender: TObject); +begin + DeliveryDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if Order_Sub.Locate('C_Qty',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('C_Unit',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('FactoryNoName',null,[]) then + begin + Application.MessageBox('ӹΪ!','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + end; + +end; + +procedure TfrmClothContractInPutHZ.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + Post; + end; +end; + +procedure TfrmClothContractInPutHZ.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѵɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmClothContractInPutHZ.FactoryNoNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from ContractSX_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='YCLFactory'; + if ShowModal=1 then + begin + FXS:=99; + FactoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + FactoryNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(CPFlag); + flagname:=Trim(CPFlagName); + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1PRTMFPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KZ'; + flagname:='صλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1OrderQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MF'; + flagname:='ŷλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1ClothQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.v1Column2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.FactoryNoNamePropertiesChange( + Sender: TObject); +begin + {if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(FactoryNoName,'FactoryNo1Name'); } +end; + +procedure TfrmClothContractInPutHZ.CompanyNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='跽'; + if ShowModal=1 then + begin + FXS:=99; + CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.JHPlacePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='JHPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + JHPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConTK1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK1'; + flagname:='׼'; + if ShowModal=1 then + begin + ConTK1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConTK3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK3'; + flagname:='װҪ'; + if ShowModal=1 then + begin + ConTK3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConTK4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK4'; + flagname:='㷽ʽ'; + if ShowModal=1 then + begin + ConTK4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConTK5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK5'; + flagname:='ձ׼'; + if ShowModal=1 then + begin + ConTK5.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConTk6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK6'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK6.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConTk2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK2'; + flagname:='䷽óе'; + if ShowModal=1 then + begin + ConTK2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutHZ.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(ConNo.Text)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(ConNo.Text)+''''); + Open; + end; + FactoryNoName.Text:=Trim(ADOTemp.fieldbyname('YCLFactory').AsString); + end; + end; +end; + +procedure TfrmClothContractInPutHZ.v1Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:=Trim(FactoryFlag); + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('FactoryNoName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractInPutPB.dfm b/盛纺贸易管理/U_ClothContractInPutPB.dfm new file mode 100644 index 0000000..c286e76 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutPB.dfm @@ -0,0 +1,768 @@ +object frmClothContractInPutPB: TfrmClothContractInPutPB + Left = 152 + Top = 108 + Width = 1089 + Height = 630 + Caption = #22383#24067#35746#36141#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1073 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1073 + Height = 264 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 14 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 546 + Top = 46 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 431 + Top = 278 + Width = 67 + Height = 12 + Caption = #20379' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 24 + Top = 46 + Width = 65 + Height = 12 + Caption = #31614#35746#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 546 + Top = 14 + Width = 67 + Height = 12 + Caption = #38656' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 547 + Top = 86 + Width = 65 + Height = 12 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 295 + Top = 46 + Width = 65 + Height = 12 + Caption = #20132#36135#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 24 + Top = 78 + Width = 65 + Height = 36 + Caption = #20379#36135#36136#37327#13#10' '#21450#13#10#25216#26415#26631#20934#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 22 + Top = 126 + Width = 65 + Height = 36 + Caption = #36816#36755#26041#24335#13#10' '#21450#13#10#36153#29992#25215#25285#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 296 + Top = 138 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 295 + Top = 90 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 24 + Top = 178 + Width = 195 + Height = 12 + Caption = #39564#25910#26631#20934#12289#26041#27861#21450#25552#20986#24322#35758#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 24 + Top = 210 + Width = 91 + Height = 12 + Caption = #20854#23427#32422#23450#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 297 + Top = 14 + Width = 65 + Height = 12 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 28 + Top = 240 + Width = 65 + Height = 12 + Caption = #20132#26399#35828#26126#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Left = 86 + Top = 11 + Width = 180 + Height = 18 + TabOrder = 0 + OnKeyPress = ConNoKeyPress + end + object DeliveryDate: TDateTimePicker + Left = 609 + Top = 42 + Width = 177 + Height = 20 + BevelInner = bvNone + Date = 40916.000000000000000000 + Format = 'yyyy-MM-dd' + Time = 40916.000000000000000000 + ShowCheckbox = True + TabOrder = 1 + end + object FactoryNoName: TcxButtonEdit + Tag = 45 + Left = 499 + Top = 278 + Hint = 'FactoryNo' + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = FactoryNoNamePropertiesButtonClick + Properties.OnChange = FactoryNoNamePropertiesChange + TabOrder = 2 + Visible = False + OnKeyDown = PRTCodeNameKeyDown + Width = 162 + end + object PanZDY: TPanel + Left = 841 + Top = 128 + Width = 202 + Height = 153 + TabOrder = 3 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 197 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 163 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 64 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object QDTime: TDateTimePicker + Left = 86 + Top = 42 + Width = 183 + Height = 20 + BevelInner = bvNone + Date = 40916.000000000000000000 + Format = 'yyyy-MM-dd' + Time = 40916.000000000000000000 + ShowCheckbox = True + TabOrder = 4 + end + object CompanyName: TcxButtonEdit + Left = 609 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = CompanyNamePropertiesButtonClick + TabOrder = 5 + OnKeyDown = PRTCodeNameKeyDown + Width = 177 + end + object QDPalce: TEdit + Left = 611 + Top = 83 + Width = 174 + Height = 18 + TabOrder = 6 + end + object JHPlace: TcxButtonEdit + Left = 359 + Top = 42 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = JHPlacePropertiesButtonClick + TabOrder = 7 + Width = 162 + end + object ConTK1: TcxButtonEdit + Left = 86 + Top = 86 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK1PropertiesButtonClick + TabOrder = 8 + Width = 183 + end + object ConTk2: TcxButtonEdit + Left = 85 + Top = 134 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk2PropertiesButtonClick + TabOrder = 9 + Width = 184 + end + object ConTK3: TcxButtonEdit + Left = 360 + Top = 134 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK3PropertiesButtonClick + TabOrder = 10 + Width = 428 + end + object ConTK4: TcxButtonEdit + Left = 359 + Top = 86 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK4PropertiesButtonClick + TabOrder = 11 + Width = 162 + end + object ConTK5: TcxButtonEdit + Left = 216 + Top = 174 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK5PropertiesButtonClick + TabOrder = 12 + Width = 572 + end + object ConTk6: TcxButtonEdit + Left = 110 + Top = 206 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk6PropertiesButtonClick + TabOrder = 13 + Width = 679 + end + object OrderNo: TcxButtonEdit + Left = 360 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = OrderNoPropertiesButtonClick + TabOrder = 14 + Width = 161 + end + object ConTk7: TEdit + Left = 112 + Top = 236 + Width = 673 + Height = 18 + TabOrder = 15 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 293 + Width = 1073 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 322 + Width = 1073 + Height = 270 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column7: TcxGridDBColumn + Tag = 99 + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column7PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 96 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 67 + end + object v1Column3: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column5: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 74 + end + object v1Price: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 49 + end + object v1ClothQty: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1ClothQtyPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 41 + end + object v1Column6: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 50 + end + object v1ClothUnit: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 47 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'C_Unit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column8: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'Sdefstr1' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v1Column9: TcxGridDBColumn + Caption = #35745#21010#32553#29575'(%)' + DataBinding.FieldName = 'Qty2' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column10: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'Sdefstr2' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column10PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1Column11: TcxGridDBColumn + Caption = #26579#21378#24037#33402 + DataBinding.FieldName = 'Sdefstr3' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column12: TcxGridDBColumn + Caption = #26579#21378#20215#26684 + DataBinding.FieldName = 'Sdefstr4' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column13: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'Sdefstr5' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = #24037#21378#32534#21495 + DataBinding.FieldName = 'Sdefstr6' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 95 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 384 + Top = 13 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 520 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 240 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 280 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 16 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 456 + Top = 13 + end +end diff --git a/盛纺贸易管理/U_ClothContractInPutPB.pas b/盛纺贸易管理/U_ClothContractInPutPB.pas new file mode 100644 index 0000000..cbcca6e --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutPB.pas @@ -0,0 +1,1031 @@ +unit U_ClothContractInPutPB; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit; + +type + TfrmClothContractInPutPB = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + ConNo: TEdit; + Label4: TLabel; + DeliveryDate: TDateTimePicker; + Label5: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1PRTSpec: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1ClothQty: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1ClothUnit: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + FactoryNoName: TcxButtonEdit; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + v1Column4: TcxGridDBColumn; + Label2: TLabel; + QDTime: TDateTimePicker; + Label3: TLabel; + CompanyName: TcxButtonEdit; + Label6: TLabel; + QDPalce: TEdit; + Label8: TLabel; + JHPlace: TcxButtonEdit; + Label7: TLabel; + ConTK1: TcxButtonEdit; + Label9: TLabel; + ConTk2: TcxButtonEdit; + Label10: TLabel; + ConTK3: TcxButtonEdit; + Label11: TLabel; + ConTK4: TcxButtonEdit; + Label12: TLabel; + ConTK5: TcxButtonEdit; + Label13: TLabel; + ConTk6: TcxButtonEdit; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + OrderNo: TcxButtonEdit; + Label14: TLabel; + Label15: TLabel; + ConTk7: TEdit; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTMFPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FactoryNoNamePropertiesChange(Sender: TObject); + procedure CompanyNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure JHPlacePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column10PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure OrderNoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState,PCopyInt:Integer; + FMainId,FConNo:String; + { Public declarations } + end; + +var + frmClothContractInPutPB: TfrmClothContractInPutPB; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun, U_ProductOrder_CX, U_ZdyAttachGYS; + +{$R *.dfm} + +procedure TfrmClothContractInPutPB.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmClothContractInPutPB.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec ClothContract_QryList :MainId,:WSql'); + if PState=1 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSQl').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 '; + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from Contract_Main order by FillTime desc '); + Open; + end; + QDTime.DateTime:=SGetServerDate(ADOTemp); + DeliveryDate.DateTime:=SGetServerDate(ADOTemp); + QDTime.Checked:=True; + DeliveryDate.Checked:=False; + end; + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutPB.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmClothContractInPutPB.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutPB.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutPB.PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; } +end; + +procedure TfrmClothContractInPutPB.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmClothContractInPutPB.FormShow(Sender: TObject); +begin + {if Trim(DParameters1)='1' then + begin + v1Price.Visible:=False; + v1ClothQty.Visible:=False; + v1PRTQty.Visible:=False; + end else + begin + v1Price.Visible:=True; + v1ClothQty.Visible:=True; + v1PRTQty.Visible:=True; + end; } + InitData(); + if PCopyInt=1 then + begin + FMainId:=''; + FConNo:=''; + ConNo.Text:=''; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + +function TfrmClothContractInPutPB.SaveData():Boolean; +var + maxno,maxSubNo:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + + //FMainId:=Trim(maxno); + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'PM','Contract_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from Contract_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + Append; + + end + else begin + + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('HTType').Value:='ɹͬ'; + SSetsaveSql(ADOCmd,'Contract_Main',ScrollBox1,0); + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('FactoryNoName').Value:=Trim(Order_Sub.fieldbyname('FactoryNoName').AsString); + Post; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxSubNo,'PS','Contract_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxSubNo:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(maxno)+''''); + sql.Add(' and SubId='''+Trim(maxSubNo)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(maxSubNo); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Contract_Sub',0); + FieldByName('C_Unit').Value:=Trim(Order_Sub.fieldbyname('C_Unit').AsString); + if Trim(Order_Sub.fieldbyname('C_Qty').AsString)='' then + begin + FieldByName('C_Qty').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Qty1').AsString)='' then + begin + FieldByName('Qty1').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Price').AsString)='' then + begin + FieldByName('Price').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('C_Unit').AsString)='Kg' then + begin + FieldByName('MQty').Value:=Order_Sub.fieldbyname('C_Qty').Value*1.00*1000 + /(Order_Sub.fieldbyname('MFQty').Value*1.00/100*Order_Sub.fieldbyname('KZQty').Value); + end else + begin + FieldByName('MQty').Value:=Order_Sub.fieldbyname('C_Qty').Value; + end; + FieldByName('C_Note').Value:=trim(Order_Sub.fieldbyname('C_Note').AsString); + FieldByName('C_status').Value:='0'; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxSubNo); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPutPB.TBSaveClick(Sender: TObject); +begin + DeliveryDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ָʾŲΪգ','ʾ',0); + Exit; + end; + {if Trim(FactoryNoName.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; } + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if Order_Sub.Locate('C_Qty',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('C_Unit',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('FactoryNoName',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + { with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where conNo='+quotedstr(trim(conNo.Text))); + Open; + end; + if ADOTemp.IsEmpty then + begin + Application.MessageBox('˺ͬûжӦָʾţ','ʾ',0); + Exit; + end; } + if PState=1 then + begin + { with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where MainId='''+Trim(FMainId)+''''); + sql.Add(' and Isnull(DHTYpe,'''')='''' '); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + if Trim(FConNo)<>Trim(ConNo.Text) then + begin + Application.MessageBox('Ѿ޸ĺͬ!','ʾ',0); + Exit; + end; + end; } + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + end; +end; + +procedure TfrmClothContractInPutPB.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + Post; + end; +end; + +procedure TfrmClothContractInPutPB.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѵɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmClothContractInPutPB.FactoryNoNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from Contract_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='PBFactory'; + if ShowModal=1 then + begin + FXS:=99; + FactoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + FactoryNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Cloth'; + flagname:=''; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1PRTMFPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KZ'; + flagname:='صλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1OrderQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MF'; + flagname:='ŷλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1ClothQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1Column2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.FactoryNoNamePropertiesChange( + Sender: TObject); +begin + {if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(FactoryNoName,'FactoryNo1Name'); } +end; + +procedure TfrmClothContractInPutPB.CompanyNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='跽'; + if ShowModal=1 then + begin + FXS:=99; + CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.JHPlacePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='JHPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + JHPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConTK1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK1'; + flagname:='׼'; + if ShowModal=1 then + begin + ConTK1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConTK3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK3'; + flagname:='װҪ'; + if ShowModal=1 then + begin + ConTK3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConTK4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK4'; + flagname:='㷽ʽ'; + if ShowModal=1 then + begin + ConTK4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConTK5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK5'; + flagname:='ձ׼'; + if ShowModal=1 then + begin + ConTK5.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConTk6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK6'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK6.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConTk2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK2'; + flagname:='䷽óе'; + if ShowModal=1 then + begin + ConTK2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(ConNo.Text)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(ConNo.Text)+''''); + Open; + end; + FactoryNoName.Text:=Trim(ADOTemp.fieldbyname('PBFactory').AsString); + end; + end; +end; + +procedure TfrmClothContractInPutPB.v1Column7PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from Contract_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('FactoryNoName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end;} + try + frmZdyAttachGYS:=TfrmZdyAttachGYS.Create(Application); + with frmZdyAttachGYS do + begin + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('FactoryNoName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZdyAttachGYS.Free; + end; +end; + +procedure TfrmClothContractInPutPB.v1Column10PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('Sdefstr2').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutPB.OrderNoPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + FrmProductOrder_CX:=TFrmProductOrder_CX.Create(self); + with FrmProductOrder_CX do + begin + if showModal=1 then + begin + // self.ConNo.Text:=trim(Order_Main.fieldbyname('ConNo').AsString); + self.OrderNo.Text:=trim(Order_Main.fieldbyname('OrderNo').AsString); + end; + free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractInPutSX.dfm b/盛纺贸易管理/U_ClothContractInPutSX.dfm new file mode 100644 index 0000000..bbaee2c --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutSX.dfm @@ -0,0 +1,633 @@ +object frmClothContractInPutSX: TfrmClothContractInPutSX + Left = 198 + Top = 112 + Width = 831 + Height = 622 + Caption = #32433#32447#35746#36141#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 823 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 823 + Height = 250 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 14 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 546 + Top = 46 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 295 + Top = 14 + Width = 67 + Height = 12 + Caption = #20379' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 24 + Top = 46 + Width = 65 + Height = 12 + Caption = #31614#35746#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 546 + Top = 14 + Width = 67 + Height = 12 + Caption = #38656' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 295 + Top = 46 + Width = 65 + Height = 12 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 298 + Top = 90 + Width = 65 + Height = 12 + Caption = #20132#36135#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 24 + Top = 78 + Width = 65 + Height = 36 + Caption = #20379#36135#36136#37327#13#10' '#21450#13#10#25216#26415#26631#20934#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 544 + Top = 78 + Width = 65 + Height = 36 + Caption = #36816#36755#26041#24335#13#10' '#21450#13#10#36153#29992#25215#25285#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 24 + Top = 138 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 298 + Top = 138 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 24 + Top = 178 + Width = 195 + Height = 12 + Caption = #39564#25910#26631#20934#12289#26041#27861#21450#25552#20986#24322#35758#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 24 + Top = 210 + Width = 91 + Height = 12 + Caption = #20854#23427#32422#23450#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Left = 86 + Top = 11 + Width = 180 + Height = 18 + TabOrder = 0 + OnKeyPress = ConNoKeyPress + end + object DeliveryDate: TDateTimePicker + Left = 609 + Top = 42 + Width = 177 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object FactoryNoName: TcxButtonEdit + Left = 359 + Top = 10 + Hint = 'FactoryNo' + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = FactoryNoNamePropertiesButtonClick + Properties.OnChange = FactoryNoNamePropertiesChange + TabOrder = 2 + OnKeyDown = PRTCodeNameKeyDown + Width = 162 + end + object PanZDY: TPanel + Left = 841 + Top = 128 + Width = 202 + Height = 153 + TabOrder = 3 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 197 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 163 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 64 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object QDTime: TDateTimePicker + Left = 86 + Top = 42 + Width = 183 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 4 + end + object CompanyName: TcxButtonEdit + Left = 609 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = CompanyNamePropertiesButtonClick + TabOrder = 5 + OnKeyDown = PRTCodeNameKeyDown + Width = 177 + end + object QDPalce: TEdit + Left = 359 + Top = 43 + Width = 161 + Height = 18 + TabOrder = 6 + end + object JHPlace: TcxButtonEdit + Left = 361 + Top = 86 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = JHPlacePropertiesButtonClick + TabOrder = 7 + Width = 162 + end + object ConTK1: TcxButtonEdit + Left = 86 + Top = 86 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK1PropertiesButtonClick + TabOrder = 8 + Width = 183 + end + object ConTk2: TcxButtonEdit + Left = 609 + Top = 86 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk2PropertiesButtonClick + TabOrder = 9 + Width = 179 + end + object ConTK3: TcxButtonEdit + Left = 86 + Top = 134 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK3PropertiesButtonClick + TabOrder = 10 + Width = 184 + end + object ConTK4: TcxButtonEdit + Left = 361 + Top = 134 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK4PropertiesButtonClick + TabOrder = 11 + Width = 162 + end + object ConTK5: TcxButtonEdit + Left = 216 + Top = 174 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK5PropertiesButtonClick + TabOrder = 12 + Width = 576 + end + object ConTk6: TcxButtonEdit + Left = 110 + Top = 206 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk6PropertiesButtonClick + TabOrder = 13 + Width = 683 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 279 + Width = 823 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 308 + Width = 823 + Height = 277 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object v1Column3: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + Width = 112 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 103 + end + object v1Price: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 58 + end + object v1ClothQty: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1ClothQtyPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1ClothUnit: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'C_Unit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 384 + Top = 13 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 520 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 240 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 280 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 16 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 456 + Top = 13 + end +end diff --git a/盛纺贸易管理/U_ClothContractInPutSX.pas b/盛纺贸易管理/U_ClothContractInPutSX.pas new file mode 100644 index 0000000..fbf393f --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutSX.pas @@ -0,0 +1,854 @@ +unit U_ClothContractInPutSX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit; + +type + TfrmClothContractInPutSX = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + ConNo: TEdit; + Label4: TLabel; + DeliveryDate: TDateTimePicker; + Label5: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1PRTSpec: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1ClothQty: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1ClothUnit: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + FactoryNoName: TcxButtonEdit; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + v1Column4: TcxGridDBColumn; + Label2: TLabel; + QDTime: TDateTimePicker; + Label3: TLabel; + CompanyName: TcxButtonEdit; + Label6: TLabel; + QDPalce: TEdit; + Label8: TLabel; + JHPlace: TcxButtonEdit; + Label7: TLabel; + ConTK1: TcxButtonEdit; + Label9: TLabel; + ConTk2: TcxButtonEdit; + Label10: TLabel; + ConTK3: TcxButtonEdit; + Label11: TLabel; + ConTK4: TcxButtonEdit; + Label12: TLabel; + ConTK5: TcxButtonEdit; + Label13: TLabel; + ConTk6: TcxButtonEdit; + v1Column3: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTMFPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FactoryNoNamePropertiesChange(Sender: TObject); + procedure CompanyNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure JHPlacePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState:Integer; + FMainId,FConNo:String; + { Public declarations } + end; + +var + frmClothContractInPutSX: TfrmClothContractInPutSX; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun; + +{$R *.dfm} + +procedure TfrmClothContractInPutSX.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmClothContractInPutSX.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec ClothContractSX_QryList :MainId,:WSql'); + if PState=1 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSQl').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 '; + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from ContractSX_Main order by FillTime desc '); + Open; + end; + QDTime.DateTime:=SGetServerDate(ADOTemp); + DeliveryDate.DateTime:=SGetServerDate(ADOTemp); + QDTime.Checked:=True; + DeliveryDate.Checked:=False; + QDPalce.Text:=''; + end; + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutSX.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmClothContractInPutSX.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutSX.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutSX.PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; } +end; + +procedure TfrmClothContractInPutSX.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmClothContractInPutSX.FormShow(Sender: TObject); +begin + {if Trim(DParameters1)='1' then + begin + v1Price.Visible:=False; + v1ClothQty.Visible:=False; + v1PRTQty.Visible:=False; + end else + begin + v1Price.Visible:=True; + v1ClothQty.Visible:=True; + v1PRTQty.Visible:=True; + end; } + InitData(); +end; + +function TfrmClothContractInPutSX.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'SM','ContractSX_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from ContractSX_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + + end + else begin + + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSql(ADOCmd,'ContractSX_Main',ScrollBox1,0); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + FMainId:=Trim(maxno); + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'SS','ContractSX_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from ContractSX_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'ContractSX_Sub',0); + if Trim(Order_Sub.fieldbyname('C_Qty').AsString)='' then + begin + FieldByName('C_Qty').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Price').AsString)='' then + begin + FieldByName('Price').Value:=0; + end; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPutSX.TBSaveClick(Sender: TObject); +begin + DeliveryDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + if Trim(FactoryNoName.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if Order_Sub.Locate('C_Qty',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('C_Unit',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if PState=1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_DH where MainId='''+Trim(FMainId)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + if Trim(FConNo)<>Trim(ConNo.Text) then + begin + Application.MessageBox('Ѿ޸ĺͬ!','ʾ',0); + Exit; + end; + end; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPutSX.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + Post; + end; +end; + +procedure TfrmClothContractInPutSX.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѵɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmClothContractInPutSX.FactoryNoNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from ContractSX_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='YCLFactory'; + if ShowModal=1 then + begin + FXS:=99; + FactoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + FactoryNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ClothSX'; + flagname:='ɴ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1PRTMFPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KZ'; + flagname:='صλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1OrderQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MF'; + flagname:='ŷλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1ClothQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.v1Column2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.FactoryNoNamePropertiesChange( + Sender: TObject); +begin + {if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(FactoryNoName,'FactoryNo1Name'); } +end; + +procedure TfrmClothContractInPutSX.CompanyNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='跽'; + if ShowModal=1 then + begin + FXS:=99; + CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.JHPlacePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='JHPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + JHPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConTK1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK1'; + flagname:='׼'; + if ShowModal=1 then + begin + ConTK1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConTK3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK3'; + flagname:='װҪ'; + if ShowModal=1 then + begin + ConTK3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConTK4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK4'; + flagname:='㷽ʽ'; + if ShowModal=1 then + begin + ConTK4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConTK5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK5'; + flagname:='ձ׼'; + if ShowModal=1 then + begin + ConTK5.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConTk6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK6'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK6.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConTk2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK2'; + flagname:='䷽óе'; + if ShowModal=1 then + begin + ConTK2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSX.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(ConNo.Text)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(ConNo.Text)+''''); + Open; + end; + FactoryNoName.Text:=Trim(ADOTemp.fieldbyname('YCLFactory').AsString); + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractInPutSXMX.dfm b/盛纺贸易管理/U_ClothContractInPutSXMX.dfm new file mode 100644 index 0000000..74b5a62 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutSXMX.dfm @@ -0,0 +1,647 @@ +object frmClothContractInPutSXMX: TfrmClothContractInPutSXMX + Left = 198 + Top = 90 + Width = 831 + Height = 622 + Caption = #32433#32447#35746#36141#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 815 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 815 + Height = 220 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 14 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 290 + Top = 46 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 511 + Top = 222 + Width = 67 + Height = 12 + Caption = #20379' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 552 + Top = 14 + Width = 65 + Height = 12 + Caption = #31614#35746#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 290 + Top = 14 + Width = 67 + Height = 12 + Caption = #38656' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 24 + Top = 46 + Width = 65 + Height = 12 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 552 + Top = 42 + Width = 65 + Height = 12 + Caption = #20132#36135#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 24 + Top = 68 + Width = 65 + Height = 36 + Caption = #20379#36135#36136#37327#13#10' '#21450#13#10#25216#26415#26631#20934#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 552 + Top = 68 + Width = 65 + Height = 36 + Caption = #36816#36755#26041#24335#13#10' '#21450#13#10#36153#29992#25215#25285#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 24 + Top = 118 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 290 + Top = 80 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 24 + Top = 154 + Width = 195 + Height = 12 + Caption = #39564#25910#26631#20934#12289#26041#27861#21450#25552#20986#24322#35758#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 24 + Top = 190 + Width = 91 + Height = 12 + Caption = #20854#23427#32422#23450#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Left = 86 + Top = 11 + Width = 180 + Height = 18 + TabOrder = 0 + OnKeyPress = ConNoKeyPress + end + object DeliveryDate: TDateTimePicker + Left = 353 + Top = 42 + Width = 177 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object FactoryNoName: TcxButtonEdit + Tag = 77 + Left = 575 + Top = 218 + Hint = 'FactoryNo' + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = FactoryNoNamePropertiesButtonClick + Properties.OnChange = FactoryNoNamePropertiesChange + TabOrder = 2 + Visible = False + OnKeyDown = PRTCodeNameKeyDown + Width = 162 + end + object PanZDY: TPanel + Left = 841 + Top = 128 + Width = 202 + Height = 153 + TabOrder = 3 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 197 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 163 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 64 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object QDTime: TDateTimePicker + Left = 614 + Top = 10 + Width = 162 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 4 + end + object CompanyName: TcxButtonEdit + Left = 353 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = CompanyNamePropertiesButtonClick + TabOrder = 5 + OnKeyDown = PRTCodeNameKeyDown + Width = 177 + end + object QDPalce: TEdit + Left = 86 + Top = 43 + Width = 179 + Height = 18 + TabOrder = 6 + Text = #26607#26725 + end + object JHPlace: TcxButtonEdit + Left = 614 + Top = 38 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = JHPlacePropertiesButtonClick + TabOrder = 7 + Width = 162 + end + object ConTK1: TcxButtonEdit + Left = 86 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK1PropertiesButtonClick + TabOrder = 8 + Width = 183 + end + object ConTk2: TcxButtonEdit + Left = 614 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk2PropertiesButtonClick + TabOrder = 9 + Width = 162 + end + object ConTK3: TcxButtonEdit + Left = 86 + Top = 114 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK3PropertiesButtonClick + TabOrder = 10 + Width = 691 + end + object ConTK4: TcxButtonEdit + Left = 353 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK4PropertiesButtonClick + TabOrder = 11 + Width = 177 + end + object ConTK5: TcxButtonEdit + Left = 216 + Top = 150 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK5PropertiesButtonClick + TabOrder = 12 + Width = 563 + end + object ConTk6: TcxButtonEdit + Left = 110 + Top = 186 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTk6PropertiesButtonClick + TabOrder = 13 + Width = 669 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 249 + Width = 815 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 278 + Width = 815 + Height = 305 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object v1Column3: TcxGridDBColumn + Tag = 1 + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 117 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 103 + end + object v1Price: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 58 + end + object v1ClothQty: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1ClothQtyPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1ClothUnit: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 69 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'C_Unit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 384 + Top = 65533 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 520 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 240 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 280 + Top = 65533 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 456 + Top = 5 + end +end diff --git a/盛纺贸易管理/U_ClothContractInPutSXMX.pas b/盛纺贸易管理/U_ClothContractInPutSXMX.pas new file mode 100644 index 0000000..1d2366c --- /dev/null +++ b/盛纺贸易管理/U_ClothContractInPutSXMX.pas @@ -0,0 +1,931 @@ +unit U_ClothContractInPutSXMX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit; + +type + TfrmClothContractInPutSXMX = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + ConNo: TEdit; + Label4: TLabel; + DeliveryDate: TDateTimePicker; + Label5: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1PRTSpec: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1ClothQty: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1ClothUnit: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + FactoryNoName: TcxButtonEdit; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + v1Column4: TcxGridDBColumn; + Label2: TLabel; + QDTime: TDateTimePicker; + Label3: TLabel; + CompanyName: TcxButtonEdit; + Label6: TLabel; + QDPalce: TEdit; + Label8: TLabel; + JHPlace: TcxButtonEdit; + Label7: TLabel; + ConTK1: TcxButtonEdit; + Label9: TLabel; + ConTk2: TcxButtonEdit; + Label10: TLabel; + ConTK3: TcxButtonEdit; + Label11: TLabel; + ConTK4: TcxButtonEdit; + Label12: TLabel; + ConTK5: TcxButtonEdit; + Label13: TLabel; + ConTk6: TcxButtonEdit; + v1Column3: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTMFPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FactoryNoNamePropertiesChange(Sender: TObject); + procedure CompanyNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure JHPlacePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure v1Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState,PCopyInt:Integer; + FMainId,FConNo:String; + + { Public declarations } + end; + +var + frmClothContractInPutSXMX: TfrmClothContractInPutSXMX; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun; + +{$R *.dfm} + +procedure TfrmClothContractInPutSXMX.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmClothContractInPutSXMX.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec ClothContractSX_QryList :MainId,:WSql'); + if PState=1 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSQl').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 '; + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from ContractSX_Main order by FillTime desc '); + Open; + end; + QDTime.DateTime:=SGetServerDate(ADOTemp); + DeliveryDate.DateTime:=SGetServerDate(ADOTemp); + QDTime.Checked:=True; + DeliveryDate.Checked:=False; + QDPalce.Text:=''; + end; + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutSXMX.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmClothContractInPutSXMX.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutSXMX.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmClothContractInPutSXMX.PRTCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + {if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; } +end; + +procedure TfrmClothContractInPutSXMX.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmClothContractInPutSXMX.FormShow(Sender: TObject); +begin + {if Trim(DParameters1)='1' then + begin + v1Price.Visible:=False; + v1ClothQty.Visible:=False; + v1PRTQty.Visible:=False; + end else + begin + v1Price.Visible:=True; + v1ClothQty.Visible:=True; + v1PRTQty.Visible:=True; + end; } + InitData(); + if PCopyInt=1 then + begin + FMainId:=''; + FConNo:=''; + ConNo.Text:=''; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + +function TfrmClothContractInPutSXMX.SaveData():Boolean; +var + maxno,maxSubNo:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'SM','ContractSX_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from ContractSX_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSql(ADOCmd,'ContractSX_Main',ScrollBox1,0); + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('FactoryNoName').Value:=Trim(Order_Sub.fieldbyname('FactoryNoName').AsString); + Post; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxSubNo,'SS','ContractSX_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxSubNo:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from ContractSX_Sub where MainId='''+Trim(maxno)+''''); + sql.Add(' and SubId='''+Trim(maxSubNo)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + ADOCmd.Append + else + ADOCmd.Edit; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(maxSubNo); + FieldByName('C_Unit').Value:=Trim(Order_Sub.fieldbyname('C_Unit').AsString); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'ContractSX_Sub',0); + if Trim(Order_Sub.fieldbyname('C_Qty').AsString)='' then + begin + FieldByName('C_Qty').Value:=0; + end; + if Trim(Order_Sub.fieldbyname('Price').AsString)='' then + begin + FieldByName('Price').Value:=0; + end; + ADOCmd.FieldByName('C_Unit').Value:=Trim(Order_Sub.fieldbyname('C_Unit').AsString); + ADOCmd.Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxSubNo); + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Sub Set C_Unit='''+Trim(Order_Sub.fieldbyname('C_Unit').AsString)+''''); + sql.Add(' where Subid='''+Trim(Order_Sub.fieldbyname('Subid').AsString)+''''); + ExecSQL; + end; + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmClothContractInPutSXMX.TBSaveClick(Sender: TObject); +begin + DeliveryDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + {if Trim(FactoryNoName.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; } + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if Order_Sub.Locate('C_Qty',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('C_Unit',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('FactoryNoName',null,[]) then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if PState=1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_DH where MainId='''+Trim(FMainId)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + if Trim(FConNo)<>Trim(ConNo.Text) then + begin + Application.MessageBox('Ѿ޸ĺͬ!','ʾ',0); + Exit; + end; + end; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + end; + +end; + +procedure TfrmClothContractInPutSXMX.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + Post; + end; +end; + +procedure TfrmClothContractInPutSXMX.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѵɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmClothContractInPutSXMX.FactoryNoNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from ContractSX_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='YCLFactory'; + if ShowModal=1 then + begin + FXS:=99; + FactoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + FactoryNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ClothSX'; + flagname:='ɴ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1PRTMFPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KZ'; + flagname:='صλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1OrderQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MF'; + flagname:='ŷλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1ClothQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1Column2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.FactoryNoNamePropertiesChange( + Sender: TObject); +begin + {if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(FactoryNoName,'FactoryNo1Name'); } +end; + +procedure TfrmClothContractInPutSXMX.CompanyNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='跽'; + if ShowModal=1 then + begin + FXS:=99; + CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.JHPlacePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='JHPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + JHPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConTK1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK1'; + flagname:='׼'; + if ShowModal=1 then + begin + ConTK1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConTK3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK3'; + flagname:='װҪ'; + if ShowModal=1 then + begin + ConTK3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConTK4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK4'; + flagname:='㷽ʽ'; + if ShowModal=1 then + begin + ConTK4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConTK5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK5'; + flagname:='ձ׼'; + if ShowModal=1 then + begin + ConTK5.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConTk6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK6'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK6.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConTk2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK2'; + flagname:='䷽óе'; + if ShowModal=1 then + begin + ConTK2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractInPutSXMX.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(ConNo.Text)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(ConNo.Text)+''''); + Open; + end; + FactoryNoName.Text:=Trim(ADOTemp.fieldbyname('YCLFactory').AsString); + end; + end; +end; + +procedure TfrmClothContractInPutSXMX.v1Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from ContractSX_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='YCLFactory'; + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('FactoryNoName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractKCList.dfm b/盛纺贸易管理/U_ClothContractKCList.dfm new file mode 100644 index 0000000..b97e94f --- /dev/null +++ b/盛纺贸易管理/U_ClothContractKCList.dfm @@ -0,0 +1,635 @@ +object frmClothContractKCList: TfrmClothContractKCList + Left = 100 + Top = 35 + Width = 1238 + Height = 653 + Caption = #22383#24067#24211#23384#27719#24635#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1222 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1222 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 748 + Top = 22 + Width = 39 + Height = 12 + Caption = #22383#24067#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 892 + Top = 22 + Width = 26 + Height = 12 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + end + object C_CodeName: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + object FactoryNoName: TEdit + Tag = 2 + Left = 792 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoChange + end + object FirstName: TEdit + Tag = 2 + Left = 920 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = ConNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1222 + Height = 529 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column4 + end + item + Kind = skSum + Column = v1Column14 + end + item + Kind = skAverage + end + item + Kind = skAverage + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 103 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 171 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 134 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 93 + end + object v1Column5: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 104 + end + object v1Column1: TcxGridDBColumn + Caption = #37319#36141#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #37319#36141#25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column19: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'C_unit' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column6: TcxGridDBColumn + Caption = #21040#36135#21305#25968 + DataBinding.FieldName = 'DHPS' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column3: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column4: TcxGridDBColumn + Caption = #25237#24067#21305#25968 + DataBinding.FieldName = 'TPPS' + HeaderAlignmentHorz = taCenter + Styles.Content = FontBlue + Styles.Footer = FontBlue + Styles.Header = FontBlue + Width = 58 + end + object v1Column14: TcxGridDBColumn + Caption = #25237#24067#25968#37327 + DataBinding.FieldName = 'TPQty' + HeaderAlignmentHorz = taCenter + Styles.Content = FontBlue + Styles.Footer = FontBlue + Styles.Header = FontBlue + Width = 59 + end + object v1Column7: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KCPS' + HeaderAlignmentHorz = taCenter + Styles.Content = FoneRed + Styles.Footer = FoneRed + Styles.Header = FoneRed + Width = 61 + end + object v1Column8: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Styles.Content = FoneRed + Styles.Footer = FoneRed + Styles.Header = FoneRed + Width = 58 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 448 + Top = 168 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 576 + Top = 168 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 512 + Top = 168 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 544 + Top = 168 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 480 + Top = 168 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 320 + Top = 168 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 352 + Top = 168 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 384 + Top = 168 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 416 + Top = 168 + end + object ThreeColorBase: TcxStyleRepository + Left = 139 + Top = 80 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + end +end diff --git a/盛纺贸易管理/U_ClothContractKCList.pas b/盛纺贸易管理/U_ClothContractKCList.pas new file mode 100644 index 0000000..6b0a810 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractKCList.pas @@ -0,0 +1,202 @@ +unit U_ClothContractKCList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit; + +type + TfrmClothContractKCList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNo: TEdit; + Label5: TLabel; + C_CodeName: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + Label6: TLabel; + FactoryNoName: TEdit; + Label7: TLabel; + FirstName: TEdit; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + procedure InitGridWSQL(FWSQL:String); + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractKCList: TfrmClothContractKCList; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractKCList.FormDestroy(Sender: TObject); +begin + frmClothContractKCList:=nil; +end; + +procedure TfrmClothContractKCList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractKCList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); +end; + +procedure TfrmClothContractKCList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_Get_PBKC :begdate,:enddate'); + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmClothContractKCList.InitGridWSQL(FWSQL:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_View_ClothHZ :begdate,:enddate,:WSQL'); + Parameters.ParamByName('begdate').Value:='1900-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Parameters.ParamByName('WSQL').Value:=FWSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractKCList.InitForm(); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-15; + InitGrid(); +end; + +procedure TfrmClothContractKCList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + + + +procedure TfrmClothContractKCList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractKCList.ConNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractKCList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractList.dfm b/盛纺贸易管理/U_ClothContractList.dfm new file mode 100644 index 0000000..3350a02 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractList.dfm @@ -0,0 +1,952 @@ +object frmClothContractList: TfrmClothContractList + Left = 127 + Top = 126 + Width = 1213 + Height = 700 + Caption = #22383#24067#37319#36141#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1197 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object Tchk: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #23436#25104 + ImageIndex = 41 + OnClick = TchkClick + end + object TNochk: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25764#38144#23436#25104 + ImageIndex = 86 + OnClick = TNochkClick + end + object TBExport: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 528 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ToolButton6: TToolButton + Left = 591 + Top = 0 + Width = 48 + Caption = 'ToolButton6' + ImageIndex = 115 + Style = tbsSeparator + Visible = False + end + object TBClose: TToolButton + Left = 639 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton1: TToolButton + Left = 702 + Top = 0 + Width = 41 + Caption = 'ToolButton1' + ImageIndex = 60 + Style = tbsSeparator + Visible = False + end + object ToolButton2: TToolButton + Left = 743 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 806 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 869 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 956 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1197 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 21 + Top = 22 + Width = 52 + Height = 12 + Caption = #31614#35746#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 604 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 740 + Top = 22 + Width = 39 + Height = 12 + Caption = #20379#24212#21830 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = conPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Spec: TEdit + Tag = 2 + Left = 632 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + object Button1: TButton + Left = 872 + Top = 15 + Width = 75 + Height = 25 + Caption = #22686#34892 + TabOrder = 5 + Visible = False + OnClick = Button1Click + end + object Button2: TButton + Left = 908 + Top = 15 + Width = 75 + Height = 25 + Caption = #21024#34892 + TabOrder = 6 + Visible = False + OnClick = Button2Click + end + object Button3: TButton + Left = 988 + Top = 15 + Width = 75 + Height = 25 + Caption = #21040#22383#30830#23450 + TabOrder = 7 + Visible = False + OnClick = Button3Click + end + object Button4: TButton + Left = 1048 + Top = 15 + Width = 86 + Height = 25 + Caption = #22383#24067#39046#26009#30830#23450 + TabOrder = 8 + Visible = False + OnClick = Button4Click + end + object FactoryNoName: TEdit + Tag = 2 + Left = 784 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 9 + OnChange = ConNoMChange + end + end + object ScrollBox1: TScrollBox + Left = -172 + Top = 112 + Width = 1351 + Height = 545 + BorderStyle = bsNone + TabOrder = 2 + object cxGrid1: TcxGrid + Left = 0 + Top = 0 + Width = 815 + Height = 545 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + OnCustomDrawCell = Tv1CustomDrawCell + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1C_Qty + end + item + Kind = skSum + Column = v1Price + end + item + Kind = skSum + Column = v1Money + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1Column1: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 75 + end + object v1Column5: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 75 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 50 + end + object v1C_Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 50 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 50 + end + object v1Price: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Money: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column3: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'Sdefstr1' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column6: TcxGridDBColumn + Caption = #35745#21010#32553#29575'(%)' + DataBinding.FieldName = 'Qty2' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column7: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'Sdefstr2' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column8: TcxGridDBColumn + Caption = #26579#21378#24037#33402 + DataBinding.FieldName = 'Sdefstr3' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #26579#21378#20215#26684 + DataBinding.FieldName = 'Sdefstr4' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column10: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'sdefstr5' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 70 + end + object v1Column11: TcxGridDBColumn + Caption = #24037#21378#32534#21495 + DataBinding.FieldName = 'sdefstr6' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1DHQty: TcxGridDBColumn + Caption = #21040#36135#21305#25968 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1MXQty: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'MXQty' + HeaderAlignmentHorz = taCenter + Width = 65 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 823 + Top = 0 + Width = 528 + Height = 545 + Align = alRight + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + Visible = False + object cxGrid3: TcxGrid + Left = 2 + Top = 195 + Width = 524 + Height = 348 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v3Column2 + end + item + Kind = skSum + Column = v3Column3 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object cxGridDBPRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 42 + end + object v3Column6: TcxGridDBColumn + Caption = #25237#22383#26085#26399 + DataBinding.FieldName = 'TPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v3Column3: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3Column2: TcxGridDBColumn + Caption = #25968#37327'('#35745#21010')' + DataBinding.FieldName = 'TPQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 75 + end + object v3Column4: TcxGridDBColumn + Caption = #25968#37327#20844#24046 + DataBinding.FieldName = 'Qty2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v3Column5: TcxGridDBColumn + Caption = #35745#21010#32553#29575'(%)' + DataBinding.FieldName = 'Qty3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v3Column7: TcxGridDBColumn + Caption = #25237#22383#20154 + DataBinding.FieldName = 'TPPerson' + HeaderAlignmentHorz = taCenter + Width = 48 + end + object v3Column8: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'TPNote' + Width = 73 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 524 + Height = 193 + Align = alTop + TabOrder = 1 + object Tv2: TcxGridDBTableView + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2MxQty + end + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = v2Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v2ComeDate: TcxGridDBColumn + Caption = #21040#36135#26085#26399 + DataBinding.FieldName = 'ComeDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v2Column3: TcxGridDBColumn + Caption = #23384#25918#22320#28857 + DataBinding.FieldName = 'RKPlace' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object v2BatchNo: TcxGridDBColumn + Caption = #25209#21495 + DataBinding.FieldName = 'BatchNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v2Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 44 + end + object v2MxQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MxQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 48 + end + object v2MxNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'MxNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KCPS' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v2Column2: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCSL' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv2 + end + end + end + object cxSplitter1: TcxSplitter + Left = 815 + Top = 0 + Width = 8 + Height = 545 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salRight + Control = Panel2 + Visible = False + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 86 + Width = 1197 + Height = 22 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #26410#23436#25104 + #23436#25104 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 22 + ClientRectRight = 1197 + ClientRectTop = 19 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1140 + Top = 52 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1092 + Top = 16 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1120 + Top = 20 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1032 + Top = 52 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1080 + Top = 76 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1104 + Top = 64 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 680 + Top = 32 + end +end diff --git a/盛纺贸易管理/U_ClothContractList.pas b/盛纺贸易管理/U_ClothContractList.pas new file mode 100644 index 0000000..1b007c7 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractList.pas @@ -0,0 +1,1036 @@ +unit U_ClothContractList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxPC; + +type + TfrmClothContractList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ScrollBox1: TScrollBox; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1C_Qty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + v1Money: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ToolButton1: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + ToolButton6: TToolButton; + v1Qty1: TcxGridDBColumn; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + Panel2: TPanel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBPRTColor: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v2ComeDate: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2BatchNo: TcxGridDBColumn; + v2Qty1: TcxGridDBColumn; + v2MxQty: TcxGridDBColumn; + v2MxNote: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxSplitter1: TcxSplitter; + v3Column7: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + Button1: TButton; + Button2: TButton; + Button3: TButton; + Button4: TButton; + CDS_PRT: TClientDataSet; + v1Column3: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + Tchk: TToolButton; + TNochk: TToolButton; + v1DHQty: TcxGridDBColumn; + v1MXQty: TcxGridDBColumn; + FactoryNoName: TEdit; + Label6: TLabel; + v1Column1: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure ToolButton4Click(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure v3Column2PropertiesEditValueChanged(Sender: TObject); + procedure conPress(Sender: TObject; var Key: Char); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TchkClick(Sender: TObject); + procedure TNochkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure SetStatus(); + { Private declarations } + public + FType:string; + { Public declarations } + end; + +var + frmClothContractList: TfrmClothContractList; + +implementation +uses + U_DataLink,U_ClothContractInPutPB,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractList.SetStatus(); +begin + TBAdd.Visible:=false; + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + IF FType=''then + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + TBAdd.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + end; + 2:begin + + end; + end; + end; + IF FType='ѯ' then + begin + Tbadd.Visible:=false; + TBPrint.Visible:=false; + v1Price.Visible:=false; + v1PriceUnit.Visible:=false; + v1Money.Visible:=false; + + v1Price.Hidden:=true; + v1PriceUnit.Hidden:=true; + v1Money.Hidden:=true; + cxTabControl1.TabIndex:=2; + cxTabControl1.Visible:=false; + end; +end; + +procedure TfrmClothContractList.FormDestroy(Sender: TObject); +begin + frmClothContractList:=nil; +end; + +procedure TfrmClothContractList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractList.FormCreate(Sender: TObject); +begin + ScrollBox1.Align:=alClient; +end; + +procedure TfrmClothContractList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); +end; + +procedure TfrmClothContractList.InitGrid(); +var strwhere: string; +begin + strwhere:=' and QDTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and QDTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''' + +' and HTType=''ɹͬ'''; + IF cxTabControl1.TabIndex=0 then + strwhere:=strwhere+' and isnull(C_status,''0'')=''0'' '; + IF cxTabControl1.TabIndex=1 then + strwhere:=strwhere+' and isnull(C_status,''0'')=''1'' '; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=strwhere; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + TBFind.Click; + end; +end; + +procedure TfrmClothContractList.InitForm(); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + cxTabControl1.TabIndex:=0; + if Trim(DParameters1)='1' then + begin + TBPrint.Visible:=False; + end else + begin + // v1Column1.Visible:=True; + // v1Column1.Hidden:=False; + // v1PRTUnit.Visible:=True; + // v1PRTUnit.Hidden:=False; + // v1PRTQty.Visible:=True; + // v1PRTQty.Hidden:=False; + TBPrint.Visible:=True; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmClothContractList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmClothContractInPutPB:=TfrmClothContractInPutPB.Create(Application); + with frmClothContractInPutPB do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmClothContractInPutPB.Free; + end; +end; + +procedure TfrmClothContractList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if ClientDataSet2.IsEmpty=false then + begin + Application.MessageBox('ѵɾͬ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; +end; + +function TfrmClothContractList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ͬб',cxGrid1); +end; + +procedure TfrmClothContractList.TBPrintClick(Sender: TObject); +var + fPrintFile,FConNoM:string; + +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ͬ.rmf'),'ʾ',0); + end; + //SDofilter(ADOQueryMain,''); + //SCreateCDS20(ADOQueryMain,Order_Main); + //SInitCDSData20(ADOQueryMain,Order_Main); + //Order_Main.Locate('ConNoM',FConNoM,[]); + //SelPrintData(TV4,ADOQueryMain,'ͬѯ'); +end; + +procedure TfrmClothContractList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractList.TBAddClick(Sender: TObject); +begin + try + frmClothContractInPutPB:=TfrmClothContractInPutPB.Create(Application); + with frmClothContractInPutPB do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmClothContractInPutPB.Free; + end; +end; + +procedure TfrmClothContractList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractList.FormShow(Sender: TObject); +begin + InitForm(); + SetStatus(); +end; + +procedure TfrmClothContractList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if FInt=2 then + begin + ClientDataSet2.Append; + ClientDataSet2.Post; + end else + if FInt=3 then + begin + //ClientDataSet3.Append; + //ClientDataSet3.Post; + try + frmProductOrderList:=TfrmProductOrderList.Create(Application); + with frmProductOrderList do + begin + FFInt:=2; + FCloth:=1; + frmProductOrderList.TBAdd.Visible:=False; + frmProductOrderList.TBEdit.Visible:=False; + frmProductOrderList.TBDel.Visible:=False; + frmProductOrderList.TBExport.Visible:=False; + frmProductOrderList.TBPrint.Visible:=False; + frmProductOrderList.ToolButton1.Visible:=False; + frmProductOrderList.ToolButton2.Visible:=False; + frmProductOrderList.ToolButton3.Visible:=True; + frmProductOrderList.v1Column4.Visible:=True; + if ShowModal=1 then + begin + with frmProductOrderList.Order_Main do + begin + frmProductOrderList.Order_Main.First; + while not frmProductOrderList.Order_Main.Eof do + begin + if frmProductOrderList.Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with Self.ClientDataSet3 do + begin + Self.ClientDataSet3.Append; + Self.ClientDataSet3.FieldByName('OrdSubId').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('SubId').AsString); + Self.ClientDataSet3.FieldByName('OrderNo').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('OrderNo').AsString); + Self.ClientDataSet3.FieldByName('MPRTCodeName').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('MPRTCodeName').AsString); + Self.ClientDataSet3.FieldByName('MPRTSpec').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('MPRTSpec').AsString); + Self.ClientDataSet3.FieldByName('PRTColor').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTColor').AsString); + end; + end; + frmProductOrderList.Order_Main.Next; + end; + end; + end; + end; + finally + frmProductOrderList.Free; + end; + end; +end; + +procedure TfrmClothContractList.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,KCSL=A.MXQty-(select isnull(Sum(TPQty),0) from Contract_Sub_Mxto B where B.MXID=A.MXID),'); + sql.Add(' KCPS=A.Qty1-(select isnull(Sum(Qty1),0) from Contract_Sub_Mxto B where B.MXID=A.MXID)'); + sql.Add('from Contract_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add('from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractList.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractList.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=1; +end; + +procedure TfrmClothContractList.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=3; +end; + +procedure TfrmClothContractList.ToolButton4Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet2.IsEmpty then Exit; + if ClientDataSet2.Locate('ComeDate',null,[]) then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('MxQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ϸ + with ClientDataSet2 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','Contract_Sub_Mx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv2,ClientDataSet2,'Contract_Sub_Mx',0); + if Trim(ClientDataSet2.fieldbyname('Qty1').AsString)='' then + begin + FieldByName('Qty1').Value:=0; + end; + if Trim(ClientDataSet2.fieldbyname('MxQty').AsString)='' then + begin + FieldByName('MxQty').Value:=0; + end; + Post; + end; + with ClientDataSet2 do + begin + Edit; + FieldByName('MxId').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractList.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractList.ToolButton5Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet3.IsEmpty then Exit; + if ClientDataSet2.IsEmpty then Exit; + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + Application.MessageBox('δȷ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('OrderNo',null,[]) then + begin + Application.MessageBox('ָŲΪգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'To','Contract_Sub_MxTo',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('ToId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MxTo where ToId='''+Trim(ClientDataSet3.fieldbyname('ToId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(ClientDataSet2.fieldbyname('MxId').AsString); + FieldByName('ToId').Value:=Trim(maxno); + FieldByName('OrdSubId').Value:=Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPPerson').Value:=ClientDataSet3.fieldbyname('TPPerson').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty1').AsString)<>'' then + FieldByName('Qty1').Value:=ClientDataSet3.fieldbyname('Qty1').Value + else + FieldByName('Qty1').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + FieldByName('Qty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + else + FieldByName('Qty2').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty3').AsString)<>'' then + FieldByName('Qty3').Value:=ClientDataSet3.fieldbyname('Qty3').Value + else + FieldByName('Qty3').Value:=0; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('ToId').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractList.ToolButton3Click(Sender: TObject); +begin + if FInt=2 then + begin + if ClientDataSet2.IsEmpty then Exit; + if ClientDataSet3.IsEmpty=false then + begin + Application.MessageBox('Ѳݣɾ¼','ʾ',0); + Exit; + end; + if Trim(ClientDataSet2.fieldbyname('MxId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + ExecSQL; + end; + ClientDataSet2.Delete; + end else + if FInt=3 then + begin + if ClientDataSet3.IsEmpty then Exit; + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub_MxTo where ToId='''+Trim(ClientDataSet3.fieldbyname('ToId').AsString)+''''); + ExecSQL; + end; + ClientDataSet3.Delete; + with ClientDataSet2 do + begin + Edit; + if ClientDataSet3.IsEmpty=False then + FieldByName('KCSL').Value:=ClientDataSet2.fieldbyname('MxQty').Value-tv3.DataController.Summary.FooterSummaryValues[0] + else + FieldByName('KCSL').Value:=ClientDataSet2.fieldbyname('MxQty').Value; + Post; + end; + end; +end; + +procedure TfrmClothContractList.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractList.Button1Click(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmClothContractList.Button2Click(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmClothContractList.Button3Click(Sender: TObject); +begin + ToolButton4.Click; +end; + +procedure TfrmClothContractList.Button4Click(Sender: TObject); +begin + ToolButton5.Click; +end; + +procedure TfrmClothContractList.v3Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty2:String; + +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + with ClientDataSet2 do + begin + Edit; + FieldByName('KCSL').Value:=ClientDataSet2.fieldbyname('MxQty').Value-tv3.DataController.Summary.FooterSummaryValues[0]; + Post; + end; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + begin + qty1:=ClientDataSet3.fieldbyname('TPQty').AsString; + end else + begin + qty1:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + begin + Qty2:=ClientDataSet3.fieldbyname('Qty2').AsString; + end else + begin + Qty2:='0'; + end; + if StrToFloat(qty1)*StrToFloat(qty2)=0 then Exit; + with ClientDataSet3 do + begin + Edit; + FieldByName('qty3').Value:=(StrToFloat(qty1)-StrToFloat(qty2))*1.00*100/StrToFloat(qty1); + Post; + end; +end; + +procedure TfrmClothContractList.conPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+'''' + +' and HTType=''ɹͬ'''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + If Order_Main.IsEmpty then Exit; + try + frmClothContractInPutPB:=TfrmClothContractInPutPB.Create(Application); + with frmClothContractInPutPB do + begin + PState:=1; + ToolBar1.Enabled:=false; + ToolBar2.Enabled:=false; + Tv1.OptionsData.Editing:=false; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmClothContractInPutPB.Free; + end; +end; + +procedure TfrmClothContractList.TchkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update Contract_Sub SET C_status=''1'' '); + sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString))); + execsql; + end; + application.MessageBox('ɹɣ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ɹʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmClothContractList.TNochkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update Contract_Sub SET C_status=''0'' '); + sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString))); + execsql; + end; + application.MessageBox('ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmClothContractList.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; +end; + +procedure TfrmClothContractList.Tv1CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if cxTabControl1.TabIndex=0 then + begin + with Order_Main do + begin + if (AViewInfo.GridRecord.Values[v1MXQty.Index]< + AViewInfo.GridRecord.Values[v1C_Qty.Index]*0.97) or + (AViewInfo.GridRecord.Values[v1MXQty.Index]> + AViewInfo.GridRecord.Values[v1C_Qty.Index]*1.03) then + begin + ACanvas.Font.Color:=clRed; + end; + if AViewInfo.GridRecord.Values[v1DHQty.Index]< + AViewInfo.GridRecord.Values[v1Qty1.Index] then + begin + ACanvas.Font.Color:=clRed; + end; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListDH.dfm b/盛纺贸易管理/U_ClothContractListDH.dfm new file mode 100644 index 0000000..2b6e9d7 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListDH.dfm @@ -0,0 +1,707 @@ +object frmClothContractListDH: TfrmClothContractListDH + Left = 194 + Top = 75 + Width = 1100 + Height = 573 + Caption = #22383#24067#21040#36135 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1084 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TWC: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23436#25104 + ImageIndex = 41 + Visible = False + OnClick = TWCClick + end + object TNOWC: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25764#38144#23436#25104 + ImageIndex = 86 + Visible = False + OnClick = TNOWCClick + end + object TBClose: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 552 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1084 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 752 + Top = 22 + Width = 65 + Height = 12 + Caption = #23458#25143#21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = ConNoMKeyPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + object sdefstr6: TEdit + Tag = 2 + Left = 820 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1084 + Height = 210 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 74 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 93 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1Column5: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object v1Column1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column3: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'Sdefstr1' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v1DHQty: TcxGridDBColumn + Caption = #21040#36135#21305#25968 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1MxQty: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'MxQty' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1Column6: TcxGridDBColumn + Caption = #35745#21010#32553#29575'(%)' + DataBinding.FieldName = 'Qty2' + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column7: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column8: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'sdefstr6' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1Column9: TcxGridDBColumn + Caption = #26579#21378#24037#33402 + DataBinding.FieldName = 'Sdefstr3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column10: TcxGridDBColumn + DataBinding.FieldName = 'subID' + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 296 + Width = 1084 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object Panel2: TPanel + Left = 0 + Top = 304 + Width = 1084 + Height = 231 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object cxGrid2: TcxGrid + Left = 2 + Top = 34 + Width = 1080 + Height = 195 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2MxQty + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v2ComeDate: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#26085#26399 + DataBinding.FieldName = 'ComeDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 117 + end + object v2Column3: TcxGridDBColumn + Tag = 2 + Caption = #23384#25918#22320#28857 + DataBinding.FieldName = 'RKPlace' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 122 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #21305#25968#37327 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v2MxQty: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'MxQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 90 + end + object v2Column2: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'MXUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v2MxNote: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'MxNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 145 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv2 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1080 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton10: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + OnClick = ToolButton4Click + end + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 664 + Top = 256 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 988 + Top = 208 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 453 + Top = 200 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 440 + Top = 520 + end +end diff --git a/盛纺贸易管理/U_ClothContractListDH.pas b/盛纺贸易管理/U_ClothContractListDH.pas new file mode 100644 index 0000000..275beda --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListDH.pas @@ -0,0 +1,1119 @@ +unit U_ClothContractListDH; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxPC; + +type + TfrmClothContractListDH = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1Qty1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxSplitter1: TcxSplitter; + Panel2: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v2ComeDate: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2MxQty: TcxGridDBColumn; + v2MxNote: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + cxGridPopupMenu2: TcxGridPopupMenu; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + sdefstr6: TEdit; + Label6: TLabel; + v1DHQty: TcxGridDBColumn; + v1MxQty: TcxGridDBColumn; + TWC: TToolButton; + TNOWC: TToolButton; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure ToolButton4Click(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure ConNoMKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TWCClick(Sender: TObject); + procedure TNOWCClick(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + procedure SetStatus(); + function DelData():Boolean; + function YFData():Boolean; + function DelYFData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListDH: TfrmClothContractListDH; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp, + U_ZdyAttachGYS; + +{$R *.dfm} + +procedure TfrmClothContractListDH.FormDestroy(Sender: TObject); +begin + frmClothContractListDH:=nil; +end; + +procedure TfrmClothContractListDH.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListDH.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬ1',Tv1,'ָʾ'); + WriteCxGrid('ͬ2',Tv2,'ָʾ'); +end; + +procedure TfrmClothContractListDH.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''' + +' and HTType=''ɹͬ'''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractListDH.InitForm(); +begin + ReadCxGrid('ͬ1',Tv1,'ָʾ'); + ReadCxGrid('ͬ2',Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmClothContractListDH.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListDH.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListDH.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListDH.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListDH.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListDH.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; +{ with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from Contract_Main where ConNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + ClientDataSet2.Append; + ClientDataSet2.FieldByName('MXUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + ClientDataSet2.FieldByName('RKPlace').Value:=''; + ClientDataSet2.FieldByName('RKPLCode').Value:=Trim(ADOQueryTemp.fieldbyname('JHPlace').AsString); + ClientDataSet2.Post; +end; + +procedure TfrmClothContractListDH.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +procedure TfrmClothContractListDH.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListDH.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=1; +end; + +procedure TfrmClothContractListDH.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=3; +end; + +procedure TfrmClothContractListDH.ToolButton4Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet2.IsEmpty then Exit; + if ClientDataSet2.Locate('ComeDate',null,[]) then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('RKPlace',null,[]) then + begin + Application.MessageBox('ŵص㲻Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('RKPlace','',[]) then + begin + Application.MessageBox('ŵص㲻Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('MxQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ϸ + with ClientDataSet2 do + begin + ClientDataSet2.DisableControls; + First; + while not eof do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','Contract_Sub_Mx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet2.EnableControls; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + end + else + begin + maxno:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv2,ClientDataSet2,'Contract_Sub_Mx',2); + FieldByName('MXUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + FieldByName('RKPLCode').Value:=Trim(ClientDataSet2.fieldbyname('RKPLCode').AsString); + if Trim(ClientDataSet2.fieldbyname('Qty1').AsString)='' then + begin + FieldByName('Qty1').Value:=0; + end; + if Trim(ClientDataSet2.fieldbyname('MxQty').AsString)='' then + begin + FieldByName('MxQty').Value:=0; + end; + if Trim(Order_Main.fieldbyname('C_Unit').AsString)='Kg' then + begin + if (Order_Main.fieldbyname('MFQty').AsFloat<>0) and (Order_Main.fieldbyname('KZQty').AsFloat<>0) then + begin + FieldByName('MxMQty').Value:=ClientDataSet2.fieldbyname('MxQty').Value*1.00*1000 + /(Order_Main.fieldbyname('MFQty').Value*1.00/100*Order_Main.fieldbyname('KZQty').Value); + end; + end + else + begin + FieldByName('MxMQty').Value:=ClientDataSet2.fieldbyname('MxQty').Value; + end; + Post; + end; + with ClientDataSet2 do + begin + Edit; + FieldByName('MxId').Value:=Trim(maxno); + Post; + end; + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet2.fieldbyname('RKPLace').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,maxno,'DH','Contract_Cloth_DH',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet2.EnableControls; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('Mainid').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHId').Value:=Trim(maxno); + FieldByName('FirstNo').Value:=Trim(ClientDataSet2.fieldbyname('RKPLCode').AsString); + FieldByName('FirstName').Value:=Trim(ClientDataSet2.fieldbyname('RKPLace').AsString); + FieldByName('DHUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + FieldByName('PBName').Value:=Trim(Order_Main.fieldbyname('C_CodeName').AsString); + FieldByName('PBSpec').Value:=Trim(Order_Main.fieldbyname('C_Spec').AsString); + FieldByName('PBMF').Value:=Order_Main.fieldbyname('MFQty').AsFloat; + FieldByName('PBKZ').Value:=Order_Main.fieldbyname('KZQty').AsFloat; + Post; + end; + + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set DHUnit='''+Trim(Order_Main.fieldbyname('C_Unit').AsString)+''''); + sql.Add(',PBName='+quotedstr(Trim(Order_Main.fieldbyname('C_CodeName').AsString))); + sql.Add(',PBSpec='+quotedstr(Trim(Order_Main.fieldbyname('C_Spec').AsString))); + sql.Add(',PBMF='+floattostr(Order_Main.fieldbyname('MFQty').AsFloat)); + sql.Add(',PBKZ='+floattostr(Order_Main.fieldbyname('KZQty').AsFloat)); + sql.Add(' where DHID='''+Trim(ADOQueryTemp.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set DHQty=(select Sum(MxQty) from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=Contract_Cloth_DH.FirstNo)'); + sql.Add(',DHMQty=(select Sum(MxMQty) from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=Contract_Cloth_DH.FirstNo)'); + sql.Add(', DHPS=(select Sum(Qty1) from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=Contract_Cloth_DH.FirstNo)'); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(ClientDataSet2.fieldbyname('RKPLCode').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_DH '); + sql.Add('where not exists(select * from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId and A.RKPlace=Contract_Cloth_DH.firstName) '); + sql.Add('and SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + //ӹ + with ADOQueryCmd do + begin + Close; + sql.Clear; + // sql.Add('select * from Contract_Cloth_LLMX B where not exists(select * from '); + // sql.Add(' Contract_Cloth_DH A where A.DHID=B.DHID '); + // SQL.Add(' and A.SubId=B.SubId ) and B.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' select A.DHID from Contract_Cloth_LLMx A '); + sql.Add(' inner join Contract_Cloth_LL B on B.DHID=A.DHID and B.OrdSubId=A.OrdSubId and B.LLID not like ''HL%'' '); + sql.Add(' where not exists (select X.DHID from Contract_Cloth_DH X where X.DHId=A.DHID and X.FirstName=B.FirstName) '); + sql.Add(' and A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''' '); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + ClientDataSet2.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ݽҲӦȾܱ!','ʾ',0); + //begin + + Exit; + //end; + end; + ClientDataSet2.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ClientDataSet2.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListDH.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName:String; +begin + Result:=False; + { with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FactoryNoName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + begin + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'PF','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + end + else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOQueryCmd do + begin + if ADOQueryTemp.IsEmpty then + Append + else + Edit; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FactoryNoName').AsString); + FieldByName('CRTime').Value:=ClientDataSet2.fieldbyname('ComeDate').Value; + FieldByName('Qty').Value:=ClientDataSet2.fieldbyname('MXQty').Value; + FieldByName('PS').Value:=ClientDataSet2.fieldbyname('Qty1').Value; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=Order_Main.fieldbyname('Price').Value; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + FieldByName('YFName').Value:=''; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(MXQty),0) from Contract_Sub_MX A inner join'); + SQL.Add('Contract_Sub B on A.SubId=B.SubId where B.MainId=YF_Money_CR.YFTypeId)'); + sql.Add(',PS=(select isnull(Sum(A.Qty1),0) from Contract_Sub_MX A inner join'); + SQL.Add('Contract_Sub B on A.SubId=B.SubId where B.MainId=YF_Money_CR.YFTypeId)'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end;} + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; + +function TfrmClothContractListDH.DelYFData():Boolean; +var + CRID,OrdMainId,YFID:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +procedure TfrmClothContractListDH.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListDH.ToolButton5Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet3.IsEmpty then Exit; + if ClientDataSet2.IsEmpty then Exit; + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + Application.MessageBox('δȷ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('OrderNo',null,[]) then + begin + Application.MessageBox('ָŲΪգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'To','Contract_Sub_MxTo',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('ToId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MxTo where ToId='''+Trim(ClientDataSet3.fieldbyname('ToId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(ClientDataSet2.fieldbyname('MxId').AsString); + FieldByName('ToId').Value:=Trim(maxno); + FieldByName('OrdSubId').Value:=Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPPerson').Value:=ClientDataSet3.fieldbyname('TPPerson').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty1').AsString)<>'' then + FieldByName('Qty1').Value:=ClientDataSet3.fieldbyname('Qty1').Value + else + FieldByName('Qty1').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + FieldByName('Qty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + else + FieldByName('Qty2').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty3').AsString)<>'' then + FieldByName('Qty3').Value:=ClientDataSet3.fieldbyname('Qty3').Value + else + FieldByName('Qty3').Value:=0; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('ToId').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListDH.ToolButton3Click(Sender: TObject); +begin + //if FInt=2 then + //begin + if ClientDataSet2.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set DHQty=(select isnull(Sum(MxQty),0) from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=Contract_Cloth_DH.FirstNo)'); + sql.Add(', DHMQty=(select isnull(Sum(MxMQty),0) from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=Contract_Cloth_DH.FirstNo)'); + sql.Add(', DHPS=(select isnull(Sum(Qty1),0) from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=Contract_Cloth_DH.FirstNo)'); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(ClientDataSet2.fieldbyname('RKPLCode').AsString)+''''); + ExecSQL; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_DH '); + sql.Add('where not exists(select * from Contract_Sub_Mx A where A.SubId=Contract_Cloth_DH.SubId and A.RKPlace=Contract_Cloth_DH.firstName) '); + sql.Add(' and SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMX B where not exists(select * from '); + sql.Add(' Contract_Cloth_DH A where A.DHID=B.DHID '); + SQL.Add(' and A.SubId=B.SubId ) and B.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox('ѲͶɾ!','ʾ',0); + ADOQueryCmd.Connection.RollbackTrans; + Exit; + end; + DelYFData(); + ClientDataSet2.Delete; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ɾ쳣!','ʾ',0); + end; +end; + +procedure TfrmClothContractListDH.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='ص'; + //MainType:='RanFactory'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + FieldByName('RKPlCode').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; } + + try + frmZdyAttachGYS:=TfrmZdyAttachGYS.Create(Application); + with frmZdyAttachGYS do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + // FieldByName('FactoryNoName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + FieldByName('RKPlace').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + FieldByName('RKPlCode').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZdyAttachGYS.Free; + end; +end; + +procedure TfrmClothContractListDH.Button1Click(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmClothContractListDH.Button2Click(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmClothContractListDH.Button3Click(Sender: TObject); +begin + ToolButton4.Click; +end; + +procedure TfrmClothContractListDH.ConNoMKeyPress(Sender: TObject; + var Key: Char); +begin if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+'''' + +' and HTType=''ɹͬ'''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListDH.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from Contract_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); + {with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add('from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3);} +end; + +procedure TfrmClothContractListDH.TWCClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update Contract_Sub SET C_status=''2'' '); + sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString))); + execsql; + end; + application.MessageBox('ɣ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmClothContractListDH.TNOWCClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update Contract_Sub SET C_status=''1'' '); + sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString))); + execsql; + end; + application.MessageBox('ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmClothContractListDH.SetStatus(); +begin + +end; + +procedure TfrmClothContractListDH.Tv1CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + {with Order_Main do + begin + if (AViewInfo.GridRecord.Values[v1MXQty.Index]< + AViewInfo.GridRecord.Values[v1PRTOrderQty.Index]*0.97) or + (AViewInfo.GridRecord.Values[v1MXQty.Index]> + AViewInfo.GridRecord.Values[v1PRTOrderQty.Index]*1.03) then + begin + ACanvas.Font.Color:=clRed; + end; + if AViewInfo.GridRecord.Values[v1DHQty.Index]< + AViewInfo.GridRecord.Values[v1Column1.Index] then + begin + ACanvas.Font.Color:=clRed; + end; + end;} +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListDHSX.dfm b/盛纺贸易管理/U_ClothContractListDHSX.dfm new file mode 100644 index 0000000..5715065 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListDHSX.dfm @@ -0,0 +1,595 @@ +object frmClothContractListDHSX: TfrmClothContractListDHSX + Left = 248 + Top = 60 + Width = 1068 + Height = 619 + Caption = #32433#32447#21040#36135 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1060 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 402 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1060 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = ConNoMKeyPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1060 + Height = 204 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 74 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 93 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1Column5: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 577 + Width = 1060 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + end + object Panel2: TPanel + Left = 0 + Top = 290 + Width = 1060 + Height = 287 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object cxGrid2: TcxGrid + Left = 2 + Top = 34 + Width = 1056 + Height = 251 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2MxQty + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v2ComeDate: TcxGridDBColumn + Tag = 2 + Caption = #21040#36135#26085#26399 + DataBinding.FieldName = 'ComeDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 117 + end + object v2Column3: TcxGridDBColumn + Tag = 2 + Caption = #21152#24037#21378 + DataBinding.FieldName = 'RKPlace' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 122 + end + object v2MxQty: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'MxQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 90 + end + object v2Column2: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'MXUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v2MxNote: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'MxNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 145 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv2 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1056 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton10: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21040#36135#30830#23450 + ImageIndex = 113 + OnClick = ToolButton4Click + end + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 664 + Top = 256 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 440 + Top = 520 + end +end diff --git a/盛纺贸易管理/U_ClothContractListDHSX.pas b/盛纺贸易管理/U_ClothContractListDHSX.pas new file mode 100644 index 0000000..801fa95 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListDHSX.pas @@ -0,0 +1,1022 @@ +unit U_ClothContractListDHSX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit; + +type + TfrmClothContractListDHSX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1Qty1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxSplitter1: TcxSplitter; + Panel2: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v2ComeDate: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2MxQty: TcxGridDBColumn; + v2MxNote: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + cxGridPopupMenu2: TcxGridPopupMenu; + v2Column2: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure ToolButton4Click(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure ConNoMKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + function YFData():Boolean; + function DelYFData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListDHSX: TfrmClothContractListDHSX; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractListDHSX.FormDestroy(Sender: TObject); +begin + frmClothContractListDHSX:=nil; +end; + +procedure TfrmClothContractListDHSX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListDHSX.FormCreate(Sender: TObject); +begin + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); +end; + +procedure TfrmClothContractListDHSX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬSXdh',Tv1,'ָʾ'); + WriteCxGrid('ͬSXdhr',Tv2,'ָʾ'); +end; + +procedure TfrmClothContractListDHSX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + + IF Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and DHTYpe=''ǰӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); + + + +end; + +procedure TfrmClothContractListDHSX.InitForm(); +begin + ReadCxGrid('ͬSXdh',Tv1,'ָʾ'); + ReadCxGrid('ͬSXdhr',Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmClothContractListDHSX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListDHSX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListDHSX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListDHSX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListDHSX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListDHSX.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + SQL.Clear; + //sql.Add('select Top 1 * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + sql.Add('select Top 1* from ContractHZ_Main '); + sql.Add(' where ConNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + SQL.Add(' and ConType like ''%ɴ%'' '); + Open; + end; + ClientDataSet2.Append; + ClientDataSet2.FieldByName('MXUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + //ClientDataSet2.FieldByName('RKPlace').Value:=Trim(ADOQueryTemp.fieldbyname('PBFactory').AsString); + //ClientDataSet2.FieldByName('RKPLCode').Value:=Trim(ADOQueryTemp.fieldbyname('PBFactory').AsString); + ClientDataSet2.FieldByName('RKPlace').Value:=Trim(ADOQueryTemp.fieldbyname('FactoryNoName').AsString); + ClientDataSet2.FieldByName('RKPLCode').Value:=Trim(ADOQueryTemp.fieldbyname('FactoryNoName').AsString); + ClientDataSet2.Post; +end; + +procedure TfrmClothContractListDHSX.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); + {with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add('from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); } +end; + +procedure TfrmClothContractListDHSX.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListDHSX.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=1; +end; + +procedure TfrmClothContractListDHSX.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=3; +end; + +procedure TfrmClothContractListDHSX.ToolButton4Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet2.IsEmpty then Exit; + if ClientDataSet2.Locate('ComeDate',null,[]) then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('RKPlace',null,[]) then + begin + Application.MessageBox('ŵص㲻Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('RKPlace','',[]) then + begin + Application.MessageBox('ŵص㲻Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('MxQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ϸ + with ClientDataSet2 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'QM','ContractSX_Sub_Mx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv2,ClientDataSet2,'ContractSX_Sub_Mx',2); + FieldByName('MXUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + FieldByName('RKPLCode').Value:=Trim(ClientDataSet2.fieldbyname('RKPlace').AsString); + FieldByName('DHType').Value:='ǰӹ'; + if Trim(ClientDataSet2.fieldbyname('MxQty').AsString)='' then + begin + FieldByName('MxQty').Value:=0; + end; + Post; + end; + with ClientDataSet2 do + begin + Edit; + FieldByName('MxId').Value:=Trim(maxno); + Post; + end; + + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_DH where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(ClientDataSet2.fieldbyname('RKPlace').AsString)+''''); + sql.Add(' and DHTYpe=''ǰӹ'' '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,maxno,'QD','ContractSX_Cloth_DH',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_DH where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('Mainid').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHId').Value:=Trim(maxno); + FieldByName('FirstNo').Value:=Trim(ClientDataSet2.fieldbyname('RKPLace').AsString); + FieldByName('FirstName').Value:=Trim(ClientDataSet2.fieldbyname('RKPLace').AsString); + FieldByName('DHUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + FieldByName('DHType').Value:='ǰӹ'; + Post; + end; + + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set DHUnit='''+Trim(Order_Main.fieldbyname('C_Unit').AsString)+''''); + sql.Add(' where DHID='''+Trim(ADOQueryTemp.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set DHQty=(select Sum(MxQty) from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId'); + sql.Add(' and A.RKPLace=ContractSX_Cloth_DH.FirstName and A.DHType=''ǰӹ'' )'); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet2.fieldbyname('RKPLace').AsString)+''''); + sql.Add(' and DHType=''ǰӹ'' '); + ExecSQL; + end; + Next; + end; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Cloth_DH '); + sql.Add('where not exists(select * from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId '); + sql.Add(' and A.RKPlace=ContractSX_Cloth_DH.firstName and A.DHType=''ǰӹ'') '); + sql.Add(' and SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet2.fieldbyname('RKPLace').AsString)+''''); + sql.Add(' and DHType=''ǰӹ'' '); + ExecSQL; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMX B where not exists(select * from '); + sql.Add(' Contract_Cloth_DH A where A.DHID=B.DHID '); + SQL.Add(' and A.SubId=B.SubId ) and B.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox('ݽҲӦȾܱ!','ʾ',0); + //begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + //end; + end; } + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YFMoney'); + ExecSQL; + end;} + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListDHSX.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName:String; +begin + Result:=False; +{ with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FactoryNoName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + //if ADOQueryTemp.IsEmpty then + begin + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'PF','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOQueryCmd do + begin + if ADOQueryTemp.IsEmpty then + Append + else + Edit; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FactoryNoName').AsString); + FieldByName('CRTime').Value:=ClientDataSet2.fieldbyname('ComeDate').Value; + FieldByName('Qty').Value:=ClientDataSet2.fieldbyname('MXQty').Value; + //FieldByName('PS').Value:=ClientDataSet2.fieldbyname('Qty1').Value; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=Order_Main.fieldbyname('Price').Value; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('C_Unit').AsString); + FieldByName('YFName').Value:='ɴ߷'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(MXQty),0) from Contract_Sub_MX A inner join'); + SQL.Add('Contract_Sub B on A.SubId=B.SubId where B.MainId=YF_Money_CR.YFTypeId)'); + sql.Add(',PS=(select isnull(Sum(A.Qty1),0) from Contract_Sub_MX A inner join'); + SQL.Add('Contract_Sub B on A.SubId=B.SubId where B.MainId=YF_Money_CR.YFTypeId)'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end;} + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +function TfrmClothContractListDHSX.DelYFData():Boolean; +var + CRID,OrdMainId,YFID:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +procedure TfrmClothContractListDHSX.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListDHSX.ToolButton5Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet3.IsEmpty then Exit; + if ClientDataSet2.IsEmpty then Exit; + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + Application.MessageBox('δȷ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('OrderNo',null,[]) then + begin + Application.MessageBox('ָŲΪգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'To','Contract_Sub_MxTo',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('ToId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MxTo where ToId='''+Trim(ClientDataSet3.fieldbyname('ToId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(ClientDataSet2.fieldbyname('MxId').AsString); + FieldByName('ToId').Value:=Trim(maxno); + FieldByName('OrdSubId').Value:=Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPPerson').Value:=ClientDataSet3.fieldbyname('TPPerson').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty1').AsString)<>'' then + FieldByName('Qty1').Value:=ClientDataSet3.fieldbyname('Qty1').Value + else + FieldByName('Qty1').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + FieldByName('Qty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + else + FieldByName('Qty2').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty3').AsString)<>'' then + FieldByName('Qty3').Value:=ClientDataSet3.fieldbyname('Qty3').Value + else + FieldByName('Qty3').Value:=0; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('ToId').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListDHSX.ToolButton3Click(Sender: TObject); +begin + //if FInt=2 then + //begin + if ClientDataSet2.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set DHQty=(select isnull(Sum(MxQty),0) from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId'); + sql.Add(' and A.RKPLCode=ContractSX_Cloth_DH.FirstNo and A.DHTYpe=''ǰӹ'' )'); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(ClientDataSet2.fieldbyname('RKPLCode').AsString)+''''); + SQL.Add(' and DHTYpe=''ǰӹ'''); + ExecSQL; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Cloth_DH '); + sql.Add('where not exists(select * from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId '); + sql.Add(' and A.RKPlace=ContractSX_Cloth_DH.firstName and A.DHType=''ǰӹ'') '); + sql.Add(' and SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet2.fieldbyname('RKPLace').AsString)+''''); + sql.Add(' and DHType=''ǰӹ'' '); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub_MX B where not exists(select * from '); + sql.Add(' ContractSX_Cloth_DH A where A.DHID=B.QJGDHID '); + SQL.Add(' and A.SubId=B.SubId ) and B.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and isnull(QJGDHID,'''')<>'''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѳݣɾ!','ʾ',0); + //begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + //end; + end; + DelYFData(); + ClientDataSet2.Delete; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ɾ쳣!','ʾ',0); + end; + //end; +end; + +procedure TfrmClothContractListDHSX.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + //flag:='RKPlace'; + flag:='Factory'; + flagname:='ص'; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + FieldByName('RKPlCode').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListDHSX.Button1Click(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmClothContractListDHSX.Button2Click(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmClothContractListDHSX.Button3Click(Sender: TObject); +begin + ToolButton4.Click; +end; + +procedure TfrmClothContractListDHSX.ConNoMKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListDHSX.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and DHTYpe=''ǰӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListDHSXQJG.dfm b/盛纺贸易管理/U_ClothContractListDHSXQJG.dfm new file mode 100644 index 0000000..e4760c5 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListDHSXQJG.dfm @@ -0,0 +1,596 @@ +object frmClothContractListDHSXQJG: TfrmClothContractListDHSXQJG + Left = 174 + Top = -1 + Width = 1155 + Height = 754 + Caption = #32433#32447#21069#21152#24037 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1147 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 402 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1147 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + OnKeyPress = ConNoKeyPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 712 + Width = 1147 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + end + object Panel2: TPanel + Left = 0 + Top = 425 + Width = 1147 + Height = 287 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object cxGrid2: TcxGrid + Left = 2 + Top = 34 + Width = 1143 + Height = 251 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2MxQty + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v2ComeDate: TcxGridDBColumn + Tag = 2 + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'ComeDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 117 + end + object v2Column3: TcxGridDBColumn + Tag = 2 + Caption = #21518#21152#24037#21378 + DataBinding.FieldName = 'RKPlace' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 115 + end + object v2MxQty: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'MxQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 90 + end + object v2Column2: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'MXUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v2Column1: TcxGridDBColumn + Caption = #26579#32433#21333#20215 + DataBinding.FieldName = 'MXPrice' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 76 + end + object v2MxNote: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'MxNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 145 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv2 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1143 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton10: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 113 + OnClick = ToolButton4Click + end + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1147 + Height = 339 + Align = alClient + TabOrder = 4 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column8 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 114 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 112 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 106 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #21407#26448#26009#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 79 + end + object v1Column5: TcxGridDBColumn + Caption = #21069#21152#24037#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DHUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column3: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column8: TcxGridDBColumn + Caption = #32433#32447#25968#37327 + DataBinding.FieldName = 'ClothQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 664 + Top = 256 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 440 + Top = 520 + end +end diff --git a/盛纺贸易管理/U_ClothContractListDHSXQJG.pas b/盛纺贸易管理/U_ClothContractListDHSXQJG.pas new file mode 100644 index 0000000..24e7a69 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListDHSXQJG.pas @@ -0,0 +1,1057 @@ +unit U_ClothContractListDHSXQJG; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit; + +type + TfrmClothContractListDHSXQJG = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNo: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + cxSplitter1: TcxSplitter; + Panel2: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v2ComeDate: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2MxQty: TcxGridDBColumn; + v2MxNote: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton10: TToolButton; + cxGridPopupMenu2: TcxGridPopupMenu; + v2Column2: TcxGridDBColumn; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v2Column1: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure ToolButton4Click(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + function YFData():Boolean; + function DelYFData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListDHSXQJG: TfrmClothContractListDHSXQJG; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractListDHSXQJG.FormDestroy(Sender: TObject); +begin + frmClothContractListDHSXQJG:=nil; +end; + +procedure TfrmClothContractListDHSXQJG.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListDHSXQJG.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬSXdhQJG',Tv1,'ָʾ'); + WriteCxGrid('ͬSXdhrQJG',Tv2,'ָʾ'); +end; + +procedure TfrmClothContractListDHSXQJG.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothQty=DHQty-TPQtyHZ, '); + sql.Add(' A.*,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName from ContractSX_Cloth_DH A '); + sql.add(' inner join ContractSX_Main B on A.Mainid=B.Mainid'); + sql.Add('inner join ContractSX_Sub C on A.Subid=C.Subid'); + sql.Add(' where B.FillTime>=:begdate and B.Filltime<:enddate and A.DHType=''ǰӹ'' '); + Parameters.ParamByName('begdate').Value:=BegDate.Date; + Parameters.ParamByName('enddate').Value:=EndDate.Date+1; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + IF Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and A.DHType=''ǰ'' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +procedure TfrmClothContractListDHSXQJG.InitForm(); +begin + ReadCxGrid('ͬSXdhQJG',Tv1,'ָʾ'); + ReadCxGrid('ͬSXdhrQJG',Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmClothContractListDHSXQJG.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListDHSXQJG.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListDHSXQJG.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListDHSXQJG.ConNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListDHSXQJG.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListDHSXQJG.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + if ClientDataSet2.Active=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + ClientDataSet2.Append; + ClientDataSet2.FieldByName('MXUnit').Value:=Trim(Order_Main.fieldbyname('DHUnit').AsString); + ClientDataSet2.Post; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from ContractHZ_Main A inner join ContractHZ_Sub B on A.MainId=B.MainId'); + sql.Add(' where A.ConNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + sql.Add(' and A.ConType=''ɴǰӹ'''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=ADOQueryTemp.fieldbyname('FactoryNoName').Value; + FieldByName('MXPrice').Value:=ADOQueryTemp.fieldbyname('Price').Value; + Post; + end; + end; +end; + +procedure TfrmClothContractListDHSXQJG.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); + {with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add('from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); } +end; + +procedure TfrmClothContractListDHSXQJG.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListDHSXQJG.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=1; +end; + +procedure TfrmClothContractListDHSXQJG.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=3; +end; + +procedure TfrmClothContractListDHSXQJG.ToolButton4Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet2.IsEmpty then Exit; + if ClientDataSet2.Locate('ComeDate',null,[]) then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('RKPlace',null,[]) then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('RKPlace','',[]) then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('MxQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet2.Locate('MXPrice',null,[]) then + begin + Application.MessageBox('Ⱦɴ۲Ϊգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ϸ + with ClientDataSet2 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','ContractSX_Sub_Mx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv2,ClientDataSet2,'ContractSX_Sub_Mx',2); + FieldByName('MXUnit').Value:=Trim(Order_Main.fieldbyname('DHUnit').AsString); + FieldByName('RKPLCode').Value:=Trim(ClientDataSet2.fieldbyname('RKPlace').AsString); + FieldByName('QJGDHID').Value:=Trim(Order_Main.fieldbyname('DHID').AsString); + FieldByName('DHTYpe').Value:='ǰ'; + if Trim(ClientDataSet2.fieldbyname('MxQty').AsString)='' then + begin + FieldByName('MxQty').Value:=0; + end; + if Trim(ClientDataSet2.fieldbyname('MxPrice').AsString)='' then + begin + FieldByName('MxPrice').Value:=0; + end; + Post; + end; + with ClientDataSet2 do + begin + Edit; + FieldByName('MxId').Value:=Trim(maxno); + Post; + end; + + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_DH where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet2.fieldbyname('RKPlace').AsString)+''''); + sql.Add(' and DHTYpe=''ǰ'' '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,maxno,'SD','ContractSX_Cloth_DH',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϸˮʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_DH where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('Mainid').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHId').Value:=Trim(maxno); + FieldByName('FirstNo').Value:=Trim(ClientDataSet2.fieldbyname('RKPLace').AsString); + FieldByName('FirstName').Value:=Trim(ClientDataSet2.fieldbyname('RKPLace').AsString); + FieldByName('DHUnit').Value:=Trim(Order_Main.fieldbyname('DHUnit').AsString); + FieldByName('DHType').Value:='ǰ'; + Post; + end; + + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set DHUnit='''+Trim(Order_Main.fieldbyname('DHUnit').AsString)+''''); + sql.Add(' where DHID='''+Trim(ADOQueryTemp.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set DHQty=(select Sum(MxQty) from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId'); + sql.Add(' and A.RKPLace=ContractSX_Cloth_DH.FirstName and A.DHTYpe=''ǰ'' )'); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet2.fieldbyname('RKPLace').AsString)+''''); + sql.Add(' and DHType=''ǰ'' '); + ExecSQL; + end; + + Next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate ContractSX_Cloth_DH Set TPQtyHZ=(select sum(MXQty) from ContractSX_Sub_Mx A where A.QJGDHID=ContractSX_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Cloth_DH '); + sql.Add('where not exists(select * from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId '); + SQL.Add('and A.RKPlace=ContractSX_Cloth_DH.firstName and A.DHType=''ǰ'')'); + sql.Add(' and SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and firstName='''+Trim(ClientDataSet2.fieldbyname('RKPLace').AsString)+''''); + sql.Add(' and DHType=''ǰ'''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMX B where not exists(select * from '); + sql.Add(' Contract_Cloth_DH A where A.DHID=B.DHID '); + SQL.Add(' and A.SubId=B.SubId ) and B.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox('ݽҲӦȾܱ!','ʾ',0); + //begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + //end; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YFMoney'); + ExecSQL; + end;} + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListDHSXQJG.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName:String; +begin + Result:=False; +{ with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + Open; + end; + //if ADOQueryTemp.IsEmpty then + begin + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'SQ','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOQueryCmd do + begin + if ADOQueryTemp.IsEmpty then + Append + else + Edit; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ClientDataSet2.fieldbyname('MXId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=ClientDataSet2.fieldbyname('ComeDate').Value; + FieldByName('Qty').Value:=ClientDataSet2.fieldbyname('MXQty').Value; + //FieldByName('PS').Value:=ClientDataSet2.fieldbyname('Qty1').Value; + FieldByName('YFType').Value:='Զ'; + if Trim(ClientDataSet2.fieldbyname('MXPrice').AsString)<>'' then + FieldByName('Price').Value:=ClientDataSet2.fieldbyname('MXPrice').Value + else + FieldByName('Price').Value:=0; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('DHUnit').AsString); + //FieldByName('YFName').Value:='ɴǰӹ'; + FieldByName('YFName').Value:='Ⱦɴ'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(MXQty),0) from Contract_Sub_MX A inner join'); + SQL.Add('Contract_Sub B on A.SubId=B.SubId where B.MainId=YF_Money_CR.YFTypeId)'); + sql.Add(',PS=(select isnull(Sum(A.Qty1),0) from Contract_Sub_MX A inner join'); + SQL.Add('Contract_Sub B on A.SubId=B.SubId where B.MainId=YF_Money_CR.YFTypeId)'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end;} + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +function TfrmClothContractListDHSXQJG.DelYFData():Boolean; +var + CRID,OrdMainId,YFID:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FactoryNoName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet2.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +procedure TfrmClothContractListDHSXQJG.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListDHSXQJG.ToolButton5Click(Sender: TObject); +var + maxno:string; +begin + if ClientDataSet3.IsEmpty then Exit; + if ClientDataSet2.IsEmpty then Exit; + if Trim(ClientDataSet2.fieldbyname('MXId').AsString)='' then + begin + Application.MessageBox('δȷ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('OrderNo',null,[]) then + begin + Application.MessageBox('ָŲΪգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'To','Contract_Sub_MxTo',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('ToId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MxTo where ToId='''+Trim(ClientDataSet3.fieldbyname('ToId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('ToId').AsString)='' then + Append + else + Edit; + FieldByName('MxId').Value:=Trim(ClientDataSet2.fieldbyname('MxId').AsString); + FieldByName('ToId').Value:=Trim(maxno); + FieldByName('OrdSubId').Value:=Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPPerson').Value:=ClientDataSet3.fieldbyname('TPPerson').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty1').AsString)<>'' then + FieldByName('Qty1').Value:=ClientDataSet3.fieldbyname('Qty1').Value + else + FieldByName('Qty1').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + FieldByName('Qty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + else + FieldByName('Qty2').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty3').AsString)<>'' then + FieldByName('Qty3').Value:=ClientDataSet3.fieldbyname('Qty3').Value + else + FieldByName('Qty3').Value:=0; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('ToId').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListDHSXQJG.ToolButton3Click(Sender: TObject); +begin + //if FInt=2 then + //begin + if ClientDataSet2.IsEmpty then Exit; + if Trim(ClientDataSet2.FieldByName('MxId').AsString)='' then + begin + ClientDataSet2.Delete; + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub_Mx where MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set DHQty=(select isnull(Sum(MxQty),0) from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId'); + sql.Add(' and A.RKPLace=ContractSX_Cloth_DH.FirstName)'); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(ClientDataSet2.fieldbyname('RKPLCode').AsString)+''''); + ExecSQL; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Cloth_DH '); + sql.Add('where not exists(select * from ContractSX_Sub_Mx A where A.SubId=ContractSX_Cloth_DH.SubId and A.RKPlace=ContractSX_Cloth_DH.firstName) '); + sql.Add(' and SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_LLMX B where not exists(select * from '); + sql.Add(' ContractSX_Cloth_DH A where A.DHID=B.DHID '); + SQL.Add(' and A.SubId=B.SubId ) and B.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox('Ѳݣɾ!','ʾ',0); + //begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + //end; + end; + DelYFData(); + ClientDataSet2.Delete; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ɾ쳣!','ʾ',0); + end; + //end; +end; + +procedure TfrmClothContractListDHSXQJG.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + //flag:='RKPlace'; + flag:='Factory'; + flagname:='ص'; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + FieldByName('RKPlCode').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListDHSXQJG.Button1Click(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmClothContractListDHSXQJG.Button2Click(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmClothContractListDHSXQJG.Button3Click(Sender: TObject); +begin + ToolButton4.Click; +end; + +procedure TfrmClothContractListDHSXQJG.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNo.Text))<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothQty=DHQty-TPQtyHZ, '); + sql.Add(' A.*,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName from ContractSX_Cloth_DH A '); + sql.add(' inner join ContractSX_Main B on A.Mainid=B.Mainid'); + sql.Add('inner join ContractSX_Sub C on A.Subid=C.Subid'); + sql.Add(' where B.ConNO like '''+'%'+Trim(ConNo.Text)+'%'+''' and A.DHType=''ǰӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListDHSXQJG.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from ContractSX_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and A.DHType=''ǰ'' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListHZ.dfm b/盛纺贸易管理/U_ClothContractListHZ.dfm new file mode 100644 index 0000000..5e0b7f1 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListHZ.dfm @@ -0,0 +1,1137 @@ +object frmClothContractListHZ: TfrmClothContractListHZ + Left = 267 + Top = 175 + Width = 980 + Height = 513 + Caption = #37319#36141#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 964 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton1: TToolButton + Left = 252 + Top = 0 + Caption = #22797#21046 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 374 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 437 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 500 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 964 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = conPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + end + object cxPageControl1: TcxPageControl + Left = 0 + Top = 86 + Width = 964 + Height = 147 + ActivePage = cxTabSheet1 + Style = 9 + TabOrder = 2 + Visible = False + OnChange = cxPageControl1Change + ClientRectBottom = 147 + ClientRectRight = 964 + ClientRectTop = 19 + object cxTabSheet1: TcxTabSheet + Caption = #32433#32447#37319#36141#21512#21516 + ImageIndex = 0 + end + object cxTabSheet6: TcxTabSheet + Caption = #26579#32433#21512#21516 + ImageIndex = 5 + object cxGrid6: TcxGrid + Left = 0 + Top = 0 + Width = 964 + Height = 128 + Align = alClient + TabOrder = 0 + object Tv6: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn56 + end + item + Kind = skSum + Column = cxGridDBColumn58 + end + item + Kind = skSum + Column = cxGridDBColumn60 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn50: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object cxGridDBColumn51: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn52: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object cxGridDBColumn53: TcxGridDBColumn + Caption = #21152#24037#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn54: TcxGridDBColumn + Caption = #21152#24037#21333#20301 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object cxGridDBColumn55: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object cxGridDBColumn56: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn57: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object cxGridDBColumn58: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object cxGridDBColumn59: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object cxGridDBColumn60: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn61: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGridLevel5: TcxGridLevel + GridView = Tv6 + end + end + end + object cxTabSheet2: TcxTabSheet + Caption = #32455#36896#21512#21516 + ImageIndex = 1 + object cxGrid2: TcxGrid + Left = 0 + Top = 0 + Width = 964 + Height = 128 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn8 + end + item + Kind = skSum + Column = cxGridDBColumn10 + end + item + Kind = skSum + Column = cxGridDBColumn12 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #21152#24037#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #21152#24037#21333#20301 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object cxGridDBColumn10: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object cxGridDBColumn11: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object cxGridDBColumn12: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn13: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + end + object cxTabSheet3: TcxTabSheet + Caption = #22383#24067#37319#36141#21512#21516 + ImageIndex = 2 + object cxGrid3: TcxGrid + Left = 0 + Top = 0 + Width = 964 + Height = 128 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn20 + end + item + Kind = skSum + Column = cxGridDBColumn22 + end + item + Kind = skSum + Column = cxGridDBColumn24 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object cxGridDBColumn14: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn15: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object cxGridDBColumn16: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object cxGridDBColumn17: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object cxGridDBColumn18: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object cxGridDBColumn19: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object cxGridDBColumn20: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn21: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object cxGridDBColumn22: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object cxGridDBColumn23: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object cxGridDBColumn24: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn25: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + end + object cxTabSheet4: TcxTabSheet + Caption = #26579#33394#21512#21516 + ImageIndex = 3 + object cxGrid4: TcxGrid + Left = 0 + Top = 0 + Width = 964 + Height = 128 + Align = alClient + TabOrder = 0 + object Tv4: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn32 + end + item + Kind = skSum + Column = cxGridDBColumn34 + end + item + Kind = skSum + Column = cxGridDBColumn36 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn26: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object cxGridDBColumn27: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn28: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object cxGridDBColumn29: TcxGridDBColumn + Caption = #26579#33394#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn30: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object cxGridDBColumn31: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object cxGridDBColumn32: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn33: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object cxGridDBColumn34: TcxGridDBColumn + Caption = #26579#33394#21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 59 + end + object cxGridDBColumn35: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object cxGridDBColumn36: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn37: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGridLevel3: TcxGridLevel + GridView = Tv4 + end + end + end + object cxTabSheet5: TcxTabSheet + Caption = #21518#21152#24037#21512#21516 + ImageIndex = 4 + object cxGrid5: TcxGrid + Left = 0 + Top = 0 + Width = 964 + Height = 128 + Align = alClient + TabOrder = 0 + object Tv5: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn44 + end + item + Kind = skSum + Column = cxGridDBColumn46 + end + item + Kind = skSum + Column = cxGridDBColumn48 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn38: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object cxGridDBColumn39: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object cxGridDBColumn40: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object cxGridDBColumn41: TcxGridDBColumn + Caption = #21152#24037#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object cxGridDBColumn42: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object cxGridDBColumn43: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object cxGridDBColumn44: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn45: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object cxGridDBColumn46: TcxGridDBColumn + Caption = #21152#24037#21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object cxGridDBColumn47: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object cxGridDBColumn48: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object cxGridDBColumn49: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGridLevel4: TcxGridLevel + GridView = Tv5 + end + end + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 964 + Height = 389 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + Column = v1Column1 + end + item + Kind = skSum + Column = v1PRTQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 88 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 82 + end + object v1Column5: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object v1PRTUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTQty: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 1128 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 880 + Top = 56 + end +end diff --git a/盛纺贸易管理/U_ClothContractListHZ.pas b/盛纺贸易管理/U_ClothContractListHZ.pas new file mode 100644 index 0000000..2a16015 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListHZ.pas @@ -0,0 +1,1250 @@ +unit U_ClothContractListHZ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxPC; + +type + TfrmClothContractListHZ = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + CDS_PRT: TClientDataSet; + cxPageControl1: TcxPageControl; + cxTabSheet1: TcxTabSheet; + cxTabSheet2: TcxTabSheet; + cxTabSheet3: TcxTabSheet; + cxTabSheet4: TcxTabSheet; + cxTabSheet5: TcxTabSheet; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxGrid4: TcxGrid; + Tv4: TcxGridDBTableView; + cxGridDBColumn26: TcxGridDBColumn; + cxGridDBColumn27: TcxGridDBColumn; + cxGridDBColumn28: TcxGridDBColumn; + cxGridDBColumn29: TcxGridDBColumn; + cxGridDBColumn30: TcxGridDBColumn; + cxGridDBColumn31: TcxGridDBColumn; + cxGridDBColumn32: TcxGridDBColumn; + cxGridDBColumn33: TcxGridDBColumn; + cxGridDBColumn34: TcxGridDBColumn; + cxGridDBColumn35: TcxGridDBColumn; + cxGridDBColumn36: TcxGridDBColumn; + cxGridDBColumn37: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + cxGrid5: TcxGrid; + Tv5: TcxGridDBTableView; + cxGridDBColumn38: TcxGridDBColumn; + cxGridDBColumn39: TcxGridDBColumn; + cxGridDBColumn40: TcxGridDBColumn; + cxGridDBColumn41: TcxGridDBColumn; + cxGridDBColumn42: TcxGridDBColumn; + cxGridDBColumn43: TcxGridDBColumn; + cxGridDBColumn44: TcxGridDBColumn; + cxGridDBColumn45: TcxGridDBColumn; + cxGridDBColumn46: TcxGridDBColumn; + cxGridDBColumn47: TcxGridDBColumn; + cxGridDBColumn48: TcxGridDBColumn; + cxGridDBColumn49: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridDBColumn18: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGridDBColumn19: TcxGridDBColumn; + cxGridDBColumn20: TcxGridDBColumn; + cxGridDBColumn21: TcxGridDBColumn; + cxGridDBColumn22: TcxGridDBColumn; + cxGridDBColumn23: TcxGridDBColumn; + cxGridDBColumn24: TcxGridDBColumn; + cxGridDBColumn25: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + cxTabSheet6: TcxTabSheet; + cxGrid6: TcxGrid; + Tv6: TcxGridDBTableView; + cxGridDBColumn50: TcxGridDBColumn; + cxGridDBColumn51: TcxGridDBColumn; + cxGridDBColumn52: TcxGridDBColumn; + cxGridDBColumn53: TcxGridDBColumn; + cxGridDBColumn54: TcxGridDBColumn; + cxGridDBColumn55: TcxGridDBColumn; + cxGridDBColumn56: TcxGridDBColumn; + cxGridDBColumn57: TcxGridDBColumn; + cxGridDBColumn58: TcxGridDBColumn; + cxGridDBColumn59: TcxGridDBColumn; + cxGridDBColumn60: TcxGridDBColumn; + cxGridDBColumn61: TcxGridDBColumn; + cxGridLevel5: TcxGridLevel; + ToolButton1: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1Qty1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTUnit: TcxGridDBColumn; + v1PRTQty: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure conPress(Sender: TObject; var Key: Char); + procedure cxPageControl1Change(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListHZ: TfrmClothContractListHZ; + +implementation +uses + U_DataLink,U_ClothContractInPutSX,U_Fun,U_ProductOrderList,U_ZDYHelp,U_ClothContractInPutSXMX + ,U_ClothContractInPutHZ,U_ClothContractInPutPB; + +{$R *.dfm} + +procedure TfrmClothContractListHZ.FormDestroy(Sender: TObject); +begin + frmClothContractListHZ:=nil; +end; + +procedure TfrmClothContractListHZ.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListHZ.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬбSX',Tv1,'ָʾ'); + WriteCxGrid('ɴ߼ӹͬ',Tv2,'ָʾ'); + WriteCxGrid('ɹͬ',Tv3,'ָʾ'); + WriteCxGrid('Ⱦɫͬ',Tv4,'ָʾ'); + WriteCxGrid('ӹͬ',Tv5,'ָʾ'); +end; + +procedure TfrmClothContractListHZ.InitGrid(); +begin + if cxPageControl1.ActivePageIndex=0 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end else + if cxPageControl1.ActivePageIndex=1 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConNoM=A.ConNo,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + sql.Add(' where A.FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); + sql.Add(' and A.FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''); + SQL.Add(' and A.ConType=''ɴǰӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end else + if cxPageControl1.ActivePageIndex=2 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConNoM=A.ConNo,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + sql.Add(' where A.FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); + sql.Add(' and A.FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''); + SQL.Add(' and A.ConType=''ɴ߼ӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end else + if cxPageControl1.ActivePageIndex=3 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end else + if cxPageControl1.ActivePageIndex=4 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConNoM=A.ConNo,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + sql.Add(' where A.FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); + sql.Add(' and A.FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''); + SQL.Add(' and A.ConType=''Ⱦɫӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end else + if cxPageControl1.ActivePageIndex=5 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConNoM=A.ConNo,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + sql.Add(' where A.FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); + sql.Add(' and A.FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''); + SQL.Add(' and A.ConType=''ӹ'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; + +end; + +procedure TfrmClothContractListHZ.InitForm(); +begin + ReadCxGrid('ͬбSX',Tv1,'ָʾ'); + ReadCxGrid('ɴ߼ӹͬ',Tv2,'ָʾ'); + ReadCxGrid('ɹͬ',Tv3,'ָʾ'); + ReadCxGrid('Ⱦɫͬ',Tv4,'ָʾ'); + ReadCxGrid('ӹͬ',Tv5,'ָʾ'); + if Trim(DParameters1)='1' then + begin + TBPrint.Visible:=False; + v1Column1.Visible:=False; + v1Column1.Hidden:=True; + v1PRTUnit.Visible:=False; + v1PRTUnit.Hidden:=True; + v1PRTQty.Visible:=False; + v1PRTQty.Hidden:=True; + end else + begin + v1Column1.Visible:=True; + v1Column1.Hidden:=False; + v1PRTUnit.Visible:=True; + v1PRTUnit.Hidden:=False; + v1PRTQty.Visible:=True; + v1PRTQty.Hidden:=False; + TBPrint.Visible:=True; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmClothContractListHZ.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListHZ.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if cxPageControl1.ActivePageIndex=0 then + begin + try + frmClothContractInPutSXMX:=TfrmClothContractInPutSXMX.Create(Application); + with frmClothContractInPutSXMX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutSXMX.Free; + end; + end else + if cxPageControl1.ActivePageIndex=1 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='ClothSX'; + CPFlagName:='ɴ'; + Caption:='Ⱦɴͬ'; + FactoryFlag:='PBFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ɴǰӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=2 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='ClothSX'; + CPFlagName:='ɴ'; + Caption:='֯ͬ'; + FactoryFlag:='PBFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ɴ߼ӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=3 then + begin + try + frmClothContractInPutPB:=TfrmClothContractInPutPB.Create(Application); + with frmClothContractInPutPB do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutPB.Free; + end; + end else + if cxPageControl1.ActivePageIndex=4 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='Cloth'; + CPFlagName:=''; + Caption:='Ⱦɫӹͬ'; + FactoryFlag:='RanFactory'; + v1Column3.Caption:='Ⱦ'; + v1Price.Caption:='Ⱦɫ'; + FConType:='Ⱦɫӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=5 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='Cloth'; + CPFlagName:=''; + Caption:='ӹͬ'; + FactoryFlag:='HZLFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end; + +end; + +procedure TfrmClothContractListHZ.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + + if cxPageControl1.ActivePageIndex=0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѿݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; + end else + if cxPageControl1.ActivePageIndex=1 then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + Order_Main.Delete; + end else + if cxPageControl1.ActivePageIndex=2 then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + Order_Main.Delete; + end else + if cxPageControl1.ActivePageIndex=3 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѿݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + Order_Main.Delete; + end else + if cxPageControl1.ActivePageIndex=4 then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + Order_Main.Delete; + end else + if cxPageControl1.ActivePageIndex=5 then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractHZ_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + Order_Main.Delete; + end; + +end; + +function TfrmClothContractListHZ.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListHZ.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ͬб',cxGrid1); +end; + +procedure TfrmClothContractListHZ.TBPrintClick(Sender: TObject); +var + fPrintFile,FConNoM:string; + +begin + if Order_Main.IsEmpty then Exit; + if cxPageControl1.ActivePageIndex=0 then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɴ߶ͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString); + end else + if cxPageControl1.ActivePageIndex=1 then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɴǰӹͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Main A inner join ContractHZ_Sub B on A.MainId=B.MainId'); + SQL.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNo').AsString); + end else + if cxPageControl1.ActivePageIndex=2 then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɴ߼ӹͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Main A inner join ContractHZ_Sub B on A.MainId=B.MainId'); + SQL.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNo').AsString); + end else + if cxPageControl1.ActivePageIndex=3 then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString); + end else + if cxPageControl1.ActivePageIndex=4 then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\Ⱦɫͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Main A inner join ContractHZ_Sub B on A.MainId=B.MainId'); + SQL.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNo').AsString); + end else + if cxPageControl1.ActivePageIndex=5 then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ӹͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select * from ContractHZ_Main A inner join ContractHZ_Sub B on A.MainId=B.MainId'); + SQL.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNo').AsString); + end; + + + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\Ӧĺͬ.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmClothContractListHZ.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListHZ.TBAddClick(Sender: TObject); +begin + if cxPageControl1.ActivePageIndex=0 then + begin + try + frmClothContractInPutSXMX:=TfrmClothContractInPutSXMX.Create(Application); + with frmClothContractInPutSXMX do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutSXMX.Free; + end; + end else + if cxPageControl1.ActivePageIndex=1 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=0; + FMainId:=''; + CPFlag:='ClothSX'; + CPFlagName:='ɴ'; + Caption:='Ⱦɴͬ'; + FactoryFlag:='PBFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ɴǰӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=2 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=0; + FMainId:=''; + CPFlag:='ClothSX'; + CPFlagName:='ɴ'; + Caption:='֯ͬ'; + FactoryFlag:='PBFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ɴ߼ӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=3 then + begin + try + frmClothContractInPutPB:=TfrmClothContractInPutPB.Create(Application); + with frmClothContractInPutPB do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutPB.Free; + end; + end else + if cxPageControl1.ActivePageIndex=4 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=0; + FMainId:=''; + CPFlag:='Cloth'; + CPFlagName:=''; + Caption:='Ⱦɫӹͬ'; + FactoryFlag:='RanFactory'; + v1Column3.Caption:='Ⱦ'; + v1Price.Caption:='Ⱦɫ'; + FConType:='Ⱦɫӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=5 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=0; + FMainId:=''; + CPFlag:='Cloth'; + CPFlagName:=''; + Caption:='ӹͬ'; + FactoryFlag:='HZLFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end; + +end; + +procedure TfrmClothContractListHZ.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListHZ.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListHZ.conPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + if cxPageControl1.ActivePageIndex=0 then + begin + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''; + end else + if cxPageControl1.ActivePageIndex=1 then + begin + sql.Add('select A.*,B.*,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + SQL.Add(' where A.ConNO like'''+'%'+Trim(ConNoM.Text)+'%'+''''); + sql.Add(' and A.ConType=''ɴ߼ӹ'''); + end else + if cxPageControl1.ActivePageIndex=2 then + begin + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''; + end else + if cxPageControl1.ActivePageIndex=3 then + begin + sql.Add('select A.*,B.*,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + SQL.Add(' where A.ConNO like'''+'%'+Trim(ConNoM.Text)+'%'+''''); + sql.Add(' and A.ConType=''Ⱦɫӹ'''); + end else + if cxPageControl1.ActivePageIndex=4 then + begin + sql.Add('select A.*,B.*,Money=(B.Price*B.C_Qty) from ContractHZ_Main A inner join ContractHZ_Sub B on A.Mainid=B.MainId '); + SQL.Add(' where A.ConNO like'''+'%'+Trim(ConNoM.Text)+'%'+''''); + sql.Add(' and A.ConType=''ӹ'''); + end; + + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListHZ.cxPageControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListHZ.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if cxPageControl1.ActivePageIndex=0 then + begin + try + frmClothContractInPutSXMX:=TfrmClothContractInPutSXMX.Create(Application); + with frmClothContractInPutSXMX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + PCopyInt:=1; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutSXMX.Free; + end; + end else + if cxPageControl1.ActivePageIndex=1 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + PCopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='ClothSX'; + CPFlagName:='ɴ'; + Caption:='Ⱦɴͬ'; + FactoryFlag:='PBFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ɴǰӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=2 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + PCopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='ClothSX'; + CPFlagName:='ɴ'; + Caption:='֯ͬ'; + FactoryFlag:='PBFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ɴ߼ӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=3 then + begin + try + frmClothContractInPutPB:=TfrmClothContractInPutPB.Create(Application); + with frmClothContractInPutPB do + begin + PState:=1; + PCopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutPB.Free; + end; + end else + if cxPageControl1.ActivePageIndex=4 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + PCopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='Cloth'; + CPFlagName:=''; + Caption:='Ⱦɫӹͬ'; + FactoryFlag:='RanFactory'; + v1Column3.Caption:='Ⱦ'; + v1Price.Caption:='Ⱦɫ'; + FConType:='Ⱦɫӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end else + if cxPageControl1.ActivePageIndex=5 then + begin + try + frmClothContractInPutHZ:=TfrmClothContractInPutHZ.Create(Application); + with frmClothContractInPutHZ do + begin + PState:=1; + PCopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString); + CPFlag:='Cloth'; + CPFlagName:=''; + Caption:='ӹͬ'; + FactoryFlag:='HZLFactory'; + v1Column3.Caption:='ӹ'; + v1Price.Caption:='ӹ'; + FConType:='ӹ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutHZ.Free; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListLL.dfm b/盛纺贸易管理/U_ClothContractListLL.dfm new file mode 100644 index 0000000..edf99eb --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListLL.dfm @@ -0,0 +1,771 @@ +object frmClothContractListLL: TfrmClothContractListLL + Left = 187 + Top = 109 + Width = 1163 + Height = 620 + Caption = #22383#24067#39046#26009 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1147 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + end + object ToolButton5: TToolButton + Left = 402 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1147 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 748 + Top = 22 + Width = 39 + Height = 12 + Caption = #22383#24067#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 892 + Top = 22 + Width = 26 + Height = 12 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + OnKeyPress = ConNoKeyPress + end + object C_CodeName: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + object FactoryNoName: TEdit + Tag = 2 + Left = 792 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoChange + end + object FirstName: TEdit + Tag = 2 + Left = 920 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = ConNoChange + end + end + object Panel2: TPanel + Left = 0 + Top = 281 + Width = 1147 + Height = 301 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 2 + Top = 34 + Width = 1143 + Height = 265 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v3TPPS + end + item + Kind = skSum + Column = v3Column2 + end + item + Kind = skSum + Column = v3Column5 + end + item + Kind = skSum + Column = v3Column4 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 98 + end + object v3Column9: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MprtCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object cxGridDBPRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v3Column12: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v3Column10: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'PrtKuanNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3Column16: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taRightJustify + Options.Editing = False + Options.Focusing = False + Width = 67 + end + object v3Column13: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'PRTOrderKgQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 56 + end + object v3Column14: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 60 + end + object v3Column15: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 62 + end + object v3Column6: TcxGridDBColumn + Caption = #39046#26009#26085#26399 + DataBinding.FieldName = 'TPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v3Column3: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3TPPS: TcxGridDBColumn + Caption = #21305#25968#37327 + DataBinding.FieldName = 'TPPS' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v3Column2: TcxGridDBColumn + Caption = #25968#37327'('#35745#21010')' + DataBinding.FieldName = 'TPQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 97 + end + object v3Column5: TcxGridDBColumn + Caption = #35745#21010#32553#29575'(%)' + DataBinding.FieldName = 'Qty3' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column5PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column4: TcxGridDBColumn + Caption = #25968#37327#20844#24046 + DataBinding.FieldName = 'Qty2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column1: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'TPUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3Column7: TcxGridDBColumn + Caption = #25237#22383#20154 + DataBinding.FieldName = 'TPPerson' + HeaderAlignmentHorz = taCenter + Width = 47 + end + object v3Column11: TcxGridDBColumn + Caption = #32568#36153 + DataBinding.FieldName = 'GangFee' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v3Column8: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'TPNote' + HeaderAlignmentHorz = taCenter + Width = 105 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1143 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton11: TToolButton + Left = 126 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + OnClick = ToolButton5Click + end + object ToolButton1: TToolButton + Left = 233 + Top = 0 + AutoSize = True + Caption = #19968#38190#26367#25442 + ImageIndex = 54 + OnClick = ToolButton1Click + end + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 273 + Width = 1147 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1147 + Height = 187 + Align = alClient + TabOrder = 4 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 114 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 112 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 79 + end + object v1Column5: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 99 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DHUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column6: TcxGridDBColumn + Caption = #21040#36135#21305#25968 + DataBinding.FieldName = 'DHPS' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object v1Column3: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column7: TcxGridDBColumn + Caption = #30333#22383#21305#25968 + DataBinding.FieldName = 'ClothPS' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object v1Column8: TcxGridDBColumn + Caption = #30333#22383#25968#37327 + DataBinding.FieldName = 'ClothQty' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 752 + Top = 216 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 968 + Top = 480 + end +end diff --git a/盛纺贸易管理/U_ClothContractListLL.pas b/盛纺贸易管理/U_ClothContractListLL.pas new file mode 100644 index 0000000..d8d3dfd --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListLL.pas @@ -0,0 +1,1214 @@ +unit U_ClothContractListLL; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxDropDownEdit, cxCheckBox, cxCurrencyEdit, cxCalc; + +type + TfrmClothContractListLL = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNo: TEdit; + Label5: TLabel; + C_CodeName: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + Panel2: TPanel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBPRTColor: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxSplitter1: TcxSplitter; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column3: TcxGridDBColumn; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton11: TToolButton; + v1Column5: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + Label6: TLabel; + FactoryNoName: TEdit; + Label7: TLabel; + FirstName: TEdit; + v3Column1: TcxGridDBColumn; + v3TPPS: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + ToolButton1: TToolButton; + v3Column11: TcxGridDBColumn; + v3Column12: TcxGridDBColumn; + v3Column13: TcxGridDBColumn; + v3Column14: TcxGridDBColumn; + v3Column15: TcxGridDBColumn; + v3Column16: TcxGridDBColumn; + v3Column9: TcxGridDBColumn; + v3Column10: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column2PropertiesEditValueChanged(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton1Click(Sender: TObject); + procedure v3Column5PropertiesEditValueChanged(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + function YFData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListLL: TfrmClothContractListLL; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderListSel,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractListLL.FormDestroy(Sender: TObject); +begin + frmClothContractListLL:=nil; +end; + +procedure TfrmClothContractListLL.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListLL.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬll1',Tv1,'ָʾ'); + WriteCxGrid('ͬllr11',Tv3,'ָʾ'); +end; + +procedure TfrmClothContractListLL.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothPS=A.DHPS-A.TPPSHZ,ClothQty=A.DHQty-A.TPQtyHZ, A.DHUnit,SXMainId='''',SXDHID='''',A.MainId,A.SubId'); + SQL.Add(' ,A.DHID,A.DHPS,A.TPPSHZ,A.TPQtyHZ,A.DHQty,A.FirstName,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName '); + sql.Add(' from Contract_Cloth_DH A inner join Contract_Main B on A.Mainid=B.Mainid'); + sql.Add(' inner join Contract_Sub C on A.Subid=C.Subid'); + SQL.Add(' where B.FillTime>='''+FormatDateTime('yyyy-MM-dd',BegDate.Date)+''' '); + sql.Add(' and B.Filltime<'''+FormatDateTime('yyyy-MM-dd',EndDate.Date+1)+''''); + sql.add(' and isnull(A.DHType,'''')='''''); + sql.Add(' union all'); + sql.Add(' select ClothPS=A.DHPS-A.TPPSHZ,ClothQty=A.DHQty-A.TPQtyHZ,A.DHUnit,A.SXMainId,A.SXDHID,A.MainId,A.SubId '); + SQL.Add(' ,A.DHID,A.DHPS,A.TPPSHZ,A.TPQtyHZ,A.DHQty,A.FirstName '); + sql.Add(',ConNo=(select Top 1 ConNo from ContractSX_Main SM where SM.MainId=A.SXMainId)'); + sql.Add(',C_CodeName=A.PBName,C_Spec=A.PBSpec,MFQty=A.PBMF,KZQty=A.PBKZ'); + SQL.Add(',FactoryNoName=(select Top 1 FirstName from ContractSX_Cloth_DH SD where SD.DHID=A.SXDHID)'); + sql.Add(' from Contract_Cloth_DH A '); + SQL.Add(' where exists(select * from ContractSX_Main B where B.MainId=A.SXMainId'); + SQL.Add(' and B.FillTime>='''+FormatDateTime('yyyy-MM-dd',BegDate.Date)+''' '); + sql.Add(' and B.Filltime<'''+FormatDateTime('yyyy-MM-dd',EndDate.Date+1)+''')'); + sql.Add(' and isnull(A.DHType,'''')<>'''' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractListLL.InitForm(); +begin + + ReadCxGrid('ͬll1',Tv1,'ָʾ'); + ReadCxGrid('ͬllr11',Tv3,'ָʾ'); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-30; + InitGrid(); +end; + +procedure TfrmClothContractListLL.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListLL.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListLL.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListLL.ConNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListLL.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListLL.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + begin + try + frmProductOrderListSel:=TfrmProductOrderListSel.Create(Application); + with frmProductOrderListSel do + begin + OrderNoM.Text:=Trim(self.Order_Main.fieldbyname('ConNo').AsString); + if ShowModal=1 then + begin + with frmProductOrderListSel.Order_Main do + begin + frmProductOrderListSel.Order_Main.First; + while not frmProductOrderListSel.Order_Main.Eof do + begin + if frmProductOrderListSel.Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with Self.ClientDataSet3 do + begin + Self.ClientDataSet3.Append; + Self.ClientDataSet3.FieldByName('OrdSubId').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('SubId').AsString); + Self.ClientDataSet3.FieldByName('OrderNo').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('OrderNo').AsString); + Self.ClientDataSet3.FieldByName('MPRTCodeName').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTCodeName').AsString); + Self.ClientDataSet3.FieldByName('MPRTSpec').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTSpec').AsString); + Self.ClientDataSet3.FieldByName('PRTColor').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('PRTColor').AsString); + Self.ClientDataSet3.FieldByName('PRTkuanNo').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('PRTkuanNo').AsString); + Self.ClientDataSet3.FieldByName('SOrddefstr1').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('SOrddefstr1').AsString); + Self.ClientDataSet3.FieldByName('PRTOrderKgQty').Value:=0; + Self.ClientDataSet3.FieldByName('PRTOrderQty').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('PRTOrderQty').AsString); + Self.ClientDataSet3.FieldByName('OrderUnit').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('OrderUnit').AsString); + Self.ClientDataSet3.FieldByName('PRTHX').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('PRTHX').AsString); + Self.ClientDataSet3.FieldByName('TPUnit').Value:=Self.Order_Main.FieldByName('DHUnit').Value; + Self.ClientDataSet3.FieldByName('Qty2').Value:=0; + end; + end; + frmProductOrderListSel.Order_Main.Next; + end; + end; + end; + end; + finally + frmProductOrderListSel.Free; + end; + end; +end; + +procedure TfrmClothContractListLL.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListLL.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListLL.ToolButton5Click(Sender: TObject); +var + maxno,LLIdx,FDW:string; +begin + if ClientDataSet3.IsEmpty then Exit; + ToolBar1.SetFocus; + if ClientDataSet3.Locate('OrderNo',null,[]) then + begin + Application.MessageBox('ָŲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPPS',null,[]) then + begin + Application.MessageBox('ƥΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('Qty2',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPUnit',null,[]) then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + ClientDataSet3.DisableControls; + with ClientDataSet3 do + begin + First; + while not Eof do + begin + + if Trim(FDW)='' then + begin + FDW:=Trim(ClientDataSet3.fieldbyname('TPUnit').AsString); + end; + if FDW<>Trim(ClientDataSet3.fieldbyname('TPUnit').AsString) then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + Next; + end; + end; + ClientDataSet3.EnableControls; + if Trim(Order_Main.fieldbyname('DHUnit').AsString)='M' then + begin + if ClientDataSet3.Locate('TPUnit','Kg',[]) then + begin + Application.MessageBox('ͬλΪM,λΪKg','ʾ',0); + Exit; + end; + end; + + BegDate.SetFocus; + if tv3.DataController.Summary.FooterSummaryValues[0]> Order_Main.FieldByName('dhps').AsFloat then + begin + Application.MessageBox('Ͷƥܴڵƥ','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','Contract_Cloth_LLMx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SXMainId').Value:=Trim(Order_Main.fieldbyname('SXMainId').AsString); + FieldByName('SXDHId').Value:=Trim(Order_Main.fieldbyname('SXDHId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHId').Value:=Trim(Order_Main.fieldbyname('DHId').AsString); + FieldByName('MXId').Value:=Trim(maxno); + FieldByName('OrdSubId').Value:=Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPPerson').Value:=ClientDataSet3.fieldbyname('TPPerson').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Trim(ADOQueryCmd.fieldbyname('TPUnit').AsString)<>Trim(ClientDataSet3.fieldbyname('TPUnit').AsString) then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A where A.DHIDHelp in('); + sql.Add('select LLID from Contract_Cloth_LL B where B.DHID='''+Trim(ClientDataSet3.fieldbyname('DHID').AsString)+''''); + sql.Add(' and OrdSubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString)+''' and JXJGFlag=1)'); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ӹ޸λ!','ʾ',0); + Exit; + end; + end; + end; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Trim(ADOQueryCmd.fieldbyname('TPUnit').AsString)<>Trim(ClientDataSet3.fieldbyname('TPUnit').AsString) then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai A where SubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ѻزֲ޸λ!','ʾ',0); + Exit; + end; + end; + end; + + + FieldByName('TPUnit').Value:=ClientDataSet3.fieldbyname('TPUnit').Value; + {if ClientDataSet3.FieldByName('JXJGFlag').AsBoolean=True then + begin + FieldByName('JXJGFlag').Value:=1; + end else + begin + FieldByName('JXJGFlag').Value:=0; + end; } + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('JGPrice').Value:=ClientDataSet3.fieldbyname('JGPrice').Value + else + FieldByName('JGPrice').Value:=0; + if Trim(ClientDataSet3.fieldbyname('GangFee').AsString)<>'' then + FieldByName('GangFee').Value:=ClientDataSet3.fieldbyname('GangFee').Value + else + FieldByName('GangFee').Value:=0; + FieldByName('TPPS').AsFloat:=ClientDataSet3.fieldbyname('TPPS').AsFloat; + if Trim(ClientDataSet3.fieldbyname('Qty1').AsString)<>'' then + FieldByName('Qty1').Value:=ClientDataSet3.fieldbyname('Qty1').Value + else + FieldByName('Qty1').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + FieldByName('Qty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + else + FieldByName('Qty2').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty3').AsString)<>'' then + FieldByName('Qty3').Value:=ClientDataSet3.fieldbyname('Qty3').Value + else + FieldByName('Qty3').Value:=0; + if Trim(ClientDataSet3.fieldbyname('TPUnit').AsString)='Kg' then + begin + FieldByName('TPMQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value*1.00*1000 + /(Order_Main.fieldbyname('MFQty').Value*1.00/100*Order_Main.fieldbyname('KZQty').Value); + end else + begin + FieldByName('TPMQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value; + end; + if Trim(ClientDataSet3.fieldbyname('TPUnit').AsString)='Kg' then + begin + FieldByName('MQty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value*1.00*1000 + /(Order_Main.fieldbyname('MFQty').Value*1.00/100*Order_Main.fieldbyname('KZQty').Value); + end else + begin + FieldByName('MQty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value; + end; + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)=Trim(Order_Main.FieldByName('DHUnit').AsString) then + begin + FieldByName('TPYZQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value; + end else + begin + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)='M' then + begin + FieldByName('TPYZQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + *Order_Main.fieldbyname('MFQty').Value*1.00/100 + *Order_Main.fieldbyname('KZQty').Value*1.00/1000; + end; + end; + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)=Trim(Order_Main.FieldByName('DHUnit').AsString) then + begin + FieldByName('YZQty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value; + end else + begin + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)='M' then + begin + FieldByName('YZQty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + *Order_Main.fieldbyname('MFQty').Value*1.00/100 + *Order_Main.fieldbyname('KZQty').Value*1.00/1000; + end; + end; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('MXId').Value:=Trim(maxno); + Post; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set TPMQtyHZ=(select Sum(TPMQty) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.DHID)'); + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)=Trim(Order_Main.FieldByName('DHUnit').AsString) then + begin + sql.Add(',TPQtyHZ=(select Sum(TPQty) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.DHID)'); + end else + begin + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)='M' then + begin + SQL.Add(',TPQtyHZ=(select sum(TPQty*(PBMF/100)*(PBKZ/1000)) from Contract_Cloth_LLMx A '); + sql.Add(' where A.DHID=Contract_Cloth_DH.DHID )'); + end; + end; + sql.Add(',TPPSHZ=(select Sum(TPPS) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + sql.Add(' and OrdSubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + { with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(Max(LLIdx),0) LLIdx from Contract_Cloth_LL'); + Open; + end; + LLIdx:=IntToStr(ADOQueryTemp.fieldbyname('LLIdx').AsInteger+1); } + if GetLSNo(ADOQueryCmd,maxno,'LL','Contract_Cloth_LL',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('LLID').Value:=Trim(maxno); + FieldByName('DHID').Value:=Trim(Order_Main.fieldbyname('DHID').AsString); + FieldByName('SXDHID').Value:=Trim(Order_Main.fieldbyname('SXDHID').AsString); + FieldByName('SXMainID').Value:=Trim(Order_Main.fieldbyname('SXMainID').AsString); + FieldByName('FirstNo').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('FirstName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('OrdSubId').Value:=Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString); + FieldByName('TPUnit').Value:=Trim(ClientDataSet3.fieldbyname('TPUnit').AsString); + FieldByName('LLIdx').Value:=1; + Post; + end; + + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_LL Set TPUnit='''+Trim(ClientDataSet3.fieldbyname('TPUnit').AsString)+''''); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set TPPS=(select sum(TPPS) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)=Trim(Order_Main.FieldByName('DHUnit').AsString) then + begin + sql.Add(',TPQty=(select Sum(TPQty) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + end else + begin + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)='M' then + begin + SQL.Add(',TPQty=(select sum(TPQty*(PBMF/100)*(PBKZ/1000)) from Contract_Cloth_LLMx A '); + sql.Add(' where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + end; + end; + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)=Trim(Order_Main.FieldByName('DHUnit').AsString) then + begin + sql.Add(',BCPQty=(select Sum(Qty2) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + end else + begin + if Trim(ClientDataSet3.FieldByName('TPUnit').AsString)='M' then + begin + SQL.Add(',BCPQty=(select sum(A.Qty2*(PBMF/100)*(PBKZ/1000)) from Contract_Cloth_LLMx A '); + sql.Add(' where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + end; + end; + sql.Add(', TPMQty=(select sum(TPMQty) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add(', BCPMQty=(select sum(MQty2) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add('where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and OrdSubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubid').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_LL where not exists('); + sql.Add(' select * from Contract_Cloth_LLMX LM where LM.DHID=Contract_Cloth_LL.DHID '); + sql.Add(' and LM.OrdSubId=Contract_Cloth_LL.OrdSubId )'); + sql.Add(' and DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + sql.Add(' and isnull(DHIDHelp,'''')='''' '); + ExecSQL; + end; + { if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('¸׷쳣!','ʾ',0); + Exit; + end; } + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListLL.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou:String; +begin + Result:=False; + { with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main.fieldbyname('DHid').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + if GetLSNo(ADOQueryCmd,YFID,'GF','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡ׷Ӧʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main.fieldbyname('DHid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('YFType').Value:='Զ'; + //FieldByName('Price').Value:=Order_Main.fieldbyname('Price').Value; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:=''; + FieldByName('YFName').Value:='׷'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set CRTime='''+Trim(ClientDataSet3.fieldbyname('TPDate').AsString)+''''); + sql.Add(' where YFID='''+Trim(ADOQueryTemp.fieldbyname('YFID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Count(*),0) from Contract_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId and A.GangFee>0)'); + sql.Add(',Money=(select isnull(sum(GangFee),0) from Contract_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId and A.GangFee>0)'); + sql.Add(',BBMoney=(select isnull(sum(GangFee),0) from Contract_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId and A.GangFee>0)'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('DHid').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.FieldByName('Money').AsFloat=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + end; + Result:=True; +end; + +procedure TfrmClothContractListLL.ToolButton3Click(Sender: TObject); +begin + + begin + if ClientDataSet3.IsEmpty then Exit; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add(' select * from Contract_Cloth_LL where DHID='''+Trim(ClientDataSet3.fieldbyname('DHID').AsString)+''''); + sql.Add(' and OrdSubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('HCQty').AsFloat>0 then + begin + Application.MessageBox('лز,ɾ!','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set TPQtyHZ=(select isnull(Sum(TPYZQty),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.DHID)'); + sql.Add(',TPMQtyHZ=(select isnull(Sum(TPMQty),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.DHID)'); + sql.Add(',TPPSHZ=(select isnull(Sum(TPPS),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set TPPS=(select isnull(sum(TPPS),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add(', TPQty=(select isnull(sum(TPYZQty),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add(', BCPQty=(select isnull(sum(YZQty2),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add(', TPMQty=(select isnull(sum(TPMQty),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add(', BCPMQty=(select isnull(sum(MQty2),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.DHID'); + SQL.Add(' and A.OrdSubId=Contract_Cloth_LL.OrdSubId)'); + sql.Add('where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and OrdSubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubid').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_LL where not exists('); + sql.Add(' select * from Contract_Cloth_LLMX LM where LM.DHID=Contract_Cloth_LL.DHID '); + sql.Add(' and LM.OrdSubId=Contract_Cloth_LL.OrdSubId )'); + sql.Add(' and DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + sql.Add(' and isnull(DHIDHelp,'''')='''' '); + ExecSQL; + end; + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('¸׷쳣!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + ClientDataSet3.Delete; + except; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; + + {with Order_Main do + begin + Edit; + if ClientDataSet3.IsEmpty=False then + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0] + else + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value; + Post; + end; } + end; +end; + +procedure TfrmClothContractListLL.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListLL.v3Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty2:String; +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + {with Order_Main do + begin + Edit; + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0]; + Post; + end; } + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + begin + qty1:=ClientDataSet3.fieldbyname('TPQty').AsString; + end else + begin + qty1:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + begin + Qty2:=ClientDataSet3.fieldbyname('Qty2').AsString; + end else + begin + Qty2:='0'; + end; + if StrToFloat(qty1)*StrToFloat(qty2)=0 then Exit; + with ClientDataSet3 do + begin + Edit; + FieldByName('qty3').Value:=(StrToFloat(qty1)-StrToFloat(qty2))*1.00*100/StrToFloat(qty1); + Post; + end; + +end; + +procedure TfrmClothContractListLL.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNo.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + //sql.Add('select ClothPS=A.DHPS-A.TPPSHZ,ClothQty=A.DHQty-A.TPQtyHZ, '); + // SQL.Add(' A.DHID,A.DHPS,A.TPPSHZ,A.TPQtyHZ,A.DHQty,A.DHUnit,A.FirstName,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName '); + sql.Add('select ClothPS=A.DHPS-A.TPPSHZ,ClothQty=A.DHQty-A.TPQtyHZ, A.DHUnit,SXMainId='''',SXDHID='''',A.MainId,A.SubId'); + SQL.Add(' ,A.DHID,A.DHPS,A.TPPSHZ,A.TPQtyHZ,A.DHQty,A.FirstName,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName '); + sql.Add(' from Contract_Cloth_DH A inner join Contract_Main B on A.Mainid=B.Mainid'); + sql.Add(' inner join Contract_Sub C on A.Subid=C.Subid'); + SQL.Add(' where B.ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + sql.add(' and isnull(A.DHType,'''')='''''); + sql.Add(' union all'); + + // sql.Add(' select ClothPS=A.DHPS-A.TPPSHZ,ClothQty=A.DHQty-A.TPQtyHZ, '); + //SQL.Add(' A.DHID,A.DHPS,A.TPPSHZ,A.TPQtyHZ,A.DHQty,A.DHUnit,A.FirstName '); + //sql.Add(',ConNo=(select Top 1 ConNo from ContractSX_Main SM where SM.MainId=A.SXMainId)'); + //sql.Add(',C_CodeName=A.PBName,C_Spec=A.PBSpec,MFQty=A.PBMF,KZQty=A.PBKZ'); + //SQL.Add(',FactoryNoName=(select Top 1 FirstName from ContractSX_Cloth_DH SD where SD.DHID=A.SXDHID)'); + sql.Add(' select ClothPS=A.DHPS-A.TPPSHZ,ClothQty=A.DHQty-A.TPQtyHZ,A.DHUnit,A.SXMainId,A.SXDHID,A.MainId,A.SubId '); + SQL.Add(' ,A.DHID,A.DHPS,A.TPPSHZ,A.TPQtyHZ,A.DHQty,A.FirstName '); + sql.Add(',ConNo=(select Top 1 ConNo from ContractSX_Main SM where SM.MainId=A.SXMainId)'); + sql.Add(',C_CodeName=A.PBName,C_Spec=A.PBSpec,MFQty=A.PBMF,KZQty=A.PBKZ'); + SQL.Add(',FactoryNoName=(select Top 1 FirstName from ContractSX_Cloth_DH SD where SD.DHID=A.SXDHID)'); + sql.Add(' from Contract_Cloth_DH A '); + SQL.Add(' where exists(select * from ContractSX_Main B where B.MainId=A.SXMainId'); + SQL.Add(' and B.ConNO like '''+'%'+Trim(ConNo.Text)+'%'+''')'); + sql.Add(' and isnull(A.DHType,'''')<>'''' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListLL.ToolButton1Click(Sender: TObject); + var + FColumn:String; +begin + if ClientDataSet3.IsEmpty then Exit; + ToolBar2.SetFocus; + FColumn:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)='OrderNo' then Exit; + if Trim(FColumn)='PRTColor' then Exit; + if Application.MessageBox('ȷҪһ滻','ʾ',32+4)<>IDYES then Exit; + OneKeyPost(Tv3,ClientDataSet3); +end; + +procedure TfrmClothContractListLL.v3Column5PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty3:String; + +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + {with Order_Main do + begin + Edit; + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0]; + Post; + end; } + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + begin + qty1:=ClientDataSet3.fieldbyname('TPQty').AsString; + end else + begin + qty1:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('qty3').AsString)<>'' then + begin + qty3:=ClientDataSet3.fieldbyname('qty3').AsString; + end else + begin + qty3:='0'; + end; + //if StrToFloat(qty1)*StrToFloat(qty2)=0 then Exit; + with ClientDataSet3 do + begin + Edit; + FieldByName('qty2').Value:=StrToFloat(qty1)*(1-StrToFloat(qty3)*1.00/100); + Post; + end; + +end; + +procedure TfrmClothContractListLL.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + if Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo,B.PrtKuanNo,B.SOrddefstr1,B.PRTHX,B.PRTOrderQty,B.OrderUnit, '); + SQL.Add(' Case when B.OrderUnit=''M'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as decimal(18,0))'); + SQL.Add(' when B.OrderUnit=''Y'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 As decimal(18,0)) '); + sql.Add(' when B.OrderUnit=''Kg'' then B.PRTOrderQty else Null end as PRTOrderKgQty'); + SQL.Add('from Contract_Cloth_LLMx A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.DHId='''+Trim(Order_Main.fieldbyname('DHId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListLLSX.dfm b/盛纺贸易管理/U_ClothContractListLLSX.dfm new file mode 100644 index 0000000..f6b5448 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListLLSX.dfm @@ -0,0 +1,712 @@ +object frmClothContractListLLSX: TfrmClothContractListLLSX + Left = 184 + Top = 11 + Width = 1280 + Height = 705 + Caption = #32433#32447#32455#25104#21697#20986#24211 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1272 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + end + object ToolButton5: TToolButton + Left = 402 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1272 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 748 + Top = 22 + Width = 52 + Height = 12 + Caption = #21407#26448#26009#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 892 + Top = 22 + Width = 39 + Height = 12 + Caption = #22383#24067#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + OnKeyPress = ConNoKeyPress + end + object C_CodeName: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + object FactoryNoName: TEdit + Tag = 2 + Left = 800 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoChange + end + object FirstName: TEdit + Tag = 2 + Left = 932 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = ConNoChange + end + end + object Panel2: TPanel + Left = 0 + Top = 370 + Width = 1272 + Height = 301 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 2 + Top = 34 + Width = 1268 + Height = 265 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v3Column65 + end + item + Kind = skSum + Column = v3Column3 + end + item + Kind = skSum + Column = v3Column9 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v3Column4 + end + item + Kind = skAverage + Column = v3Column5 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v3Column7: TcxGridDBColumn + Caption = #22383#24067#21517#31216 + DataBinding.FieldName = 'PBName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column7PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 92 + end + object v3Column11: TcxGridDBColumn + Caption = #22383#24067#35268#26684 + DataBinding.FieldName = 'PBSpec' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3Column12: TcxGridDBColumn + Caption = #22383#24067#38376#24133'(cm)' + DataBinding.FieldName = 'PBMF' + HeaderAlignmentHorz = taCenter + Width = 94 + end + object v3Column13: TcxGridDBColumn + Caption = #22383#24067#20811#37325'(g/'#13217')' + DataBinding.FieldName = 'PBKZ' + HeaderAlignmentHorz = taCenter + Width = 113 + end + object v3Column14: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'ToName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column14PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v3Column6: TcxGridDBColumn + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'TPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v3Column3: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3Column9: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'SXPS' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v3Column4: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'SXQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column1: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'SXUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v3Column5: TcxGridDBColumn + Caption = #25240#31639#31995#25968 + DataBinding.FieldName = 'ZSXS' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column65: TcxGridDBColumn + Caption = #32433#32447#25968#37327 + DataBinding.FieldName = 'TPQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3Column10: TcxGridDBColumn + Caption = #21152#24037#21333#20215 + DataBinding.FieldName = 'JGPrice' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v3Column8: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'TPNote' + Width = 105 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1268 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 119 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton11: TToolButton + Left = 126 + Top = 0 + Caption = #32455#25104#21697#20986#24211#30830#23450 + ImageIndex = 114 + OnClick = ToolButton5Click + end + object ToolButton1: TToolButton + Left = 245 + Top = 0 + AutoSize = True + Caption = #19968#38190#26367#25442 + ImageIndex = 54 + OnClick = ToolButton1Click + end + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 362 + Width = 1272 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1272 + Height = 276 + Align = alClient + TabOrder = 4 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column8 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 114 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 112 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 106 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #21407#26448#26009#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 79 + end + object v1Column5: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DHUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column3: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column8: TcxGridDBColumn + Caption = #32433#32447#25968#37327 + DataBinding.FieldName = 'ClothQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 752 + Top = 216 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 1128 + Top = 472 + end +end diff --git a/盛纺贸易管理/U_ClothContractListLLSX.pas b/盛纺贸易管理/U_ClothContractListLLSX.pas new file mode 100644 index 0000000..3262e6e --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListLLSX.pas @@ -0,0 +1,1045 @@ +unit U_ClothContractListLLSX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxDropDownEdit, cxCheckBox; + +type + TfrmClothContractListLLSX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNo: TEdit; + Label5: TLabel; + C_CodeName: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + Panel2: TPanel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + v3Column6: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column65: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxSplitter1: TcxSplitter; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column3: TcxGridDBColumn; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton11: TToolButton; + v1Column5: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + Label6: TLabel; + FactoryNoName: TEdit; + Label7: TLabel; + FirstName: TEdit; + v3Column1: TcxGridDBColumn; + v3Column9: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v3Column10: TcxGridDBColumn; + ToolButton1: TToolButton; + v3Column7: TcxGridDBColumn; + v3Column11: TcxGridDBColumn; + v3Column12: TcxGridDBColumn; + v3Column13: TcxGridDBColumn; + v3Column14: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column2PropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure v3Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column14PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + function YFData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListLLSX: TfrmClothContractListLLSX; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderListSel,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractListLLSX.FormDestroy(Sender: TObject); +begin + frmClothContractListLLSX:=nil; +end; + +procedure TfrmClothContractListLLSX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListLLSX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('AAͬll1SX',Tv1,'ָʾ'); + WriteCxGrid('AAͬllr1SX',Tv3,'ָʾ'); +end; + +procedure TfrmClothContractListLLSX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothQty=DHQty-TPQtyHZ, '); + sql.Add(' A.*,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName from ContractSX_Cloth_DH A '); + sql.add(' inner join ContractSX_Main B on A.Mainid=B.Mainid'); + sql.Add('inner join ContractSX_Sub C on A.Subid=C.Subid'); + //sql.Add(' where B.FillTime>=:begdate and B.Filltime<:enddate and A.DHType=''ǰ'' '); + sql.Add(' where B.FillTime>=:begdate and B.Filltime<:enddate '); + Parameters.ParamByName('begdate').Value:=BegDate.Date; + Parameters.ParamByName('enddate').Value:=EndDate.Date+1; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + + if Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + SQL.Add('from ContractSX_Cloth_LLMx A '); + sql.Add('where A.DHId='''+Trim(Order_Main.fieldbyname('DHId').AsString)+''''); + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListLLSX.InitForm(); +begin + + ReadCxGrid('AAͬll1SX',Tv1,'ָʾ'); + ReadCxGrid('AAͬllr1SX',Tv3,'ָʾ'); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-30; + InitGrid(); +end; + +procedure TfrmClothContractListLLSX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListLLSX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListLLSX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListLLSX.ConNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListLLSX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListLLSX.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListLLSX.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListLLSX.ToolButton5Click(Sender: TObject); +var + maxno,LLIdx,FDW:string; +begin + if ClientDataSet3.IsEmpty then Exit; + ToolBar1.SetFocus; + if ClientDataSet3.Locate('PBName',null,[]) then + begin + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('SXPS',null,[]) then + begin + Application.MessageBox('ƥΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('SXQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('JGPrice',null,[]) then + begin + Application.MessageBox('ӹ۲Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPQty',null,[]) then + begin + Application.MessageBox('ɴΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('SXUnit',null,[]) then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('PBMF',null,[]) then + begin + Application.MessageBox('ŷΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('PBKZ',null,[]) then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + ClientDataSet3.DisableControls; + with ClientDataSet3 do + begin + First; + while not Eof do + begin + + if Trim(FDW)='' then + begin + FDW:=Trim(ClientDataSet3.fieldbyname('SXUnit').AsString); + end; + if FDW<>Trim(ClientDataSet3.fieldbyname('SXUnit').AsString) then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + Next; + end; + end; + { with ClientDataSet3 do + begin + First; + while not Eof do + begin + + if Trim(FDW)='' then + begin + FDW:=Trim(ClientDataSet3.fieldbyname('SXUnit').AsString); + end; + if FDW<>Trim(ClientDataSet3.fieldbyname('SXUnit').AsString) then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + Next; + end; + end;} + ClientDataSet3.EnableControls; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','ContractSX_Cloth_LLMx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHId').Value:=Trim(Order_Main.fieldbyname('DHId').AsString); + FieldByName('MXId').Value:=Trim(maxno); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + FieldByName('TPUnit').Value:='Kg'; + FieldByName('SXUnit').Value:=ClientDataSet3.fieldbyname('SXUnit').Value; + FieldByName('PBName').Value:=ClientDataSet3.fieldbyname('PBName').Value; + FieldByName('PBSpec').Value:=ClientDataSet3.fieldbyname('PBSpec').Value; + FieldByName('PBMF').Value:=ClientDataSet3.fieldbyname('PBMF').Value; + FieldByName('PBKZ').Value:=ClientDataSet3.fieldbyname('PBKZ').Value; + FieldByName('ToName').Value:=ClientDataSet3.fieldbyname('ToName').Value; + if Trim(ClientDataSet3.fieldbyname('SXUnit').AsString)='Kg' then + begin + FieldByName('SXMQty').Value:=ClientDataSet3.FieldByName('SXQty').Value*1.00 + /(ClientDataSet3.FieldByName('PBKZ').Value/1000) + /(ClientDataSet3.FieldByName('PBMF').Value/100) + end else + begin + FieldByName('SXMQty').Value:=ClientDataSet3.FieldByName('SXQty').Value; + end; + + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('JGPrice').Value:=ClientDataSet3.fieldbyname('JGPrice').Value + else + FieldByName('JGPrice').Value:=0; + + if Trim(ClientDataSet3.fieldbyname('SXPS').AsString)<>'' then + FieldByName('SXPS').Value:=ClientDataSet3.fieldbyname('SXPS').Value + else + FieldByName('SXPS').Value:=0; + if Trim(ClientDataSet3.fieldbyname('SXQty').AsString)<>'' then + FieldByName('SXQty').Value:=ClientDataSet3.fieldbyname('SXQty').Value + else + FieldByName('SXQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('ZSXS').AsString)<>'' then + FieldByName('ZSXS').Value:=ClientDataSet3.fieldbyname('ZSXS').Value + else + FieldByName('ZSXS').Value:=0; + FieldByName('TPYZQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('MXId').Value:=Trim(maxno); + Post; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' Update ContractSX_Cloth_DH Set '); + sql.Add(' TPQtyHZ=(select Sum(TPQty) from ContractSX_Cloth_LLMx A where A.DHID=ContractSX_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,maxno,'SD','Contract_Cloth_DH',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('DHID').Value:=Trim(maxno); + FieldByName('SXDHID').Value:=Trim(Order_Main.fieldbyname('DHID').AsString); + FieldByName('SXMainID').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('FirstNo').Value:=Trim(ClientDataSet3.fieldbyname('ToName').AsString); + FieldByName('FirstName').Value:=Trim(ClientDataSet3.fieldbyname('ToName').AsString); + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHUnit').Value:=Trim(ClientDataSet3.fieldbyname('SXUnit').AsString); + FieldByName('PBName').Value:=Trim(ClientDataSet3.fieldbyname('PBName').AsString); + FieldByName('PBSpec').Value:=Trim(ClientDataSet3.fieldbyname('PBSpec').AsString); + FieldByName('PBKZ').Value:=Trim(ClientDataSet3.fieldbyname('PBKZ').AsString); + FieldByName('PBMF').Value:=Trim(ClientDataSet3.fieldbyname('PBMF').AsString); + FieldByName('DHType').Value:='ɴ߼ӹ'; + Post; + end; + + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set DHUnit='''+Trim(ClientDataSet3.fieldbyname('SXUnit').AsString)+''''); + sql.Add(' ,PBName='''+Trim(ClientDataSet3.fieldbyname('PBName').AsString)+''''); + sql.Add(' ,PBSpec='''+Trim(ClientDataSet3.fieldbyname('PBSpec').AsString)+''''); + sql.Add(' ,PBMF='+Trim(ClientDataSet3.fieldbyname('PBMF').AsString)); + sql.Add(' ,PBKZ='+Trim(ClientDataSet3.fieldbyname('PBKZ').AsString)); + sql.Add(' ,SXMainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.add(',DHType=''ɴ߼ӹ'' '); + sql.Add(' where DHID='''+Trim(ADOQueryTemp.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_DH Set DHPS=(select isnull(sum(SXPS),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(',SXTPQty=(select isnull(Sum(TPQty),0) from ContractSX_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(',DHQty=(select isnull(Sum(SXQty),0) from ContractSX_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + SQL.Add(',DHMQty=(select isnull(sum(SXMQty),0) from ContractSX_Cloth_LLMx A '); + SQL.Add(' where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add('where SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('¼ӹ쳣!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListLLSX.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou:String; +begin + Result:=False; +{ with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; } + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main.fieldbyname('DHid').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + if GetLSNo(ADOQueryCmd,YFID,'PJ','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӹӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main.fieldbyname('DHid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=ClientDataSet3.fieldbyname('JGPrice').Value; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:='Kg'; + FieldByName('YFName').Value:='ɴߺӹ'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set CRTime='''+Trim(ClientDataSet3.fieldbyname('TPDate').AsString)+''''); + sql.add(',Price='+ClientDataSet3.fieldbyname('JGPrice').AsString); + sql.Add(' where YFID='''+Trim(ADOQueryTemp.fieldbyname('YFID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(sum(TPQty),0) from ContractSX_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId )'); + sql.Add(',Money=(select isnull(sum(TPQty*JGPrice),0) from ContractSX_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId )'); + sql.Add(',BBMoney=(select isnull(sum(TPQty*JGPrice),0) from ContractSX_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('DHid').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.FieldByName('Money').AsFloat=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + end; + Result:=True; +end; + +procedure TfrmClothContractListLLSX.ToolButton3Click(Sender: TObject); +begin + + begin + if ClientDataSet3.IsEmpty then Exit; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set TPQtyHZ=(select isnull(Sum(TPYZQty),0) from ContractSX_Cloth_LLMx A where A.DHID=ContractSX_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_DH Set DHPS=(select isnull(sum(SXPS),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(', DHQty=(select isnull(sum(SXQty),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(', DHMQty=(select isnull(sum(SXMQty),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add('where SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_DH where not exists('); + sql.Add(' select * from ContractSX_Cloth_LLMX LM where LM.DHID=Contract_Cloth_DH.SXDHID '); + sql.Add(' and LM.ToName=Contract_Cloth_DH.FirstName )'); + sql.Add(' and SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + ExecSQL; + end; + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ӹ쳣!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + ClientDataSet3.Delete; + except; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; + + {with Order_Main do + begin + Edit; + if ClientDataSet3.IsEmpty=False then + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0] + else + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value; + Post; + end; } + end; +end; + +procedure TfrmClothContractListLLSX.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListLLSX.v3Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty2,qty3:String; + +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + if Trim(ClientDataSet3.fieldbyname('ZSXS').AsString)<>'' then + begin + Qty3:=ClientDataSet3.fieldbyname('ZSXS').AsString; + end else + begin + Qty3:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('SXQty').AsString)<>'' then + begin + Qty1:=ClientDataSet3.fieldbyname('SXQty').AsString; + end else + begin + Qty1:='0'; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('TPQty').Value:=StrToFloat(qty1)*StrToFloat(qty3); + Post; + end; + +end; + +procedure TfrmClothContractListLLSX.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + SQL.Add('from ContractSX_Cloth_LLMx A '); + sql.Add('where A.DHId='''+Trim(Order_Main.fieldbyname('DHId').AsString)+''''); + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); + +end; + +procedure TfrmClothContractListLLSX.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNo.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothQty=DHQty-TPQtyHZ, '); + sql.Add('A.*,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName from ContractSX_Cloth_DH A '); + Sql.Add('inner join ContractSX_Main B on A.Mainid=B.Mainid'); + sql.Add('inner join ContractSX_Sub C on A.Subid=C.Subid'); + SQL.Add(' where B.ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''' '); //and A.DHType=''ǰ'' + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListLLSX.ToolButton1Click(Sender: TObject); + var + FColumn:String; +begin + if ClientDataSet3.IsEmpty then Exit; + ToolBar2.SetFocus; + FColumn:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)='OrderNo' then Exit; + if Trim(FColumn)='PRTColor' then Exit; + if Application.MessageBox('ȷҪһ滻','ʾ',32+4)<>IDYES then Exit; + OneKeyPost(Tv3,ClientDataSet3); +end; + +procedure TfrmClothContractListLLSX.ToolButton8Click(Sender: TObject); +begin + + IF Order_Main.IsEmpty then exit; + if ClientDataSet3.IsEmpty then + begin + + with ClientDataSet3 do + begin + Append; + FieldByName('TPDate').Value:=SGetServerDate(ADOQueryTemp); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + FieldByName('ToName').Value:=Trim(ADOQueryTemp.fieldbyname('RanFactory').AsString); + Post; + end; + end else + begin + CopyAddRow(Tv3,ClientDataSet3); + with ClientDataSet3 do + begin + Edit; + FieldByName('MXID').Value:=''; + FieldByName('TPDate').Value:=null; + FieldByName('SXPS').Value:=null; + FieldByName('SXQty').Value:=null; + FieldByName('TPQty').Value:=null; + Post; + end; + end; + +end; + +procedure TfrmClothContractListLLSX.v3Column7PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Cloth'; + flagname:=''; + if ShowModal=1 then + begin + Self.ClientDataSet3.Edit; + Self.ClientDataSet3.FieldByName('PBName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //Self.ClientDataSet3.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListLLSX.v3Column14PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='Ⱦ'; + MainType:='RanFactory'; + if ShowModal=1 then + begin + Self.ClientDataSet3.Edit; + self.ClientDataSet3.FieldByName('ToName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListLLSXQJG.dfm b/盛纺贸易管理/U_ClothContractListLLSXQJG.dfm new file mode 100644 index 0000000..2434503 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListLLSXQJG.dfm @@ -0,0 +1,712 @@ +object frmClothContractListLLSXQJG: TfrmClothContractListLLSXQJG + Left = 37 + Top = 2 + Width = 1280 + Height = 705 + Caption = #32433#32447#21069#21152#24037#20986#24211 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1272 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + end + object ToolButton5: TToolButton + Left = 402 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1272 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 748 + Top = 22 + Width = 52 + Height = 12 + Caption = #21407#26448#26009#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 892 + Top = 22 + Width = 39 + Height = 12 + Caption = #22383#24067#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + OnKeyPress = ConNoKeyPress + end + object C_CodeName: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + object FactoryNoName: TEdit + Tag = 2 + Left = 800 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoChange + end + object FirstName: TEdit + Tag = 2 + Left = 932 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = ConNoChange + end + end + object Panel2: TPanel + Left = 0 + Top = 367 + Width = 1272 + Height = 301 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 2 + Top = 34 + Width = 1268 + Height = 265 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v3Column65 + end + item + Kind = skSum + Column = v3Column3 + end + item + Kind = skSum + Column = v3Column9 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v3Column4 + end + item + Kind = skAverage + Column = v3Column5 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v3Column7: TcxGridDBColumn + Caption = #22383#24067#21517#31216 + DataBinding.FieldName = 'PBName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column7PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 92 + end + object v3Column11: TcxGridDBColumn + Caption = #22383#24067#35268#26684 + DataBinding.FieldName = 'PBSpec' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3Column12: TcxGridDBColumn + Caption = #22383#24067#38376#24133'(cm)' + DataBinding.FieldName = 'PBMF' + HeaderAlignmentHorz = taCenter + Width = 94 + end + object v3Column13: TcxGridDBColumn + Caption = #22383#24067#20811#37325'(g/'#13217')' + DataBinding.FieldName = 'PBKZ' + HeaderAlignmentHorz = taCenter + Width = 113 + end + object v3Column14: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'ToName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column14PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v3Column6: TcxGridDBColumn + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'TPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v3Column3: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3Column9: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'SXPS' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v3Column4: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'SXQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column1: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'SXUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v3Column5: TcxGridDBColumn + Caption = #25240#31639#31995#25968 + DataBinding.FieldName = 'ZSXS' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column65: TcxGridDBColumn + Caption = #32433#32447#25968#37327 + DataBinding.FieldName = 'TPQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3Column10: TcxGridDBColumn + Caption = #21152#24037#21333#20215 + DataBinding.FieldName = 'JGPrice' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v3Column8: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'TPNote' + Width = 105 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1268 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 119 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton8Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton11: TToolButton + Left = 126 + Top = 0 + Caption = #32455#25104#21697#20986#24211#30830#23450 + ImageIndex = 114 + OnClick = ToolButton5Click + end + object ToolButton1: TToolButton + Left = 245 + Top = 0 + AutoSize = True + Caption = #19968#38190#26367#25442 + ImageIndex = 54 + OnClick = ToolButton1Click + end + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 359 + Width = 1272 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1272 + Height = 273 + Align = alClient + TabOrder = 4 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column8 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 114 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 112 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 106 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #21407#26448#26009#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 79 + end + object v1Column5: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DHUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column3: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column8: TcxGridDBColumn + Caption = #32433#32447#25968#37327 + DataBinding.FieldName = 'ClothQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 752 + Top = 216 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 1128 + Top = 472 + end +end diff --git a/盛纺贸易管理/U_ClothContractListLLSXQJG.pas b/盛纺贸易管理/U_ClothContractListLLSXQJG.pas new file mode 100644 index 0000000..3b6e75a --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListLLSXQJG.pas @@ -0,0 +1,1030 @@ +unit U_ClothContractListLLSXQJG; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxDropDownEdit, cxCheckBox; + +type + TfrmClothContractListLLSXQJG = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNo: TEdit; + Label5: TLabel; + C_CodeName: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + Panel2: TPanel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + v3Column6: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column65: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxSplitter1: TcxSplitter; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column3: TcxGridDBColumn; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton11: TToolButton; + v1Column5: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + Label6: TLabel; + FactoryNoName: TEdit; + Label7: TLabel; + FirstName: TEdit; + v3Column1: TcxGridDBColumn; + v3Column9: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v3Column10: TcxGridDBColumn; + ToolButton1: TToolButton; + v3Column7: TcxGridDBColumn; + v3Column11: TcxGridDBColumn; + v3Column12: TcxGridDBColumn; + v3Column13: TcxGridDBColumn; + v3Column14: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column2PropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure v3Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column14PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + function YFData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListLLSXQJG: TfrmClothContractListLLSXQJG; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderListSel,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractListLLSXQJG.FormDestroy(Sender: TObject); +begin + ClothContractListLLSXQJG:=nil; +end; + +procedure TfrmClothContractListLLSXQJG.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListLLSXQJG.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('AAͬll1SXQJG',Tv1,'ָʾ'); + WriteCxGrid('AAͬllr1SXQJG',Tv3,'ָʾ'); +end; + +procedure TfrmClothContractListLLSXQJG.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothQty=DHQty-TPQtyHZ, '); + sql.Add(' A.*,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName from ContractSX_Cloth_DH A '); + sql.add(' inner join ContractSX_Main B on A.Mainid=B.Mainid'); + sql.Add('inner join ContractSX_Sub C on A.Subid=C.Subid'); + sql.Add(' where B.FillTime>=:begdate and B.Filltime<:enddate '); + + Parameters.ParamByName('begdate').Value:=BegDate.Date; + Parameters.ParamByName('enddate').Value:=EndDate.Date+1; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractListLLSXQJG.InitForm(); +begin + + ReadCxGrid('AAͬll1SXQJG',Tv1,'ָʾ'); + ReadCxGrid('AAͬllr1SXQJG',Tv3,'ָʾ'); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-30; + InitGrid(); +end; + +procedure TfrmClothContractListLLSXQJG.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListLLSXQJG.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListLLSXQJG.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListLLSXQJG.ConNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListLLSXQJG.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListLLSXQJG.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListLLSXQJG.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListLLSXQJG.ToolButton5Click(Sender: TObject); +var + maxno,LLIdx,FDW:string; +begin + if ClientDataSet3.IsEmpty then Exit; + ToolBar1.SetFocus; + if ClientDataSet3.Locate('PBName',null,[]) then + begin + Application.MessageBox('ƲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('SXPS',null,[]) then + begin + Application.MessageBox('ƥΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('SXQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('JGPrice',null,[]) then + begin + Application.MessageBox('ӹ۲Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPQty',null,[]) then + begin + Application.MessageBox('ɴΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('SXUnit',null,[]) then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('PBMF',null,[]) then + begin + Application.MessageBox('ŷΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('PBKZ',null,[]) then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + ClientDataSet3.DisableControls; + with ClientDataSet3 do + begin + First; + while not Eof do + begin + + if Trim(FDW)='' then + begin + FDW:=Trim(ClientDataSet3.fieldbyname('SXUnit').AsString); + end; + if FDW<>Trim(ClientDataSet3.fieldbyname('SXUnit').AsString) then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + Next; + end; + end; + { with ClientDataSet3 do + begin + First; + while not Eof do + begin + + if Trim(FDW)='' then + begin + FDW:=Trim(ClientDataSet3.fieldbyname('SXUnit').AsString); + end; + if FDW<>Trim(ClientDataSet3.fieldbyname('SXUnit').AsString) then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + Next; + end; + end;} + ClientDataSet3.EnableControls; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','ContractSX_Cloth_LLMx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHId').Value:=Trim(Order_Main.fieldbyname('DHId').AsString); + FieldByName('MXId').Value:=Trim(maxno); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + FieldByName('TPUnit').Value:='Kg'; + FieldByName('SXUnit').Value:=ClientDataSet3.fieldbyname('SXUnit').Value; + FieldByName('PBName').Value:=ClientDataSet3.fieldbyname('PBName').Value; + FieldByName('PBSpec').Value:=ClientDataSet3.fieldbyname('PBSpec').Value; + FieldByName('PBMF').Value:=ClientDataSet3.fieldbyname('PBMF').Value; + FieldByName('PBKZ').Value:=ClientDataSet3.fieldbyname('PBKZ').Value; + FieldByName('ToName').Value:=ClientDataSet3.fieldbyname('ToName').Value; + if Trim(ClientDataSet3.fieldbyname('SXUnit').AsString)='Kg' then + begin + FieldByName('SXMQty').Value:=ClientDataSet3.FieldByName('SXQty').Value*1.00 + /(ClientDataSet3.FieldByName('PBKZ').Value/1000) + /(ClientDataSet3.FieldByName('PBMF').Value/100) + end else + begin + FieldByName('SXMQty').Value:=ClientDataSet3.FieldByName('SXQty').Value; + end; + + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('JGPrice').Value:=ClientDataSet3.fieldbyname('JGPrice').Value + else + FieldByName('JGPrice').Value:=0; + + if Trim(ClientDataSet3.fieldbyname('SXPS').AsString)<>'' then + FieldByName('SXPS').Value:=ClientDataSet3.fieldbyname('SXPS').Value + else + FieldByName('SXPS').Value:=0; + if Trim(ClientDataSet3.fieldbyname('SXQty').AsString)<>'' then + FieldByName('SXQty').Value:=ClientDataSet3.fieldbyname('SXQty').Value + else + FieldByName('SXQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('ZSXS').AsString)<>'' then + FieldByName('ZSXS').Value:=ClientDataSet3.fieldbyname('ZSXS').Value + else + FieldByName('ZSXS').Value:=0; + FieldByName('TPYZQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('MXId').Value:=Trim(maxno); + Post; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' Update ContractSX_Cloth_DH Set '); + sql.Add(' TPQtyHZ=(select Sum(TPQty) from ContractSX_Cloth_LLMx A where A.DHID=ContractSX_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + sql.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,maxno,'SD','Contract_Cloth_DH',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_DH where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('DHID').Value:=Trim(maxno); + FieldByName('SXDHID').Value:=Trim(Order_Main.fieldbyname('DHID').AsString); + FieldByName('SXMainID').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('FirstNo').Value:=Trim(ClientDataSet3.fieldbyname('ToName').AsString); + FieldByName('FirstName').Value:=Trim(ClientDataSet3.fieldbyname('ToName').AsString); + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('DHUnit').Value:=Trim(ClientDataSet3.fieldbyname('SXUnit').AsString); + FieldByName('PBName').Value:=Trim(ClientDataSet3.fieldbyname('PBName').AsString); + FieldByName('PBSpec').Value:=Trim(ClientDataSet3.fieldbyname('PBSpec').AsString); + FieldByName('PBKZ').Value:=Trim(ClientDataSet3.fieldbyname('PBKZ').AsString); + FieldByName('PBMF').Value:=Trim(ClientDataSet3.fieldbyname('PBMF').AsString); + FieldByName('DHType').Value:='ɴ߼ӹ'; + Post; + end; + + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_DH Set DHUnit='''+Trim(ClientDataSet3.fieldbyname('SXUnit').AsString)+''''); + sql.Add(' ,PBName='''+Trim(ClientDataSet3.fieldbyname('PBName').AsString)+''''); + sql.Add(' ,PBSpec='''+Trim(ClientDataSet3.fieldbyname('PBSpec').AsString)+''''); + sql.Add(' ,PBMF='+Trim(ClientDataSet3.fieldbyname('PBMF').AsString)); + sql.Add(' ,PBKZ='+Trim(ClientDataSet3.fieldbyname('PBKZ').AsString)); + sql.Add(' ,SXMainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.add(',DHType=''ɴ߼ӹ'' '); + sql.Add(' where DHID='''+Trim(ADOQueryTemp.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_DH Set DHPS=(select isnull(sum(SXPS),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(',SXTPQty=(select isnull(Sum(TPQty),0) from ContractSX_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(',DHQty=(select isnull(Sum(SXQty),0) from ContractSX_Cloth_LLMx A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + SQL.Add(',DHMQty=(select isnull(sum(SXMQty),0) from ContractSX_Cloth_LLMx A '); + SQL.Add(' where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add('where SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('¼ӹ쳣!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListLLSXQJG.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main.fieldbyname('DHid').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + if GetLSNo(ADOQueryCmd,YFID,'PJ','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӹӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main.fieldbyname('DHid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=ClientDataSet3.fieldbyname('JGPrice').Value; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('QtyUnit').Value:='Kg'; + FieldByName('YFName').Value:='ӹ'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set CRTime='''+Trim(ClientDataSet3.fieldbyname('TPDate').AsString)+''''); + sql.add(',Price='+ClientDataSet3.fieldbyname('JGPrice').AsString); + sql.Add(' where YFID='''+Trim(ADOQueryTemp.fieldbyname('YFID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(sum(TPQty),0) from ContractSX_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId )'); + sql.Add(',Money=(select isnull(sum(TPQty*JGPrice),0) from ContractSX_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId )'); + sql.Add(',BBMoney=(select isnull(sum(TPQty*JGPrice),0) from ContractSX_Cloth_LLMX A '); + SQL.Add(' where A.DHId=YF_Money_CR.YFTypeId )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('DHid').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if ADOQueryTemp.FieldByName('Money').AsFloat=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + end; + Result:=True; +end; + +procedure TfrmClothContractListLLSXQJG.ToolButton3Click(Sender: TObject); +begin + + begin + if ClientDataSet3.IsEmpty then Exit; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update ContractSX_Cloth_DH Set TPQtyHZ=(select isnull(Sum(TPYZQty),0) from ContractSX_Cloth_LLMx A where A.DHID=ContractSX_Cloth_DH.DHID)'); + sql.Add(' where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_DH Set DHPS=(select isnull(sum(SXPS),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(', DHQty=(select isnull(sum(SXQty),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add(', DHMQty=(select isnull(sum(SXMQty),0) from ContractSX_Cloth_LLMX A where A.DHID=Contract_Cloth_DH.SXDHID'); + SQL.Add(' and A.ToName=Contract_Cloth_DH.FirstName)'); + sql.Add('where SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_DH where not exists('); + sql.Add(' select * from ContractSX_Cloth_LLMX LM where LM.DHID=Contract_Cloth_DH.SXDHID '); + sql.Add(' and LM.ToName=Contract_Cloth_DH.FirstName )'); + sql.Add(' and SXDHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + ExecSQL; + end; + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ӹ쳣!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + ClientDataSet3.Delete; + except; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; + + {with Order_Main do + begin + Edit; + if ClientDataSet3.IsEmpty=False then + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0] + else + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value; + Post; + end; } + end; +end; + +procedure TfrmClothContractListLLSXQJG.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListLLSXQJG.v3Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty2,qty3:String; + +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + if Trim(ClientDataSet3.fieldbyname('ZSXS').AsString)<>'' then + begin + Qty3:=ClientDataSet3.fieldbyname('ZSXS').AsString; + end else + begin + Qty3:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('SXQty').AsString)<>'' then + begin + Qty1:=ClientDataSet3.fieldbyname('SXQty').AsString; + end else + begin + Qty1:='0'; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('TPQty').Value:=StrToFloat(qty1)*StrToFloat(qty3); + Post; + end; + +end; + +procedure TfrmClothContractListLLSXQJG.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + SQL.Add('from ContractSX_Cloth_LLMx A '); + sql.Add('where A.DHId='''+Trim(Order_Main.fieldbyname('DHId').AsString)+''''); + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); + +end; + +procedure TfrmClothContractListLLSXQJG.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNo.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select ClothQty=DHQty-TPQtyHZ '); + sql.Add('A.*,B.ConNo,C.C_CodeName,C.C_Spec,C.MFQty,C.KZQty,B.FactoryNoName from ContractSX_Cloth_DH A '); + Sql.Add('inner join ContractSX_Main B on A.Mainid=B.Mainid'); + sql.Add('inner join ContractSX_Sub C on A.Subid=C.Subid'); + SQL.Add(' where B.ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothContractListLLSXQJG.ToolButton1Click(Sender: TObject); + var + FColumn:String; +begin + if ClientDataSet3.IsEmpty then Exit; + ToolBar2.SetFocus; + FColumn:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)='OrderNo' then Exit; + if Trim(FColumn)='PRTColor' then Exit; + if Application.MessageBox('ȷҪһ滻','ʾ',32+4)<>IDYES then Exit; + OneKeyPost(Tv3,ClientDataSet3); +end; + +procedure TfrmClothContractListLLSXQJG.ToolButton8Click(Sender: TObject); +begin + + if ClientDataSet3.IsEmpty then + begin + + with ClientDataSet3 do + begin + Append; + FieldByName('TPDate').Value:=SGetServerDate(ADOQueryTemp); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + FieldByName('ToName').Value:=Trim(ADOQueryTemp.fieldbyname('RanFactory').AsString); + Post; + end; + end else + begin + CopyAddRow(Tv3,ClientDataSet3); + with ClientDataSet3 do + begin + Edit; + FieldByName('MXID').Value:=''; + FieldByName('TPDate').Value:=null; + FieldByName('SXPS').Value:=null; + FieldByName('SXQty').Value:=null; + FieldByName('TPQty').Value:=null; + Post; + end; + end; + +end; + +procedure TfrmClothContractListLLSXQJG.v3Column7PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Cloth'; + flagname:=''; + if ShowModal=1 then + begin + Self.ClientDataSet3.Edit; + Self.ClientDataSet3.FieldByName('PBName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //Self.ClientDataSet3.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListLLSXQJG.v3Column14PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='Ⱦ'; + MainType:='RanFactory'; + if ShowModal=1 then + begin + Self.ClientDataSet3.Edit; + self.ClientDataSet3.FieldByName('ToName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListSX.dfm b/盛纺贸易管理/U_ClothContractListSX.dfm new file mode 100644 index 0000000..23e93bf --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListSX.dfm @@ -0,0 +1,436 @@ +object frmClothContractListSX: TfrmClothContractListSX + Left = -41 + Top = 54 + Width = 1280 + Height = 705 + Caption = #32433#32447#37319#36141#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1272 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1272 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 612 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = conPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Spec: TEdit + Tag = 2 + Left = 640 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + end + object cxGrid1: TcxGrid + Left = 64 + Top = 112 + Width = 929 + Height = 377 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + Column = v1Column1 + end + item + Kind = skSum + Column = v1PRTQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1Column5: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 47 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object v1PRTUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTQty: TcxGridDBColumn + Caption = #24635#20215 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 1128 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 880 + Top = 56 + end +end diff --git a/盛纺贸易管理/U_ClothContractListSX.pas b/盛纺贸易管理/U_ClothContractListSX.pas new file mode 100644 index 0000000..5bc6901 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListSX.pas @@ -0,0 +1,375 @@ +unit U_ClothContractListSX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit; + +type + TfrmClothContractListSX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + CDS_PRT: TClientDataSet; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1Qty1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTUnit: TcxGridDBColumn; + v1PRTQty: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure conPress(Sender: TObject; var Key: Char); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListSX: TfrmClothContractListSX; + +implementation +uses + U_DataLink,U_ClothContractInPutSX,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothContractListSX.FormDestroy(Sender: TObject); +begin + frmClothContractListSX:=nil; +end; + +procedure TfrmClothContractListSX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListSX.FormCreate(Sender: TObject); +begin + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); +end; + +procedure TfrmClothContractListSX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬбSX',Tv1,'ָʾ'); +end; + +procedure TfrmClothContractListSX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractListSX.InitForm(); +begin + ReadCxGrid('ͬбSX',Tv1,'ָʾ'); + if Trim(DParameters1)='1' then + begin + TBPrint.Visible:=False; + v1Column1.Visible:=False; + v1Column1.Hidden:=True; + v1PRTUnit.Visible:=False; + v1PRTUnit.Hidden:=True; + v1PRTQty.Visible:=False; + v1PRTQty.Hidden:=True; + end else + begin + v1Column1.Visible:=True; + v1Column1.Hidden:=False; + v1PRTUnit.Visible:=True; + v1PRTUnit.Hidden:=False; + v1PRTQty.Visible:=True; + v1PRTQty.Hidden:=False; + TBPrint.Visible:=True; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmClothContractListSX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListSX.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmClothContractInPutSX:=TfrmClothContractInPutSX.Create(Application); + with frmClothContractInPutSX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutSX.Free; + end; +end; + +procedure TfrmClothContractListSX.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѿݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; +end; + +function TfrmClothContractListSX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListSX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ͬб',cxGrid1); +end; + +procedure TfrmClothContractListSX.TBPrintClick(Sender: TObject); +var + fPrintFile,FConNoM:string; + +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɴ߶ͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString); + //SDofilter(ADOQueryMain,' ConNoM='''+Trim(Order_Main.fieldbyname('ConNoM').AsString)+''''); + //SCreateCDS20(ADOQueryMain,Order_Main); + //SInitCDSData20(ADOQueryMain,Order_Main); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ɴ߶ͬ.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmClothContractListSX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListSX.TBAddClick(Sender: TObject); +begin + try + frmClothContractInPutSX:=TfrmClothContractInPutSX.Create(Application); + with frmClothContractInPutSX do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothContractInPutSX.Free; + end; +end; + +procedure TfrmClothContractListSX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListSX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListSX.conPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContractSX_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ClothContractListWJG.dfm b/盛纺贸易管理/U_ClothContractListWJG.dfm new file mode 100644 index 0000000..8825e81 --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListWJG.dfm @@ -0,0 +1,820 @@ +object frmClothContractListWJG: TfrmClothContractListWJG + Left = 107 + Top = 19 + Width = 1189 + Height = 705 + Caption = #22806#21152#24037 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Label2: TLabel + Left = 243 + Top = 70 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1173 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21040#22383#30830#23450 + ImageIndex = 113 + Visible = False + end + object ToolButton5: TToolButton + Left = 402 + Top = 0 + Caption = #22383#24067#39046#26009#30830#23450 + ImageIndex = 114 + Visible = False + OnClick = ToolButton5Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1173 + Height = 61 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 14 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 231 + Top = 14 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 452 + Top = 13 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 452 + Top = 38 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 679 + Top = 14 + Width = 39 + Height = 12 + Caption = #22383#24067#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 679 + Top = 38 + Width = 40 + Height = 12 + Caption = #26579' '#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 231 + Top = 38 + Width = 21 + Height = 12 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 10 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 34 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 285 + Top = 10 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + OnKeyPress = ConNoKeyPress + end + object C_CodeName: TEdit + Tag = 2 + Left = 509 + Top = 10 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object C_Spec: TEdit + Tag = 2 + Left = 508 + Top = 34 + Width = 100 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + object FactoryNoName: TEdit + Tag = 2 + Left = 723 + Top = 10 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = ConNoChange + end + object FirstName: TEdit + Tag = 2 + Left = 723 + Top = 34 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = ConNoChange + end + object khconNO: TEdit + Tag = 2 + Left = 285 + Top = 33 + Width = 100 + Height = 20 + TabOrder = 7 + OnChange = ConNoChange + end + end + object Panel2: TPanel + Left = 0 + Top = 366 + Width = 1173 + Height = 301 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 2 + Top = 34 + Width = 1169 + Height = 265 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v3Column2 + end + item + Kind = skSum + Column = v3Column3 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 98 + end + object cxGridDBPRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v3Column15: TcxGridDBColumn + Caption = #26412#21378#32568#21495 + DataBinding.FieldName = 'BCgangNO' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v3Column16: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'RCGangNO' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v3Column13: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + end + object v3Column14: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v3Column6: TcxGridDBColumn + Caption = #39046#26009#26085#26399 + DataBinding.FieldName = 'TPDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v3Column10: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'ToName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column10PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v3Column3: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v3Column9: TcxGridDBColumn + Caption = #21305#25968#37327 + DataBinding.FieldName = 'TPPS' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v3Column2: TcxGridDBColumn + Caption = #25968#37327'('#35745#21010')' + DataBinding.FieldName = 'TPQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 97 + end + object v3Column4: TcxGridDBColumn + Caption = #25968#37327#20844#24046 + DataBinding.FieldName = 'Qty2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column5: TcxGridDBColumn + Caption = #35745#21010#32553#29575'(%)' + DataBinding.FieldName = 'Qty3' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column5PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v3Column1: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'TPUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 68 + end + object v3Column7: TcxGridDBColumn + Caption = #39046#26009#20154 + DataBinding.FieldName = 'TPPerson' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v3Column11: TcxGridDBColumn + Caption = #19978#36947#21152#24037#21333#20215 + DataBinding.FieldName = 'JGPrice' + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v3Column12: TcxGridDBColumn + Caption = #22806#21152#24037#31867#22411 + DataBinding.FieldName = 'HJGType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + '' + #22238#20179#21518#21152#24037) + HeaderAlignmentHorz = taCenter + Width = 94 + end + object v3Column8: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'TPNote' + HeaderAlignmentHorz = taCenter + Width = 105 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1169 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton9: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton11: TToolButton + Left = 126 + Top = 0 + Caption = #21518#21152#24037#30830#23450 + ImageIndex = 114 + OnClick = ToolButton5Click + end + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 358 + Width = 1173 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 93 + Width = 1173 + Height = 265 + Align = alClient + TabOrder = 4 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + Column = v1Column12 + end + item + Kind = skSum + Column = v1Column13 + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column3: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 82 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 114 + end + object v1Column7: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'khconNO' + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 112 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 79 + end + object v1Column5: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 106 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'TPUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column6: TcxGridDBColumn + Caption = #24207#27425 + DataBinding.FieldName = 'LLIdx' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v1Column9: TcxGridDBColumn + Caption = #21322#25104#21697#21305#25968 + DataBinding.FieldName = 'TPPS' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column10: TcxGridDBColumn + Caption = #21322#25104#21697#25968#37327 + DataBinding.FieldName = 'BCPQty' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1Column12: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'HCPS' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column13: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'HCQty' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column11: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KCPS' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 752 + Top = 216 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 416 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 1168 + Top = 464 + end +end diff --git a/盛纺贸易管理/U_ClothContractListWJG.pas b/盛纺贸易管理/U_ClothContractListWJG.pas new file mode 100644 index 0000000..e07e5ac --- /dev/null +++ b/盛纺贸易管理/U_ClothContractListWJG.pas @@ -0,0 +1,1238 @@ +unit U_ClothContractListWJG; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxDropDownEdit, cxCheckBox; + +type + TfrmClothContractListWJG = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNo: TEdit; + Label5: TLabel; + C_CodeName: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Spec: TEdit; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + ToolButton5: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + Panel2: TPanel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBPRTColor: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxSplitter1: TcxSplitter; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column1: TcxGridDBColumn; + ToolBar2: TToolBar; + ToolButton8: TToolButton; + ToolButton9: TToolButton; + ToolButton11: TToolButton; + v1Column5: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + Label6: TLabel; + FactoryNoName: TEdit; + Label7: TLabel; + FirstName: TEdit; + v3Column1: TcxGridDBColumn; + v3Column9: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v3Column10: TcxGridDBColumn; + v3Column11: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v3Column12: TcxGridDBColumn; + v3Column13: TcxGridDBColumn; + v3Column14: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + Label2: TLabel; + khconNO: TEdit; + Label8: TLabel; + v3Column15: TcxGridDBColumn; + v3Column16: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column2PropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure v3Column10PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure v3Column5PropertiesEditValueChanged(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridWhere(fsj:string); + function YFData():Boolean; + function YFDataDel():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothContractListWJG: TfrmClothContractListWJG; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderListSel,U_ZDYHelp, + U_ZdyAttachGYS; + +{$R *.dfm} + +procedure TfrmClothContractListWJG.FormDestroy(Sender: TObject); +begin + frmClothContractListWJG:=nil; +end; + +procedure TfrmClothContractListWJG.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothContractListWJG.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ӹ1',Tv1,'ָʾ'); + WriteCxGrid('ӹ2',Tv3,'ָʾ'); +end; + +procedure TfrmClothContractListWJG.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add(' exec P_HJG_View :begdate,:enddate,:PState,:ConNo'); + Parameters.ParamByName('PState').Value:=1; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Parameters.ParamByName('ConNo').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo '); + SQL.Add('from Contract_Cloth_LLMx A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.DHId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractListWJG.InitGridWhere(fsj:string); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add(' select A.*,B.ConNo,C.C_CodeName,B.FactoryNoName,C.C_Spec,C.MFQty,C.KZQty,C.MainId,D.DHUnit,C.SubId '); + sql.Add(' ,JM.OrderNo,JS.PRTColor'); + sql.Add(',Price=(select Top 1 JGPrice from Contract_Cloth_LLMX AAA where AAA.DHID=A.DHID )'); + sql.Add(',KCPS=TPPS-HCPS,KCQty=BCPQty-HCQty'); + sql.Add(',APFlag=(select Count(*) from JYOrder_Sub_AnPai JAP where JAP.LLID=A.LLID)'); + sql.Add(' from Contract_Cloth_LL A '); + sql.Add(' inner join Contract_Cloth_DH D on A.DHID=D.DHID '); + sql.Add(' inner join Contract_Main B on D.Mainid=B.Mainid'); + sql.Add(' inner join Contract_Sub C on D.Subid=C.Subid'); + sql.Add(' inner join JYOrder_Sub JS on A.OrdSubId=JS.SubId '); + sql.Add(' inner join JYOrder_Main JM on JS.Mainid=JM.MainId'); + //sql.Add(' where isnull(DHIDHelp,'''')='''' '); + sql.Add(' where 1=1 '); + sql.Add(fsj); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothContractListWJG.InitForm(); +begin + + ReadCxGrid('ӹ1',Tv1,'ָʾ'); + ReadCxGrid('ӹ2',Tv3,'ָʾ'); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-30; + InitGrid(); +end; + +procedure TfrmClothContractListWJG.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothContractListWJG.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmClothContractListWJG.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothContractListWJG.ConNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothContractListWJG.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothContractListWJG.ToolButton2Click(Sender: TObject); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where ConNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + with ClientDataSet3 do + begin + Append; + FieldByName('OrderNo').Value:=Trim(Order_Main.fieldbyname('OrderNo').AsString); + FieldByName('PRTColor').Value:=Trim(Order_Main.fieldbyname('PRTColor').AsString); + FieldByName('ToName').Value:=Trim(ADOQueryTemp.fieldbyname('HZLFactory').AsString); + FieldByName('TPDate').Value:=SGetServerDate(ADOQueryTemp); + FieldByName('TPUnit').Value:=Order_Main.fieldbyname('TPUnit').Value; + Post; + end; +end; + +procedure TfrmClothContractListWJG.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothContractListWJG.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmClothContractListWJG.ToolButton5Click(Sender: TObject); +var + maxno,LLIdx,FDW,FFLLID:string; +begin + if ClientDataSet3.IsEmpty then Exit; + if ClientDataSet3.Locate('OrderNo',null,[]) then + begin + Application.MessageBox('ָŲΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('ToName',null,[]) then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('ToName','',[]) then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPPS',null,[]) then + begin + Application.MessageBox('ƥΪգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPQty',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('Qty2',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if ClientDataSet3.Locate('TPUnit',null,[]) then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + ClientDataSet3.DisableControls; + with ClientDataSet3 do + begin + First; + while not Eof do + begin + + if Trim(FDW)='' then + begin + FDW:=Trim(ClientDataSet3.fieldbyname('TPUnit').AsString); + end; + if FDW<>Trim(ClientDataSet3.fieldbyname('TPUnit').AsString) then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + Next; + end; + end; + ClientDataSet3.EnableControls; + if Trim(Order_Main.fieldbyname('DHUnit').AsString)='M' then + begin + if ClientDataSet3.Locate('TPUnit','Kg',[]) then + begin + Application.MessageBox('ȾɫλΪM,ӹλΪKg','ʾ',0); + Exit; + end; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + //ȥ + with ClientDataSet3 do + begin + First; + while not eof do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'MX','Contract_Cloth_LLMx',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡȥˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet3.fieldbyname('MXId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('SXMainId').Value:=Trim(Order_Main.fieldbyname('SXMainId').AsString); + FieldByName('SXDHID').Value:=Trim(Order_Main.fieldbyname('SXDHID').AsString); + FieldByName('DHId').Value:=Trim(Order_Main.fieldbyname('LLId').AsString); + FieldByName('MXId').Value:=Trim(maxno); + FieldByName('OrdSubId').Value:=Trim(Order_Main.fieldbyname('OrdSubId').AsString); + FieldByName('TPDate').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + FieldByName('TPPerson').Value:=ClientDataSet3.fieldbyname('TPPerson').Value; + FieldByName('HJGType').Value:=ClientDataSet3.fieldbyname('HJGType').Value; + FieldByName('TPNote').Value:=ClientDataSet3.fieldbyname('TPNote').Value; + FieldByName('RCGangNO').Value:=Trim(ClientDataSet3.fieldbyname('RCGangNO').AsString); + FieldByName('BCgangNO').Value:=Trim(ClientDataSet3.fieldbyname('BCgangNO').AsString); + if ClientDataSet3.FieldByName('HCFlag').AsBoolean=True then + begin + FieldByName('HCFlag').Value:=1 + end else + begin + FieldByName('HCFlag').Value:=0; + end; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Trim(ADOQueryCmd.fieldbyname('TPUnit').AsString)<>Trim(ClientDataSet3.fieldbyname('TPUnit').AsString) then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai A where SubId='''+Trim(ClientDataSet3.fieldbyname('OrdSubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ѻزֲ޸λ!','ʾ',0); + Exit; + end; + end; + end; + FieldByName('TPUnit').Value:=ClientDataSet3.fieldbyname('TPUnit').Value; + FieldByName('ToNo').Value:=ClientDataSet3.fieldbyname('ToNo').Value; + FieldByName('ToName').Value:=ClientDataSet3.fieldbyname('ToName').Value; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('TPQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('TPQty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('TPPS').AsString)<>'' then + FieldByName('TPPS').Value:=ClientDataSet3.fieldbyname('TPPS').Value + else + FieldByName('TPPS').Value:=0; + if Trim(ClientDataSet3.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('JGPrice').Value:=ClientDataSet3.fieldbyname('JGPrice').Value + else + FieldByName('JGPrice').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty1').AsString)<>'' then + FieldByName('Qty1').Value:=ClientDataSet3.fieldbyname('Qty1').Value + else + FieldByName('Qty1').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + FieldByName('Qty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value + else + FieldByName('Qty2').Value:=0; + if Trim(ClientDataSet3.fieldbyname('Qty3').AsString)<>'' then + FieldByName('Qty3').Value:=ClientDataSet3.fieldbyname('Qty3').Value + else + FieldByName('Qty3').Value:=0; + if Trim(ClientDataSet3.fieldbyname('TPUnit').AsString)='Kg' then + begin + FieldByName('TPMQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value*1.00*1000 + /(Order_Main.fieldbyname('MFQty').Value*1.00/100*Order_Main.fieldbyname('KZQty').Value); + end else + begin + FieldByName('TPMQty').Value:=ClientDataSet3.fieldbyname('TPQty').Value; + end; + if Trim(ClientDataSet3.fieldbyname('TPUnit').AsString)='Kg' then + begin + FieldByName('MQty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value*1.00*1000 + /(Order_Main.fieldbyname('MFQty').Value*1.00/100*Order_Main.fieldbyname('KZQty').Value); + end else + begin + FieldByName('MQty2').Value:=ClientDataSet3.fieldbyname('Qty2').Value; + end; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('MXId').Value:=Trim(maxno); + Post; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from Contract_Cloth_LL where DHIdHelp='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + sql.Add(' and firstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,FFLLID,'HL','Contract_Cloth_LL',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡӹʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('DHID').Value:=Trim(Order_Main.fieldbyname('DHID').AsString); + FieldByName('OrdSubId').Value:=Trim(Order_Main.fieldbyname('OrdSubId').AsString); + FieldByName('SXMainId').Value:=Trim(Order_Main.fieldbyname('SXMainId').AsString); + FieldByName('SXDHID').Value:=Trim(Order_Main.fieldbyname('SXDHID').AsString); + FieldByName('LLId').Value:=Trim(FFLLID); + FieldByName('DHIdHelp').Value:=Trim(Order_Main.fieldbyname('LLID').AsString); + FieldByName('FirstNo').Value:=Trim(ClientDataSet3.fieldbyname('ToNo').AsString); + FieldByName('FirstName').Value:=Trim(ClientDataSet3.fieldbyname('ToName').AsString); + FieldByName('TPUnit').Value:=Trim(ClientDataSet3.fieldbyname('TPUnit').AsString); + FieldByName('HJGType').Value:=ClientDataSet3.fieldbyname('HJGType').Value; + FieldByName('LLIdx').Value:=Order_Main.fieldbyname('LLIdx').Value+1; + FieldByName('DHID').Value:=Trim(Order_Main.fieldbyname('DHID').AsString); + FieldByName('RCGangNO').Value:=Trim(ClientDataSet3.fieldbyname('RCGangNO').AsString); + FieldByName('BCgangNO').Value:=Trim(ClientDataSet3.fieldbyname('BCgangNO').AsString); + Post; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('Update Contract_Cloth_LL Set JXJGFlag=1 '); + sql.Add(',ToNo='''+Trim(ClientDataSet3.fieldbyname('ToNo').AsString)+''''); + sql.Add(',ToName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_LL Set TPUnit='''+Trim(ClientDataSet3.fieldbyname('TPUnit').AsString)+''''); + sql.Add(',HJGType='''+Trim(ClientDataSet3.fieldbyname('HJGType').AsString)+''''); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + end; + { if Order_Main.FieldByName('APFlag').Value=0 then + begin + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ⱦʧ!','ʾ',0); + Exit; + end; + end else + begin + if YFDataDel()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ⱦʧ!','ʾ',0); + Exit; + end; + end;} + if Trim(ClientDataSet3.fieldbyname('HJGType').AsString)='' then + begin + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ⱦʧ!','ʾ',0); + Exit; + end; + end; + + Next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_LL Set TPMQty=(select Sum(TPMQty) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',TPPS=(select Sum(TPPS) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',TPQty=(select Sum(TPQty) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',BCPQty=(select Sum(Qty2) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',BCPMQty=(select Sum(MQty2) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(' where DHIDHelp='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + if Order_Main.FieldByName('APFlag').Value=0 then + begin + if Trim(ClientDataSet3.fieldbyname('HJGType').AsString)<>'زֺӹ' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=(select isnull(Sum(TPPS),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.LLID)'); + sql.Add(', HCQty=(select isnull(Sum(TPQty),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.LLID)'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCMQty=HCQty*(TPMQty*1.00/TPQty)'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + end; + + end; + + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmClothContractListWJG.YFData():Boolean; +var + CRID,OrdMainId,YFID,Price,FComTaiTou:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('orderNO').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + + Application.MessageBox('δ¼!','ʾ',0); + Exit; + end else + begin + if ADOQueryTemp.RecordCount>1 then + begin + Application.MessageBox('¼ظ!','ʾ',0); + Exit; + end; + end; + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(Order_Main.fieldbyname('orderNO').AsString)+''''); + Open; + end; + OrdMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrdDefStr2 from JYOrder_Main where Mainid='''+Trim(OrdMainId)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('OrdDefStr2').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFName=''Ⱦ'''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet3.fieldbyname('MXID').AsString)+''''); + Open; + end; + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + //if ADOQueryTemp.IsEmpty then + begin + if Trim(YFID)='' then + begin + if GetLSNo(ADOQueryCmd,YFID,'RF','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡȾӦʧ!','ʾ',0); + Exit; + end; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(YFID)='' then + Append + else + Edit; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ClientDataSet3.fieldbyname('MXID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=ClientDataSet3.fieldbyname('TPDate').Value; + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + FieldByName('Qty').Value:=ClientDataSet3.fieldbyname('TPQty').Value + else + FieldByName('Qty').Value:=0; + if Trim(ClientDataSet3.fieldbyname('TPPS').AsString)<>'' then + FieldByName('PS').Value:=ClientDataSet3.fieldbyname('TPPS').Value + else + FieldByName('PS').Value:=0; + FieldByName('YFType').Value:='Զ'; + if Trim(ClientDataSet3.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('Price').Value:=ClientDataSet3.fieldbyname('JGPrice').Value + else + FieldByName('Price').Value:=0; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('TPUnit').AsString); + FieldByName('YFName').Value:='Ⱦ'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(HCQty,0) from Contract_Cloth_LL A '); + SQL.Add(' where A.LLId=YF_Money_CR.YFTypeId )'); + sql.Add(',PS=(select isnull(HCPS,0) from Contract_Cloth_LL A '); + SQL.Add(' where A.LLId=YF_Money_CR.YFTypeId )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('LLid').AsString)+''''); + ExecSQL; + end; } + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +function TfrmClothContractListWJG.YFDataDel():Boolean; +var + CRID,OrdMainId,YFID,Price,FComTaiTou:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(ClientDataSet3.fieldbyname('MXID').AsString)+''''); + Open; + end; + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR '); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; + +procedure TfrmClothContractListWJG.ToolButton3Click(Sender: TObject); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where DHIDHelp='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + SQL.Add(' and FirstName='''+Trim(ClientDataSet3.fieldbyname('ToName').AsString)+''''); + sql.Add(' and HCPS>0 '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('лز!','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + begin + if ClientDataSet3.IsEmpty then Exit; + if Trim(ClientDataSet3.fieldbyname('MXId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then + begin + ADOQueryCmd.Connection.RollbackTrans; + Exit; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_LLMx where MXId='''+Trim(ClientDataSet3.fieldbyname('MXId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_LL Set TPMQty=(select isnull(Sum(TPMQty),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',TPPS=(select isnull(Sum(TPPS),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',TPQty=(select isnull(Sum(TPQty),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',BCPQty=(select isnull(Sum(Qty2),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(',BCPMQty=(select isnull(Sum(MQty2),0) from Contract_Cloth_LLMx A where A.DHID=Contract_Cloth_LL.DHIDHelp'); + SQL.Add(' and A.ToName=Contract_Cloth_LL.FirstName)'); + sql.Add(' where DHIDHelp='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + if Order_Main.FieldByName('APFlag').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=(select isnull(Sum(TPPS),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.LLID)'); + sql.Add(', HCQty=(select isnull(Sum(TPQty),0) from Contract_Cloth_LLMX A where A.DHID=Contract_Cloth_LL.LLID)'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCMQty=HCQty*(TPMQty*1.00/TPQty)'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + end; + + + end; + + if YFDataDel()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ⱦʧ!','ʾ',0); + Exit; + end; + ClientDataSet3.Delete; + if ClientDataSet3.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Cloth_LL where DHIDHelp='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + sql.Add('Update Contract_Cloth_LL Set ToNo='''' ,ToName='''' ,JXJGFlag=0 '); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + + end; +end; + +procedure TfrmClothContractListWJG.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothContractListWJG.v3Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty2:String; + +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + with ClientDataSet3 do + begin + Edit; + FieldByName('qty2').Value:= FieldByName('TPQty').AsFloat; + // FieldByName('qty3').Value:=(StrToFloat(qty1)-StrToFloat(qty2))*1.00*100/StrToFloat(qty1); + Post; + end; + {with Order_Main do + begin + Edit; + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0]; + Post; + end; } + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + begin + qty1:=ClientDataSet3.fieldbyname('TPQty').AsString; + end else + begin + qty1:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('Qty2').AsString)<>'' then + begin + Qty2:=ClientDataSet3.fieldbyname('Qty2').AsString; + end else + begin + Qty2:='0'; + end; + if StrToFloat(qty1)*StrToFloat(qty2)=0 then Exit; + with ClientDataSet3 do + begin + Edit; + // FieldByName('qty2').Value:= FieldByName('TPQty').AsFloat; + FieldByName('qty3').Value:=(StrToFloat(qty1)-StrToFloat(qty2))*1.00*100/StrToFloat(qty1); + Post; + end; + +end; + +procedure TfrmClothContractListWJG.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Order_Main.IsEmpty then exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo '); + SQL.Add('from Contract_Cloth_LLMx A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.DHId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); + +end; + +procedure TfrmClothContractListWJG.v3Column10PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flagname:='ӹ'; + flag:='Factory'; + if ShowModal=1 then + begin + ClientDataSet3.Edit; + ClientDataSet3.FieldByName('ToName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + ClientDataSet3.FieldByName('ToNo').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } + try + frmZdyAttachGYS:=TfrmZdyAttachGYS.Create(Application); + with frmZdyAttachGYS do + begin + if ShowModal=1 then + begin + ClientDataSet3.Edit; + ClientDataSet3.FieldByName('ToName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + ClientDataSet3.FieldByName('ToNo').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZdyAttachGYS.Free; + end; +end; + +procedure TfrmClothContractListWJG.ConNoKeyPress(Sender: TObject; + var Key: Char); +var + fsj:string; +begin + if Length(ConNo.Text)<3 then Exit; + if Key=#13 then + begin + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add(' exec P_HJG_View :begdate,:enddate,:PState,:ConNo'); + Parameters.ParamByName('PState').Value:=2; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Parameters.ParamByName('ConNo').Value:='%'+Trim(ConNo.Text)+'%'; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + end; +end; + +procedure TfrmClothContractListWJG.v3Column5PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,fieldname,qty1,qty3:String; + +begin + If Trim(TcxTextEdit(Sender).EditingText)<>'' then + begin + mvalue:=TcxTextEdit(Sender).EditingText; + end else + begin + mvalue:='0'; + end; + fieldname:=Tv3.Controller.FocusedColumn.DataBinding.FilterFieldName; + with ClientDataSet3 do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=mvalue; + Post; + end; + {with Order_Main do + begin + Edit; + FieldByName('KCQty').Value:=Order_Main.fieldbyname('DHQty').Value-tv3.DataController.Summary.FooterSummaryValues[0]; + Post; + end; } + if Trim(ClientDataSet3.fieldbyname('TPQty').AsString)<>'' then + begin + qty1:=ClientDataSet3.fieldbyname('TPQty').AsString; + end else + begin + qty1:='0'; + end; + if Trim(ClientDataSet3.fieldbyname('qty3').AsString)<>'' then + begin + qty3:=ClientDataSet3.fieldbyname('qty3').AsString; + end else + begin + qty3:='0'; + end; + //if StrToFloat(qty1)*StrToFloat(qty2)=0 then Exit; + with ClientDataSet3 do + begin + Edit; + FieldByName('qty2').Value:=StrToFloat(qty1)*(1-StrToFloat(qty3)*1.00/100); + Post; + end; + +end; + +end. diff --git a/盛纺贸易管理/U_ClothHCList.dfm b/盛纺贸易管理/U_ClothHCList.dfm new file mode 100644 index 0000000..951a136 --- /dev/null +++ b/盛纺贸易管理/U_ClothHCList.dfm @@ -0,0 +1,598 @@ +object frmClothHCList: TfrmClothHCList + Left = 186 + Top = 91 + Width = 1179 + Height = 705 + Caption = #24067#21305#22238#20179#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1163 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1163 + Height = 74 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 25 + Top = 24 + Width = 56 + Height = 13 + Caption = #22238#20179#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 198 + Top = 24 + Width = 42 + Height = 13 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 763 + Top = 24 + Width = 56 + Height = 13 + Caption = #26579#21378#32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 763 + Top = 50 + Width = 56 + Height = 13 + Caption = #26412#21378#32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 571 + Top = 50 + Width = 60 + Height = 13 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 945 + Top = 24 + Width = 42 + Height = 13 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 198 + Top = 50 + Width = 24 + Height = 13 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 385 + Top = 24 + Width = 58 + Height = 13 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 385 + Top = 50 + Width = 56 + Height = 13 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 571 + Top = 24 + Width = 56 + Height = 13 + Caption = #22411#21495#35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 945 + Top = 50 + Width = 44 + Height = 13 + Caption = #27454' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 82 + Top = 20 + Width = 92 + Height = 21 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 82 + Top = 46 + Width = 92 + Height = 21 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 242 + Top = 20 + Width = 106 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object GangNo: TEdit + Tag = 2 + Left = 820 + Top = 20 + Width = 92 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + end + object AOrddefstr1: TEdit + Tag = 2 + Left = 820 + Top = 46 + Width = 92 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object PRTColor: TEdit + Tag = 2 + Left = 633 + Top = 46 + Width = 92 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + end + object AOrddefstr4: TEdit + Tag = 2 + Left = 998 + Top = 20 + Width = 90 + Height = 20 + TabOrder = 6 + OnChange = OrderNoMChange + end + object KHconNo: TEdit + Tag = 2 + Left = 242 + Top = 46 + Width = 106 + Height = 20 + TabOrder = 7 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object conNo: TEdit + Tag = 2 + Left = 445 + Top = 20 + Width = 93 + Height = 20 + TabOrder = 8 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object mprtCodeName: TEdit + Tag = 2 + Left = 445 + Top = 46 + Width = 93 + Height = 20 + TabOrder = 9 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object Mprtspec: TEdit + Tag = 2 + Left = 632 + Top = 20 + Width = 92 + Height = 20 + TabOrder = 10 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object prtkuanNo: TEdit + Tag = 2 + Left = 998 + Top = 46 + Width = 90 + Height = 20 + TabOrder = 11 + OnChange = OrderNoMChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 106 + Width = 1163 + Height = 559 + Align = alClient + TabOrder = 2 + object TV2: TcxGridDBTableView + OnDblClick = TV2DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + Column = V2Column1 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V2Column1 + end + item + Kind = skSum + Column = V2Column7 + end + item + Kind = skSum + Column = V2Column5 + end + item + Kind = skSum + Column = V2Column6 + end + item + Kind = skSum + Column = V2Column11 + end + item + Kind = skSum + Column = V2Column12 + end + item + Kind = skSum + Column = V2Column17 + end + item + Kind = skSum + Column = V2Column18 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V2Column2: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'ADefDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 96 + end + object V2APID: TcxGridDBColumn + Caption = #32568#26465#30721 + DataBinding.FieldName = 'APID' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object V2Column8: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'AOrddefstr4' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 88 + end + object V2Column10: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNoM' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object V2Column9: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHCOnNo' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V2Column14: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V2Column15: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MprtCodeName' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column16: TcxGridDBColumn + Caption = #22411#21495#35268#26684 + DataBinding.FieldName = 'mprtspec' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column13: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object V2Column19: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'prtkuanNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'GangNo' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object V2Column3: TcxGridDBColumn + Caption = #26412#21378#32568#21495 + DataBinding.FieldName = 'AOrddefstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object V2Column7: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'AOrdQty2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column1: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'AOrdQty1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 61 + end + object V2Column4: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'AOrddefstr2' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 62 + end + object V2Column5: TcxGridDBColumn + Caption = #26816#39564#21305#25968 + DataBinding.FieldName = 'JY_PS' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 59 + end + object V2Column6: TcxGridDBColumn + Caption = #26816#39564#25968#37327 + DataBinding.FieldName = 'JY_Qty' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 86 + end + object V2Column11: TcxGridDBColumn + Caption = #20837#24211#21305#25968 + DataBinding.FieldName = 'RK_RollNum' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object V2Column12: TcxGridDBColumn + Caption = #20837#24211#25968#37327 + DataBinding.FieldName = 'RK_Qty' + HeaderAlignmentHorz = taCenter + Width = 92 + end + object V2Column17: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'CK_RollNum' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object V2Column18: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'CK_Qty' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 448 + Top = 168 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 800 + Top = 12 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 24 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 720 + Top = 216 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 824 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 840 + Top = 192 + end +end diff --git a/盛纺贸易管理/U_ClothHCList.pas b/盛纺贸易管理/U_ClothHCList.pas new file mode 100644 index 0000000..278c770 --- /dev/null +++ b/盛纺贸易管理/U_ClothHCList.pas @@ -0,0 +1,220 @@ +unit U_ClothHCList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxDropDownEdit, cxCheckBox; + +type + TfrmClothHCList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + Label5: TLabel; + GangNo: TEdit; + Order_Main: TClientDataSet; + Label4: TLabel; + AOrddefstr1: TEdit; + Label6: TLabel; + PRTColor: TEdit; + Label7: TLabel; + AOrddefstr4: TEdit; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + V2Column2: TcxGridDBColumn; + V2Column8: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + V2Column7: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + V2Column10: TcxGridDBColumn; + V2Column13: TcxGridDBColumn; + V2APID: TcxGridDBColumn; + V2Column9: TcxGridDBColumn; + V2Column14: TcxGridDBColumn; + KHconNo: TEdit; + Label8: TLabel; + conNo: TEdit; + Label9: TLabel; + V2Column15: TcxGridDBColumn; + V2Column16: TcxGridDBColumn; + mprtCodeName: TEdit; + Label2: TLabel; + Mprtspec: TEdit; + Label10: TLabel; + V2Column5: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + V2Column11: TcxGridDBColumn; + V2Column12: TcxGridDBColumn; + V2Column17: TcxGridDBColumn; + V2Column18: TcxGridDBColumn; + Label11: TLabel; + prtkuanNo: TEdit; + V2Column19: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); + procedure TV2DblClick(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + procedure InitGridWSQL(FWSQL:String); + { Private declarations } + public + fType:string; + { Public declarations } + end; + +var + frmClothHCList: TfrmClothHCList; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp,U_ProductOrderNewList_JD; + +{$R *.dfm} + +procedure TfrmClothHCList.FormDestroy(Sender: TObject); +begin + frmClothHCList:=nil; +end; + +procedure TfrmClothHCList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothHCList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); +end; + +procedure TfrmClothHCList.InitGrid(); +begin + try + //ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_View_HC :begdate,:enddate,:WSQL'); + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Parameters.ParamByName('WSQL').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + //ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothHCList.InitGridWSQL(FWSQL:String); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_View_HC :begdate,:enddate,:WSQL'); + Parameters.ParamByName('begdate').Value:='1900-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Parameters.ParamByName('WSQL').Value:=FWSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothHCList.InitForm(); +begin + ReadCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-7; + //InitGrid(); +end; + +procedure TfrmClothHCList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + + + +procedure TfrmClothHCList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothHCList.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothHCList.FormShow(Sender: TObject); +begin + InitForm(); + TBRafresh.Click; +end; + +procedure TfrmClothHCList.OrderNoMKeyPress(Sender: TObject; + var Key: Char); +var + fsj:String; +begin + if Key=#13 then + begin + if Length(Trim(OrderNoM.Text))<4 then Exit; + fsj:=' and B.OrderNo like '''+'%'+Trim(OrderNoM.Text)+'%'+''''; + InitGridWSQL(fsj); + end; +end; + +procedure TfrmClothHCList.TV2DblClick(Sender: TObject); +begin + if fType='10' then frmClothHCList.ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_ClothPDInfoList.dfm b/盛纺贸易管理/U_ClothPDInfoList.dfm new file mode 100644 index 0000000..d410165 --- /dev/null +++ b/盛纺贸易管理/U_ClothPDInfoList.dfm @@ -0,0 +1,363 @@ +object frmClothPDInfoList: TfrmClothPDInfoList + Left = 195 + Top = 13 + Width = 1162 + Height = 705 + Caption = #24453#26816#20179#24211#24211#23384 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1146 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 33 + Top = 22 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 194 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 362 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Tag = 2 + Left = 87 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 0 + OnChange = OrderNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 247 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 1 + OnChange = OrderNoChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 416 + Top = 18 + Width = 113 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1146 + Height = 581 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column4 + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + Column = v1JY_PS + end + item + Kind = skSum + Column = v1JY_Qty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object v1Column8: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v1Column9: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1Column11: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'HCPS' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'HCQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #22238#20462#21305#25968 + DataBinding.FieldName = 'HXPS' + Width = 62 + end + object v1Column5: TcxGridDBColumn + Caption = #22238#20462#25968#37327 + DataBinding.FieldName = 'HXQty' + Width = 58 + end + object v1Column7: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KCPS' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v1Column10: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'AOrddefstr2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 59 + end + object v1JY_PS: TcxGridDBColumn + Caption = #26816#39564#21305#25968 + DataBinding.FieldName = 'JY_PS' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 65 + end + object v1JY_Qty: TcxGridDBColumn + Caption = #26816#39564#25968#37327 + DataBinding.FieldName = 'JY_Qty' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 65 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 656 + Top = 288 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 688 + Top = 288 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 624 + Top = 288 + end +end diff --git a/盛纺贸易管理/U_ClothPDInfoList.pas b/盛纺贸易管理/U_ClothPDInfoList.pas new file mode 100644 index 0000000..d53cd03 --- /dev/null +++ b/盛纺贸易管理/U_ClothPDInfoList.pas @@ -0,0 +1,169 @@ +unit U_ClothPDInfoList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit; + +type + TfrmClothPDInfoList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Label5: TLabel; + MPRTCodeName: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + MPRTCode: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1JY_PS: TcxGridDBColumn; + v1JY_Qty: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothPDInfoList: TfrmClothPDInfoList; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothPDInfoList.FormDestroy(Sender: TObject); +begin + frmClothPDInfoList:=nil; +end; + +procedure TfrmClothPDInfoList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothPDInfoList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('첼1',Tv1,'ָʾ'); +end; + +procedure TfrmClothPDInfoList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + filtered:=False; + Close; + sql.Clear; + sql.Add('exec p_view_DJBKC '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothPDInfoList.InitForm(); +begin + ReadCxGrid('첼1',Tv1,'ָʾ'); + InitGrid(); +end; + +procedure TfrmClothPDInfoList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmClothPDInfoList.DelData():Boolean; +begin + +end; + +procedure TfrmClothPDInfoList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('첼',cxGrid1); +end; + +procedure TfrmClothPDInfoList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothPDInfoList.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothPDInfoList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothPDInfoList.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +end. diff --git a/盛纺贸易管理/U_ClothSCListZDSel.dfm b/盛纺贸易管理/U_ClothSCListZDSel.dfm new file mode 100644 index 0000000..43f21b5 --- /dev/null +++ b/盛纺贸易管理/U_ClothSCListZDSel.dfm @@ -0,0 +1,804 @@ +object frmClothSCListZDSel: TfrmClothSCListZDSel + Left = 48 + Top = 50 + Width = 1280 + Height = 705 + Caption = #22383#24067#36716#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1272 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 119 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManagePB.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 41 + OnClick = ToolButton1Click + end + object TBAdd: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #29983#20135#35745#21010#21333#25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 564 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1272 + Height = 73 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #30331#35760#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 22 + Width = 52 + Height = 12 + Caption = #29983#20135#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 326 + Top = 22 + Width = 26 + Height = 12 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 452 + Top = 22 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 745 + Top = 21 + Width = 26 + Height = 12 + Caption = #21305#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label7: TLabel + Left = 819 + Top = 21 + Width = 26 + Height = 12 + Caption = #21592#24037 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label8: TLabel + Left = 919 + Top = 21 + Width = 26 + Height = 12 + Caption = #36710#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label9: TLabel + Left = 1005 + Top = 21 + Width = 26 + Height = 12 + Caption = #36716#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 179 + Top = 46 + Width = 47 + Height = 12 + Caption = #26465' '#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 42 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 233 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = conPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 354 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Color: TEdit + Tag = 2 + Left = 480 + Top = 18 + Width = 56 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + object Button1: TButton + Left = 1162 + Top = 16 + Width = 43 + Height = 21 + Caption = #20316#24223 + TabOrder = 5 + Visible = False + OnClick = Button1Click + end + object Button2: TButton + Left = 1103 + Top = 16 + Width = 44 + Height = 21 + Caption = #20445#23384 + TabOrder = 6 + Visible = False + OnClick = Button2Click + end + object PS: TEdit + Left = 773 + Top = 17 + Width = 35 + Height = 20 + TabOrder = 7 + Visible = False + end + object SCPerson: TBtnEditA + Left = 846 + Top = 17 + Width = 65 + Height = 20 + Hint = 'SCPerson/'#25377#36710#24037 + ReadOnly = True + TabOrder = 8 + Visible = False + OnBtnClick = SCPersonBtnClick + end + object CarNo: TBtnEditA + Left = 946 + Top = 17 + Width = 48 + Height = 20 + Hint = 'CarNo/'#36710#21495 + ReadOnly = True + TabOrder = 9 + Visible = False + OnBtnClick = SCPersonBtnClick + end + object ZhuanQty: TEdit + Left = 1033 + Top = 17 + Width = 51 + Height = 20 + TabOrder = 10 + Visible = False + end + object MainIdTM: TEdit + Tag = 2 + Left = 233 + Top = 42 + Width = 81 + Height = 20 + TabOrder = 11 + OnKeyPress = MainIdTMKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 105 + Width = 690 + Height = 563 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column12 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManagePB.SHuangSe + Styles.IncSearch = DataLink_TradeManagePB.SHuangSe + Styles.Selection = DataLink_TradeManagePB.SHuangSe + object v1OrderNo: TcxGridDBColumn + Caption = #29983#20135#21333#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 65 + end + object v1Column2: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 63 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'C_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 56 + end + object v1Column8: TcxGridDBColumn + Caption = #33410#25968 + DataBinding.FieldName = 'ConDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 68 + end + object v1Column9: TcxGridDBColumn + Caption = #36710#22411 + DataBinding.FieldName = 'ConDefStr2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 53 + end + object v1Column1: TcxGridDBColumn + Caption = #36716#25968 + DataBinding.FieldName = 'ZhuanStr' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 53 + end + object v1Column5: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 63 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManagePB.Default + Width = 46 + end + object v1Column6: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 46 + end + object v1Column10: TcxGridDBColumn + Caption = #24050#23433#25490#21305#25968 + DataBinding.FieldName = 'APPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 78 + end + object v1Column11: TcxGridDBColumn + Caption = #20837#24211#21305#25968 + DataBinding.FieldName = 'RKPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 63 + end + object v1Column12: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'CKPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 60 + end + object v1Column7: TcxGridDBColumn + Caption = #27599#21305#37325#37327'(KG)' + DataBinding.FieldName = 'Qty2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 83 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #24635#37325#37327'(KG)' + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 73 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 61 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxSplitter1: TcxSplitter + Left = 690 + Top = 105 + Width = 8 + Height = 563 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salRight + Control = Panel2 + Visible = False + end + object Panel2: TPanel + Left = 698 + Top = 105 + Width = 574 + Height = 563 + Align = alRight + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + Visible = False + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 570 + Height = 559 + Align = alClient + TabOrder = 0 + Visible = False + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSAnPai + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skCount + Column = cxGridDBColumn2 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManagePB.SHuangSe + Styles.IncSearch = DataLink_TradeManagePB.SHuangSe + Styles.Selection = DataLink_TradeManagePB.SHuangSe + object v2Column2: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManagePB.Default + Width = 42 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21592#24037 + DataBinding.FieldName = 'SCPerson' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 51 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'APID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 92 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #36710#21495 + DataBinding.FieldName = 'CarNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 43 + end + object v2Column3: TcxGridDBColumn + Caption = #36716#25968 + DataBinding.FieldName = 'ZhuanQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 46 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #23433#25490#26085#26399 + DataBinding.FieldName = 'APDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 77 + end + object v2Column1: TcxGridDBColumn + Caption = #24050#26816#39564 + DataBinding.FieldName = 'JYFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 46 + end + object v2Column4: TcxGridDBColumn + Caption = #25171#21360#27425#25968 + DataBinding.FieldName = 'PRTCount' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManagePB.Default + Width = 58 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 536 + Top = 272 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManagePB.ADOLink + Parameters = <> + Left = 448 + Top = 168 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManagePB.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 424 + Top = 168 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManagePB.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 488 + Top = 168 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 368 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 392 + Top = 160 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 288 + Top = 160 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 336 + Top = 160 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 312 + Top = 160 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBPRT + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 624 + Top = 264 + ReportData = {} + end + object RMDBPRT: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 528 + Top = 168 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManagePB.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 592 + Top = 176 + end + object DSAnPai: TDataSource + DataSet = CDS_AnPai + Left = 872 + Top = 264 + end + object CDS_AnPai: TClientDataSet + Aggregates = <> + Params = <> + Left = 912 + Top = 264 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 792 + Top = 224 + end +end diff --git a/盛纺贸易管理/U_ClothSCListZDSel.pas b/盛纺贸易管理/U_ClothSCListZDSel.pas new file mode 100644 index 0000000..74a9d11 --- /dev/null +++ b/盛纺贸易管理/U_ClothSCListZDSel.pas @@ -0,0 +1,880 @@ +unit U_ClothSCListZDSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxCheckBox, BtnEdit; + +type + TfrmClothSCListZDSel = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + C_Color: TEdit; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + CDS_PRT: TClientDataSet; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Qty1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + RM2: TRMGridReport; + RMDBPRT: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + cxSplitter1: TcxSplitter; + DSAnPai: TDataSource; + CDS_AnPai: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + Panel2: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Button1: TButton; + Button2: TButton; + v2Column2: TcxGridDBColumn; + PS: TEdit; + Label6: TLabel; + Label7: TLabel; + Label8: TLabel; + SCPerson: TBtnEditA; + CarNo: TBtnEditA; + ZhuanQty: TEdit; + Label9: TLabel; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + Label2: TLabel; + MainIdTM: TEdit; + v1Column1: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + ToolButton1: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure conPress(Sender: TObject; var Key: Char); + procedure SCPersonBtnClick(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure MainIdTMKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton1Click(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + function SaveData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmClothSCListZDSel: TfrmClothSCListZDSel; + +implementation +uses + U_DataLink,U_ClothSCInPut,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmClothSCListZDSel.FormDestroy(Sender: TObject); +begin + frmClothSCListZDSel:=nil; +end; + +procedure TfrmClothSCListZDSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmClothSCListZDSel.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ƻ',Tv1,'ָʾ'); + WriteCxGrid('ƻAP',Tv2,'ָʾ'); +end; + +procedure TfrmClothSCListZDSel.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''' + +' and ConType='''' '; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmClothSCListZDSel.InitForm(); +begin + ReadCxGrid('ƻ',Tv1,'ָʾ'); + ReadCxGrid('ƻAP',Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + {if Trim(DParameters1)='Ȩ' then + begin + TBPrintAgn.Visible:=True; + end;} +end; + +procedure TfrmClothSCListZDSel.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothSCListZDSel.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmClothSCInPut:=TfrmClothSCInPut.Create(Application); + with frmClothSCInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmClothSCInPut.Free; + end; +end; + +procedure TfrmClothSCListZDSel.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Sub_MX where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('ѵɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; +end; + +function TfrmClothSCListZDSel.DelData():Boolean; +begin +end; + +procedure TfrmClothSCListZDSel.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ͬб',cxGrid1); +end; + +procedure TfrmClothSCListZDSel.TBPrintClick(Sender: TObject); +var + fPrintFile,FConNoM:string; + +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString); + //SDofilter(ADOQueryMain,' ConNoM='''+Trim(Order_Main.fieldbyname('ConNoM').AsString)+''''); + //SCreateCDS20(ADOQueryMain,Order_Main); + //SInitCDSData20(ADOQueryMain,Order_Main); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; + //SDofilter(ADOQueryMain,''); + //SCreateCDS20(ADOQueryMain,Order_Main); + //SInitCDSData20(ADOQueryMain,Order_Main); + //Order_Main.Locate('ConNoM',FConNoM,[]); + //SelPrintData(TV4,ADOQueryMain,'ͬѯ'); +end; + +procedure TfrmClothSCListZDSel.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmClothSCListZDSel.TBAddClick(Sender: TObject); +begin + try + frmClothSCInPut:=TfrmClothSCInPut.Create(Application); + with frmClothSCInPut do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmClothSCInPut.Free; + end; +end; + +procedure TfrmClothSCListZDSel.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmClothSCListZDSel.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmClothSCListZDSel.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*'); + sql.Add('from JYCon_Sub_AnPai A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_AnPai); + SInitCDSData20(ADOQueryTemp,CDS_AnPai); +end; + +procedure TfrmClothSCListZDSel.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmClothSCListZDSel.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=3; +end; + +procedure TfrmClothSCListZDSel.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + {with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); } +end; + +procedure TfrmClothSCListZDSel.conPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+'''' + +' and ConType='''' '; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmClothSCListZDSel.SCPersonBtnClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmClothSCListZDSel.Button2Click(Sender: TObject); +var + FFDS:Integer; +begin + if Trim(PS.Text)='' then + begin + Application.MessageBox('ƥΪ!','ʾ',0); + Exit; + end; + if TryStrToInt(Trim(PS.Text),FFDS)=False then + begin + Application.MessageBox('ƥǷ','ʾ',0); + Exit; + end; + if Trim(SCPerson.Text)='' then + begin + Application.MessageBox('ԱΪ!','ʾ',0); + Exit; + end; + if Trim(CarNo.Text)='' then + begin + Application.MessageBox('ŲΪ!','ʾ',0); + Exit; + end; + if Trim(ZhuanQty.Text)='' then + begin + Application.MessageBox('תΪ!','ʾ',0); + Exit; + end; + if TryStrToInt(Trim(ZhuanQty.Text),FFDS)=False then + begin + Application.MessageBox('תǷ','ʾ',0); + Exit; + end; + { with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(Count(*),0) APPS from JYCon_Sub_AnPai where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if (ADOQueryTemp.FieldByName('APPS').AsInteger+strtoint(PS.Text))>Order_Main.fieldbyname('Qty1').AsInteger then + begin + Application.MessageBox('ƥ࣬!','ʾ',0); + Exit; + end; } + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + SaveData(); +end; +function TfrmClothSCListZDSel.SaveData():Boolean; +var + maxno,fPrintFile,TaiQty,TaiQtyMax,TaiQtyMin:String; + i:Integer; + FDate:string; +begin + FDate:=FormatDateTime('yyyy-MM-dd',SGetServerDate(ADOQueryTemp)); + try + ADOQueryCmd.Connection.BeginTrans; + /// + + for i:=1 to StrToInt(PS.Text) do + begin + if GetLSNo(ADOQueryCmd,maxno,'','JYCon_Sub_AnPai',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYCon_Sub_AnPai where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('APId').Value:=Trim(maxno); + FieldByName('SCPerson').Value:=Trim(SCPerson.Text); + FieldByName('CarNo').Value:=Trim(CarNo.Text); + FieldByName('ZhuanQty').Value:=Trim(ZhuanQty.Text); + FieldByName('PRTCount').Value:=1; + FieldByName('APDate').Value:=FDate; + FieldByName('Filler').Value:=Trim(DName); + Post; + end; + //¼ӹ + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(' select Count(*) TaiQty from '); + sql.Add('(select distinct(CarNo) CarNo from [JYCon_Sub_AnPai] where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(SCPerson.Text)+''''); + SQL.Add(' and APDate='''+Trim(FDate)+''') AA'); + //ShowMessage(sql.Text); + Open; + end; + TaiQty:=Trim(ADOQueryCmd.fieldbyname('TaiQty').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add(' select isnull(Max(DEFFlt1),0) TaiQtyMax,isnull(Min(DEFFlt1),0) TaiQtyMin '); + sql.Add(' from [KH_Zdy_Attachment] where ZdyName='''+Trim(Order_Main.fieldbyname('C_CodeName').AsString)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('TaiQtyMax').AsInteger=0 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ӹδ!','ʾ',0); + Exit; + end else + begin + TaiQtyMax:=ADOQueryTemp.fieldbyname('TaiQtyMax').AsString; + TaiQtyMin:=ADOQueryTemp.fieldbyname('TaiQtyMin').AsString; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from [KH_Zdy_Attachment] where ZdyName='''+Trim(Order_Main.fieldbyname('C_CodeName').AsString)+''''); + sql.Add(' and DEFFlt1='+TaiQty); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYCon_Sub_AnPai Set JGPrice='+ADOQueryTemp.fieldbyname('DEFFlt3').AsString); + sql.Add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(SCPerson.Text)+''''); + SQL.Add(' and APDate='''+Trim(FDate)+''''); + ExecSQL; + end; + end else + begin + if StrToInt(TaiQty)'+TaiQty); + sql.Add(' )where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(SCPerson.Text)+''''); + SQL.Add(' and APDate='''+Trim(FDate)+''''); + ExecSQL; + end; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYCon_Sub_AnPai Set JGPrice='); + sql.Add('(select Top 1 DEFFlt3 from KH_Zdy_Attachment where ZdyName='''+Trim(Order_Main.fieldbyname('C_CodeName').AsString)+''''); + sql.Add(' and DEFFlt1='+TaiQtyMax); + sql.Add(' )where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(SCPerson.Text)+''''); + SQL.Add(' and APDate='''+Trim(FDate)+''''); + ExecSQL; + end; + end; + end; + //¼ӹ + with CDS_AnPai do + begin + Append; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('APId').Value:=Trim(maxno); + FieldByName('SCPerson').Value:=Trim(SCPerson.Text); + FieldByName('CarNo').Value:=Trim(CarNo.Text); + FieldByName('ZhuanQty').Value:=Trim(ZhuanQty.Text); + FieldByName('APDate').Value:=FDate; + FieldByName('PRTCount').Value:=1; + Post; + end; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾǩ.rmf'; + if FileExists(fPrintFile) then + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select B.ConNo ,A.C_CodeName,A.C_Color,A.ConDefStr1,A.ConDefStr2,A.ConDefStr3,A.ConDefStr4, '); + sql.Add(' AA.APID,AA.ZhuanQty,AA.SCPerson,AA.CarNo,A.ConDefStr5,A.KZQty '); + sql.Add(' from JYCon_Sub_AnPai AA'); + sql.Add(' inner join Contract_Sub A on AA.SubId=A.SubId '); + sql.Add(' inner join Contract_Main B on A.MainId=B.MainId '); + sql.Add(' where AA.APId='''+Trim(CDS_AnPai.fieldbyname('APID').AsString)+''''); + Open; + end; + {CDS_AnPai.Edit; + CDS_AnPai.FieldByName('PRTFlag').Value:=1; + CDS_AnPai.FieldByName('PRTCount').Value:=2; + CDS_AnPai.Post;} + { with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYCon_Sub_AnPai Set PRTFlag=1,PRTCount=2 '); + sql.Add(' where APId='''+Trim(CDS_AnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; } + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + {RM2.LoadFromFile(fPrintFile); + RM2.ShowReport; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select B.ConNo ,A.C_CodeName,A.C_Color,A.ConDefStr1,A.ConDefStr2,A.ConDefStr3,A.ConDefStr4, '); + sql.Add(' AA.APID,AA.ZhuanQty,AA.SCPerson,AA.CarNo '); + sql.Add(' from JYCon_Sub_AnPai AA'); + sql.Add(' inner join Contract_Sub A on AA.SubId=A.SubId '); + sql.Add(' inner join Contract_Main B on A.MainId=B.MainId '); + sql.Add(' where AA.APId='''+Trim(maxno)+''''); + Open; + end; } + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾǩ.rmf'),'ʾ',0); + Exit; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmClothSCListZDSel.Button1Click(Sender: TObject); +var + TaiQtyMax,TaiQtyMin,TaiQty:string; +begin + if CDS_AnPai.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if CDS_AnPai.Locate('SSel;JYFlag',VarArrayOf([True,True]),[]) then + begin + Application.MessageBox('Ѽ鲻!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_AnPai.DisableControls; + with CDS_AnPai do + begin + while CDS_AnPai.FieldByName('SSel').AsBoolean=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYCon_Sub_AnPai '); + sql.Add(' where APId='''+Trim(CDS_AnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + //¼ӹ + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(' select Count(*) TaiQty from '); + sql.Add('(select distinct(CarNo) CarNo from [JYCon_Sub_AnPai] where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(CDS_AnPai.fieldbyname('SCPerson').AsString)+''''); + SQL.Add(' and APDate='''+Trim(CDS_AnPai.fieldbyname('APDate').AsString)+''') AA'); + //ShowMessage(sql.Text); + Open; + end; + TaiQty:=Trim(ADOQueryCmd.fieldbyname('TaiQty').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add(' select isnull(Max(DEFFlt1),0) TaiQtyMax,isnull(Min(DEFFlt1),0) TaiQtyMin '); + sql.Add(' from [KH_Zdy_Attachment] where ZdyName='''+Trim(Order_Main.fieldbyname('C_CodeName').AsString)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('TaiQtyMax').AsInteger=0 then + begin + ADOQueryCmd.Connection.RollbackTrans; + CDS_AnPai.EnableControls; + Application.MessageBox('ӹδ!','ʾ',0); + Exit; + end else + begin + TaiQtyMax:=ADOQueryTemp.fieldbyname('TaiQtyMax').AsString; + TaiQtyMin:=ADOQueryTemp.fieldbyname('TaiQtyMin').AsString; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from [KH_Zdy_Attachment] where ZdyName='''+Trim(Order_Main.fieldbyname('C_CodeName').AsString)+''''); + sql.Add(' and DEFFlt1='+TaiQty); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYCon_Sub_AnPai Set JGPrice='+ADOQueryTemp.fieldbyname('DEFFlt3').AsString); + sql.Add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(CDS_AnPai.fieldbyname('SCPerson').AsString)+''''); + SQL.Add(' and APDate='''+Trim(CDS_AnPai.fieldbyname('APDate').AsString)+''''); + ExecSQL; + end; + end else + begin + if StrToInt(TaiQty)'+TaiQty); + sql.Add(' )where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(CDS_AnPai.fieldbyname('SCPerson').AsString)+''''); + SQL.Add(' and APDate='''+Trim(CDS_AnPai.fieldbyname('APDate').AsString)+''''); + ExecSQL; + end; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYCon_Sub_AnPai Set JGPrice='); + sql.Add('(select Top 1 DEFFlt3 from KH_Zdy_Attachment where ZdyName='''+Trim(Order_Main.fieldbyname('C_CodeName').AsString)+''''); + sql.Add(' and DEFFlt1='+TaiQtyMax); + sql.Add(' )where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and SCPerson='''+Trim(CDS_AnPai.fieldbyname('SCPerson').AsString)+''''); + SQL.Add(' and APDate='''+Trim(CDS_AnPai.fieldbyname('APDate').AsString)+''''); + ExecSQL; + end; + end; + end; + //¼ӹ + CDS_AnPai.Delete; + end; + end; + CDS_AnPai.EnableControls; + + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + CDS_AnPai.EnableControls; + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; +end; + +procedure TfrmClothSCListZDSel.MainIdTMKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and substring(OM.MainId,3,10)='''+Trim(MainIdTM.Text)+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + MainIdTM.Text:=''; + end; +end; + +procedure TfrmClothSCListZDSel.ToolButton1Click(Sender: TObject); +begin + ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_ConInPut.dfm b/盛纺贸易管理/U_ConInPut.dfm new file mode 100644 index 0000000..fb30acb --- /dev/null +++ b/盛纺贸易管理/U_ConInPut.dfm @@ -0,0 +1,1354 @@ +object frmConInPut: TfrmConInPut + Left = 188 + Top = 134 + Width = 1325 + Height = 705 + Caption = #22806#38144#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1309 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1309 + Height = 447 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label3: TLabel + Left = 730 + Top = 13 + Width = 70 + Height = 13 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 730 + Top = 39 + Width = 70 + Height = 13 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 268 + Top = 39 + Width = 70 + Height = 13 + Caption = #35013#33337#21475#23736#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 502 + Top = 13 + Width = 72 + Height = 13 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 34 + Top = 13 + Width = 72 + Height = 13 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 730 + Top = 69 + Width = 70 + Height = 13 + Caption = #20132#26399#35828#26126#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 268 + Top = 13 + Width = 74 + Height = 13 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 505 + Top = 213 + Width = 70 + Height = 13 + Caption = #20844#21496#25260#22836#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 502 + Top = 69 + Width = 70 + Height = 13 + Caption = #20215#26684#26415#35821#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 505 + Top = 240 + Width = 72 + Height = 13 + Caption = #28322' '#30701' '#35013#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 265 + Top = 69 + Width = 70 + Height = 13 + Caption = #20184#27454#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 502 + Top = 39 + Width = 72 + Height = 13 + Caption = #30446' '#30340' '#22320#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 34 + Top = 159 + Width = 70 + Height = 13 + Caption = #20844#21496#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 268 + Top = 187 + Width = 70 + Height = 13 + Caption = #38134#34892#36134#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 505 + Top = 187 + Width = 72 + Height = 13 + Caption = #24320' '#25143' '#34892#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 34 + Top = 213 + Width = 70 + Height = 13 + Caption = #38134#34892#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 505 + Top = 159 + Width = 74 + Height = 13 + Caption = #30005' '#35805#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 730 + Top = 159 + Width = 74 + Height = 13 + Caption = #20256' '#30495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 730 + Top = 187 + Width = 70 + Height = 13 + Caption = #38134#34892#20195#30721#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 34 + Top = 38 + Width = 43 + Height = 15 + Caption = 'PO#'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 34 + Top = 100 + Width = 72 + Height = 13 + Caption = #29983' '#20135' '#21830#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 259 + Top = 462 + Width = 98 + Height = 13 + Caption = #25910#36135#20844#21496#25260#22836#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label13: TLabel + Left = 268 + Top = 100 + Width = 84 + Height = 13 + Caption = #29983#20135#21830#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 730 + Top = 100 + Width = 84 + Height = 13 + Caption = #29983#20135#21830#30005#35805#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 730 + Top = 483 + Width = 98 + Height = 13 + Caption = #36890#30693#20844#21496#25260#22836#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label38: TLabel + Left = 34 + Top = 186 + Width = 74 + Height = 13 + Caption = #37038' '#20214#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label40: TLabel + Left = 268 + Top = 131 + Width = 70 + Height = 13 + Caption = #23458#25143#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label32: TLabel + Left = 34 + Top = 130 + Width = 72 + Height = 13 + Caption = #20184' '#27454' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 34 + Top = 69 + Width = 70 + Height = 13 + Caption = #21512#21516#31867#22411#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 730 + Top = 240 + Width = 70 + Height = 13 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 730 + Top = 213 + Width = 72 + Height = 13 + Caption = #20986' '#21475' '#22269#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 34 + Top = 240 + Width = 74 + Height = 13 + Caption = #31246' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 268 + Top = 240 + Width = 70 + Height = 13 + Caption = #23450#37329#27604#20363#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 472 + Top = 238 + Width = 9 + Height = 16 + Caption = '%' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 505 + Top = 131 + Width = 70 + Height = 13 + Caption = #23458#25143#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 35 + Top = 267 + Width = 70 + Height = 13 + Caption = #20013#36716#38134#34892#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 503 + Top = 267 + Width = 84 + Height = 13 + Caption = #20013#36716#34892#20195#30721#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 798 + Top = 9 + Width = 149 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 0 + end + object DlyDate: TDateTimePicker + Tag = 2 + Left = 798 + Top = 35 + Width = 150 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object ConPerson1: TEdit + Tag = 2 + Left = 570 + Top = 10 + Width = 147 + Height = 19 + TabOrder = 2 + end + object ConNo: TEdit + Tag = 2 + Left = 105 + Top = 10 + Width = 147 + Height = 19 + TabOrder = 3 + end + object FromPlace: TBtnEditC + Tag = 2 + Left = 336 + Top = 35 + Width = 147 + Height = 21 + Hint = 'FromPlace/'#35013#33337#21475#23736 + ReadOnly = True + TabOrder = 4 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object CustomerNoName: TBtnEditC + Tag = 2 + Left = 336 + Top = 9 + Width = 147 + Height = 21 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 5 + OnBtnUpClick = CustomerNoNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object SYRName: TBtnEditC + Tag = 2 + Left = 573 + Top = 209 + Width = 148 + Height = 21 + Hint = 'SYRName/'#20844#21496#25260#22836 + ReadOnly = True + TabOrder = 6 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object PriceNote: TBtnEditC + Tag = 2 + Left = 570 + Top = 65 + Width = 147 + Height = 21 + Hint = 'PriceNote/'#20215#26684#26415#35821 + ReadOnly = True + TabOrder = 7 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object QtyNote: TBtnEditC + Tag = 2 + Left = 573 + Top = 236 + Width = 147 + Height = 21 + Hint = 'QtyNote/'#28322#30701#35013 + TabOrder = 8 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object Payment: TBtnEditC + Tag = 2 + Left = 339 + Top = 65 + Width = 144 + Height = 21 + Hint = 'Payment/'#20184#27454#26041#24335 + ReadOnly = True + TabOrder = 9 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object ToPlace: TBtnEditC + Tag = 2 + Left = 570 + Top = 35 + Width = 147 + Height = 21 + Hint = 'ToPlace/'#30446#30340#22320 + ReadOnly = True + TabOrder = 10 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BankNo: TBtnEditC + Tag = 2 + Left = 336 + Top = 183 + Width = 147 + Height = 21 + Hint = 'BankNo/'#38134#34892#36134#21495 + TabOrder = 11 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object SYRAddress: TEdit + Tag = 2 + Left = 105 + Top = 156 + Width = 379 + Height = 19 + TabOrder = 12 + end + object BankName: TEdit + Tag = 2 + Left = 573 + Top = 184 + Width = 147 + Height = 19 + TabOrder = 13 + end + object BankAddress: TEdit + Tag = 2 + Left = 105 + Top = 210 + Width = 383 + Height = 19 + TabOrder = 14 + end + object TelNo: TEdit + Tag = 2 + Left = 573 + Top = 156 + Width = 146 + Height = 19 + TabOrder = 15 + end + object FaxNo: TEdit + Tag = 2 + Left = 798 + Top = 156 + Width = 148 + Height = 19 + TabOrder = 16 + end + object DlyNote: TBtnEditC + Tag = 2 + Left = 798 + Top = 65 + Width = 148 + Height = 21 + Hint = 'DlyNote/'#20132#26399#35828#26126 + TabOrder = 17 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BankSelfFastNo: TEdit + Tag = 2 + Left = 798 + Top = 184 + Width = 148 + Height = 19 + TabOrder = 18 + end + object KHConNo: TEdit + Tag = 2 + Left = 105 + Top = 36 + Width = 147 + Height = 19 + TabOrder = 19 + end + object ConPerson2: TBtnEditC + Tag = 2 + Left = 105 + Top = 96 + Width = 147 + Height = 21 + Hint = 'ConPerson2/'#25910#36135#20154 + ReadOnly = True + TabOrder = 20 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object conDefstr1: TEdit + Tag = 2 + Left = 353 + Top = 458 + Width = 125 + Height = 19 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 21 + Visible = False + end + object conDefstr2: TEdit + Tag = 2 + Left = 345 + Top = 97 + Width = 371 + Height = 19 + TabOrder = 22 + end + object conDefstr3: TEdit + Tag = 2 + Left = 810 + Top = 97 + Width = 136 + Height = 19 + TabOrder = 23 + end + object conDefstr5: TEdit + Tag = 2 + Left = 821 + Top = 480 + Width = 129 + Height = 19 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 24 + Visible = False + end + object EmailNo: TEdit + Tag = 2 + Left = 105 + Top = 183 + Width = 150 + Height = 19 + TabOrder = 25 + end + object CustomerNo: TEdit + Tag = 2 + Left = 336 + Top = 127 + Width = 148 + Height = 19 + Enabled = False + ReadOnly = True + TabOrder = 26 + end + object FKPerson: TBtnEditC + Tag = 2 + Left = 105 + Top = 126 + Width = 147 + Height = 21 + Hint = 'FKPerson/'#20184#27454#20154 + ReadOnly = True + TabOrder = 27 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object ConType: TBtnEditC + Tag = 2 + Left = 105 + Top = 65 + Width = 147 + Height = 21 + Hint = 'ConType/'#21512#21516#31867#22411 + ReadOnly = True + TabOrder = 28 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object ShippMent: TBtnEditC + Tag = 2 + Left = 798 + Top = 236 + Width = 149 + Height = 21 + Hint = 'ShippMent/'#21253#35013#35201#27714 + ReadOnly = True + TabOrder = 29 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object HuoDai: TBtnEditC + Tag = 2 + Left = 798 + Top = 209 + Width = 149 + Height = 21 + Hint = 'HuoDai/'#36135#20195 + ReadOnly = True + TabOrder = 30 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object cxGrid2: TcxGrid + Left = 105 + Top = 292 + Width = 846 + Height = 140 + TabOrder = 31 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 40 + end + object cxGridDBColumn18: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'MNote' + HeaderAlignmentHorz = taCenter + Width = 721 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object Button1: TButton + Left = 39 + Top = 320 + Width = 44 + Height = 28 + Caption = #22686#34892 + TabOrder = 32 + OnClick = Button1Click + end + object Button2: TButton + Left = 39 + Top = 372 + Width = 44 + Height = 28 + Caption = #21024#34892 + TabOrder = 33 + OnClick = Button2Click + end + object KeFu: TEdit + Tag = 2 + Left = 105 + Top = 237 + Width = 147 + Height = 19 + TabOrder = 34 + end + object CPCFBi: TcxCurrencyEdit + Left = 336 + Top = 236 + TabOrder = 35 + Width = 131 + end + object KHAdd: TEdit + Tag = 2 + Left = 572 + Top = 128 + Width = 374 + Height = 19 + TabOrder = 36 + end + object ZZBank: TEdit + Tag = 2 + Left = 105 + Top = 264 + Width = 383 + Height = 19 + TabOrder = 37 + end + object ZZBankCode: TEdit + Tag = 2 + Left = 578 + Top = 264 + Width = 148 + Height = 19 + TabOrder = 38 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 476 + Width = 1309 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 104 + OnClick = ToolButton3Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 505 + Width = 1309 + Height = 160 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end + item + Format = '0' + Position = spFooter + Column = v1PRTPrice + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column2: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column13: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column13PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 86 + end + object v1Column5: TcxGridDBColumn + Caption = #33521#25991#21697#21517 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 84 + end + object v1Column6: TcxGridDBColumn + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1PrtMiaoShu: TcxGridDBColumn + Caption = #20135#21697#25551#36848 + DataBinding.FieldName = 'PrtMiaoShu' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1LF: TcxGridDBColumn + Caption = #31435#26041 + DataBinding.FieldName = 'LF' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object v1Column14: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v1Column15: TcxGridDBColumn + Caption = #30830#35748#33394 + DataBinding.FieldName = 'PRTColorOK' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v1Column3: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 75 + end + object v1Column7: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 73 + end + object v1Column8: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 78 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1PRTOrderQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 66 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg' + 'SET') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 66 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1PRTPricePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.FontBlue + Width = 65 + end + object v1HBType: TcxGridDBColumn + Caption = #36135#24065#31867#22411 + DataBinding.FieldName = 'HBType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1HBTypePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + '$' + #65509) + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #38024#32455#19978#26426#36153 + DataBinding.FieldName = 'ZhenZhiSJFee' + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #21360#33457#19978#26426#36153 + DataBinding.FieldName = 'YinHuaSJFee' + Width = 71 + end + object v1Column10: TcxGridDBColumn + Caption = #21253#32568#36153 + DataBinding.FieldName = 'BaoGangFee' + Width = 50 + end + object v1Column11: TcxGridDBColumn + Caption = #21046#32593#21046#29256#36153 + DataBinding.FieldName = 'ZhiWangZhiBanFee' + Width = 74 + end + object v1Column12: TcxGridDBColumn + Caption = #22871#25968 + DataBinding.FieldName = 'TaoQty' + Width = 38 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 304 + Top = 5 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 264 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 480 + Top = 528 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 512 + Top = 528 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 224 + Top = 5 + end + object CDS_Type: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 3 + end + object Order_Note: TClientDataSet + Aggregates = <> + Params = <> + Left = 414 + Top = 351 + end + object DataSource2: TDataSource + DataSet = Order_Note + Left = 446 + Top = 351 + end +end diff --git a/盛纺贸易管理/U_ConInPut.pas b/盛纺贸易管理/U_ConInPut.pas new file mode 100644 index 0000000..04d2c48 --- /dev/null +++ b/盛纺贸易管理/U_ConInPut.pas @@ -0,0 +1,1696 @@ +unit U_ConInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit, cxCurrencyEdit; + +type + TfrmConInPut = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label3: TLabel; + OrdDate: TDateTimePicker; + Label4: TLabel; + DlyDate: TDateTimePicker; + Label7: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + v1PRTColor: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + v1PRTOrderQty: TcxGridDBColumn; + Label9: TLabel; + ConPerson1: TEdit; + Label10: TLabel; + ConNo: TEdit; + Label11: TLabel; + Label14: TLabel; + Label20: TLabel; + FromPlace: TBtnEditC; + CustomerNoName: TBtnEditC; + v1XHNo: TcxGridDBColumn; + SYRName: TBtnEditC; + v1OrderUnit: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + Label5: TLabel; + PriceNote: TBtnEditC; + Label6: TLabel; + QtyNote: TBtnEditC; + Label15: TLabel; + Payment: TBtnEditC; + Label1: TLabel; + ToPlace: TBtnEditC; + Label17: TLabel; + Label18: TLabel; + BankNo: TBtnEditC; + SYRAddress: TEdit; + Label19: TLabel; + BankName: TEdit; + Label21: TLabel; + BankAddress: TEdit; + ToolButton3: TToolButton; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + Label8: TLabel; + TelNo: TEdit; + Label23: TLabel; + FaxNo: TEdit; + DlyNote: TBtnEditC; + CDS_Type: TClientDataSet; + Label28: TLabel; + BankSelfFastNo: TEdit; + Label29: TLabel; + KHConNo: TEdit; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + ConPerson2: TBtnEditC; + Label2: TLabel; + conDefstr1: TEdit; + Label12: TLabel; + conDefstr2: TEdit; + Label13: TLabel; + Label31: TLabel; + conDefstr3: TEdit; + Label33: TLabel; + conDefstr5: TEdit; + EmailNo: TEdit; + Label38: TLabel; + CustomerNo: TEdit; + Label40: TLabel; + Label32: TLabel; + FKPerson: TBtnEditC; + Label35: TLabel; + ConType: TBtnEditC; + Label16: TLabel; + ShippMent: TBtnEditC; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + Label34: TLabel; + HuoDai: TBtnEditC; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn18: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Button1: TButton; + Button2: TButton; + Order_Note: TClientDataSet; + DataSource2: TDataSource; + Label22: TLabel; + KeFu: TEdit; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + Label24: TLabel; + Label25: TLabel; + CPCFBi: TcxCurrencyEdit; + v1HBType: TcxGridDBColumn; + Label26: TLabel; + KHAdd: TEdit; + v1PrtMiaoShu: TcxGridDBColumn; + v1LF: TcxGridDBColumn; + Label27: TLabel; + Label30: TLabel; + ZZBank: TEdit; + ZZBankCode: TEdit; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure SYRNameBtnUpClick(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure CPCFNoDblClick(Sender: TObject); + procedure CPRanHouGYBtnDnClick(Sender: TObject); + procedure v1PRTOrderQtyPropertiesEditValueChanged(Sender: TObject); + procedure v1OrderUnitPropertiesEditValueChanged(Sender: TObject); + procedure v1PRTPricePropertiesEditValueChanged(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure v1Column13PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1HBTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + fusername:string; + procedure InitData(); + + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + function SaveDataSubOne():Boolean; + function SaveDataMain():Boolean; + function SaveDataSubMore():Boolean; + { Private declarations } + public + PState,CopyInt:Integer; + FMainId,FFMainId:String; + FXS:Integer; + procedure GetKgQty(); + procedure GetKgPrice(); + { Public declarations } + end; + +var + frmConInPut: TfrmConInPut; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ZdyAttachment,U_CPManageFMSel; + +{$R *.dfm} + +procedure TfrmConInPut.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬ¼1',Tv1,'ָʾ'); +end; + +procedure TfrmConInPut.InitData(); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''MPRTNameType'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Type); + SInitCDSData20(ADOQuery1,CDS_Type); + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrderCon_Sub '); + if PState=1 then + begin + sql.Add('where MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' where 1<>1'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrderCon_Main_Note '); + if PState=1 then + begin + sql.Add('where MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' where 1<>1'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Note); + SInitCDSData20(ADOQuery1,Order_Note); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,ScrollBox1,2); + SYRName.TxtCode:=Trim(ADOQuery1.fieldbyname('ConDefStr2').AsString); + if PState=0 then + begin + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=SGetServerDateTime(ADOTemp); + //ConPerson1.Text:=Trim(DName); + end else + begin + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + //ConPerson1.Text:=Trim(DName); + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + with Order_Note do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('MNId').Value:=''; + Post; + Next; + end; + end; + end; + if PState=0 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select TOp 1* from JYOrderCon_Main where Filler='''+Trim(DName)+''''); + sql.Add(' and isnull(KeFu,'''')<>'''' '); + sql.Add(' order by FillTime desc '); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + ConPerson1.Text:=Trim(ADOTemp.fieldbyname('ConPerson1').AsString); + end else + begin + + end; + end; +end; + +procedure TfrmConInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin +end; + +procedure TfrmConInPut.FormShow(Sender: TObject); +begin + fuserName:=DCode; + readCxGrid('ͬ¼1',Tv1,'ָʾ'); + InitData(); +end; + +function TfrmConInPut.SaveData():Boolean; +var + maxno,maxmnno:String; + fconNO,fmxType:string; + +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'JW','JYOrderCon_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrderCon_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrderCon_Main',ScrollBox1,2); + if trim(CPCFBi.Text)='' then + fieldbyname('CPCFBi').Value:=0; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillerCode').Value:=Trim(DCOde); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('MPRTType').Value:=''; + Post; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where ConNo='''+Trim(ConNo.Text)+''''); + Open; + end; + if ADOCmd.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ͬظ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrderCon_Main Set Filler='''+Trim(DName)+''''); + sql.Add(' where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + FMainId:=Trim(maxno); + ///汸ע + with Order_Note do + begin + First; + while not Eof do + begin + if Trim(Order_Note.fieldbyname('MNId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxmnno,'MN','JYOrderCon_Main_Note',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡעˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxmnno:=Trim(Order_Note.fieldbyname('MNId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderCon_Main_Note where MainId='''+Trim(FMainId)+''''); + sql.Add(' and MNId='''+Trim(maxmnno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Note.fieldbyname('MNId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('MNId').Value:=Trim(maxmnno); + FieldByName('MNType').Value:=''; + RTSetSaveDataCDS(ADOCmd,Tv2,Order_Note,'JYOrderCon_Main_Note',0); + Post; + end; + Order_Note.Edit; + Order_Note.FieldByName('MNId').Value:=Trim(maxmnno); + Next; + end; + end; + ///汸ע + ///ӱ + + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'JB','JYOrderCon_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderCon_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrderCon_Sub',0); + if Trim(fieldbyname('PRTOrderQty').AsString)='' then + begin + fieldbyname('PRTOrderQty').Value:=0 + end; + if Trim(fieldbyname('PRTPrice').AsString)='' then + begin + fieldbyname('PRTPrice').Value:=0 + end; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('Update JYOrderCon_Sub Set ConMXMoney=Cast(PRTPrice*PRTOrderQty as decimal(18,2))+isnull(ZhenZhiSJFee,0)'); + sql.Add('+isnull(YinHuaSJFee,0)+isnull(BaoGangFee,0)+isnull(ZhiWangZhiBanFee,0)*isnull(TaoQty,0)'); + sql.Add(' where SubId='''+Trim(maxno)+''''); + ExecSQL; + end; + //Order_Sub.Post; + Next; + end; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConMoney=(select Sum(ConMXMoney) from JYOrderCon_Sub A where A.MainId=JYOrderCon_Main.MainId)'); + sql.Add(' where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmConInPut.SaveDataMain():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + maxno:=Trim(FFMainId); + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrder_Main',ScrollBox1,2); + if PState=1 then + begin + FieldByName('OrdUpDate').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + FMainId:=Trim(maxno); + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmConInPut.SaveDataSubOne():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + //First; + //while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + //Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmConInPut.SaveDataSubMore():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmConInPut.TBSaveClick(Sender: TObject); +begin + OrdDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + if Trim(CustomerNoName.Text)='' then + begin + Application.MessageBox('ͻƲΪգ','ʾ',0); + Exit; + end; + if Trim(ConPerson1.Text)='' then + begin + Application.MessageBox('ҵԱΪգ','ʾ',0); + Exit; + end; + if DlyDate.Checked=False then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if Trim(ConType.Text)='' then + begin + Application.MessageBox('ͬͲΪգ','ʾ',0); + Exit; + end; + if Trim(Payment.Text)='' then + begin + Application.MessageBox('ʽΪգ','ʾ',0); + Exit; + end; + if Trim(PriceNote.Text)='' then + begin + Application.MessageBox('۸ﲻΪգ','ʾ',0); + Exit; + end; + if Trim(DlyNote.Text)='' then + begin + Application.MessageBox('˵Ϊգ','ʾ',0); + Exit; + end; + if Trim(QtyNote.Text)='' then + begin + Application.MessageBox('װΪգ','ʾ',0); + Exit; + end; + if Trim(SYRName.Text)='' then + begin + Application.MessageBox('˾̧ͷΪգ','ʾ',0); + Exit; + end; + if Trim(BankNo.Text)='' then + begin + Application.MessageBox('˺ŲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PrtCodeName',null,[])=True then + begin + Application.MessageBox('ӢƷΪգ','ʾ',0); + Exit; + end; + {if Order_Sub.Locate('PrtCode',null,[])=True then + begin + Application.MessageBox('ƷŲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PrtCode','',[])=True then + begin + Application.MessageBox('ƷŲΪգ','ʾ',0); + Exit; + end;} + if Order_Sub.Locate('PRTspec',null,[])=True then + begin + Application.MessageBox('ɷݲΪգ','ʾ',0); + Exit; + end; + {if Order_Sub.Locate('SOrdDefStr4',null,[])=True then + begin + Application.MessageBox('ɫӢIJΪգ','ʾ',0); + Exit; + end;} + if Order_Sub.Locate('PRTMF',null,[])=True then + begin + Application.MessageBox('ŷΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PRTKZ',null,[])=True then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PRTOrderQty',null,[])=True then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('OrderUnit',null,[])=True then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PRTPrice',null,[])=True then + begin + Application.MessageBox('۲Ϊգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PriceUnit',null,[])=True then + begin + Application.MessageBox('ֲΪգ','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmConInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + MainType:=Trim(DName); + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + Self.Order_Sub.FieldByName('SOrdDefStr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; + +end; + +procedure TfrmConInPut.ToolButton1Click(Sender: TObject); +var + i:Integer; +begin + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪ!','ʾ',0); + Exit; + end; + i:=Order_Sub.RecordCount; + i:=i+1; + CopyAddRow(Tv1,Order_Sub); + with Order_Sub do + begin + Edit; + FieldByName('XHNO').Value:=IntToStr(i); + FieldByName('PRTColor').Value:=''; + FieldByName('PRTOrderQty').Value:=null; + // FieldByName('PRTPrice').Value:=null; + FieldByName('SOrddefstr4').Value:=null; + //FieldByName('SOrddefstr2').Value:=null; + Post; + end; +end; + +procedure TfrmConInPut.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; + { if Order_Sub.IsEmpty then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + end; } +end; + +procedure TfrmConInPut.CustomerNoNameBtnUpClick(Sender: TObject); +var + FAddress:string; +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + CustomerNo.Text:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + ConPerson2.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + ConPerson1.Text:=Trim(CDS_HZ.fieldbyname('DEFstr5').AsString); + FAddress:=Trim(CDS_HZ.fieldbyname('DEFNote2').AsString); + KeFu.Text:=Trim(CDS_HZ.fieldbyname('SNo').AsString); + end; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrderCon_Main where CustomerNoName='''+Trim(CustomerNoName.Text)+''''); + sql.Add(' order by FillTime desc '); + Open; + end; + if Trim(ADOTemp.fieldbyname('conDefstr2').AsString)<>'' then + begin + conDefstr2.Text:=Trim(ADOTemp.fieldbyname('conDefstr2').AsString); + conDefstr3.Text:=Trim(ADOTemp.fieldbyname('conDefstr3').AsString); + end else + begin + conDefstr2.Text:=Trim(FAddress); + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmConInPut.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmConInPut.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with Order_Sub do + begin + Edit; + FieldByName('SLbName').Value:=labname; + FieldByName('SLbInt').Value:=LabInt; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + +end; + +procedure TfrmConInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +var + mvalue,FMF,FKZ,FXS,FOrdUnit:string; + FReal:Double; +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //FOrdUnit:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; + GetKgQty(); + GetKgPrice(); + { if Trim(FOrdUnit)<>'M' then + begin + if Trim(FOrdUnit)<>'Y' then + begin + if Trim(FOrdUnit)='Kg' then + begin + Order_Sub.Edit; + Order_Sub.FieldByName('KgQty').Value:=Order_Sub.FieldByName('PRTOrderQty').Value; + end else + begin + Order_Sub.Edit; + Order_Sub.FieldByName('KgQty').Value:=null; + end; + Exit; + end; + end; + if Trim(MPRTMF.Text)='' then + begin + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + if Trim(MPRTKZ.Text)='' then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + FMF:=Copy(Trim(MPRTMF.Text),Pos('/',Trim(MPRTMF.Text))+1,2); + if TryStrToFloat(FMF,FReal)=False then + begin + Application.MessageBox('ŷ¼!','ʾ',0); + Exit; + end; + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('g',Trim(MPRTKZ.Text))-1); + if TryStrToFloat(FKZ,FReal)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + if Trim(FOrdUnit)='M' then + begin + FXS:='1'; + end else + begin + FXS:='0.9144'; + end; + + with Order_Sub do + begin + Edit; + FieldByName('KgQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').Value + *strtofloat(FXS)*strtofloat(FMF)*2.54/100*strtofloat(FKZ)/1000; + //Post; + end; } +end; +procedure TfrmConInPut.GetKgQty(); +var + mvalue,FMF,FKZ,FXS,FOrdUnit,FOrdQty:string; + FReal:Double; +begin +{ FOrdUnit:=Trim(Order_Sub.fieldbyname('OrderUnit').AsString); + if Trim(FOrdUnit)<>'M' then + begin + if Trim(FOrdUnit)<>'Y' then + begin + if Trim(FOrdUnit)='Kg' then + begin + Order_Sub.Edit; + Order_Sub.FieldByName('KgQty').Value:=Order_Sub.FieldByName('PRTOrderQty').Value; + end else + begin + Order_Sub.Edit; + Order_Sub.FieldByName('KgQty').Value:=null; + end; + Exit; + end; + end; + + + + if Pos('-',Trim(MPRTKZ.Text))>0 then + begin + if Pos('g',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),Pos('-',Trim(MPRTKZ.Text))+1,Pos('g',Trim(MPRTKZ.Text))-Pos('-',Trim(MPRTKZ.Text))-1); + if Pos('G',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),Pos('-',Trim(MPRTKZ.Text))+1,Pos('G',Trim(MPRTKZ.Text))-Pos('-',Trim(MPRTKZ.Text))-1); + end else + begin + if Pos('g',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('g',Trim(MPRTKZ.Text))-1); + if Pos('G',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('G',Trim(MPRTKZ.Text))-1); + end; + if TryStrToFloat(FKZ,FReal)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + if Trim(FOrdUnit)='M' then + begin + FXS:='1'; + end else + begin + FXS:='0.9144'; + end; + FOrdQty:=Order_Sub.fieldbyname('PRTOrderQty').AsString; + if Trim(FOrdQty)='' then + FOrdQty:='0'; + with Order_Sub do + begin + Edit; + FieldByName('KgQty').Value:=strtofloat(FOrdQty) + *strtofloat(FXS)*strtofloat(FMF)*2.54/100*strtofloat(FKZ)/1000; + //Post; + end; } +end; +procedure TfrmConInPut.GetKgPrice(); +var + mvalue,FMF,FKZ,FXS,FOrdUnit,FOrdPrice:string; + FReal:Double; +begin + { FOrdUnit:=Trim(Order_Sub.fieldbyname('OrderUnit').AsString); + if Trim(FOrdUnit)<>'M' then + begin + if Trim(FOrdUnit)<>'Y' then + begin + if Trim(FOrdUnit)='Kg' then + begin + Order_Sub.Edit; + Order_Sub.FieldByName('KgPrice').Value:=Order_Sub.FieldByName('PRTPrice').Value; + end else + begin + Order_Sub.Edit; + Order_Sub.FieldByName('KgPrice').Value:=null; + end; + Exit; + end; + end; + if Trim(MPRTMF.Text)='' then + begin + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + if Trim(MPRTKZ.Text)='' then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + //FMF:=Copy(Trim(MPRTMF.Text),Pos('/',Trim(MPRTMF.Text))+1,2); + if Pos('/',Trim(MPRTMF.Text))>0 then + begin + FMF:=Copy(Trim(MPRTMF.Text),Pos('/',Trim(MPRTMF.Text))+1,2); + end else + FMF:=Copy(Trim(MPRTMF.Text),1,2); + if TryStrToFloat(FMF,FReal)=False then + begin + Application.MessageBox('ŷ¼!','ʾ',0); + Exit; + end; + {FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('g',Trim(MPRTKZ.Text))-1); + if TryStrToFloat(FKZ,FReal)=False then + begin + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('G',Trim(MPRTKZ.Text))-1); + if TryStrToFloat(FKZ,FReal)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + if Pos('-',Trim(MPRTKZ.Text))>0 then + begin + if Pos('g',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),Pos('-',Trim(MPRTKZ.Text))+1,Pos('g',Trim(MPRTKZ.Text))-Pos('-',Trim(MPRTKZ.Text))-1); + if Pos('G',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),Pos('-',Trim(MPRTKZ.Text))+1,Pos('G',Trim(MPRTKZ.Text))-Pos('-',Trim(MPRTKZ.Text))-1); + end else + begin + if Pos('g',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('g',Trim(MPRTKZ.Text))-1); + if Pos('G',Trim(MPRTKZ.Text))>0 then + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('G',Trim(MPRTKZ.Text))-1); + end; + if TryStrToFloat(FKZ,FReal)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + if Trim(FOrdUnit)='M' then + begin + FXS:='1'; + end else + begin + FXS:='0.9144'; + end; + FOrdPrice:=Order_Sub.fieldbyname('PRTPrice').AsString; + if Trim(FOrdPrice)='' then + FOrdPrice:='0'; + with Order_Sub do + begin + Edit; + FieldByName('KgPrice').Value:=1.00/(strtofloat(FXS)*strtofloat(FMF)*2.54/100*strtofloat(FKZ)/1000)*strtofloat(FOrdPrice); + //Post; + end; } +end; + +procedure TfrmConInPut.v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='۸λ'; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPut.SYRNameBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='SYRName' then + begin + flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; + if Trim(flag)='BankNo' then + begin + fnote:=True; + end; + if Trim(flag)='ConType' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; + {if Trim(flag)='Payment' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; } + if Trim(flag)='PriceNote' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; + if Trim(flag)='ShippMent' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; + + if Trim(flag)='ConPerson2' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + MainType:=Trim(DCode); + end; + end; + if Trim(flag)='FKPerson' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + MainType:=Trim(DCode); + end; + end; + if ShowModal=1 then + begin + if Trim(flag)='ConPerson2' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where ConPerson2='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' and MPRTTYpe='''' '); + sql.Add(' order by FillTime desc'); + Open; + Self.conDefstr2.Text:=Trim(ADOTemp.fieldbyname('conDefstr2').AsString); + Self.conDefstr3.Text:=Trim(ADOTemp.fieldbyname('conDefstr3').AsString); + end; + end; + if Trim(flag)<>'OrdDefStr2' then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='BankNo' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where BankNo='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' and MPRTTYpe='''' '); + sql.Add(' order by FillTime desc'); + Open; + Self.BankName.Text:=Trim(ADOTemp.fieldbyname('BankName').AsString); + Self.BankAddress.Text:=Trim(ADOTemp.fieldbyname('BankAddress').AsString); + Self.BankSelfFastNo.Text:=Trim(ADOTemp.fieldbyname('BankSelfFastNo').AsString); + end; + end; + end + else + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + SYRName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where SYRName='''+Trim(ClientDataSet1.fieldbyname('Note').AsString)+''''); + sql.Add(' and MPRTTYpe='''' '); + sql.Add(' and isnull(SYRAddress,'''')<>'''' '); + sql.Add(' order by FillTime desc'); + Open; + Self.SYRAddress.Text:=Trim(ADOTemp.fieldbyname('SYRAddress').AsString); + Self.TelNo.Text:=Trim(ADOTemp.fieldbyname('TelNo').AsString); + Self.FaxNo.Text:=Trim(ADOTemp.fieldbyname('FaxNo').AsString); + Self.EmailNo.Text:=Trim(ADOTemp.fieldbyname('EmailNo').AsString); + end; + end; + end; + end; + finally + frmZDYHelp.Free; + end; + +end; + +procedure TfrmConInPut.ToolButton3Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + OneKeyPost(Tv1,Order_Sub); +end; + +procedure TfrmConInPut.CPCFNoDblClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTNameEngType'; + flagname:='Ʒ'; + V1HelpType.Visible:=True; + V1HelpType.Caption:='д'; + fnote:=True; + V1Name.Caption:='Ӣ'; + V1Note.Caption:='ע'; + if ShowModal=1 then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''MPRTNameType'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Type); + SInitCDSData20(ADOQuery1,CDS_Type); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPut.CPRanHouGYBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; + +end; + +procedure TfrmConInPut.v1PRTOrderQtyPropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FMF,FKZ,FXS:string; + FReal:Double; +begin + {if Trim(Order_Sub.FieldByName('OrderUnit').AsString)<>'M' then + begin + if Trim(Order_Sub.FieldByName('OrderUnit').AsString)<>'Y' then Exit; + end; + if Trim(MPRTMF.Text)='' then + begin + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + if Trim(MPRTKZ.Text)='' then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + FMF:=Copy(Trim(MPRTMF.Text),Pos('/',Trim(MPRTMF.Text))+1,2); + if TryStrToFloat(FMF,FReal)=False then + begin + Application.MessageBox('ŷ¼!','ʾ',0); + Exit; + end; + FKZ:=Copy(Trim(MPRTKZ.Text),1,Pos('g',Trim(MPRTKZ.Text))-1); + if TryStrToFloat(FKZ,FReal)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + if Trim(Order_Sub.FieldByName('OrderUnit').AsString)='M' then + begin + FXS:='1'; + end else + begin + FXS:='0.9144'; + end; } + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with Order_Sub do + begin + Edit; + FieldByName('PRTOrderQty').Value:=mvalue; + Post; + end; + {with Order_Sub do + begin + Edit; + FieldByName('KgQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').Value + *strtofloat(FXS)*strtofloat(FMF)*2.54/100*strtofloat(FKZ)/1000; + Post; + end; } + GetKgQty(); +end; + +procedure TfrmConInPut.v1OrderUnitPropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxButtonEdit(Sender).EditingText; + with Order_Sub do + begin + Edit; + FieldByName('OrderUnit').Value:=mvalue; + Post; + end; + GetKgQty(); + GetKgPrice(); +end; + +procedure TfrmConInPut.v1PRTPricePropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with Order_Sub do + begin + Edit; + FieldByName('PRTPrice').Value:=mvalue; + Post; + end; + GetKgPrice(); + with ADOCmd do + begin + close; + sql.clear; + sql.Add('select * from YF_Money_CR where YFTypeId='''+trim(Order_Sub.fieldbyname('Subid').AsString)+''''); + open; + end; + if ADOCmd.IsEmpty=False then + begin + with ADOTemp do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set Price='''+trim(mvalue)+''' '); + sql.add('where YFTypeId='''+trim(Order_Sub.fieldbyname('Subid').AsString)+''''); + execsql; + end; + end; +end; + +procedure TfrmConInPut.v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCodeName'; + flagname:='Ʒ'; + if ShowModal=1 then + begin + Order_Sub.Edit; + Order_Sub.fieldbyname('PRTCodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //Order_Sub.fieldbyname('PRTCode').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + Order_Sub.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmConInPut.v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTMF'; + flagname:='ŷϢ'; + if ShowModal=1 then + begin + Order_Sub.Edit; + Order_Sub.fieldbyname('PRTMF').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + // Order_Sub.fieldbyname('PRTCode').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + Order_Sub.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmConInPut.v1Column8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTKZ'; + flagname:='Ϣ'; + if ShowModal=1 then + begin + Order_Sub.Edit; + Order_Sub.fieldbyname('PRTKZ').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Order_Sub.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmConInPut.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alclient; +end; + +procedure TfrmConInPut.Button1Click(Sender: TObject); +var + i:Integer; +begin + i:=Order_Note.RecordCount; + i:=i+1; + with Order_Note do + begin + Append; + FieldByName('XHNO').Value:=IntToStr(i); + Post; + end; +end; + +procedure TfrmConInPut.Button2Click(Sender: TObject); +begin + if Order_Note.IsEmpty then Exit; + if Trim(Order_Note.fieldbyname('MNId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Main_Note where MNId='''+Trim(Order_Note.fieldbyname('MNId').AsString)+''''); + ExecSQL; + end; + end; + Order_Note.Delete; +end; + +procedure TfrmConInPut.v1Column13PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmCPManageFMSel:=TfrmCPManageFMSel.Create(Application); + with frmCPManageFMSel do + begin + if ShowModal=1 then + begin + with Self.Order_Sub do + begin + Edit; + FieldByName('PrtCode').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYNo').Value; + FieldByName('PrtCodeName').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYEName').Value; + FieldByName('PRTspec').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYECF').Value; + FieldByName('PRTMF').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYMF').Value; + FieldByName('PRTKZ').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYKZ').Value; + end; + end; + end; + finally + frmCPManageFMSel.Free; + end; +end; + +procedure TfrmConInPut.v1HBTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='HBType'; + flagname:=''; + if ShowModal=1 then + begin + Order_Sub.Edit; + Order_Sub.fieldbyname('HBType').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Order_Sub.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +end. diff --git a/盛纺贸易管理/U_ConInPutNX.dfm b/盛纺贸易管理/U_ConInPutNX.dfm new file mode 100644 index 0000000..d64d204 --- /dev/null +++ b/盛纺贸易管理/U_ConInPutNX.dfm @@ -0,0 +1,1161 @@ +object frmConInPutNX: TfrmConInPutNX + Left = 215 + Top = 48 + Width = 1063 + Height = 696 + Caption = #20869#38144#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1047 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1047 + Height = 406 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label3: TLabel + Left = 268 + Top = 42 + Width = 70 + Height = 13 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 731 + Top = 42 + Width = 70 + Height = 13 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 502 + Top = 42 + Width = 70 + Height = 13 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 502 + Top = 13 + Width = 72 + Height = 13 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 37 + Top = 13 + Width = 72 + Height = 13 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 731 + Top = 73 + Width = 70 + Height = 13 + Caption = #20132#26399#35828#26126#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 268 + Top = 13 + Width = 74 + Height = 13 + Caption = #38656' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 731 + Top = 13 + Width = 74 + Height = 13 + Caption = #20379' '#26041#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 268 + Top = 73 + Width = 72 + Height = 13 + Caption = #28322' '#30701' '#35013#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 502 + Top = 228 + Width = 70 + Height = 13 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 502 + Top = 105 + Width = 70 + Height = 13 + Caption = #20379#26041#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 502 + Top = 139 + Width = 70 + Height = 13 + Caption = #20379#26041#36134#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 731 + Top = 139 + Width = 84 + Height = 13 + Caption = #20379#26041#24320#25143#34892#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 37 + Top = 169 + Width = 70 + Height = 13 + Caption = #38656#26041#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 37 + Top = 137 + Width = 70 + Height = 13 + Caption = #20379#26041#30005#35805#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 268 + Top = 137 + Width = 70 + Height = 13 + Caption = #20379#26041#20256#30495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 502 + Top = 171 + Width = 70 + Height = 13 + Caption = #38656#26041#30005#35805#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 731 + Top = 171 + Width = 70 + Height = 13 + Caption = #38656#26041#20256#30495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 37 + Top = 42 + Width = 38 + Height = 13 + Caption = 'PO#'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 37 + Top = 73 + Width = 70 + Height = 13 + Caption = #21512#21516#31867#22411#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 37 + Top = 197 + Width = 84 + Height = 13 + Caption = #20379#26041#32852#31995#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 268 + Top = 197 + Width = 98 + Height = 13 + Caption = #20379#26041#32852#31995#25163#26426#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 502 + Top = 197 + Width = 84 + Height = 13 + Caption = #38656#26041#32852#31995#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 731 + Top = 197 + Width = 98 + Height = 13 + Caption = #38656#26041#32852#31995#25163#26426#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 502 + Top = 73 + Width = 70 + Height = 13 + Caption = #36135#36816#20844#21496#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label40: TLabel + Left = 268 + Top = 105 + Width = 70 + Height = 13 + Caption = #23458#25143#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 37 + Top = 228 + Width = 74 + Height = 13 + Caption = #31246' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 37 + Top = 106 + Width = 70 + Height = 13 + Caption = #33337#26679#31859#25968#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 268 + Top = 228 + Width = 70 + Height = 13 + Caption = #23450#37329#27604#20363#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 477 + Top = 226 + Width = 9 + Height = 16 + Caption = '%' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 336 + Top = 38 + Width = 152 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 0 + end + object DlyDate: TDateTimePicker + Tag = 2 + Left = 798 + Top = 38 + Width = 150 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object ConPerson1: TEdit + Tag = 2 + Left = 570 + Top = 10 + Width = 147 + Height = 19 + TabOrder = 2 + end + object ConNo: TEdit + Tag = 2 + Left = 105 + Top = 10 + Width = 147 + Height = 19 + TabOrder = 3 + end + object FromPlace: TBtnEditC + Tag = 2 + Left = 570 + Top = 38 + Width = 147 + Height = 21 + Hint = 'QianDPlace/'#31614#35746#22320#28857 + ReadOnly = True + TabOrder = 4 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object CustomerNoName: TBtnEditC + Tag = 2 + Left = 336 + Top = 9 + Width = 152 + Height = 21 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 5 + OnBtnUpClick = CustomerNoNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object SYRName: TBtnEditC + Tag = 2 + Left = 798 + Top = 9 + Width = 148 + Height = 21 + Hint = 'SYRName/'#20379#26041 + ReadOnly = True + TabOrder = 6 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object QtyNote: TBtnEditC + Tag = 2 + Left = 336 + Top = 68 + Width = 150 + Height = 21 + Hint = 'QtyNoteZW/'#28322#30701#35013 + TabOrder = 7 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object Payment: TBtnEditC + Tag = 2 + Left = 570 + Top = 223 + Width = 376 + Height = 21 + Hint = 'PaymentZW/'#32467#31639#26041#24335 + TabOrder = 8 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BankNo: TBtnEditC + Tag = 2 + Left = 570 + Top = 134 + Width = 147 + Height = 21 + Hint = 'BankNo/'#38134#34892#36134#21495 + TabOrder = 9 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object SYRAddress: TEdit + Tag = 2 + Left = 570 + Top = 102 + Width = 376 + Height = 19 + TabOrder = 10 + end + object BankName: TEdit + Tag = 2 + Left = 811 + Top = 135 + Width = 135 + Height = 19 + TabOrder = 11 + end + object CTMAddress: TEdit + Tag = 2 + Left = 105 + Top = 166 + Width = 380 + Height = 19 + TabOrder = 12 + end + object TelNo: TEdit + Tag = 2 + Left = 105 + Top = 133 + Width = 147 + Height = 19 + TabOrder = 13 + end + object FaxNo: TEdit + Tag = 2 + Left = 336 + Top = 133 + Width = 149 + Height = 19 + TabOrder = 14 + end + object DlyNote: TBtnEditC + Tag = 2 + Left = 798 + Top = 68 + Width = 148 + Height = 21 + Hint = 'DlyNoteZW/'#20132#26399#35828#26126 + TabOrder = 15 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object CTMTelNo: TEdit + Tag = 2 + Left = 570 + Top = 167 + Width = 147 + Height = 19 + TabOrder = 16 + end + object CTMFaxNo: TEdit + Tag = 2 + Left = 798 + Top = 167 + Width = 148 + Height = 19 + TabOrder = 17 + end + object KHConNo: TEdit + Tag = 2 + Left = 105 + Top = 39 + Width = 147 + Height = 19 + TabOrder = 18 + end + object ConType: TBtnEditC + Tag = 2 + Left = 105 + Top = 68 + Width = 147 + Height = 21 + Hint = 'ConTypeZW/'#21512#21516#31867#22411 + ReadOnly = True + TabOrder = 19 + OnDblClick = SYRNameBtnUpClick + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object GFLXPerson: TEdit + Tag = 2 + Left = 116 + Top = 194 + Width = 132 + Height = 19 + TabOrder = 20 + end + object GFLXTel: TEdit + Tag = 2 + Left = 362 + Top = 194 + Width = 123 + Height = 19 + TabOrder = 21 + end + object XFLXPerson: TEdit + Tag = 2 + Left = 581 + Top = 194 + Width = 137 + Height = 19 + TabOrder = 22 + end + object XFLXTel: TEdit + Tag = 2 + Left = 822 + Top = 194 + Width = 124 + Height = 19 + TabOrder = 23 + end + object Button1: TButton + Left = 39 + Top = 290 + Width = 44 + Height = 27 + Caption = #22686#34892 + TabOrder = 24 + OnClick = Button1Click + end + object Button2: TButton + Left = 39 + Top = 342 + Width = 44 + Height = 27 + Caption = #21024#34892 + TabOrder = 25 + OnClick = Button2Click + end + object cxGrid2: TcxGrid + Left = 105 + Top = 257 + Width = 842 + Height = 140 + TabOrder = 26 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 40 + end + object cxGridDBColumn18: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'MNote' + HeaderAlignmentHorz = taCenter + Width = 721 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object HuoDai: TBtnEditC + Tag = 2 + Left = 570 + Top = 68 + Width = 147 + Height = 21 + Hint = 'HuoDaiZW/'#36135#36816#20844#21496 + ReadOnly = True + TabOrder = 27 + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object CustomerNo: TEdit + Tag = 2 + Left = 335 + Top = 102 + Width = 148 + Height = 19 + Enabled = False + ReadOnly = True + TabOrder = 28 + end + object KeFu: TEdit + Tag = 2 + Left = 105 + Top = 224 + Width = 147 + Height = 19 + TabOrder = 29 + end + object ChuanYQty: TEdit + Tag = 2 + Left = 105 + Top = 103 + Width = 146 + Height = 19 + TabOrder = 30 + end + object CPCFBi: TcxCurrencyEdit + Tag = 2 + Left = 336 + Top = 223 + TabOrder = 31 + Width = 135 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 435 + Width = 1047 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 104 + OnClick = ToolButton3Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 464 + Width = 1047 + Height = 192 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column8: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column14: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column14PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 92 + end + object v1Column4: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column4PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 107 + end + object v1Column5: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'prtspec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.FontBlue + Width = 90 + end + object v1Column1: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1Column6: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'prtmf' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 59 + end + object v1Column7: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'prtkz' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 64 + end + object v1Column15: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Width = 82 + end + object v1Column3: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 75 + end + object v1Column16: TcxGridDBColumn + Caption = #30830#35748#33394 + DataBinding.FieldName = 'PRTColorOK' + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'KG' + 'SET') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 62 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1PRTPricePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 58 + end + object v1HBType: TcxGridDBColumn + Caption = #36135#24065#31867#22411 + DataBinding.FieldName = 'HBType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1HBTypePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + #65509 + '$') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 46 + end + object v1Column9: TcxGridDBColumn + Caption = #38024#32455#19978#26426#36153 + DataBinding.FieldName = 'ZhenZhiSJFee' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column10: TcxGridDBColumn + Caption = #21360#33457#19978#26426#36153 + DataBinding.FieldName = 'YinHuaSJFee' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1Column11: TcxGridDBColumn + Caption = #21253#32568#36153 + DataBinding.FieldName = 'BaoGangFee' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v1Column12: TcxGridDBColumn + Caption = #21046#32593#21046#29256#36153 + DataBinding.FieldName = 'ZhiWangZhiBanFee' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object v1Column13: TcxGridDBColumn + Caption = #22871#25968 + DataBinding.FieldName = 'TaoQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column2: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 113 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 208 + Top = 5 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 176 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 1016 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 1000 + Top = 352 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 144 + Top = 5 + end + object CDS_Type: TClientDataSet + Aggregates = <> + Params = <> + Left = 512 + Top = 488 + end + object Order_Note: TClientDataSet + Aggregates = <> + Params = <> + Left = 424 + Top = 296 + end + object DataSource2: TDataSource + DataSet = Order_Note + Left = 456 + Top = 296 + end +end diff --git a/盛纺贸易管理/U_ConInPutNX.pas b/盛纺贸易管理/U_ConInPutNX.pas new file mode 100644 index 0000000..f1ab2a8 --- /dev/null +++ b/盛纺贸易管理/U_ConInPutNX.pas @@ -0,0 +1,1303 @@ +unit U_ConInPutNX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit, cxCurrencyEdit; + +type + TfrmConInPutNX = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label3: TLabel; + OrdDate: TDateTimePicker; + Label4: TLabel; + DlyDate: TDateTimePicker; + Label7: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + v1PRTColor: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + v1PRTOrderQty: TcxGridDBColumn; + Label9: TLabel; + ConPerson1: TEdit; + Label10: TLabel; + ConNo: TEdit; + Label11: TLabel; + Label14: TLabel; + Label20: TLabel; + FromPlace: TBtnEditC; + CustomerNoName: TBtnEditC; + v1XHNo: TcxGridDBColumn; + SYRName: TBtnEditC; + v1OrderUnit: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + Label6: TLabel; + QtyNote: TBtnEditC; + Label15: TLabel; + Payment: TBtnEditC; + Label17: TLabel; + Label18: TLabel; + BankNo: TBtnEditC; + SYRAddress: TEdit; + Label19: TLabel; + BankName: TEdit; + Label21: TLabel; + CTMAddress: TEdit; + ToolButton3: TToolButton; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + Label8: TLabel; + TelNo: TEdit; + Label23: TLabel; + FaxNo: TEdit; + DlyNote: TBtnEditC; + CDS_Type: TClientDataSet; + Label22: TLabel; + Label24: TLabel; + CTMTelNo: TEdit; + CTMFaxNo: TEdit; + Label34: TLabel; + KHConNo: TEdit; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + Label1: TLabel; + ConType: TBtnEditC; + Label2: TLabel; + Label5: TLabel; + GFLXPerson: TEdit; + GFLXTel: TEdit; + Label12: TLabel; + Label13: TLabel; + XFLXPerson: TEdit; + XFLXTel: TEdit; + Button1: TButton; + Button2: TButton; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn18: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Order_Note: TClientDataSet; + DataSource2: TDataSource; + Label16: TLabel; + HuoDai: TBtnEditC; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label40: TLabel; + CustomerNo: TEdit; + Label25: TLabel; + KeFu: TEdit; + Label26: TLabel; + ChuanYQty: TEdit; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + Label27: TLabel; + Label28: TLabel; + CPCFBi: TcxCurrencyEdit; + v1HBType: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure SYRNameBtnUpClick(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure CPCFNoDblClick(Sender: TObject); + procedure CPRanHouGYBtnDnClick(Sender: TObject); + procedure v1Column4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure v1Column14PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTPricePropertiesEditValueChanged(Sender: TObject); + procedure v1HBTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + fuserName:string; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + function SaveDataSubOne():Boolean; + function SaveDataMain():Boolean; + function SaveDataSubMore():Boolean; + { Private declarations } + public + PState,CopyInt:Integer; + FMainId,FFMainId:String; + FXS:Integer; + { Public declarations } + end; + +var + frmConInPutNX: TfrmConInPutNX; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ZdyAttachment, + U_CPManageFMSel; + +{$R *.dfm} + +procedure TfrmConInPutNX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬ¼11',Tv1,'ָʾ'); +end; + +procedure TfrmConInPutNX.InitData(); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''MPRTNameType'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Type); + SInitCDSData20(ADOQuery1,CDS_Type); + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrderCon_Sub '); + if PState=1 then + begin + sql.Add('where MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' where 1<>1'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrderCon_Main_Note '); + if PState=1 then + begin + sql.Add('where MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' where 1<>1'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Note); + SInitCDSData20(ADOQuery1,Order_Note); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,ScrollBox1,2); + SYRName.TxtCode:=Trim(ADOQuery1.fieldbyname('ConDefStr2').AsString); + if PState=0 then + begin + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=SGetServerDateTime(ADOTemp); + //ConPerson1.Text:=Trim(DName); + end else + begin + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + //ConPerson1.Text:=Trim(DName); + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + with Order_Note do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('MNId').Value:=''; + Post; + Next; + end; + end; + end; + if PState=0 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select TOp 1* from JYOrderCon_Main where Filler='''+Trim(DName)+''''); + sql.Add(' and isnull(KeFu,'''')<>'''' '); + sql.Add(' order by FillTime desc '); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + ConPerson1.Text:=Trim(ADOTemp.fieldbyname('ConPerson1').AsString); + KeFu.Text:=Trim(ADOTemp.fieldbyname('KeFu').AsString); + end else + begin + KeFu.Text:=Trim(DName); + end; + ChuanYQty.Text:='2'; + end; +end; + +procedure TfrmConInPutNX.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin +end; + +procedure TfrmConInPutNX.FormShow(Sender: TObject); +begin + fuserName:=DCode; + if (trim(DCode)='A1') or (trim(DCode)='A2') then + begin + fuserName:='A'; + end; + readCxGrid('ͬ¼11',Tv1,'ָʾ'); + InitData(); +end; + +function TfrmConInPutNX.SaveData():Boolean; +var + maxno,maxmnno:String; + fconNO,fmxType:string; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'JN','JYOrderCon_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrderCon_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrderCon_Main',ScrollBox1,2); + FieldByName('ConDefStr2').Value:=Trim(SYRName.TxtCode); + if trim(CPCFBi.Text)='' then + fieldbyname('CPCFBi').Value:=0; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillerCode').Value:=Trim(DCode); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('MPRTType').Value:=''; + Post; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where ConNo='''+Trim(ConNo.Text)+''''); + Open; + end; + if ADOCmd.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ͬظ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrderCon_Main Set Filler='''+Trim(DName)+''''); + sql.Add(' where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + FMainId:=Trim(maxno); + ///汸ע + with Order_Note do + begin + First; + while not Eof do + begin + if Trim(Order_Note.fieldbyname('MNId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxmnno,'MN','JYOrderCon_Main_Note',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡעˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxmnno:=Trim(Order_Note.fieldbyname('MNId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderCon_Main_Note where MainId='''+Trim(FMainId)+''''); + sql.Add(' and MNId='''+Trim(maxmnno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Note.fieldbyname('MNId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('MNId').Value:=Trim(maxmnno); + FieldByName('MNType').Value:=''; + RTSetSaveDataCDS(ADOCmd,Tv2,Order_Note,'JYOrderCon_Main_Note',0); + Post; + end; + Order_Note.Edit; + Order_Note.FieldByName('MNId').Value:=Trim(maxmnno); + Next; + end; + end; + ///汸ע + ///ӱ + + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'JB','JYOrderCon_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderCon_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrderCon_Sub',0); + if Trim(fieldbyname('PRTOrderQty').AsString)='' then + begin + fieldbyname('PRTOrderQty').Value:=0 + end; + {if Trim(fieldbyname('PRTPrice').AsString)='' then + begin + fieldbyname('PRTPrice').Value:=0 + end; } + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('Update JYOrderCon_Sub Set ConMXMoney=Cast(PRTPrice*PRTOrderQty as decimal(18,2))+isnull(ZhenZhiSJFee,0)'); + sql.Add('+isnull(YinHuaSJFee,0)+isnull(BaoGangFee,0)+isnull(ZhiWangZhiBanFee,0)*isnull(TaoQty,0)'); + sql.Add(' where SubId='''+Trim(maxno)+''''); + ExecSQL; + end; + //Order_Sub.Post; + Next; + end; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConMoney=(select Sum(ConMXMoney) from JYOrderCon_Sub A where A.MainId=JYOrderCon_Main.MainId)'); + sql.Add(' where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + Result:=False; + end; +end; +function TfrmConInPutNX.SaveDataMain():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + maxno:=Trim(FFMainId); + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrder_Main',ScrollBox1,2); + if PState=1 then + begin + FieldByName('OrdUpDate').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + FMainId:=Trim(maxno); + ADOCmd.Connection.CommitTrans; + Result:=True; + except + + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + Result:=False; + end; +end; +function TfrmConInPutNX.SaveDataSubOne():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + //First; + //while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + //Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmConInPutNX.SaveDataSubMore():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmConInPutNX.TBSaveClick(Sender: TObject); +begin + OrdDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + if Trim(CustomerNoName.Text)='' then + begin + Application.MessageBox('跽Ϊգ','ʾ',0); + Exit; + end; + if Trim(ConPerson1.Text)='' then + begin + Application.MessageBox('ҵԱΪգ','ʾ',0); + Exit; + end; + if Trim(SYRName.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + {if DlyDate.Checked=False then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end;} + if Trim(ConType.Text)='' then + begin + Application.MessageBox('ͬͲΪգ','ʾ',0); + Exit; + end; + if Trim(QtyNote.Text)='' then + begin + Application.MessageBox('װΪգ','ʾ',0); + Exit; + end; + if Trim(DlyNote.Text)='' then + begin + Application.MessageBox('˵Ϊգ','ʾ',0); + Exit; + end; + if Trim(Payment.Text)='' then + begin + Application.MessageBox('ʽΪգ','ʾ',0); + Exit; + end; + if Trim(SYRAddress.Text)='' then + begin + Application.MessageBox('ַΪգ','ʾ',0); + Exit; + end; + if Trim(TelNo.Text)='' then + begin + Application.MessageBox('绰Ϊգ','ʾ',0); + Exit; + end; + if Trim(CTMAddress.Text)='' then + begin + Application.MessageBox('跽ַΪգ','ʾ',0); + Exit; + end; + if Trim(CTMTelNo.Text)='' then + begin + Application.MessageBox('跽绰Ϊգ','ʾ',0); + Exit; + end; + if Trim(GFLXPerson.Text)='' then + begin + Application.MessageBox('ϵ˲Ϊգ','ʾ',0); + Exit; + end; + if Trim(XFLXPerson.Text)='' then + begin + Application.MessageBox('跽ϵ˲Ϊգ','ʾ',0); + Exit; + end; + + if Order_Sub.Locate('PrtCodeName',null,[])=True then + begin + Application.MessageBox('ƷƲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('prtspec',null,[])=True then + begin + Application.MessageBox('ɷֲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PrtCode',null,[])=True then + begin + Application.MessageBox('ƷŲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PrtCode','',[])=True then + begin + Application.MessageBox('ƷŲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PRTColor',null,[])=True then + begin + Application.MessageBox('ɫΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('prtmf',null,[])=True then + begin + Application.MessageBox('ŷΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('prtkz',null,[])=True then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PRTOrderQty',null,[])=True then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('OrderUnit',null,[])=True then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + {if Order_Sub.Locate('PRTPrice',null,[])=True then + begin + Application.MessageBox('۲Ϊգ','ʾ',0); + Exit; + end; } + if Order_Sub.Locate('PriceUnit',null,[])=True then + begin + Application.MessageBox('ֲΪգ','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmConInPutNX.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + MainType:=Trim(DName); + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + Self.Order_Sub.FieldByName('SOrdDefStr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPutNX.ToolButton1Click(Sender: TObject); +var + i:Integer; +begin + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪ!','ʾ',0); + Exit; + end; + i:=Order_Sub.RecordCount; + i:=i+1; + CopyAddRow(Tv1,Order_Sub); + with Order_Sub do + begin + Edit; + FieldByName('XHNO').Value:=IntToStr(i); + FieldByName('PRTColor').Value:=''; + FieldByName('PRTOrderQty').Value:=null; + // FieldByName('PRTPrice').Value:=null; + FieldByName('SOrddefstr4').Value:=null; + FieldByName('PriceUnit').Value:=''; + Post; + end; +end; + +procedure TfrmConInPutNX.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; + { if Order_Sub.IsEmpty then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + end; } +end; + +procedure TfrmConInPutNX.CustomerNoNameBtnUpClick(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + CustomerNo.Text:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + KeFu.Text:=Trim(CDS_HZ.fieldbyname('SNo').AsString); + //condefstr10.Text:=Trim(CDS_HZ.fieldbyname('ZDYNameZ').AsString); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where CustomerNoName='''+Trim(CDS_HZ.fieldbyname('ZdyName').AsString)+''''); + sql.Add(' order by FillTime desc'); + Open; + Self.CTMAddress.Text:=Trim(ADOTemp.fieldbyname('CTMAddress').AsString); + Self.CTMTelNo.Text:=Trim(ADOTemp.fieldbyname('CTMTelNo').AsString); + Self.CTMFaxNo.Text:=Trim(ADOTemp.fieldbyname('CTMFaxNo').AsString); + end; + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmConInPutNX.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmConInPutNX.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with Order_Sub do + begin + Edit; + FieldByName('SLbName').Value:=labname; + FieldByName('SLbInt').Value:=LabInt; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + +end; + +procedure TfrmConInPutNX.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPutNX.v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='۸λ'; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPutNX.SYRNameBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='SYRName' then + begin + flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; + if Trim(flag)='BankNo' then + begin + fnote:=True; + end; + if Trim(flag)='ConType' then + begin + if Trim(DParameters1)<>'Ȩ' then + begin + ViewFlag:=True; + end; + end; + if ShowModal=1 then + begin + if Trim(flag)<>'OrdDefStr2' then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='BankNo' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where BankNo='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' and MPRTTYpe='''' '); + sql.Add(' order by FillTime desc'); + Open; + Self.BankName.Text:=Trim(ADOTemp.fieldbyname('BankName').AsString); + //Self.BankAddress.Text:=Trim(ADOTemp.fieldbyname('BankAddress').AsString); + //Self.BankFastNo.Text:=Trim(ADOTemp.fieldbyname('BankFastNo').AsString); + end; + end; + end + else + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //SYRName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where SYRName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + sql.Add(' and MPRTTYpe='''' '); + sql.Add(' order by FillTime desc'); + Open; + Self.SYRAddress.Text:=Trim(ADOTemp.fieldbyname('SYRAddress').AsString); + Self.TelNo.Text:=Trim(ADOTemp.fieldbyname('TelNo').AsString); + Self.FaxNo.Text:=Trim(ADOTemp.fieldbyname('FaxNo').AsString); + end; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPutNX.ToolButton3Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + OneKeyPost(Tv1,Order_Sub); +end; + +procedure TfrmConInPutNX.CPCFNoDblClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTNameType'; + flagname:='Ʒ'; + V1HelpType.Visible:=True; + V1HelpType.Caption:='д'; + fnote:=True; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''MPRTNameType'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Type); + SInitCDSData20(ADOQuery1,CDS_Type); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmConInPutNX.CPRanHouGYBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; + +end; + +procedure TfrmConInPutNX.v1Column4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCodeNameZW'; + flagname:='Ʒ'; + if ShowModal=1 then + begin + Order_Sub.Edit; + Order_Sub.fieldbyname('PRTCodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //Order_Sub.fieldbyname('PRTCode').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + Order_Sub.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmConInPutNX.Button1Click(Sender: TObject); +var + i:Integer; +begin + i:=Order_Note.RecordCount; + i:=i+1; + with Order_Note do + begin + Append; + FieldByName('XHNO').Value:=IntToStr(i); + Post; + end; +end; + +procedure TfrmConInPutNX.Button2Click(Sender: TObject); +begin + if Order_Note.IsEmpty then Exit; + if Trim(Order_Note.fieldbyname('MNId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Main_Note where MNId='''+Trim(Order_Note.fieldbyname('MNId').AsString)+''''); + ExecSQL; + end; + end; + Order_Note.Delete; +end; + +procedure TfrmConInPutNX.v1Column14PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmCPManageFMSel:=TfrmCPManageFMSel.Create(Application); + with frmCPManageFMSel do + begin + if ShowModal=1 then + begin + with Self.Order_Sub do + begin + Edit; + FieldByName('PrtCode').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYNo').Value; + FieldByName('PrtCodeName').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYName').Value; + FieldByName('PRTspec').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYECF').Value; + FieldByName('PRTMF').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYMF').Value; + FieldByName('PRTKZ').Value:=frmCPManageFMSel.CDS_Main.fieldbyname('CYKZ').Value; + end; + end; + end; + finally + frmCPManageFMSel.Free; + end; +end; + +procedure TfrmConInPutNX.v1PRTPricePropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with Order_Sub do + begin + Edit; + FieldByName('PRTPrice').Value:=mvalue; + Post; + end; + with ADOCmd do + begin + close; + sql.clear; + sql.Add('select * from YF_Money_CR where YFTypeId='''+trim(Order_Sub.fieldbyname('Subid').AsString)+''''); + open; + end; + if ADOCmd.IsEmpty=False then + begin + with ADOTemp do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set Price='''+trim(mvalue)+''' '); + sql.add('where YFTypeId='''+trim(Order_Sub.fieldbyname('Subid').AsString)+''''); + execsql; + end; + end; +end; + +procedure TfrmConInPutNX.v1HBTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='HBType'; + flagname:=''; + if ShowModal=1 then + begin + Order_Sub.Edit; + Order_Sub.fieldbyname('HBType').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Order_Sub.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +end. diff --git a/盛纺贸易管理/U_ContractList.dfm b/盛纺贸易管理/U_ContractList.dfm new file mode 100644 index 0000000..f7a5203 --- /dev/null +++ b/盛纺贸易管理/U_ContractList.dfm @@ -0,0 +1,1463 @@ +object frmContractList: TfrmContractList + Left = 189 + Top = 135 + Width = 1386 + Height = 676 + Caption = #35746#21333#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1370 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton4: TToolButton + Left = 126 + Top = 0 + Caption = #20135#21697#31867#21035#23450#20041 + ImageIndex = 58 + Visible = False + OnClick = ToolButton4Click + end + object TBAdd: TToolButton + Left = 233 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 296 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton2: TToolButton + Left = 359 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 422 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 485 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object Tchk: TToolButton + Left = 548 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = TchkClick + end + object Tnochk: TToolButton + Left = 611 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Wrap = True + Visible = False + OnClick = TnochkClick + end + object TQX: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #21512#21516#21462#28040 + ImageIndex = 19 + OnClick = TQXClick + end + object TNOQX: TToolButton + Left = 87 + Top = 30 + AutoSize = True + Caption = #25764#38144#21512#21516#21462#28040 + ImageIndex = 129 + OnClick = TNOQXClick + end + object ToolButton5: TToolButton + Left = 198 + Top = 30 + AutoSize = True + Caption = #25351#23450#21487#35265#20154 + ImageIndex = 57 + OnClick = ToolButton5Click + end + object TBExport: TToolButton + Left = 297 + Top = 30 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 360 + Top = 30 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ToolButton3: TToolButton + Left = 423 + Top = 30 + AutoSize = True + Caption = #21512#21516#38468#20214 + ImageIndex = 57 + OnClick = ToolButton3Click + end + object ComboBox1: TComboBox + Left = 510 + Top = 33 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + end + object TBClose: TToolButton + Left = 655 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 149 + Width = 1209 + Height = 293 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv1CellDblClick + OnCustomDrawCell = Tv1CustomDrawCell + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + Column = v1ConMoney + end + item + Kind = skSum + Column = v1SJFHMoney + end + item + Kind = skSum + Column = v1RLRMBMoney + end + item + Kind = skSum + Column = v1RLUSDMoney + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1Column14: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'CPCode' + HeaderAlignmentHorz = taCenter + Width = 93 + end + object v1Column3: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v1Column1: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Width = 105 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'ConPerson1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #31246#21495 + DataBinding.FieldName = 'KeFu' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 87 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 79 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #20132#26399#35828#26126 + DataBinding.FieldName = 'DlyNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 87 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20215#26684#26415#35821 + DataBinding.FieldName = 'PriceNote' + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column9: TcxGridDBColumn + DataBinding.FieldName = 'status' + Visible = False + VisibleForCustomization = False + end + object v1Column10: TcxGridDBColumn + Caption = #21512#21516#38468#20214 + DataBinding.FieldName = 'FJFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1ConMoney: TcxGridDBColumn + Caption = #21512#21516#37329#39069 + DataBinding.FieldName = 'ConMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = FoneRed + Styles.Footer = FoneRed + Styles.Header = handBlack + Width = 74 + end + object v1SJFHMoney: TcxGridDBColumn + Caption = #23454#38469#21457#36135#37329#39069 + DataBinding.FieldName = 'SJFHMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v1RLRMBMoney: TcxGridDBColumn + Caption = #35748#39046#37329#39069#20154#27665#24065 + DataBinding.FieldName = 'RLRMBMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = FoneClMaroon + Width = 97 + end + object v1RLUSDMoney: TcxGridDBColumn + Caption = #35748#39046#37329#39069#32654#37329 + DataBinding.FieldName = 'RLUSDMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = FoneClMaroon + Width = 84 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1370 + Height = 66 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 184 + Top = 15 + Width = 40 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 495 + Top = 15 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 458 + Top = 87 + Width = 52 + Height = 12 + Caption = #33521#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 184 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 335 + Top = 83 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 335 + Top = 107 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 347 + Top = 39 + Width = 21 + Height = 12 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 680 + Top = 16 + Width = 54 + Height = 12 + Caption = #38144#21806#39069#65306'0' + Visible = False + end + object Label7: TLabel + Left = 347 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#26381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 495 + Top = 39 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 88 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 88 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 229 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object ConPerson1: TEdit + Tag = 2 + Left = 548 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 511 + Top = 83 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = CustomerNoNameChange + end + object ConNo: TEdit + Tag = 2 + Left = 229 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTKZ: TEdit + Tag = 2 + Left = 364 + Top = 79 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 364 + Top = 103 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + object KHConNO: TEdit + Tag = 2 + Left = 375 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 8 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object KeFu: TEdit + Tag = 2 + Left = 375 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 9 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object CPCode: TEdit + Tag = 2 + Left = 548 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 10 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 128 + Width = 1370 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 3 + Properties.CustomButtons.Buttons = <> + Properties.Style = 9 + Properties.TabIndex = 0 + Properties.Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #24050#21462#28040 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectRight = 0 + ClientRectTop = 0 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 442 + Width = 1370 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object Panel2: TPanel + Left = 0 + Top = 450 + Width = 1370 + Height = 187 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 783 + Height = 183 + Align = alLeft + TabOrder = 0 + object TV2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = cxGridDBColumn4 + end + item + Format = '0' + Position = spFooter + Column = v1PRTPrice + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn4 + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column2: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column5: TcxGridDBColumn + Caption = #33521#25991#21697#21517 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 84 + end + object v1Column6: TcxGridDBColumn + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 60 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 72 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 75 + end + object V2Column3: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1Column7: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 73 + end + object v1Column8: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 78 + end + object V2LF: TcxGridDBColumn + Caption = #31435#26041 + DataBinding.FieldName = 'LF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 66 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 66 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = FonePurple + Width = 65 + end + object V2HBType: TcxGridDBColumn + Caption = #36135#24065#31867#22411 + DataBinding.FieldName = 'HBType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'USD' + 'RMB') + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 58 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #38024#32455#19978#26426#36153 + DataBinding.FieldName = 'ZhenZhiSJFee' + Width = 71 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #21360#33457#19978#26426#36153 + DataBinding.FieldName = 'YinHuaSJFee' + Width = 71 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #21253#32568#36153 + DataBinding.FieldName = 'BaoGangFee' + Width = 50 + end + object v1Column11: TcxGridDBColumn + Caption = #21046#32593#21046#29256#36153 + DataBinding.FieldName = 'ZhiWangZhiBanFee' + Width = 74 + end + object v1Column12: TcxGridDBColumn + Caption = #22871#25968 + DataBinding.FieldName = 'TaoQty' + HeaderAlignmentHorz = taCenter + Width = 38 + end + object V2Column1: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'ConMXMoney' + HeaderAlignmentHorz = taCenter + Width = 63 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object Panel3: TPanel + Left = 785 + Top = 2 + Width = 66 + Height = 183 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label10: TLabel + Left = 8 + Top = 16 + Width = 52 + Height = 24 + Caption = #25910#27454#35748#39046#13' '#8594#8594#8594 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ADD: TButton + Left = 5 + Top = 40 + Width = 55 + Height = 25 + Caption = #22686#34892 + TabOrder = 0 + OnClick = ADDClick + end + object DEL: TButton + Left = 5 + Top = 83 + Width = 55 + Height = 25 + Caption = #21024#34892 + TabOrder = 1 + OnClick = DELClick + end + object SAVE: TButton + Left = 5 + Top = 127 + Width = 55 + Height = 25 + Caption = #20445#23384 + TabOrder = 2 + OnClick = SAVEClick + end + end + object cxGrid3: TcxGrid + Left = 851 + Top = 2 + Width = 517 + Height = 183 + Align = alClient + TabOrder = 2 + object TV3: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V3SKDate: TcxGridDBColumn + Caption = #25910#27454#26085#26399 + DataBinding.FieldName = 'SKdate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 58 + end + object V3SKMoney: TcxGridDBColumn + Caption = #25910#27454#37329#39069 + DataBinding.FieldName = 'SKMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 58 + end + object V3RLDate: TcxGridDBColumn + Caption = #35748#39046#26085#26399 + DataBinding.FieldName = 'RLDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 58 + end + object V3RLMoney: TcxGridDBColumn + Caption = #35748#39046#37329#39069 + DataBinding.FieldName = 'RLMoney' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V3FeeName: TcxGridDBColumn + Caption = #36153#29992#21517#31216 + DataBinding.FieldName = 'FeeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V3FeeNamePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V3BZType: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V3BZTypePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 36 + end + object V3YFNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'YFNote' + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV3 + end + end + end + object cxGrid4: TcxGrid + Left = 1209 + Top = 149 + Width = 161 + Height = 293 + Align = alRight + TabOrder = 6 + object TV4: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = TV4CellDblClick + DataController.DataSource = DataSource4 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V4Chktime: TcxGridDBColumn + Caption = #25351#23450#26085#26399 + DataBinding.FieldName = 'Chktime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object V4Chker: TcxGridDBColumn + Caption = #25351#23450#21487#35265#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TV4 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 728 + Top = 264 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 480 + Top = 176 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 448 + Top = 176 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 416 + Top = 216 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 804 + Top = 264 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 812 + Top = 328 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcDefault + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 252 + Top = 232 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 216 + Top = 264 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 416 + Top = 176 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 216 + Top = 232 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 435 + Top = 430 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 476 + Top = 432 + end + object ThreeColorBase: TcxStyleRepository + Left = 364 + Top = 249 + PixelsPerInch = 96 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle1: TcxStyle + AssignedValues = [svColor] + Color = clLime + end + end + object RMDBDataSet2: TRMDBDataSet + Visible = True + DataSet = CDS_Note + Left = 573 + Top = 299 + end + object CDS_Note: TClientDataSet + Aggregates = <> + Params = <> + Left = 548 + Top = 302 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 394 + Top = 426 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 354 + Top = 426 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 248 + Top = 268 + end + object DataSource3: TDataSource + DataSet = Order_RL + Left = 928 + Top = 452 + end + object Order_RL: TClientDataSet + Aggregates = <> + Params = <> + Left = 968 + Top = 452 + end + object CDS_Chker: TClientDataSet + Aggregates = <> + Params = <> + Left = 332 + Top = 252 + end + object CDS_Chk: TClientDataSet + Aggregates = <> + Params = <> + Left = 1000 + Top = 232 + end + object DataSource4: TDataSource + DataSet = CDS_Chk + Left = 1024 + Top = 232 + end +end diff --git a/盛纺贸易管理/U_ContractList.pas b/盛纺贸易管理/U_ContractList.pas new file mode 100644 index 0000000..ea25dbd --- /dev/null +++ b/盛纺贸易管理/U_ContractList.pas @@ -0,0 +1,1468 @@ +unit U_ContractList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, +// Menus, cxPC, cxButtonEdit, cxTextEdit, PDF, RpDefine, RpRender, + Menus, cxPC, cxButtonEdit, cxTextEdit, RpDefine, RpRender, + RpRenderPDF, RM_E_llPDF, cxDropDownEdit, RM_e_Graphic, RM_e_Jpeg, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; + +type + TfrmContractList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + v1CustomerNoName: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + ToolButton1: TToolButton; + v1OrdDefStr1: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + v1Column4: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + Label4: TLabel; + Label5: TLabel; + Label8: TLabel; + Label9: TLabel; + Label12: TLabel; + Label13: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CustomerNoName: TEdit; + ConPerson1: TEdit; + MPRTCodeName: TEdit; + ConNo: TEdit; + MPRTKZ: TEdit; + MPRTMF: TEdit; + v1Column2: TcxGridDBColumn; + ComboBox1: TComboBox; + ToolButton4: TToolButton; + v1Column3: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + Tchk: TToolButton; + Tnochk: TToolButton; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + KHConNO: TEdit; + Label3: TLabel; + TQX: TToolButton; + TNOQX: TToolButton; + ToolButton3: TToolButton; + v1Column9: TcxGridDBColumn; + Label6: TLabel; + v1ConMoney: TcxGridDBColumn; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + cxStyle1: TcxStyle; + v1Column10: TcxGridDBColumn; + RMDBDataSet2: TRMDBDataSet; + CDS_Note: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + ClientDataSet2: TClientDataSet; + v1Column13: TcxGridDBColumn; + Label7: TLabel; + KeFu: TEdit; + Label2: TLabel; + CPCode: TEdit; + v1Column14: TcxGridDBColumn; + RMXLSExport1: TRMXLSExport; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + V2Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Panel3: TPanel; + ADD: TButton; + DEL: TButton; + SAVE: TButton; + cxGrid3: TcxGrid; + TV3: TcxGridDBTableView; + cxGridLevel2: TcxGridLevel; + V3SKDate: TcxGridDBColumn; + V3RLMoney: TcxGridDBColumn; + V3FeeName: TcxGridDBColumn; + V3YFNote: TcxGridDBColumn; + V3RLDate: TcxGridDBColumn; + V3SKMoney: TcxGridDBColumn; + V3BZType: TcxGridDBColumn; + Label10: TLabel; + DataSource3: TDataSource; + Order_RL: TClientDataSet; + v1RLRMBMoney: TcxGridDBColumn; + v1SJFHMoney: TcxGridDBColumn; + v1RLUSDMoney: TcxGridDBColumn; + ToolButton5: TToolButton; + CDS_Chker: TClientDataSet; + cxGrid4: TcxGrid; + TV4: TcxGridDBTableView; + cxGridLevel3: TcxGridLevel; + V4Chker: TcxGridDBColumn; + V4Chktime: TcxGridDBColumn; + CDS_Chk: TClientDataSet; + DataSource4: TDataSource; + V2HBType: TcxGridDBColumn; + V2LF: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton4Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure TchkClick(Sender: TObject); + procedure TnochkClick(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure TQXClick(Sender: TObject); + procedure TNOQXClick(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure V3BZTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V3FeeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ADDClick(Sender: TObject); + procedure DELClick(Sender: TObject); + procedure SAVEClick(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure TV4CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + DQdate:TDateTime; + fuserName,canshu1:string; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + procedure SetStatus(); + procedure InitSub(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmContractList: TfrmContractList; + +implementation +uses + U_DataLink,U_ConInPut,U_Fun,U_ZDYHelp, U_FjList_RZ,U_SKCR_CX, + U_ZDYHelpSel; + +{$R *.dfm} +procedure TfrmContractList.InitSub(); +begin + ADOQuerySub.Close; + IF Order_Main.IsEmpty then exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCon_sub '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + sql.add(' order by XHNo'); + open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet2); + SInitCDSData20(ADOQuerySub,ClientDataSet2); + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderYSK '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,Order_RL); + SInitCDSData20(ADOQuerySub,Order_RL); + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from OrdCon_Chk '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,CDS_Chk); + SInitCDSData20(ADOQuerySub,CDS_Chk); +end; + +procedure TfrmContractList.SetStatus(); +begin + + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + Tqx.Visible:=false; + TNoqx.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + IF trim(DCode)<>'A2' then + begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + Tqx.Visible:=true; + end; + 1:begin + Tqx.Visible:=true; + end; + 2:begin + TNoqx.Visible:=true; + end; + 3:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + Tqx.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + Tqx.Visible:=true; + end; + 2:begin + TNoqx.Visible:=true; + end; + 3:begin + // TNoqx.Visible:=true; + end; + end; + end; + +end; + +procedure TfrmContractList.FormDestroy(Sender: TObject); +begin + frmContractList:=nil; +end; + +procedure TfrmContractList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmContractList.FormCreate(Sender: TObject); +begin + canshu1:=Trim(DParameters1); + //cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmContractList.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ͬб1',Tv1,'ָʾ') + else + WriteCxGrid('ͬбѡ1',Tv1,'ָʾ'); + WriteCxGrid('ͬϸ1',Tv2,'ָʾ'); +end; + +procedure TfrmContractList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,A.ConNo ConNoM '); + sql.add(',SJFHMoney=(select Sum(AA.FHMoney) from (select C.Subid,FHMoney=Sum(B.Money) '); + SQL.ADD('from YF_Money_CR B inner join JYOrderCon_Sub C on C.Subid=B.ConID where C.Mainid=A.Mainid and isnull(B.FeeType,'''')<>'''' and B.Status>0 '); + sql.add('group by C.Subid) AA) '); + sql.Add(',CPCode=dbo.F_Get_Order_SubStr(A.MainId,''ConOrdCPCode'')'); + SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); + sql.add(',RLRMBMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid and S.BZType='''')'); + sql.add(',RLUSDMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid and S.BZType=''$'')'); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.MainID and TFType=''ͬ'' ),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrderCon_Main A '); + SQL.Add('where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); + SQL.Add(' and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); + sql.Add(' and A.MPRTType='''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.ConPerson1='''+Trim(DName)+''' '); + sql.add(' or exists (select B.Chker from OrdCon_Chk B where B.Mainid=A.Mainid and B.Chker='''+trim(DName)+'''))'); + end; + IF cxTabControl1.TabIndex<3 then + begin + sql.Add(' and isnull(A.status,''0'')='''+inttostr(cxTabControl1.TabIndex)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmContractList.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmContractList.InitForm(); +begin + + if FCloth<>1 then + ReadCxGrid('ͬб1',Tv1,'ָʾ') + else + ReadCxGrid('ͬбѡ1',Tv1,'ָʾ'); + ReadCxGrid('ͬϸ1',Tv2,'ָʾ'); + if FCloth=1 then + begin + v1Column4.Visible:=True; + // v1PRTPrice.Visible:=False; + // v1PRTPrice.Hidden:=True; + end else + begin + v1Column4.Visible:=False; + // v1PRTPrice.Visible:=True; + // v1PRTPrice.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-61; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderCon_Main where MPRTType='''' Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString)); + Next; + end; + end;} +end; + +procedure TfrmContractList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + try + frmConInPut:=TfrmConInPut.Create(Application); + with frmConInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmConInPut.Free; + end; +end; + +procedure TfrmContractList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmContractList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete OrdCon_Chk where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''''); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬɾ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmContractList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾб'); +end; + +procedure TfrmContractList.TBPrintClick(Sender: TObject); +var + fPrintFile,fZMFile:string; + EngMoney,FeeStr:string; + //fRMXLSExport1:TRMXLSExport; + FCustomerNoName:String; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConMoney10=Cast(B.PRTOrderQty*B.PRTPrice as decimal(18,2)) '); + sql.Add(',ConQty=(select Sum(C.PRTOrderQty) from JYOrderCon_Sub C where C.Mainid=A.Mainid)'); + sql.Add(',Case when isnull(ZhenZhiSJFee,0)<>0 then ''Machine Surchage: ''+Cast(ZhenZhiSJFee as varchar(20))+'''''); + sql.Add(' +Char(13) else '''' end as ZhenZhiSJFee10 ');//+Char(10) + sql.Add(',Case when isnull(YinHuaSJFee,0)<>0 then ''Print Machine Surchage: ''+Cast(YinHuaSJFee as varchar(20))+'''''); + sql.Add(' +Char(13) else '''' end as YinHuaSJFee10'); //+Char(10) + sql.Add(',Case when isnull(BaoGangFee,0)<>0 then ''Small Dye Lot Surchage: ''+Cast(BaoGangFee as varchar(20))+'''''); + sql.Add(' +Char(13) else '''' end as BaoGangFee10 '); //+Char(10) + sql.Add(',Case when isnull(ZhiWangZhiBanFee,0)<>0 then ''Screen Surchage: ''+Cast(ZhiWangZhiBanFee as varchar(20))+'''''); + SQL.Add(' +Char(13) else '''' end as ZhiWangZhiBanFee10 ');//+Char(10) + sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.add(' Order By B.XHNo'); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + with ADOQueryTemp do + begin + close; + sql.Clear; + sql.Add('select TolConMoney=ConMoney'); + sql.Add(' from JYOrderCon_Main A '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + EngMoney:=num2cengnum(ADOQueryTemp.fieldbyname('TolConMoney').AsString); + //EngMoney:=UpperCase(EngMoney); + if FileExists(fPrintFile) then + begin + if RM1.CanExport=true then + begin + fZMFile:='C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile:='C:\Documents and Settings\Administrator\\'+trim(Order_Main.fieldbyname('ConNO').AsString)+'.xls'; + end + else + begin + fZMFile:='C:\Users\Administrator\Desktop\'+trim(Order_Main.fieldbyname('ConNO').AsString)+'.XLS'; + end; + RM1.ExportTo(RMXLSExport1,fZMFile); + end; + RM1.CanExport:=true; + RM1.FileName:=trim(CDS_Print.fieldbyname('ConNO').AsString); + RMVariables['EngMoney']:=EngMoney; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + RM1.CanExport:=False; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\Ӣĺͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmContractList.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderCon_Main where MPRTType='''' Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString)); + Next; + end; + end; + TBFind.Click; +end; + +procedure TfrmContractList.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmConInPut:=TfrmConInPut.Create(Application); + with frmConInPut do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmConInPut.Free; + end; +end; + +procedure TfrmContractList.FormShow(Sender: TObject); +begin + if Trim(canshu1)<>'Ȩ' then + begin + Panel3.Visible:=false; + end + else + Panel3.Visible:=true; + InitForm(); + SetStatus(); + RM1.CanExport:=true; +end; + +procedure TfrmContractList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmContractList.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmContractList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmContractList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmContractList.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmContractList.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmContractList.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmContractList.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmContractList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPut:=TfrmConInPut.Create(Application); + with frmConInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPut.Free; + end; +end; + +procedure TfrmContractList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPut:=TfrmConInPut.Create(Application); + with frmConInPut do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmConInPut.Free; + end; +end; + +procedure TfrmContractList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractList.ConNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Length(Tedit(Sender).Text)<2 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add('select A.*,A.ConNo ConNoM '); + sql.add(',SJFHMoney=(select Sum(AA.FHMoney) from (select C.Subid,FHMoney=Sum(B.Money) '); + SQL.ADD('from YF_Money_CR B inner join JYOrderCon_Sub C on C.Subid=B.ConID where C.Mainid=A.Mainid and isnull(B.FeeType,'''')<>'''' '); + sql.add('group by C.Subid) AA) '); + sql.add(',RLRMBMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid and S.BZType='''')'); + sql.add(',RLUSDMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid and S.BZType=''$'')'); + sql.Add(',CPCode=dbo.F_Get_Order_SubStr(A.MainId,''ConOrdCPCode'')'); + SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.MainID and TFType=''ͬ'' ),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrderCon_Main A '); + SQL.Add('where MPRTType='''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''' '); + sql.add(' or exists (select B.Chker from OrdCon_Chk B where B.Mainid=A.Mainid and B.Chker='''+trim(DName)+'''))'); + end; + sql.Add(' and '+Tedit(Sender).Name+' like '+quotedstr(trim('%'+trim(Tedit(Sender).Text)+'%'))); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmContractList.ToolButton4Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTNameType'; + flagname:='Ʒ'; + V1HelpType.Visible:=True; + V1HelpType.Caption:='д'; + fnote:=True; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContractList.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; +end; + +procedure TfrmContractList.TchkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList.TnochkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmContractList.TQXClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + if Application.MessageBox('ȷҪȡͬ','ʾ',32+4)<>IDYES then Exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''2'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬȡ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('ͬȡɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ͬȡʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList.TNOQXClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬȡ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('ͬȡɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ͬȡʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmFjList_RZ:=TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + if Trim(DParameters1)<>'Ȩ' then cxButton1.Visible:=false; + fkeyNO:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + fType:='ͬ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; +end; + +procedure TfrmContractList.Tv1CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index]='2' then + ACanvas.Brush.Color:=clLime; +end; + +procedure TfrmContractList.V3BZTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BZType'; + flagname:=''; + if ShowModal=1 then + begin + with Self.Order_RL do + begin + Edit; + FieldByName('BZType').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContractList.V3FeeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='FeeName'; + flagname:=''; + if ShowModal=1 then + begin + with Self.Order_RL do + begin + Edit; + FieldByName('FeeName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContractList.ADDClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + frmSKCR_CX:=TfrmSKCR_CX.create(self); + with frmSKCR_CX do + begin + if showmodal=1 then + begin + with CDS_HZ do + begin + first; + while not eof do + begin + if fieldbyname('Ssel').AsBoolean=true then + begin + with Order_RL do + begin + append; + fieldbyname('SKdate').AsDateTime:=CDS_HZ.fieldbyname('CRTime').AsDateTime; + fieldbyname('SKMoney').Value:=CDS_HZ.fieldbyname('Money').AsFloat; + fieldbyname('RLDate').Value:=SGetServerDate(ADOQueryTemp); + fieldbyname('RLMoney').Value:=CDS_HZ.fieldbyname('WRLMoney').AsFloat; + fieldbyname('FeeName').Value:=CDS_HZ.fieldbyname('YFName').AsString; + fieldbyname('BZType').Value:=CDS_HZ.fieldbyname('BZType').AsString; + fieldbyname('YFID').Value:=CDS_HZ.fieldbyname('YFID').AsString; + post; + end; + end; + next; + end; + end; + end; + free; + end; +end; + +procedure TfrmContractList.DELClick(Sender: TObject); +begin + if Order_RL.IsEmpty then exit; + if application.MessageBox('ȷҪɾ','ʾ',1)=2 then exit; + if Order_RL.FieldByName('YSID').AsString<>'' then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from JYOrderYSK where YSID='''+Trim(Order_RL.fieldbyname('YSID').AsString)+''''); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set YRLMoney=(select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID), '); + sql.add('WRLMoney=isnull(Money,0)-isnull((select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID),0) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + end; + Order_RL.Delete; +end; + +procedure TfrmContractList.SAVEClick(Sender: TObject); +var maxno:string; + FRLMoney:double; +begin + if Order_RL.IsEmpty then exit; + with Order_RL do + begin + first; + while not eof do + begin + if trim(Order_RL.fieldbyname('YSID').AsString)<>'' then + begin + maxno:=trim(Order_RL.fieldbyname('YSID').AsString); + end + else + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select Sum(RLMoney) SumRLMoney from JYOrderYSK where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + Open; + end; + FRLMoney:=ADOQueryCmd.fieldbyname('SumRLMoney').AsCurrency+Order_RL.fieldbyname('RLMoney').AsCurrency; + if FRLMoney>Order_RL.FieldByName('SKMoney').AsCurrency+0.1 then + begin + application.MessageBox('ܽտ','ʾ'); + exit; + end; + if GetLSNo(ADOQueryCmd,maxno,'YS','JYOrderYSK',3,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderYSK '); + sql.add('where YSID='''+trim(maxno)+''''); + open; + end; + with ADOQueryCmd do + begin + if IsEmpty then + begin + append; + end + else + edit; + fieldbyname('SKdate').Value:=Order_RL.fieldbyname('SKdate').AsDateTime; + fieldbyname('SKMoney').Value:=Order_RL.fieldbyname('SKMoney').AsFloat; + fieldbyname('RLDate').Value:=Order_RL.fieldbyname('RLDate').AsDateTime; + fieldbyname('RLMoney').Value:=Order_RL.fieldbyname('RLMoney').AsFloat; + fieldbyname('FeeName').Value:=trim(Order_RL.fieldbyname('FeeName').AsString); + fieldbyname('BZType').Value:=trim(Order_RL.fieldbyname('BZType').AsString); + fieldbyname('YFNote').Value:=trim(Order_RL.fieldbyname('YFNote').AsString); + fieldbyname('YFID').Value:=trim(Order_RL.fieldbyname('YFID').AsString); + fieldbyname('Mainid').Value:=trim(Order_Main.fieldbyname('Mainid').AsString); + fieldbyname('YSID').Value:=trim(maxno); + post; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set YRLMoney=(select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set WRLMoney=isnull(Money,0)-isnull(YRLMoney,0) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + with Order_RL do + begin + edit; + fieldbyname('YSID').AsString:=trim(maxno); + end; + next; + end; + end; + application.MessageBox('ɹ','ʾ'); +end; + +procedure TfrmContractList.ToolButton5Click(Sender: TObject); +var + maxno:string; + FCount:Integer; +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Chker=Cast('''' as varchar(20))'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Chker); + SInitCDSData20(ADOQueryTemp,CDS_Chker); + while CDS_Chker.IsEmpty=False do + begin + CDS_Chker.Delete; + end; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='ZDKJR'; + flagname:='ָɼ'; + MainType:=Trim(DName); + if ShowModal=1 then + begin + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSEl').AsBoolean=True then + begin + CDS_Chker.Append; + CDS_Chker.FieldByName('Chker').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + CDS_Chker.Post; + end; + Next; + end; + end; + if CDS_Chker.IsEmpty then FCount:=9 + end; + end; + finally; + frmZDYHelpSel.Free; + end; + if FCount=9 then + begin + if CDS_Chker.IsEmpty then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + end; + CDS_Chker.DisableControls; + with CDS_Chker do + begin + First; + while not eof do + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserName='''+Trim(CDS_Chker.fieldbyname('Chker').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + CDS_Chker.EnableControls; + Application.MessageBox('˶!','ʾ',0); + Exit; + end; + Next; + end; + end; + CDS_Chker.EnableControls; + if CDS_Chker.IsEmpty then Exit; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + //if CDS_Chk.IsEmpty then + begin + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Chker do + begin + First; + while not Eof do + begin + if CDS_Chk.Locate('Chker',Trim(CDS_Chker.fieldbyname('Chker').AsString),[])=False then + begin + if GetLSNo(ADOQueryCmd,maxno,'CK','OrdCon_Chk',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from OrdCon_Chk where Mainid='''+trim(Order_Main.fieldbyname('MainID').AsString)+''''); + sql.add(' and Chker='''+trim(CDS_Chker.fieldbyname('Chker').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if isempty then + begin + Append; + FieldByName('CKID').Value:=Trim(maxno); + end + else + edit; + FieldByName('MainID').Value:=Trim(Order_Main.fieldbyname('MainID').AsString); + FieldByName('Chker').Value:=Trim(CDS_Chker.fieldbyname('Chker').AsString); + fieldbyname('ChkStatus').Value:=''; + fieldbyname('ChkTime').Value:=now; + Post; + end; + if CDS_Chk.Locate('Chker',Trim(CDS_Chker.fieldbyname('Chker').AsString),[])=False then + begin + with CDS_Chk do + begin + Append; + FieldByName('Chker').Value:=Trim(CDS_Chker.fieldbyname('Chker').AsString); + Post; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; + end; +end; + +procedure TfrmContractList.TV4CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if application.MessageBox('ȷҪɾ','ʾ',1)=2 then exit; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from OrdCon_Chk where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''''); + execsql; + end; + CDS_Chk.Delete; +end; + +end. diff --git a/盛纺贸易管理/U_ContractListNX.dfm b/盛纺贸易管理/U_ContractListNX.dfm new file mode 100644 index 0000000..70c000f --- /dev/null +++ b/盛纺贸易管理/U_ContractListNX.dfm @@ -0,0 +1,1335 @@ +object frmContractListNX: TfrmContractListNX + Left = 179 + Top = 125 + Width = 1338 + Height = 671 + Caption = #20869#38144#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1322 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 189 + Top = 0 + Caption = #20135#21697#31867#21035#23450#20041 + ImageIndex = 58 + Visible = False + OnClick = ToolButton4Click + end + object TBAdd: TToolButton + Left = 296 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 359 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton2: TToolButton + Left = 422 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 485 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 548 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Wrap = True + OnClick = TBDelClick + end + object tchk: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = tchkClick + end + object Tnochk: TToolButton + Left = 63 + Top = 30 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Visible = False + OnClick = TnochkClick + end + object Tqx: TToolButton + Left = 150 + Top = 30 + AutoSize = True + Caption = #21512#21516#21462#28040 + ImageIndex = 19 + OnClick = TqxClick + end + object Tnoqx: TToolButton + Left = 237 + Top = 30 + AutoSize = True + Caption = #25764#38144#21512#21516#21462#28040 + ImageIndex = 129 + OnClick = TnoqxClick + end + object ToolButton6: TToolButton + Left = 348 + Top = 30 + AutoSize = True + Caption = #25351#23450#21487#35265#20154 + ImageIndex = 57 + OnClick = ToolButton6Click + end + object TBExport: TToolButton + Left = 447 + Top = 30 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object ToolButton5: TToolButton + Left = 510 + Top = 30 + AutoSize = True + Caption = #21512#21516#38468#20214 + ImageIndex = 57 + OnClick = ToolButton5Click + end + object TBPrint: TToolButton + Left = 597 + Top = 30 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ComboBox1: TComboBox + Left = 660 + Top = 33 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + end + object TBClose: TToolButton + Left = 805 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 149 + Width = 1164 + Height = 295 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv1CellDblClick + OnCustomDrawCell = Tv1CustomDrawCell + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column11 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column15: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'CPCode' + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v1Column8: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNo' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v1Column1: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 89 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'ConPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 78 + end + object v1Column14: TcxGridDBColumn + Caption = #23458#26381 + DataBinding.FieldName = 'KeFu' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #38656#26041 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 87 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTColor: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 43 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 64 + end + object v1MPRTCF: TcxGridDBColumn + Caption = #25968#37327#35828#26126 + DataBinding.FieldName = 'QtyNote' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 88 + end + object v1Column10: TcxGridDBColumn + DataBinding.FieldName = 'status' + Visible = False + VisibleForCustomization = False + end + object v1Column12: TcxGridDBColumn + Caption = #21512#21516#38468#20214 + DataBinding.FieldName = 'FJFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1RLZMoney: TcxGridDBColumn + Caption = #35748#39046#24635#37329#39069 + DataBinding.FieldName = 'RLZMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 70 + end + object v1SJFHMoney: TcxGridDBColumn + Caption = #23454#38469#21457#36135#37329#39069 + DataBinding.FieldName = 'SJFHMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v1Column11: TcxGridDBColumn + Caption = #21512#21516#37329#39069 + DataBinding.FieldName = 'ConMoney' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1322 + Height = 66 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 182 + Top = 39 + Width = 40 + Height = 12 + Caption = #38656' '#26041 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 447 + Top = 15 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 430 + Top = 99 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 182 + Top = 15 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 303 + Top = 99 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 303 + Top = 123 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 319 + Top = 39 + Width = 21 + Height = 12 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 319 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#26381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 447 + Top = 39 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 85 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 223 + Top = 35 + Width = 77 + Height = 21 + TabOrder = 2 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object ConPerson1: TEdit + Tag = 2 + Left = 500 + Top = 11 + Width = 76 + Height = 21 + TabOrder = 3 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 483 + Top = 95 + Width = 76 + Height = 21 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = CustomerNoNameChange + end + object ConNo: TEdit + Tag = 2 + Left = 223 + Top = 11 + Width = 77 + Height = 21 + TabOrder = 5 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTKZ: TEdit + Tag = 2 + Left = 332 + Top = 95 + Width = 56 + Height = 21 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 332 + Top = 119 + Width = 56 + Height = 21 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + object KHConNO: TEdit + Tag = 2 + Left = 347 + Top = 35 + Width = 76 + Height = 21 + TabOrder = 8 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object KeFu: TEdit + Tag = 2 + Left = 347 + Top = 11 + Width = 76 + Height = 21 + TabOrder = 9 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object CPCode: TEdit + Tag = 2 + Left = 500 + Top = 35 + Width = 76 + Height = 21 + TabOrder = 10 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 128 + Width = 1322 + Height = 21 + Align = alTop + TabOrder = 3 + Properties.CustomButtons.Buttons = <> + Properties.Style = 9 + Properties.TabIndex = 0 + Properties.Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #24050#21462#28040 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectRight = 0 + ClientRectTop = 0 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 444 + Width = 1322 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object Panel2: TPanel + Left = 0 + Top = 452 + Width = 1322 + Height = 180 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 787 + Height = 176 + Align = alLeft + TabOrder = 0 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = cxGridDBColumn5 + end + item + Format = '0' + Position = spFooter + Column = cxGridDBColumn6 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v2Column2: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + HeaderAlignmentHorz = taCenter + Width = 87 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 107 + end + object v1Column5: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'prtspec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 70 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1Column6: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'prtmf' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 59 + end + object v1Column7: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'prtkz' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 64 + end + object v1Column3: TcxGridDBColumn + Caption = #33394#21495'/'#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 71 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'KG') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 62 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 58 + end + object v2HBType: TcxGridDBColumn + Caption = #36135#24065#31867#22411 + DataBinding.FieldName = 'HBType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'RMB' + 'USD') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.handBlack + Width = 46 + end + object v1Column9: TcxGridDBColumn + Caption = #38024#32455#19978#26426#36153 + DataBinding.FieldName = 'ZhenZhiSJFee' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #21360#33457#19978#26426#36153 + DataBinding.FieldName = 'YinHuaSJFee' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #21253#32568#36153 + DataBinding.FieldName = 'BaoGangFee' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #21046#32593#21046#29256#36153 + DataBinding.FieldName = 'ZhiWangZhiBanFee' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object v1Column13: TcxGridDBColumn + Caption = #22871#25968 + DataBinding.FieldName = 'TaoQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column1: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'ConMXMoney' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object cxGridDBColumn10: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 44 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 855 + Top = 2 + Width = 465 + Height = 176 + Align = alClient + TabOrder = 1 + object TV3: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V3SKDate: TcxGridDBColumn + Caption = #25910#27454#26085#26399 + DataBinding.FieldName = 'SKdate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 70 + end + object V3SKMoney: TcxGridDBColumn + Caption = #25910#27454#37329#39069 + DataBinding.FieldName = 'SKMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 65 + end + object V3RLDate: TcxGridDBColumn + Caption = #35748#39046#26085#26399 + DataBinding.FieldName = 'RLDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V3RLMoney: TcxGridDBColumn + Caption = #35748#39046#37329#39069 + DataBinding.FieldName = 'RLMoney' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V3FeeName: TcxGridDBColumn + Caption = #36153#29992#21517#31216 + DataBinding.FieldName = 'FeeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V3BZType: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V3YFNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'YFNote' + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV3 + end + end + object Panel3: TPanel + Left = 789 + Top = 2 + Width = 66 + Height = 176 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label10: TLabel + Left = 8 + Top = 16 + Width = 52 + Height = 24 + Caption = #25910#27454#35748#39046#13' '#8594#8594#8594 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ADD: TButton + Left = 5 + Top = 40 + Width = 55 + Height = 25 + Caption = #22686#34892 + TabOrder = 0 + OnClick = ADDClick + end + object DEL: TButton + Left = 5 + Top = 83 + Width = 55 + Height = 25 + Caption = #21024#34892 + TabOrder = 1 + OnClick = DELClick + end + object SAVE: TButton + Left = 5 + Top = 127 + Width = 55 + Height = 25 + Caption = #20445#23384 + TabOrder = 2 + OnClick = SAVEClick + end + end + end + object cxGrid4: TcxGrid + Left = 1164 + Top = 149 + Width = 158 + Height = 295 + Align = alRight + TabOrder = 6 + object TV4: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = TV4CellDblClick + DataController.DataSource = DataSource4 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V4Chktime: TcxGridDBColumn + Caption = #25351#23450#26085#26399 + DataBinding.FieldName = 'Chktime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object V4Chker: TcxGridDBColumn + Caption = #25351#23450#21487#35265#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TV4 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1016 + Top = 184 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 704 + Top = 176 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 176 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 776 + Top = 176 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 984 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 960 + Top = 184 + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 192 + Top = 180 + end + object PopupMenu1: TPopupMenu + Left = 288 + Top = 184 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 752 + Top = 176 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 192 + Top = 240 + end + object PopupMenu2: TPopupMenu + Left = 676 + Top = 176 + object N11: TMenuItem + Caption = #26684#24335'1' + end + object N21: TMenuItem + Caption = #26684#24335'2' + end + object N31: TMenuItem + Caption = #26684#24335'3' + end + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 460 + Top = 440 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 488 + Top = 440 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 520 + Top = 440 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 544 + Top = 440 + end + object CDS_Note: TClientDataSet + Aggregates = <> + Params = <> + Left = 288 + Top = 232 + end + object RMDBDataSet2: TRMDBDataSet + Visible = True + DataSet = CDS_Note + Left = 392 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.AutoLoadSaveSetting = True + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 340 + Top = 228 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = True + Left = 249 + Top = 240 + end + object DataSource3: TDataSource + DataSet = Order_RL + Left = 680 + Top = 448 + end + object Order_RL: TClientDataSet + Aggregates = <> + Params = <> + Left = 632 + Top = 456 + end + object CDS_Chker: TClientDataSet + Aggregates = <> + Params = <> + Left = 728 + Top = 240 + end + object CDS_Chk: TClientDataSet + Aggregates = <> + Params = <> + Left = 1076 + Top = 260 + end + object DataSource4: TDataSource + DataSet = CDS_Chk + Left = 1040 + Top = 260 + end +end diff --git a/盛纺贸易管理/U_ContractListNX.pas b/盛纺贸易管理/U_ContractListNX.pas new file mode 100644 index 0000000..79a6057 --- /dev/null +++ b/盛纺贸易管理/U_ContractListNX.pas @@ -0,0 +1,1521 @@ +unit U_ContractListNX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC, cxButtonEdit, RM_E_llPDF, cxDropDownEdit, RM_e_Graphic, + RM_e_Jpeg, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, + dxBarBuiltInMenu; + +type + TfrmContractListNX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1MPRTCF: TcxGridDBColumn; + Order_Main: TClientDataSet; + RMDBDataSet1: TRMDBDataSet; + v1CustomerNoName: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + v1PRTPrice: TcxGridDBColumn; + ToolButton1: TToolButton; + v1Column1: TcxGridDBColumn; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + PopupMenu2: TPopupMenu; + N11: TMenuItem; + N21: TMenuItem; + N31: TMenuItem; + Panel1: TPanel; + Label1: TLabel; + Label4: TLabel; + Label5: TLabel; + Label8: TLabel; + Label9: TLabel; + Label12: TLabel; + Label13: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CustomerNoName: TEdit; + ConPerson1: TEdit; + MPRTCodeName: TEdit; + ConNo: TEdit; + MPRTKZ: TEdit; + MPRTMF: TEdit; + v1Column2: TcxGridDBColumn; + ComboBox1: TComboBox; + ToolButton4: TToolButton; + cxTabControl1: TcxTabControl; + tchk: TToolButton; + Tnochk: TToolButton; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + v1Column8: TcxGridDBColumn; + KHConNO: TEdit; + Label3: TLabel; + Tqx: TToolButton; + Tnoqx: TToolButton; + ToolButton5: TToolButton; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + ClientDataSet2: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + v1Column14: TcxGridDBColumn; + Label6: TLabel; + KeFu: TEdit; + CDS_Note: TClientDataSet; + RMDBDataSet2: TRMDBDataSet; + v1Column15: TcxGridDBColumn; + Label2: TLabel; + CPCode: TEdit; + RM1: TRMGridReport; +// RMllPDFExport1: TRMllPDFExport; + RMXLSExport1: TRMXLSExport; + Panel2: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxGrid3: TcxGrid; + TV3: TcxGridDBTableView; + V3SKDate: TcxGridDBColumn; + V3SKMoney: TcxGridDBColumn; + V3RLDate: TcxGridDBColumn; + V3RLMoney: TcxGridDBColumn; + V3FeeName: TcxGridDBColumn; + V3BZType: TcxGridDBColumn; + V3YFNote: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Panel3: TPanel; + Label10: TLabel; + ADD: TButton; + DEL: TButton; + SAVE: TButton; + DataSource3: TDataSource; + Order_RL: TClientDataSet; + v1RLZMoney: TcxGridDBColumn; + v1SJFHMoney: TcxGridDBColumn; + cxGrid4: TcxGrid; + TV4: TcxGridDBTableView; + V4Chktime: TcxGridDBColumn; + V4Chker: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + CDS_Chker: TClientDataSet; + ToolButton6: TToolButton; + CDS_Chk: TClientDataSet; + DataSource4: TDataSource; + v2HBType: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton4Click(Sender: TObject); + procedure tchkClick(Sender: TObject); + procedure TnochkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure TqxClick(Sender: TObject); + procedure TnoqxClick(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure ADDClick(Sender: TObject); + procedure DELClick(Sender: TObject); + procedure SAVEClick(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure TV4CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + DQdate:TDateTime; + fuserName,canshu1:string; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + procedure SetStatus(); + procedure InitSub(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmContractListNX: TfrmContractListNX; + +implementation +uses + U_DataLink,U_ConInPutNX,U_Fun,U_ZDYHelp, U_FjList_RZ,U_SKCR_CX, + U_ZDYHelpSel; + +{$R *.dfm} +procedure TfrmContractListNX.InitSub(); +begin + ADOQuerySub.Close; + IF Order_Main.IsEmpty then exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCon_sub '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet2); + SInitCDSData20(ADOQuerySub,ClientDataSet2); + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderYSK '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,Order_RL); + SInitCDSData20(ADOQuerySub,Order_RL); + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from OrdCon_Chk '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,CDS_Chk); + SInitCDSData20(ADOQuerySub,CDS_Chk); +end; + +procedure TfrmContractListNX.SetStatus(); +begin + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + Tqx.Visible:=false; + TNoqx.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + IF trim(DCode)<>'A2' then + begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + Tqx.Visible:=true; + end; + 1:begin + Tqx.Visible:=true; + end; + 2:begin + TNoqx.Visible:=true; + end; + 3:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + Tqx.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + Tqx.Visible:=true; + end; + 2:begin + TNOqx.Visible:=true; + end; + 3:begin + end; + end; + end; +end; + + +procedure TfrmContractListNX.FormDestroy(Sender: TObject); +begin + frmContractListNX:=nil; +end; + +procedure TfrmContractListNX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmContractListNX.FormCreate(Sender: TObject); +begin + canshu1:=Trim(DParameters1); + //cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmContractListNX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬ1',Tv1,'ָʾ'); +end; + +procedure TfrmContractListNX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,A.ConNo ConNoM '); + sql.add(',SJFHMoney=(select Sum(AA.FHMoney) from (select C.Subid,FHMoney=Sum(B.Money) '); + SQL.ADD('from YF_Money_CR B inner join JYOrderCon_Sub C on C.Subid=B.ConID where C.Mainid=A.Mainid and isnull(B.FeeType,'''')<>'''' and B.Status>0 '); + sql.add('group by C.Subid) AA) '); + sql.Add(',CPCode=dbo.F_Get_Order_SubStr(A.MainId,''ConOrdCPCode'')'); + SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); + sql.add(',RLZMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid)'); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.MainID and TFType=''ͬ''),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrderCon_Main A '); + SQL.Add('where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); + SQL.Add(' and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); + sql.Add(' and A.MPRTType='''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''' '); + sql.add(' or exists (select B.Chker from OrdCon_Chk B where B.Mainid=A.Mainid and B.Chker='''+trim(DName)+'''))'); + end; + IF cxTabControl1.TabIndex<3 then + begin + sql.Add(' and isnull(A.status,''0'')='''+inttostr(cxTabControl1.TabIndex)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmContractListNX.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmContractListNX.InitForm(); +begin + ReadCxGrid('ͬ1',Tv1,'ָʾ'); + + if FCloth=1 then + begin + v1Column4.Visible:=True; + v1PRTPrice.Visible:=False; + v1PRTPrice.Hidden:=True; + end + else + begin + v1Column4.Visible:=False; + v1PRTPrice.Visible:=True; + v1PRTPrice.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-61; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderCon_Main where MPRTType='''' Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString)); + Next; + end; + end; +end; + +procedure TfrmContractListNX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractListNX.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractListNX.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmContractListNX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete OrdCon_Chk where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmContractListNX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾб'); +end; + +procedure TfrmContractListNX.TBPrintClick(Sender: TObject); +var + fPrintFile,FeeStr,fZMFile:string; + EngMoney:string; + Fint,i,j:Integer; + FIFXS:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConMoney10=Cast(B.PRTOrderQty*B.PRTPrice as decimal(18,2)) '); + sql.Add(',ConQty=(select Sum(C.PRTOrderQty) from JYOrderCon_Sub C where C.Mainid=A.Mainid)'); + SQL.Add(',Case when isnull(PriceUnit,'''')=''RMB'' then '''' '); + SQL.Add(' when isnull(PriceUnit,'''')=''USD'' then ''$'' else '''' end as PriceUnit10 '); + sql.Add(',Case when isnull(ZhenZhiSJFee,0)<>0 then ''֯ϻ:''+Cast(ZhenZhiSJFee as varchar(20))+'''''); + sql.Add(' +Char(10)+Char(13) else '''' end as ZhenZhiSJFee10 '); + sql.Add(',Case when isnull(YinHuaSJFee,0)<>0 then ''ӡϻ:''+Cast(YinHuaSJFee as varchar(20))+'''''); + sql.Add(' +Char(10)+Char(13) else '''' end as YinHuaSJFee10'); + sql.Add(',Case when isnull(BaoGangFee,0)<>0 then ''׷:''+Cast(BaoGangFee as varchar(20))+'''''); + sql.Add(' +Char(10)+Char(13) else '''' end as BaoGangFee10 '); + sql.Add(',Case when isnull(ZhiWangZhiBanFee,0)<>0 then ''ư:''+Cast(ZhiWangZhiBanFee as varchar(20))+''*''+cast(TaoQty as varchar(20))+'''''); + SQL.Add(' +Char(10)+Char(13) else '''' end as ZhiWangZhiBanFee10 '); + sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.add(' Order By B.XHNo'); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select MNote=RTrim(B.MNote),XHInt=Cast(XHNo as int),XHStr=Cast(Null as varchar(20)),B.MNID '); + sql.Add(',A.SYRAddress,A.TelNo,A.FaxNo,A.BankName,A.BankNo,A.CTMAddress,A.CTMTelNo,A.CTMFaxNo'); + sql.Add(' from JYOrderCon_Main A left join JYOrderCon_Main_Note B on A.MainId=B.MainId '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Note); + SInitCDSData20(ADOQueryPrint,CDS_Note); + if (CDS_Note.RecordCount=1) and (Trim(CDS_Note.fieldbyname('MNID').AsString)='') then + begin + begin + with CDS_Note do + begin + Edit; + FieldByName('XHInt').Value:=Null; + FieldByName('XHStr').Value:=Null; + FieldByName('MNote').Value:='ͬ׷ʽ˫ѺЭ̣Э̲˿ŵطԺϽ򲻿ɿɺͬУΥԼЭ̣'; + Post; + end; + CopyAddRowCDS(CDS_Note); + with CDS_Note do + begin + Edit; + FieldByName('XHInt').Value:=Null; + FieldByName('XHStr').Value:=Null; + FieldByName('MNote').Value:='ͬһʽ,˫ִһ,ͬʼʽͬΪЧ,˫ǩ֮'; + Post; + end; + end; + end else + begin + CopyAddRowCDS(CDS_Note); + + with CDS_Note do + begin + Edit; + FieldByName('XHInt').Value:=Null; + FieldByName('XHStr').Value:=Null; + FieldByName('MNote').Value:='ͬ׷ʽ˫ѺЭ̣Э̲˿ŵطԺϽ򲻿ɿɺͬУΥԼЭ̣'; + Post; + end; + CopyAddRowCDS(CDS_Note); + with CDS_Note do + begin + Edit; + FieldByName('XHInt').Value:=Null; + FieldByName('XHStr').Value:=Null; + FieldByName('MNote').Value:='ͬһʽ,˫ִһ,ͬʼʽͬΪЧ,˫ǩ֮'; + Post; + end; + end; + Fint:=CDS_Note.RecordCount; + i:=8; + if Fint=2 then + begin + with CDS_Note do + begin + First; + while not Eof do + begin + i:=i+1; + Edit; + if i=9 then + begin + FieldByName('XHStr').Value:='š'; + end else + begin + FieldByName('XHStr').Value:='ʮ'; + end; + Post; + Next; + end; + end; + end else + begin + with CDS_Note do + begin + First; + while not Eof do + begin + i:=i+1; + Edit; + if i=9 then + begin + FieldByName('XHStr').Value:='š'; + end else + if i=10 then + begin + FieldByName('XHStr').Value:='ʮ'; + end else + if i=11 then + begin + FieldByName('XHStr').Value:='ʮһ'; + end else + if i=12 then + begin + FieldByName('XHStr').Value:='ʮ'; + end else + if i=13 then + begin + FieldByName('XHStr').Value:='ʮ'; + end else + if i=14 then + begin + FieldByName('XHStr').Value:='ʮġ'; + end else + if i=15 then + begin + FieldByName('XHStr').Value:='ʮ塢'; + end else + if i=16 then + begin + FieldByName('XHStr').Value:='ʮ'; + end else + if i=17 then + begin + FieldByName('XHStr').Value:='ʮߡ'; + end; + Post; + Next; + end; + end; + end; + if FileExists(fPrintFile) then + begin + if RM1.CanExport=true then + begin + fZMFile:='C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile:='C:\Documents and Settings\Administrator\\'+trim(Order_Main.fieldbyname('ConNO').AsString)+'.xls'; + end + else + begin + fZMFile:='C:\Users\Administrator\Desktop\'+trim(Order_Main.fieldbyname('ConNO').AsString)+'.XLS'; + end; + RM1.ExportTo(RMXLSExport1,fZMFile); + end; + RM1.CanExport:=true; + RM1.FileName:=trim(CDS_Print.fieldbyname('ConNO').AsString); + RMVariables['EngMoney']:=EngMoney; + RMVariables['DlyNote']:=FeeStr; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + RM1.CanExport:=False; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmContractListNX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderCon_Main where MPRTType='''' Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString)); + Next; + end; + end;} + TBFind.Click; +end; + +procedure TfrmContractListNX.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractListNX.FormShow(Sender: TObject); +begin + if Trim(canshu1)<>'Ȩ' then + begin + Panel3.Visible:=false; + end + else + Panel3.Visible:=true; + fuserName:=DCode; + if (trim(DCode)='A1') or (trim(DCode)='A2') then + begin + fuserName:='A'; + end; + InitForm(); + SetStatus(); + RM1.CanExport:=true; +end; + +procedure TfrmContractListNX.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmContractListNX.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmContractListNX.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmContractListNX.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmContractListNX.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmContractListNX.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmContractListNX.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmContractListNX.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmContractListNX.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractListNX.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractListNX.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmContractListNX.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractListNX.ConNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Length(Tedit(Sender).Text)<1 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add('select A.*,A.ConNo ConNoM '); + sql.add(',SJFHMoney=(select Sum(AA.FHMoney) from (select C.Subid,FHMoney=Sum(B.Money) '); + SQL.ADD('from YF_Money_CR B inner join JYOrderCon_Sub C on C.Subid=B.ConID where C.Mainid=A.Mainid and isnull(B.FeeType,'''')<>'''' '); + sql.add('group by C.Subid) AA) '); + sql.add(',RLZMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid)'); + sql.Add(',CPCode=dbo.F_Get_Order_SubStr(A.MainId,''ConOrdCPCode'')'); + SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.MainID and TFType=''ͬ'' ),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrderCon_Main A '); + SQL.Add('where MPRTType='''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''' '); + sql.add(' or exists (select B.Chker from OrdCon_Chk B where B.Mainid=A.Mainid and B.Chker='''+trim(DName)+'''))'); + end; + sql.Add(' and '+Tedit(Sender).Name+' like '+quotedstr(trim('%'+trim(Tedit(Sender).Text)+'%'))); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmContractListNX.ToolButton4Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTNameType'; + flagname:='Ʒ'; + V1HelpType.Visible:=True; + V1HelpType.Caption:='д'; + fnote:=True; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContractListNX.tchkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractListNX.TnochkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractListNX.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; + +end; + +procedure TfrmContractListNX.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmContractListNX.TqxClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + if Application.MessageBox('ȷҪȡͬ','ʾ',32+4)<>IDYES then Exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''2'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬȡ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('ͬȡɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ͬȡʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractListNX.TnoqxClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬȡ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('ͬȡɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ͬȡʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractListNX.ToolButton5Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmFjList_RZ:=TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + // PState:=1; + if Trim(DParameters1)<>'Ȩ' then cxButton1.Visible:=false; + fkeyNO:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + fType:='ͬ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; +end; + +procedure TfrmContractListNX.Tv1CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index]='2' then + ACanvas.Brush.Color:=clLime; +end; + +procedure TfrmContractListNX.ADDClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + frmSKCR_CX:=TfrmSKCR_CX.create(self); + with frmSKCR_CX do + begin + if showmodal=1 then + begin + with CDS_HZ do + begin + first; + while not eof do + begin + if fieldbyname('Ssel').AsBoolean=true then + begin + with Order_RL do + begin + append; + fieldbyname('SKdate').AsDateTime:=CDS_HZ.fieldbyname('CRTime').AsDateTime; + fieldbyname('SKMoney').Value:=CDS_HZ.fieldbyname('Money').AsFloat; + fieldbyname('RLDate').Value:=SGetServerDate(ADOQueryTemp); + fieldbyname('RLMoney').Value:=CDS_HZ.fieldbyname('WRLMoney').AsFloat; + fieldbyname('FeeName').Value:=CDS_HZ.fieldbyname('YFName').AsString; + fieldbyname('BZType').Value:=CDS_HZ.fieldbyname('BZType').AsString; + fieldbyname('YFID').Value:=CDS_HZ.fieldbyname('YFID').AsString; + post; + end; + end; + next; + end; + end; + end; + free; + end; +end; + +procedure TfrmContractListNX.DELClick(Sender: TObject); +begin + if Order_RL.IsEmpty then exit; + if application.MessageBox('ȷҪɾ','ʾ',1)=2 then exit; + if Order_RL.FieldByName('YSID').AsString<>'' then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from JYOrderYSK where YSID='''+Trim(Order_RL.fieldbyname('YSID').AsString)+''''); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set YRLMoney=(select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID), '); + sql.add('WRLMoney=isnull(Money,0)-isnull((select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID),0) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + end; + Order_RL.Delete; +end; + +procedure TfrmContractListNX.SAVEClick(Sender: TObject); +var maxno:string; + FRLMoney:double; +begin + if Order_RL.IsEmpty then exit; + with Order_RL do + begin + first; + while not eof do + begin + if trim(Order_RL.fieldbyname('YSID').AsString)<>'' then + maxno:=trim(Order_RL.fieldbyname('YSID').AsString) + else + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select Sum(RLMoney) SumRLMoney from JYOrderYSK where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + Open; + end; + FRLMoney:=ADOQueryCmd.fieldbyname('SumRLMoney').AsCurrency+Order_RL.fieldbyname('RLMoney').AsCurrency; + if FRLMoney>Order_RL.FieldByName('SKMoney').AsCurrency+0.1 then + begin + application.MessageBox('ܽտ','ʾ'); + exit; + end; + if GetLSNo(ADOQueryCmd,maxno,'YS','JYOrderYSK',3,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderYSK '); + sql.add('where YSID='''+trim(maxno)+''''); + open; + end; + with ADOQueryCmd do + begin + if IsEmpty then + begin + append; + end + else + edit; + fieldbyname('SKdate').Value:=Order_RL.fieldbyname('SKdate').AsDateTime; + fieldbyname('SKMoney').Value:=Order_RL.fieldbyname('SKMoney').AsFloat; + fieldbyname('RLDate').Value:=Order_RL.fieldbyname('RLDate').AsDateTime; + fieldbyname('RLMoney').Value:=Order_RL.fieldbyname('RLMoney').AsFloat; + fieldbyname('FeeName').Value:=trim(Order_RL.fieldbyname('FeeName').AsString); + fieldbyname('BZType').Value:=trim(Order_RL.fieldbyname('BZType').AsString); + fieldbyname('YFNote').Value:=trim(Order_RL.fieldbyname('YFNote').AsString); + fieldbyname('YFID').Value:=trim(Order_RL.fieldbyname('YFID').AsString); + fieldbyname('Mainid').Value:=trim(Order_Main.fieldbyname('Mainid').AsString); + fieldbyname('YSID').Value:=trim(maxno); + post; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set YRLMoney=(select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set WRLMoney=isnull(Money,0)-isnull(YRLMoney,0) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + with Order_RL do + begin + edit; + fieldbyname('YSID').AsString:=trim(maxno); + end; + next; + end; + end; + application.MessageBox('ɹ','ʾ'); +end; + +procedure TfrmContractListNX.ToolButton6Click(Sender: TObject); +var + maxno:string; + FCount:Integer; +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Chker=Cast('''' as varchar(20))'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Chker); + SInitCDSData20(ADOQueryTemp,CDS_Chker); + while CDS_Chker.IsEmpty=False do + begin + CDS_Chker.Delete; + end; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='ZDKJR'; + flagname:='ָɼ'; + MainType:=Trim(DName); + if ShowModal=1 then + begin + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSEl').AsBoolean=True then + begin + CDS_Chker.Append; + CDS_Chker.FieldByName('Chker').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + CDS_Chker.Post; + end; + Next; + end; + end; + if CDS_Chker.IsEmpty then FCount:=9 + end; + end; + finally; + frmZDYHelpSel.Free; + end; + if FCount=9 then + begin + if CDS_Chker.IsEmpty then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + end; + CDS_Chker.DisableControls; + with CDS_Chker do + begin + First; + while not eof do + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserName='''+Trim(CDS_Chker.fieldbyname('Chker').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + CDS_Chker.EnableControls; + Application.MessageBox('˶!','ʾ',0); + Exit; + end; + Next; + end; + end; + CDS_Chker.EnableControls; + if CDS_Chker.IsEmpty then Exit; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + //if CDS_Chk.IsEmpty then + begin + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Chker do + begin + First; + while not Eof do + begin + if CDS_Chk.Locate('Chker',Trim(CDS_Chker.fieldbyname('Chker').AsString),[])=False then + begin + if GetLSNo(ADOQueryCmd,maxno,'CK','OrdCon_Chk',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from OrdCon_Chk where Mainid='''+trim(Order_Main.fieldbyname('MainID').AsString)+''''); + sql.add(' and Chker='''+trim(CDS_Chker.fieldbyname('Chker').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if isempty then + begin + Append; + FieldByName('CKID').Value:=Trim(maxno); + end + else + edit; + FieldByName('MainID').Value:=Trim(Order_Main.fieldbyname('MainID').AsString); + FieldByName('Chker').Value:=Trim(CDS_Chker.fieldbyname('Chker').AsString); + fieldbyname('ChkStatus').Value:=''; + fieldbyname('ChkTime').Value:=now; + Post; + end; + if CDS_Chk.Locate('Chker',Trim(CDS_Chker.fieldbyname('Chker').AsString),[])=False then + begin + with CDS_Chk do + begin + Append; + FieldByName('Chker').Value:=Trim(CDS_Chker.fieldbyname('Chker').AsString); + Post; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; + end; +end; + +procedure TfrmContractListNX.TV4CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if application.MessageBox('ȷҪɾ','ʾ',1)=2 then exit; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from OrdCon_Chk where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''''); + execsql; + end; + CDS_Chk.Delete; +end; + +end. diff --git a/盛纺贸易管理/U_ContractList_CS.dfm b/盛纺贸易管理/U_ContractList_CS.dfm new file mode 100644 index 0000000..be3cad4 --- /dev/null +++ b/盛纺贸易管理/U_ContractList_CS.dfm @@ -0,0 +1,466 @@ +object frmConTractList_CS: TfrmConTractList_CS + Left = 188 + Top = 125 + Width = 1168 + Height = 588 + Caption = #21512#21516#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1152 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TSsel: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + OnClick = TSselClick + end + object TBRafresh: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 99 + Width = 1152 + Height = 451 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column9: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1StyleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 76 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 82 + end + object v1KHConNo: TcxGridDBColumn + Caption = 'PO #' + DataBinding.FieldName = 'KHConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1ConPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'ConPerson1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 83 + end + object v1PrtCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PrtCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1PRTspec: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1152 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label9: TLabel + Left = 183 + Top = 15 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 364 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 28 + Top = 15 + Width = 52 + Height = 12 + Caption = #26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 64 + Top = 39 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 364 + Top = 39 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 183 + Top = 39 + Width = 40 + Height = 12 + Caption = #27454' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 556 + Top = 39 + Width = 52 + Height = 12 + Caption = #35268#26684#25104#20998 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 556 + Top = 15 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Tag = 2 + Left = 223 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object PrtCodeName: TEdit + Tag = 2 + Left = 417 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object BegDate: TDateTimePicker + Left = 81 + Top = 11 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + end + object EndDate: TDateTimePicker + Left = 81 + Top = 35 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 417 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 4 + OnChange = CustomerNoNameChange + end + object StyleNo: TEdit + Tag = 2 + Left = 223 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + end + object PRTspec: TEdit + Tag = 2 + Left = 609 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object ConPerson1: TEdit + Tag = 2 + Left = 609 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 464 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 432 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 304 + Top = 152 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 352 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 160 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 624 + Top = 216 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 592 + Top = 216 + end + object RMXLSExport2: TRMXLSExport + ShowAfterExport = False + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 556 + Top = 216 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 472 + Top = 200 + end +end diff --git a/盛纺贸易管理/U_ContractList_CS.pas b/盛纺贸易管理/U_ContractList_CS.pas new file mode 100644 index 0000000..2d590a3 --- /dev/null +++ b/盛纺贸易管理/U_ContractList_CS.pas @@ -0,0 +1,294 @@ +unit U_ContractList_CS; // + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit, cxPC, cxTextEdit; + +type + TfrmConTractList_CS = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Panel1: TPanel; + Label9: TLabel; + ConNo: TEdit; + v1CustomerNoName: TcxGridDBColumn; + v1PrtCodeName: TcxGridDBColumn; + Label34: TLabel; + v1StyleNo: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + PrtCodeName: TEdit; + v1PRTspec: TcxGridDBColumn; + v1KHConNo: TcxGridDBColumn; + Label3: TLabel; + Label4: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport2: TRMXLSExport; + CDS_PRT: TClientDataSet; + Label1: TLabel; + CustomerNoName: TEdit; + Label5: TLabel; + StyleNo: TEdit; + v1ConPerson1: TcxGridDBColumn; + Label6: TLabel; + PRTspec: TEdit; + Label7: TLabel; + ConPerson1: TEdit; + v1PrtCode: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + TSsel: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ZJStatusChange(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure TSselClick(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmConTractList_CS: TfrmConTractList_CS; + +implementation +uses + U_DataLink,U_RTFun, U_KHDYInPut, U_FjList_RZ; + +{$R *.dfm} + +procedure TfrmConTractList_CS.FormDestroy(Sender: TObject); +begin + frmConTractList_CS:=nil; +end; + +procedure TfrmConTractList_CS.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmConTractList_CS.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + canshu1:=Trim(DParameters1); +end; + +procedure TfrmConTractList_CS.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ͬѯ',Tv1,''); + Close; +end; + +procedure TfrmConTractList_CS.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.Add(' from JYOrderCon_Main A '); + sql.add(' inner join JYOrderCon_Sub B on B.Mainid=A.Mainid'); + sql.Add(' where A.OrdDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and A.OrdDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + sql.add(' and A.status=''1'' '); + sql.Add(' and (A.FillerCode='''+Trim(DCode)+''''); + sql.Add(' or A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''')'); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmConTractList_CS.InitForm(); +begin + BegDate.Date:=SGetServerDate(ADOQueryTemp)-15; + EndDate.Date:=SGetServerDate(ADOQueryTemp); + ReadCxGrid('ͬѯ',Tv1,''); + //InitGrid(); +end; + +procedure TfrmConTractList_CS.TBFindClick(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmConTractList_CS.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Delete KH_DaYang where DYId='''+Trim(Order_Main.fieldbyname('DYId').AsString)+''''); + ExecSQL; + end; + Order_Main.Delete; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmConTractList_CS.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ɫ/SOϢб',cxGrid1); +end; + +procedure TfrmConTractList_CS.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmConTractList_CS.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmConTractList_CS.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmConTractList_CS.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmConTractList_CS.CustomerNoNameChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmConTractList_CS.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmConTractList_CS.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmConTractList_CS.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmConTractList_CS.ZJStatusChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmConTractList_CS.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(ConNo.Text)='' then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.Add(' from JYOrderCon_Main A '); + sql.add(' inner join JYOrderCon_Sub B on B.Mainid=A.Mainid'); + sql.Add(' where A.OrdDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and A.OrdDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + sql.add(' and A.status=''1'' '); + sql.add(' and ConNo like '''+'%'+trim(ConNo.Text)+'%'+''''); + sql.Add(' and (A.FillerCode='''+Trim(DCode)+''''); + sql.Add(' or A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''')'); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmConTractList_CS.TSselClick(Sender: TObject); +begin + if order_Main.IsEmpty then exit; + Modalresult:=1; +end; + +procedure TfrmConTractList_CS.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if order_Main.IsEmpty then exit; + Modalresult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_ContractList_NX.dfm b/盛纺贸易管理/U_ContractList_NX.dfm new file mode 100644 index 0000000..be42b8c --- /dev/null +++ b/盛纺贸易管理/U_ContractList_NX.dfm @@ -0,0 +1,1129 @@ +object frmContractList_NX: TfrmContractList_NX + Left = 108 + Top = 61 + Width = 1261 + Height = 621 + Caption = #35746#21333#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1228 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton4: TToolButton + Left = 126 + Top = 0 + Caption = #20135#21697#31867#21035#23450#20041 + ImageIndex = 58 + Visible = False + OnClick = ToolButton4Click + end + object TBAdd: TToolButton + Left = 233 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 296 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton2: TToolButton + Left = 359 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 422 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 485 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object Tchk: TToolButton + Left = 548 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = TchkClick + end + object Tnochk: TToolButton + Left = 611 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Wrap = True + Visible = False + OnClick = TnochkClick + end + object TQX: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #21512#21516#21462#28040 + ImageIndex = 19 + OnClick = TQXClick + end + object TNOQX: TToolButton + Left = 87 + Top = 30 + AutoSize = True + Caption = #25764#38144#21512#21516#21462#28040 + ImageIndex = 129 + OnClick = TNOQXClick + end + object TBExport: TToolButton + Left = 198 + Top = 30 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 261 + Top = 30 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ToolButton3: TToolButton + Left = 324 + Top = 30 + AutoSize = True + Caption = #21512#21516#38468#20214 + ImageIndex = 57 + OnClick = ToolButton3Click + end + object ComboBox1: TComboBox + Left = 411 + Top = 33 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + end + object TBClose: TToolButton + Left = 556 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 149 + Width = 1228 + Height = 276 + Align = alTop + TabOrder = 1 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv1CellDblClick + OnCustomDrawCell = Tv1CustomDrawCell + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + Column = v1ConMoney + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1Column14: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'CPCode' + HeaderAlignmentHorz = taCenter + Width = 93 + end + object v1Column3: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v1Column1: TcxGridDBColumn + Caption = #20379#26041 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'ConPerson1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1Column13: TcxGridDBColumn + Caption = #23458#26381 + DataBinding.FieldName = 'KeFu' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #38656#26041 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 86 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object v1QtyNote: TcxGridDBColumn + Caption = #25968#37327#35828#26126 + DataBinding.FieldName = 'QtyNote' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column9: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + VisibleForCustomization = False + Width = 70 + end + object v1Column10: TcxGridDBColumn + Caption = #21512#21516#38468#20214 + DataBinding.FieldName = 'FJFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1PriceUnit1: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1ConMoney: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'ConMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = FoneRed + Styles.Footer = FoneRed + Styles.Header = FoneRed + Width = 81 + end + object v1status: TcxGridDBColumn + DataBinding.FieldName = 'status' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1228 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 181 + Top = 15 + Width = 40 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 495 + Top = 15 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 458 + Top = 87 + Width = 52 + Height = 12 + Caption = #33521#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 181 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 335 + Top = 83 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 335 + Top = 107 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 347 + Top = 39 + Width = 21 + Height = 12 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 1064 + Top = 16 + Width = 54 + Height = 12 + Caption = #38144#21806#39069#65306'0' + Visible = False + end + object Label7: TLabel + Left = 347 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#26381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 495 + Top = 39 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 85 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 229 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object ConPerson1: TEdit + Tag = 2 + Left = 548 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 511 + Top = 83 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = CustomerNoNameChange + end + object ConNo: TEdit + Tag = 2 + Left = 229 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTKZ: TEdit + Tag = 2 + Left = 364 + Top = 79 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 364 + Top = 103 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + object KHConNO: TEdit + Tag = 2 + Left = 375 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 8 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object KeFu: TEdit + Tag = 2 + Left = 375 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 9 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object CPCode: TEdit + Tag = 2 + Left = 548 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 10 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 127 + Width = 1228 + Height = 22 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 3 + Properties.CustomButtons.Buttons = <> + Properties.Style = 9 + Properties.TabIndex = 0 + Properties.Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #24050#21462#28040 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 22 + ClientRectRight = 1228 + ClientRectTop = 19 + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 425 + Width = 1228 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 433 + Width = 1228 + Height = 150 + Align = alBottom + TabOrder = 5 + object TV2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = cxGridDBColumn4 + end + item + Format = '0' + Position = spFooter + Column = v1PRTPrice + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn4 + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column2: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column5: TcxGridDBColumn + Caption = #20135#21697#21697#21517 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 84 + end + object v1Column6: TcxGridDBColumn + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 60 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 72 + end + object v1SOrdDefStr4: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrdDefStr4' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object v1Column7: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 73 + end + object v1Column8: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 78 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 75 + end + object V2Column3: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Width = 81 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 66 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 66 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = FonePurple + Width = 64 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'USD' + 'RMB') + HeaderAlignmentHorz = taCenter + Styles.Header = FonePurple + Width = 58 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #38024#32455#19978#26426#36153 + DataBinding.FieldName = 'ZhenZhiSJFee' + Width = 71 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #21360#33457#19978#26426#36153 + DataBinding.FieldName = 'YinHuaSJFee' + Width = 71 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #21253#32568#36153 + DataBinding.FieldName = 'BaoGangFee' + Width = 50 + end + object v1Column11: TcxGridDBColumn + Caption = #21046#32593#21046#29256#36153 + DataBinding.FieldName = 'ZhiWangZhiBanFee' + Width = 74 + end + object v1Column12: TcxGridDBColumn + Caption = #22871#25968 + DataBinding.FieldName = 'TaoQty' + Width = 38 + end + object V2Column1: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'ConMXMoney' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object V2SOrdDefNote1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1064 + Top = 264 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 480 + Top = 176 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 448 + Top = 176 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 404 + Top = 216 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1088 + Top = 264 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1120 + Top = 264 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBDataSet1 + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 248 + Top = 232 + ReportData = {} + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 216 + Top = 264 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 248 + Top = 264 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 416 + Top = 176 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 216 + Top = 232 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 524 + Top = 512 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 488 + Top = 512 + end + object ThreeColorBase: TcxStyleRepository + Left = 339 + Top = 304 + PixelsPerInch = 96 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle1: TcxStyle + AssignedValues = [svColor] + Color = clLime + end + end + object RMDBDataSet2: TRMDBDataSet + Visible = True + DataSet = CDS_Note + Left = 288 + Top = 264 + end + object CDS_Note: TClientDataSet + Aggregates = <> + Params = <> + Left = 288 + Top = 232 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 584 + Top = 520 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 512 + end +end diff --git a/盛纺贸易管理/U_ContractList_NX.pas b/盛纺贸易管理/U_ContractList_NX.pas new file mode 100644 index 0000000..23aaf5f --- /dev/null +++ b/盛纺贸易管理/U_ContractList_NX.pas @@ -0,0 +1,1021 @@ +unit U_ContractList_NX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC, cxButtonEdit, cxTextEdit, RpDefine, RpRender, + RpRenderPDF, RM_E_llPDF, cxDropDownEdit, cxLookAndFeels, + cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; + +type + TfrmContractList_NX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBDataSet1: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + ToolButton1: TToolButton; + v1Column1: TcxGridDBColumn; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + v1Column4: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + Label4: TLabel; + Label5: TLabel; + Label8: TLabel; + Label9: TLabel; + Label12: TLabel; + Label13: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CustomerNoName: TEdit; + ConPerson1: TEdit; + MPRTCodeName: TEdit; + ConNo: TEdit; + MPRTKZ: TEdit; + MPRTMF: TEdit; + v1Column2: TcxGridDBColumn; + ComboBox1: TComboBox; + ToolButton4: TToolButton; + v1Column3: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + Tchk: TToolButton; + Tnochk: TToolButton; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + KHConNO: TEdit; + Label3: TLabel; + TQX: TToolButton; + TNOQX: TToolButton; + ToolButton3: TToolButton; + v1Column9: TcxGridDBColumn; + Label6: TLabel; + v1ConMoney: TcxGridDBColumn; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + cxStyle1: TcxStyle; + v1Column10: TcxGridDBColumn; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1SOrdDefStr4: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + V2Column1: TcxGridDBColumn; + RMDBDataSet2: TRMDBDataSet; + CDS_Note: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + ClientDataSet2: TClientDataSet; + v1Column13: TcxGridDBColumn; + Label7: TLabel; + KeFu: TEdit; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + Label2: TLabel; + CPCode: TEdit; + v1Column14: TcxGridDBColumn; + v1PriceUnit1: TcxGridDBColumn; + v1QtyNote: TcxGridDBColumn; + V2SOrdDefNote1: TcxGridDBColumn; + v1status: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton4Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure TchkClick(Sender: TObject); + procedure TnochkClick(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure TQXClick(Sender: TObject); + procedure TNOQXClick(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + private + DQdate:TDateTime; + fuserName,canshu1:string; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + procedure SetStatus(); + procedure InitSub(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmContractList_NX: TfrmContractList_NX; + +implementation +uses + U_DataLink,U_ConInPut,U_Fun,U_ZDYHelp, U_FjList_RZ, U_ConInPutNX; + +{$R *.dfm} +procedure TfrmContractList_NX.InitSub(); +begin + ADOQuerySub.Close; + IF Order_Main.IsEmpty then exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCon_sub '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet2); + SInitCDSData20(ADOQuerySub,ClientDataSet2); +end; +procedure TfrmContractList_NX.SetStatus(); +begin + + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + Tqx.Visible:=false; + TNoqx.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + IF trim(DCode)<>'A2' then + begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + Tqx.Visible:=true; + end; + 1:begin + Tqx.Visible:=true; + end; + 2:begin + TNoqx.Visible:=true; + end; + 3:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + Tqx.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + Tqx.Visible:=true; + end; + 2:begin + TNoqx.Visible:=true; + end; + 3:begin + // TNoqx.Visible:=true; + end; + end; + end; + +end; + +procedure TfrmContractList_NX.FormDestroy(Sender: TObject); +begin + frmContractList_NX:=nil; +end; + +procedure TfrmContractList_NX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmContractList_NX.FormCreate(Sender: TObject); +begin + canshu1:=Trim(DParameters1); + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmContractList_NX.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ͬб1',Tv1,'ָʾ') + else + WriteCxGrid('ͬбѡ1',Tv1,'ָʾ'); + WriteCxGrid('ͬϸ1',Tv2,'ָʾ'); +end; + +procedure TfrmContractList_NX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,A.ConNo ConNoM '); + sql.Add(',CPCode=dbo.F_Get_Order_SubStr(A.MainId,''ConOrdCPCode'')'); + SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.MainID and TFType=''ͬ'' ),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrderCon_Main A '); + SQL.Add('where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); + SQL.Add('and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); + sql.Add(' and A.MPRTType='''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.FillerCode='''+Trim(DCode)+''''); + sql.Add(' or A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''')'); + end; + IF cxTabControl1.TabIndex<3 then + begin + sql.Add(' and isnull(A.status,''0'')='''+inttostr(cxTabControl1.TabIndex)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmContractList_NX.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmContractList_NX.InitForm(); +begin + + if FCloth<>1 then + ReadCxGrid('ͬб1',Tv1,'ָʾ') + else + ReadCxGrid('ͬбѡ1',Tv1,'ָʾ'); + ReadCxGrid('ͬϸ1',Tv2,'ָʾ'); + if FCloth=1 then + begin + v1Column4.Visible:=True; + // v1PRTPrice.Visible:=False; + // v1PRTPrice.Hidden:=True; + end else + begin + v1Column4.Visible:=False; + // v1PRTPrice.Visible:=True; + // v1PRTPrice.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-61; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderCon_Main where MPRTType='''' Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString)); + Next; + end; + end; +end; + +procedure TfrmContractList_NX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractList_NX.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractList_NX.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmContractList_NX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCon_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬɾ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmContractList_NX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾб'); +end; + +procedure TfrmContractList_NX.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + EngMoney,FeeStr:string; + FCustomerNoName:String; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,ConMoney10=Cast(B.PRTOrderQty*B.PRTPrice as decimal(18,2)) '); + sql.Add(',Case when isnull(ZhenZhiSJFee,0)<>0 then ''Machine Surchage: ''+Cast(ZhenZhiSJFee as varchar(20))+'''''); + sql.Add(' +Char(13) else '''' end as ZhenZhiSJFee10 ');//+Char(10) + sql.Add(',Case when isnull(YinHuaSJFee,0)<>0 then ''Print Machine Surchage: ''+Cast(YinHuaSJFee as varchar(20))+'''''); + sql.Add(' +Char(13) else '''' end as YinHuaSJFee10'); //+Char(10) + sql.Add(',Case when isnull(BaoGangFee,0)<>0 then ''Small Dye Lot Surchage: ''+Cast(BaoGangFee as varchar(20))+'''''); + sql.Add(' +Char(13) else '''' end as BaoGangFee10 '); //+Char(10) + sql.Add(',Case when isnull(ZhiWangZhiBanFee,0)<>0 then ''Screen Surchage: ''+Cast(ZhiWangZhiBanFee as varchar(20))+'''''); + SQL.Add(' +Char(13) else '''' end as ZhiWangZhiBanFee10 ');//+Char(10) + sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select MNNote=Cast(Cast(B.XHNo as int)+4 as varchar(20))+''/ ''+RTrim(B.MNote),A.* '); + sql.Add(' from JYOrderCon_Main A left join JYOrderCon_Main_Note B on A.MainId=B.MainId '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Note); + SInitCDSData20(ADOQueryPrint,CDS_Note); + with ADOQueryTemp do + begin + close; + sql.Clear; + sql.Add('select TolConMoney=ConMoney'); + sql.Add(' from JYOrderCon_Main A '); + sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + EngMoney:=num2cengnum(ADOQueryTemp.fieldbyname('TolConMoney').AsString); + EngMoney:=UpperCase(EngMoney); + if FileExists(fPrintFile) then + begin + RMVariables['EngMoney']:=EngMoney; + // RM1.PreviewButtons:=[pbZoom,pbLoad,pbSave,pbPrint,pbFind,pbPageSetup,pbExit,pbSaveToXLS,pbExport,pbNavigator]; + // RMVariables['FeeStr']:=FeeStr; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\Ӣĺͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmContractList_NX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderCon_Main where MPRTType='''' Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString)); + Next; + end; + end; + TBFind.Click; +end; + +procedure TfrmContractList_NX.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractList_NX.FormShow(Sender: TObject); +begin + + InitForm(); + SetStatus(); +end; + +procedure TfrmContractList_NX.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmContractList_NX.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmContractList_NX.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmContractList_NX.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmContractList_NX.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmContractList_NX.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmContractList_NX.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmContractList_NX.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmContractList_NX.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractList_NX.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmContractList_NX.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractList_NX.ConNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Length(Tedit(Sender).Text)<1 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add('select A.*,A.ConNo ConNoM '); + sql.Add(',CPCode=dbo.F_Get_Order_SubStr(A.MainId,''ConOrdCPCode'')'); + SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); + SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.MainID and TFType=''ͬ'' ),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrderCon_Main A '); + SQL.Add('where OrdDate>='''+'1899-01-01'+''''); + SQL.Add('and OrdDate<'''+'2050-01-01'+''''); + sql.Add(' and MPRTType='''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.FillerCode='''+Trim(DCode)+''''); + sql.Add(' or A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''')'); + end; + sql.Add(' and '+Tedit(Sender).Name+' like '+quotedstr(trim('%'+trim(Tedit(Sender).Text)+'%'))); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmContractList_NX.ToolButton4Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTNameType'; + flagname:='Ʒ'; + V1HelpType.Visible:=True; + V1HelpType.Caption:='д'; + fnote:=True; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContractList_NX.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; +end; + +procedure TfrmContractList_NX.TchkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList_NX.TnochkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList_NX.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmContractList_NX.TQXClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + if Application.MessageBox('ȷҪȡͬ','ʾ',32+4)<>IDYES then Exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''2'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬȡ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('ͬȡɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ͬȡʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList_NX.TNOQXClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrdercon_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ͬȡ'))); + sql.Add(','+quotedstr(trim('ͬţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + application.MessageBox('ͬȡɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ͬȡʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContractList_NX.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmFjList_RZ:=TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + // PState:=1; + if Trim(DParameters1)<>'Ȩ' then cxButton1.Visible:=false; + fkeyNO:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + fType:='ͬ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; +end; + +procedure TfrmContractList_NX.Tv1CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index]='2' then + ACanvas.Brush.Color:=clLime; +end; + +end. diff --git a/盛纺贸易管理/U_ContractSelList.dfm b/盛纺贸易管理/U_ContractSelList.dfm new file mode 100644 index 0000000..ffb099d --- /dev/null +++ b/盛纺贸易管理/U_ContractSelList.dfm @@ -0,0 +1,450 @@ +object frmContractSelList: TfrmContractSelList + Left = 184 + Top = 117 + Width = 1169 + Height = 600 + Align = alClient + Caption = #35746#21333#21512#21516#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1153 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 16 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 78 + Width = 1153 + Height = 482 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1Column13: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column8: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'MPRTType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 77 + end + object v1Column1: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 97 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 76 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1Column7: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 71 + end + object v1Column10: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 92 + end + object v1Column14: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v1Column15: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object v1Column17: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v1Column18: TcxGridDBColumn + Caption = #30830#35748#33394 + DataBinding.FieldName = 'PRTColorOK' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v1Column16: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'PrtCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object v1Column9: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'PRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 67 + end + object v1Column11: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object v1Column12: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Focusing = False + Width = 84 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 60 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1PRTColor: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1Column3: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 58 + end + object v1Column5: TcxGridDBColumn + Caption = #23457#26680#26102#38388 + DataBinding.FieldName = 'ChkTime' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 60 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 56 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1153 + Height = 46 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 56 + Height = 13 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 441 + Top = 16 + Width = 28 + Height = 13 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 287 + Top = 16 + Width = 42 + Height = 13 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 588 + Top = 16 + Width = 28 + Height = 13 + Caption = #31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 82 + Top = 12 + Width = 92 + Height = 21 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 177 + Top = 11 + Width = 93 + Height = 21 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 472 + Top = 12 + Width = 84 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object ConNo: TEdit + Tag = 2 + Left = 332 + Top = 12 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = CustomerNoNameChange + OnKeyPress = ConNoKeyPress + end + object MPRTType: TComboBox + Tag = 1 + Left = 620 + Top = 12 + Width = 95 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 4 + OnChange = CustomerNoNameChange + Items.Strings = ( + #22806#38144 + #20869#38144 + '') + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 504 + Top = 184 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 320 + Top = 176 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 344 + Top = 176 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 288 + Top = 176 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 472 + Top = 184 + end +end diff --git a/盛纺贸易管理/U_ContractSelList.pas b/盛纺贸易管理/U_ContractSelList.pas new file mode 100644 index 0000000..a038551 --- /dev/null +++ b/盛纺贸易管理/U_ContractSelList.pas @@ -0,0 +1,228 @@ +unit U_ContractSelList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC; + +type + TfrmContractSelList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + v1OrdDate: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + Order_Main: TClientDataSet; + v1CustomerNoName: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + Label4: TLabel; + Label9: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CustomerNoName: TEdit; + ConNo: TEdit; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + ToolButton2: TToolButton; + v1Column13: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + MPRTType: TComboBox; + Label2: TLabel; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure cxTabControl1Change(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + { Private declarations } + public + FFInt,FCloth:Integer; + FLXStr,KHCode:string; + + { Public declarations } + end; + +var + frmContractSelList: TfrmContractSelList; + +implementation +uses + U_DataLink,U_ConInPut,U_RTFun; + +{$R *.dfm} + +procedure TfrmContractSelList.FormDestroy(Sender: TObject); +begin + frmContractSelList:=nil; +end; + +procedure TfrmContractSelList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmContractSelList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmContractSelList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ͬбѡX',Tv1,'ָʾ'); +end; + +procedure TfrmContractSelList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.* '); + sql.Add(' from JYOrderCon_Main A '); + sql.Add(' inner join JYOrderCon_Sub B on A.MainId=B.MainId'); + SQL.Add(' where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); + SQL.Add(' and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); + if Trim(KHCode)<>'' then + begin + sql.Add(' and isnull(A.CustomerNoName,'''')='''+Trim(KHCode)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally; + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmContractSelList.InitForm(); +begin + ReadCxGrid('ͬбѡX',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-30; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmContractSelList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + + + +procedure TfrmContractSelList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmContractSelList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmContractSelList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContractSelList.ConNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Length(ConNo.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add('select A.*,B.* '); + sql.Add(' from JYOrderCon_Main A '); + sql.Add(' inner join JYOrderCon_Sub B on A.MainId=B.MainId'); + SQL.Add('where 1=1'); + sql.Add(' and A.ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmContractSelList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmContractSelList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_Contract_Main.dfm b/盛纺贸易管理/U_Contract_Main.dfm new file mode 100644 index 0000000..dde547b --- /dev/null +++ b/盛纺贸易管理/U_Contract_Main.dfm @@ -0,0 +1,546 @@ +object frmContract_Main: TfrmContract_Main + Left = 130 + Top = 99 + Width = 1232 + Height = 656 + Caption = #21152#24037#21512#21516 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1216 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object Tchk: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + Visible = False + OnClick = TchkClick + end + object TNochk: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Visible = False + OnClick = TNochkClick + end + object TBExport: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 528 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 591 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1216 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 21 + Top = 22 + Width = 52 + Height = 12 + Caption = #31614#35746#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 444 + Top = 22 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 604 + Top = 22 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 740 + Top = 22 + Width = 39 + Height = 12 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNoM: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoMChange + OnKeyPress = conPress + end + object C_CodeNameM: TEdit + Tag = 2 + Left = 497 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoMChange + end + object C_Spec: TEdit + Tag = 2 + Left = 632 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoMChange + end + object FactoryNoName: TEdit + Tag = 2 + Left = 784 + Top = 18 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoMChange + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 107 + Width = 1216 + Height = 485 + Align = alTop + BorderStyle = bsNone + TabOrder = 2 + object cxGrid1: TcxGrid + Left = 0 + Top = 0 + Width = 1216 + Height = 467 + Align = alTop + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1C_Qty + end + item + Kind = skSum + Column = v1Price + end + item + Kind = skSum + Column = v1Money + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DeliveryDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 75 + end + object v1Column5: TcxGridDBColumn + Caption = #31614#35746#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 75 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 77 + end + object v1Qty1: TcxGridDBColumn + Caption = #21152#24037#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1C_Qty: TcxGridDBColumn + Caption = #21152#24037#25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'C_Unit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 50 + end + object v1Price: TcxGridDBColumn + Caption = #21152#24037#21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object v1Money: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'JGMoney' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 106 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 86 + Width = 1216 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #26410#23457#26680 + #23457#26680 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 21 + ClientRectRight = 1216 + ClientRectTop = 19 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1140 + Top = 52 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1092 + Top = 16 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1032 + Top = 52 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1080 + Top = 76 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 240 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 880 + Top = 176 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1112 + Top = 216 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 920 + Top = 224 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 918 + Top = 186 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 864 + Top = 248 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 853 + Top = 207 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 934 + Top = 65 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 163 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 616 + Top = 279 + end +end diff --git a/盛纺贸易管理/U_Contract_Main.pas b/盛纺贸易管理/U_Contract_Main.pas new file mode 100644 index 0000000..4605ab3 --- /dev/null +++ b/盛纺贸易管理/U_Contract_Main.pas @@ -0,0 +1,530 @@ +unit U_Contract_Main; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxPC; + +type + TfrmContract_Main = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNoM: TEdit; + Label5: TLabel; + C_CodeNameM: TEdit; + TBExport: TToolButton; + Label4: TLabel; + C_Spec: TEdit; + ScrollBox1: TScrollBox; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1C_Qty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + v1Money: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ClientDataSet3: TClientDataSet; + DataSource2: TDataSource; + DataSource3: TDataSource; + ClientDataSet2: TClientDataSet; + v1Qty1: TcxGridDBColumn; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + CDS_PRT: TClientDataSet; + cxTabControl1: TcxTabControl; + Tchk: TToolButton; + TNochk: TToolButton; + FactoryNoName: TEdit; + Label6: TLabel; + Order_Main: TClientDataSet; + ADOQueryMain: TADOQuery; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure conPress(Sender: TObject; var Key: Char); + procedure TchkClick(Sender: TObject); + procedure TNochkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure SetStatus(); + { Private declarations } + public + FType:string; + { Public declarations } + end; + +var + frmContract_Main: TfrmContract_Main; + +implementation +uses + U_DataLink,U_Fun,U_ProductOrderList,U_ZDYHelp, + U_Contract_Sub; + +{$R *.dfm} + +procedure TfrmContract_Main.SetStatus(); +begin + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + // tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + end; + 2:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + // tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + end; + 2:begin + end; + end; + end; +end; + +procedure TfrmContract_Main.FormDestroy(Sender: TObject); +begin + frmContract_Main:=nil; +end; + +procedure TfrmContract_Main.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmContract_Main.FormCreate(Sender: TObject); +begin + ScrollBox1.Align:=alClient; + cxGrid1.Align:=ALClient; +end; + +procedure TfrmContract_Main.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ͬ'); +end; + +procedure TfrmContract_Main.InitGrid(); +var strwhere: string; +begin + strwhere:=' and QDTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and QDTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''' + +' and HTType=''ӹͬ'''; + IF cxTabControl1.TabIndex=0 then + strwhere:=strwhere+' and isnull(C_status,''0'')=''0'' '; + IF cxTabControl1.TabIndex=1 then + strwhere:=strwhere+' and isnull(C_status,''0'')=''1'' '; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=strwhere; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + TBFind.Click; + end; +end; + +procedure TfrmContract_Main.InitForm(); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ͬ'); + cxTabControl1.TabIndex:=0; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmContract_Main.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContract_Main.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmContract_Sub:=TfrmContract_Sub.Create(Application); + with frmContract_Sub do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString); + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmContract_Sub.Free; + end; +end; + +procedure TfrmContract_Main.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if ClientDataSet2.IsEmpty=false then + begin + Application.MessageBox('ѵɾͬ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + TBRafresh.Click; + //TBFind.Click; + // Order_Main.Delete; + end; +end; + +function TfrmContract_Main.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_main where mainID='''+Trim(Order_Main.fieldbyname('mainID').AsString)+''''); + sql.Add('delete Contract_Sub where mainID='''+Trim(Order_Main.fieldbyname('mainID').AsString)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmContract_Main.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ӹͬ',cxGrid1); +end; + +procedure TfrmContract_Main.TBPrintClick(Sender: TObject); +var + fPrintFile,FConNoM:string; + +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬ.rmf' ; + with ADOQueryTemp do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString); + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ͬ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmContract_Main.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmContract_Main.TBAddClick(Sender: TObject); +begin + try + frmContract_Sub:=TfrmContract_Sub.Create(Application); + with frmContract_Sub do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmContract_Sub.Free; + end; +end; + +procedure TfrmContract_Main.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmContract_Main.FormShow(Sender: TObject); +begin + InitForm(); + SetStatus(); +end; + +procedure TfrmContract_Main.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,KCSL=A.MXQty-(select isnull(Sum(TPQty),0) from Contract_Sub_Mxto B where B.MXID=A.MXID),'); + sql.Add(' KCPS=A.Qty1-(select isnull(Sum(Qty1),0) from Contract_Sub_Mxto B where B.MXID=A.MXID)'); + sql.Add('from Contract_Sub_Mx A'); + sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet2); + SInitCDSData20(ADOQueryTemp,ClientDataSet2); + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add('from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId'); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmContract_Main.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmContract_Main.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=1; +end; + +procedure TfrmContract_Main.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=3; +end; + +procedure TfrmContract_Main.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,'); + sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)'); + SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId '); + SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId '); + sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,ClientDataSet3); + SInitCDSData20(ADOQueryTemp,ClientDataSet3); +end; + +procedure TfrmContract_Main.v2Column3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + Edit; + FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Main.conPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(ConNoM.Text))<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec ClothContract_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+'''' + +' and HTType=''ӹͬ'''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmContract_Main.TchkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update Contract_Sub SET C_status=''1'' '); + sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString))); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContract_Main.TNochkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update Contract_Sub SET C_status=''0'' '); + sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString))); + execsql; + end; + application.MessageBox('ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmContract_Main.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; +end; + +end. diff --git a/盛纺贸易管理/U_Contract_Sub.dfm b/盛纺贸易管理/U_Contract_Sub.dfm new file mode 100644 index 0000000..1cfcf7f --- /dev/null +++ b/盛纺贸易管理/U_Contract_Sub.dfm @@ -0,0 +1,595 @@ +object frmContract_Sub: TfrmContract_Sub + Left = 217 + Top = 121 + Width = 1125 + Height = 632 + Caption = #21152#24037#21512#21516#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1109 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1109 + Height = 288 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 34 + Top = 14 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 556 + Top = 46 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 34 + Top = 46 + Width = 65 + Height = 12 + Caption = #31614#35746#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 556 + Top = 14 + Width = 65 + Height = 12 + Caption = #20844#21496#25260#22836#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 34 + Top = 80 + Width = 65 + Height = 12 + Caption = #31614#35746#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 555 + Top = 80 + Width = 65 + Height = 12 + Caption = #20132#36135#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 34 + Top = 115 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 305 + Top = 80 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 305 + Top = 14 + Width = 65 + Height = 12 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 306 + Top = 46 + Width = 66 + Height = 12 + Caption = #21152' '#24037' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 35 + Top = 219 + Width = 52 + Height = 12 + Caption = #21152#24037#35201#27714 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 33 + Top = 142 + Width = 52 + Height = 12 + Caption = #20854#20182#20107#39033 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNo: TEdit + Left = 96 + Top = 11 + Width = 180 + Height = 18 + TabOrder = 0 + end + object DeliveryDate: TDateTimePicker + Left = 619 + Top = 42 + Width = 180 + Height = 20 + BevelInner = bvNone + Date = 40916.000000000000000000 + Format = 'yyyy-MM-dd' + Time = 40916.000000000000000000 + TabOrder = 1 + end + object QDTime: TDateTimePicker + Left = 96 + Top = 42 + Width = 180 + Height = 20 + BevelInner = bvNone + Date = 40916.000000000000000000 + Format = 'yyyy-MM-dd' + Time = 40916.000000000000000000 + TabOrder = 2 + end + object CompanyName: TcxButtonEdit + Left = 619 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = CompanyNamePropertiesButtonClick + TabOrder = 3 + Width = 180 + end + object QDPalce: TEdit + Left = 98 + Top = 77 + Width = 180 + Height = 18 + TabOrder = 4 + end + object JHPlace: TcxButtonEdit + Left = 619 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = JHPlacePropertiesButtonClick + TabOrder = 5 + Width = 180 + end + object factoryNoName: TcxButtonEdit + Left = 368 + Top = 42 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = ConTk2PropertiesButtonClick + TabOrder = 6 + Width = 180 + end + object ConTK3: TcxButtonEdit + Left = 96 + Top = 111 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK3PropertiesButtonClick + TabOrder = 7 + Width = 700 + end + object ConTK4: TcxButtonEdit + Left = 368 + Top = 76 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = ConTK4PropertiesButtonClick + TabOrder = 8 + Width = 180 + end + object ConTK5: TMemo + Left = 94 + Top = 216 + Width = 699 + Height = 65 + ScrollBars = ssVertical + TabOrder = 9 + OnClick = ConTK5Click + end + object ConTk6: TMemo + Left = 94 + Top = 142 + Width = 699 + Height = 65 + ScrollBars = ssVertical + TabOrder = 10 + OnClick = ConTk6Click + end + object OrderNo: TcxButtonEdit + Left = 368 + Top = 10 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = orderNoPropertiesButtonClick + TabOrder = 11 + Width = 180 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 317 + Width = 1109 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 346 + Width = 1109 + Height = 213 + Align = alTop + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 97 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'C_Spec' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 67 + end + object v1C_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'C_Color' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Sdefstr1: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'Sdefstr1' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column3: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'MFQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1Column5: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'KZQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1Qty2: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'Qty2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 67 + end + object v1MainUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'MainUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column6: TcxGridDBColumn + Caption = #21152#24037#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 57 + end + object v1C_Qty: TcxGridDBColumn + Caption = #21152#24037#25968#37327 + DataBinding.FieldName = 'C_Qty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1C_QtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 63 + end + object v1Column2: TcxGridDBColumn + Caption = #21152#24037#25968#37327#21333#20301 + DataBinding.FieldName = 'C_Unit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object v1Price: TcxGridDBColumn + Caption = #21152#24037#21333#20215 + DataBinding.FieldName = 'Price' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Qty3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1JGMoney: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'JGMoney' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1JGMoneyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 70 + end + object v1Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'C_Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 140 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 384 + Top = 13 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 520 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 240 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 280 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 16 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 456 + Top = 13 + end +end diff --git a/盛纺贸易管理/U_Contract_Sub.pas b/盛纺贸易管理/U_Contract_Sub.pas new file mode 100644 index 0000000..5751340 --- /dev/null +++ b/盛纺贸易管理/U_Contract_Sub.pas @@ -0,0 +1,922 @@ +unit U_Contract_Sub; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit; + +type + TfrmContract_Sub = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + ConNo: TEdit; + Label4: TLabel; + DeliveryDate: TDateTimePicker; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1PRTSpec: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1C_Qty: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + Label2: TLabel; + QDTime: TDateTimePicker; + Label3: TLabel; + CompanyName: TcxButtonEdit; + Label6: TLabel; + QDPalce: TEdit; + Label8: TLabel; + JHPlace: TcxButtonEdit; + factoryNoName: TcxButtonEdit; + Label10: TLabel; + ConTK3: TcxButtonEdit; + Label11: TLabel; + ConTK4: TcxButtonEdit; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Qty2: TcxGridDBColumn; + v1Price: TcxGridDBColumn; + Label7: TLabel; + Label9: TLabel; + Label14: TLabel; + Label15: TLabel; + ConTK5: TMemo; + ConTk6: TMemo; + v1C_Color: TcxGridDBColumn; + v1Sdefstr1: TcxGridDBColumn; + v1MainUnit: TcxGridDBColumn; + v1JGMoney: TcxGridDBColumn; + OrderNo: TcxButtonEdit; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTMFPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FactoryNoNamePropertiesChange(Sender: TObject); + procedure CompanyNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure JHPlacePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTK5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ConTk2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column10PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure FormCreate(Sender: TObject); + procedure ConTk6Click(Sender: TObject); + procedure ConTK5Click(Sender: TObject); + procedure v1C_QtyPropertiesEditValueChanged(Sender: TObject); + procedure v1Qty3PropertiesEditValueChanged(Sender: TObject); + procedure v1JGMoneyPropertiesEditValueChanged(Sender: TObject); + procedure OrderNoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState,PCopyInt:Integer; + FMainId,FConNo:String; + { Public declarations } + end; + +var + frmContract_Sub: TfrmContract_Sub; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun, U_ProductOrder_CX, U_ZDYHelpSel; + +{$R *.dfm} + +procedure TfrmContract_Sub.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmContract_Sub.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec ClothContract_QryList :MainId,:WSql'); + if PState=1 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSQl').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 '; + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from Contract_Main order by FillTime desc '); + Open; + end; + QDTime.DateTime:=SGetServerDate(ADOTemp); + DeliveryDate.DateTime:=SGetServerDate(ADOTemp); + end; +end; + +procedure TfrmContract_Sub.ZDYHelp(FButn:TcxButtonEdit;LType:string); +begin + +end; + +procedure TfrmContract_Sub.FormShow(Sender: TObject); +begin + InitData(); +end; + +function TfrmContract_Sub.SaveData():Boolean; +var + maxno,maxSubNo:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'JG','Contract_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from Contract_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + Append; + + end + else begin + + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('HTType').Value:='ӹͬ'; + SSetsaveSql(ADOCmd,'Contract_Main',ScrollBox1,0); + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('FactoryNoName').Value:=Trim(factoryNoName.Text); + Post; + end; + + with Order_Sub do + begin + First; + while not Eof do + begin + + ///ӱ + + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxSubNo,'HT','Contract_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxSubNo:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from Contract_Sub where MainId='''+Trim(maxno)+''''); + sql.Add(' and SubId='''+Trim(maxSubNo)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(maxSubNo); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Contract_Sub',0); + FieldByName('MFQty').Value:=Order_Sub.fieldbyname('MFQty').AsFloat; + FieldByName('C_Qty').Value:=Order_Sub.fieldbyname('C_Qty').AsFloat; + FieldByName('KZQty').Value:=Order_Sub.fieldbyname('KZQty').AsFloat; + FieldByName('C_Qty').Value:=Order_Sub.fieldbyname('C_Qty').AsFloat; + FieldByName('Qty1').Value:=Order_Sub.fieldbyname('Qty1').AsFloat; + FieldByName('Price').Value:=Order_Sub.fieldbyname('Price').AsFloat; + FieldByName('JGMoney').Value:=Order_Sub.fieldbyname('JGMoney').AsFloat; + FieldByName('C_Note').Value:=trim(Order_Sub.fieldbyname('C_Note').AsString); + FieldByName('C_status').Value:='0'; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxSubNo); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmContract_Sub.TBSaveClick(Sender: TObject); +begin + DeliveryDate.SetFocus; + if Trim(ConNo.Text)='' then + begin + Application.MessageBox('ͬŲΪգ','ʾ',0); + Exit; + end; + if Trim(factoryNoName.Text)='' then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if Order_Sub.Locate('C_Qty',null,[]) then + begin + Application.MessageBox('ӹΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('C_Unit',null,[]) then + begin + Application.MessageBox('ӹλΪ!','ʾ',0); + Exit; + end; + + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + end; +end; + +procedure TfrmContract_Sub.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1PRTUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + Post; + end; +end; + +procedure TfrmContract_Sub.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmContract_Sub.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Cloth'; + flagname:=''; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1PRTMFPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KZ'; + flagname:='صλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1OrderQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MF'; + flagname:='ŷλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1ClothQtyPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1Column2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.FactoryNoNamePropertiesChange( + Sender: TObject); +begin + {if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(FactoryNoName,'FactoryNo1Name'); } +end; + +procedure TfrmContract_Sub.CompanyNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='̧ͷ'; + if ShowModal=1 then + begin + FXS:=99; + CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.JHPlacePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='JHPlace'; + flagname:='ص'; + if ShowModal=1 then + begin + JHPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.ConTK3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK3'; + flagname:='װҪ'; + if ShowModal=1 then + begin + ConTK3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.ConTK4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK4'; + flagname:='㷽ʽ'; + if ShowModal=1 then + begin + ConTK4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.ConTK5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK5'; + flagname:='ձ׼'; + if ShowModal=1 then + begin + ConTK5.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.ConTk6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ConTK6'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK6.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.ConTk2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + factoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + FieldByName('factoryNoname').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1Column7PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + if Trim(FMainId)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR A where exists('); + sql.Add('select * from Contract_Sub_MX B inner join Contract_Sub C on B.SubId=C.SubId '); + sql.Add(' where C.Mainid='''+Trim(FMainId)+''''); + sql.Add(' and B.MXID=A.YFTypeId)'); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѾӦ޸ĹӦ!','ʾ',0); + Exit; + end; + end; + + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('FactoryNoName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.v1Column10PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='Ⱦ'; + MainType:='PBFactory'; + if ShowModal=1 then + begin + with Order_Sub do + begin + Edit; + FieldByName('Sdefstr2').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmContract_Sub.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alclient; +end; + +procedure TfrmContract_Sub.ConTk6Click(Sender: TObject); +VAR i: integer; +begin + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='QTYDSX'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK6.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + ConTK6.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString); + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmContract_Sub.ConTK5Click(Sender: TObject); +VAR i: integer; +begin + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='JGYQ'; + flagname:='Լ'; + if ShowModal=1 then + begin + ConTK5.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + ConTK5.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString); + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmContract_Sub.v1C_QtyPropertiesEditValueChanged( + Sender: TObject); +var + Fieldname:string; +begin + Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with Order_sub do + begin + edit; + fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; + FieldByName('JGMoney').Value:=strtofloat(format('%.2f',[Fieldbyname('C_Qty').AsFloat*Fieldbyname('Price').AsFloat ])); + post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmContract_Sub.v1Qty3PropertiesEditValueChanged( + Sender: TObject); +var + Fieldname:string; +begin + Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with Order_sub do + begin + edit; + fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; + FieldByName('JGMoney').Value:=strtofloat(format('%.2f',[Fieldbyname('Price').AsFloat*Fieldbyname('C_Qty').AsFloat ])); + post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + + +procedure TfrmContract_Sub.v1JGMoneyPropertiesEditValueChanged( + Sender: TObject); +var + Fieldname:string; +begin + Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with Order_sub do + begin + edit; + fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; + if Fieldbyname('C_Qty').AsFloat<>0 then + begin + FieldByName('Price').Value:=strtofloat(format('%.2f',[Fieldbyname('JGMoney').AsFloat/Fieldbyname('C_Qty').AsFloat])); + end; + post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmContract_Sub.OrderNoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +var FOrderNo: String; +begin + FrmProductOrder_CX:=TFrmProductOrder_CX.Create(self); + with FrmProductOrder_CX do + begin + if showModal=1 then + begin + self.ConNo.Text:=trim(Order_Main.fieldbyname('ConNo').AsString); + self.OrderNo.Text:=trim(Order_Main.fieldbyname('OrderNo').AsString); + self.CompanyName.Text:=trim(Order_Main.fieldbyname('SYRName').AsString); + self.ConTK3.Text:=trim(Order_Main.fieldbyname('MPRTBZNote').AsString); + with Order_Main do + begin + first; + ForderNo:=''; + while not Eof do + begin + if fieldbyname('Ssel').AsBoolean then + begin + if FOrderNo='' then + begin + FOrderNo:=trim(fieldbyname('OrderNo').AsString); + end + else + begin + if FOrderNo<>trim(fieldbyname('OrderNo').AsString) then + begin + application.MessageBox('Ųһ','ʾ',0); + exit; + end; + end; + Order_Sub.Append; + Order_Sub.FieldByName('C_CodeName').AsString:=trim(fieldbyname('MPRTCodeName').AsString); + Order_Sub.FieldByName('C_Spec').AsString:=trim(fieldbyname('MPRTSpec').AsString); + Order_Sub.FieldByName('C_Color').AsString:=trim(fieldbyname('PRTColor').AsString); + Order_Sub.FieldByName('Sdefstr1').AsString:=trim(fieldbyname('SOrddefstr1').AsString); + Order_Sub.FieldByName('Qty2').value:=fieldbyname('PRTOrderQty').AsFloat; + Order_Sub.FieldByName('MainUnit').AsString:=trim(fieldbyname('OrderUnit').AsString); + order_Sub.Post; + end; + next; + end; + end; + end; + free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_CpCkSaoMNew.dfm b/盛纺贸易管理/U_CpCkSaoMNew.dfm new file mode 100644 index 0000000..d882883 --- /dev/null +++ b/盛纺贸易管理/U_CpCkSaoMNew.dfm @@ -0,0 +1,460 @@ +object frmCpCkSaoMNew: TfrmCpCkSaoMNew + Left = 31 + Top = 61 + Width = 1199 + Height = 652 + Caption = #25104#21697#20986#24211#25195#25551 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 16 + object cxGrid2: TcxGrid + Left = 0 + Top = 169 + Width = 593 + Height = 446 + Align = alLeft + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 129 + end + object v1Column5: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJId' + HeaderAlignmentHorz = taCenter + Width = 144 + end + object v2Column5: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 121 + end + object v2Column6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 87 + end + object v1Column2: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Width = 86 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1191 + Height = 169 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 110 + Top = 134 + Width = 68 + Height = 16 + Caption = #25195#25551#20837#21475 + end + object BaoID: TEdit + Left = 178 + Top = 131 + Width = 167 + Height = 24 + TabOrder = 0 + OnKeyPress = BaoIDKeyPress + end + object Button2: TButton + Left = 1006 + Top = 132 + Width = 75 + Height = 23 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 21 + Top = 132 + Width = 75 + Height = 23 + Caption = #36873#21333 + TabOrder = 2 + OnClick = Button3Click + end + object Button1: TButton + Left = 598 + Top = 132 + Width = 107 + Height = 23 + Caption = #25764#38144#20986#24211 + TabOrder = 3 + OnClick = Button1Click + end + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1187 + Height = 120 + Align = alTop + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 78 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 141 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 119 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + end + object cxGrid3: TcxGrid + Left = 593 + Top = 169 + Width = 584 + Height = 446 + Align = alLeft + TabOrder = 2 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_MainSel + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = cxGridDBColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 157 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJId' + HeaderAlignmentHorz = taCenter + Width = 144 + end + object v3Column1: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 71 + end + object v3Column2: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object MovePanel1: TMovePanel + Left = 8 + Top = 208 + Width = 561 + Height = 305 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 64 + Top = 48 + Width = 147 + Height = 48 + Caption = #24050#20986#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 456 + Top = 56 + Width = 49 + Height = 48 + Caption = #21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 216 + Top = 24 + Width = 241 + Height = 105 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '1234' + end + object Edit2: TEdit + Left = 73 + Top = 143 + Width = 386 + Height = 72 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Text = '91209120001' + end + object Button4: TButton + Left = 216 + Top = 248 + Width = 75 + Height = 41 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button4Click + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 976 + Top = 40 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 136 + Top = 216 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 96 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1072 + Top = 8 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 792 + Top = 64 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 872 + Top = 72 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 48 + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 288 + Top = 48 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 680 + Top = 64 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 56 + Top = 200 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 600 + Top = 72 + end + object DS_MainSel: TDataSource + DataSet = CDS_MainSel + Left = 616 + Top = 336 + end + object CDS_MainSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 648 + Top = 336 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 832 + Top = 312 + end +end diff --git a/盛纺贸易管理/U_CpCkSaoMNew.pas b/盛纺贸易管理/U_CpCkSaoMNew.pas new file mode 100644 index 0000000..2506945 --- /dev/null +++ b/盛纺贸易管理/U_CpCkSaoMNew.pas @@ -0,0 +1,450 @@ +unit U_CpCkSaoMNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox; + +type + TfrmCpCkSaoMNew = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + BaoID: TEdit; + Label1: TLabel; + v1Column5: TcxGridDBColumn; + Button2: TButton; + Button3: TButton; + CDS_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOQuerySub: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DS_MainSel: TDataSource; + CDS_MainSel: TClientDataSet; + v3Column1: TcxGridDBColumn; + Button1: TButton; + cxGridPopupMenu4: TcxGridPopupMenu; + MovePanel1: TMovePanel; + Edit1: TEdit; + Edit2: TEdit; + Label2: TLabel; + Label3: TLabel; + Button4: TButton; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column2: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure BaoIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button4Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + procedure InitSubGrid(); + public + { Public declarations } + end; + +var + frmCpCkSaoMNew: TfrmCpCkSaoMNew; + +implementation +uses +U_DataLink,U_Fun,U_OrderSel ; + +{$R *.dfm} + +procedure TfrmCpCkSaoMNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCpCkSaoMNew.FormDestroy(Sender: TObject); +begin + frmCpCkSaoMNew:=nil; +end; +procedure TfrmCpCkSaoMNew.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) from CK_BanCP_CR A'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) from CK_BanCP_CR A'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MainSel); + SInitCDSData20(ADOQueryMain,CDS_MainSel); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCpCkSaoMNew.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ',Tv2,'Ʒֿ'); + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + ReadCxGrid('ƷSels',Tv3,'Ʒֿ'); + InitSubGrid(); + InitGrid(); +end; + +procedure TfrmCpCkSaoMNew.BaoIDKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; +begin + if Key=#13 then + begin + if CDS_Sub.IsEmpty then + begin + BaoID.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if CDS_Main.Locate('MJId',Trim(BaoID.Text),[])=False then + begin + BaoID.Text:=''; + Application.MessageBox('˾ڴľУ','ʾ',0); + Exit; + end; + CDS_Main.Locate('MJId',Trim(BaoID.Text),[]); + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + if GetLSNo(ADOQueryCmd,maxno,'CC','CK_BanCp_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCp_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; + FieldByName('MainID').Value:=CDS_Main.fieldbyname('MainID').Value; + FieldByName('SubID').Value:=CDS_Main.fieldbyname('SubID').Value; + FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(maxno); + //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); + Post; + end; + CDS_Main.Delete; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(BaoID.Text); + BaoID.Text:=''; + Exit; + except + BaoID.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCpCkSaoMNew.Button2Click(Sender: TObject); +begin + Close; + WriteCxGrid('ѡ',Tv2,'Ʒֿ'); + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); + WriteCxGrid('ƷSels',Tv3,'Ʒֿ'); +end; + +procedure TfrmCpCkSaoMNew.Button3Click(Sender: TObject); +begin + {if CDS_Main.IsEmpty=False then + begin + Application.MessageBox('ɨ費ܸĵţ','ʾ',0); + Exit; + end;} + try + frmOrderSel:=TfrmOrderSel.Create(Application); + with frmOrderSel do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + if Self.CDS_Sub.Locate('SubId',Trim(CDS_OrderSel.fieldbyname('SubId').AsString),[])=False then + begin + with Self.CDS_Sub do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_OrderSel.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_OrderSel.fieldbyname('SubId').AsString); + FieldByName('CustomerNo').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNo').AsString); + FieldByName('OrderNo').Value:=Trim(CDS_OrderSel.fieldbyname('OrderNo').AsString); + FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); + FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTOrderQty').Value:=Trim(CDS_OrderSel.fieldbyname('PRTOrderQty').AsString); + FieldByName('OrderUnit').Value:=Trim(CDS_OrderSel.fieldbyname('OrderUnit').AsString); + FieldByName('PRTColor').Value:=Trim(CDS_OrderSel.fieldbyname('PRTColor').AsString); + FieldByName('MPRTMF').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTMF').AsString); + FieldByName('MPRTKZ').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTKZ').AsString); + Post; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(Self.CDS_Sub.fieldbyname('SFlag').AsString)<>'2' then + begin + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.*,B.KCQty,B.KCKgQty '); + sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); + sql.Add(' where B.KCqty>0 and A.CRType='''' '); + SQL.Add(' and A.SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + with Self.ADOQueryTemp do + begin + First; + while not Eof do + begin + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=Self.ADOQueryTemp.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.ADOQueryTemp.fieldbyname('SubId').Value; + FieldByName('APId').Value:=Self.ADOQueryTemp.fieldbyname('APId').Value; + FieldByName('OrderNo').Value:=Self.ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.ADOQueryTemp.fieldbyname('KCKgQty').Value; + FieldByName('Qty').Value:=Self.ADOQueryTemp.fieldbyname('KCQty').Value; + FieldByName('QtyUnit').Value:=Self.ADOQueryTemp.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.ADOQueryTemp.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.ADOQueryTemp.fieldbyname('CRId').Value; + FieldByName('CPType').Value:=Self.ADOQueryTemp.fieldbyname('CPType').Value; + Post; + end; + Next; + end; + end; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SFlag').Value:='2'; + CDS_Sub.Post; + Next; + end; + end; + CDS_Sub.EnableControls; + end; + end; + finally + frmOrderSel.Free; + end; +end; + +procedure TfrmCpCkSaoMNew.InitSubGrid(); +begin + try + ADOQuerySub.DisableControls; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); + sql.Add(' where 1<>1 '); + + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Sub); + SInitCDSData20(ADOQuerySub,CDS_Sub); + finally + ADOQuerySub.EnableControls; + end; +end; + + +procedure TfrmCpCkSaoMNew.Button1Click(Sender: TObject); +begin + if CDS_MainSel.IsEmpty then Exit; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete CK_BanCP_CR where BCID='''+Trim(CDS_MainSel.fieldbyname('BCID').AsString)+''''); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRType='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRType='''') '); + SQL.Add(' where CRID='+CDS_MainSel.fieldbyname('CRID').AsString); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; + FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_MainSel.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; + FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; + Post; + end; + CDS_MainSel.Delete; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(CDS_Main.fieldbyname('MJId').AsString); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmCpCkSaoMNew.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MainSel.IsEmpty=False then Exit; + if CDS_Sub.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(CDS_Main.fieldbyname('SubId').AsString)=Trim(CDS_Sub.fieldbyname('SubId').AsString) then + begin + CDS_Main.Delete; + end else + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Sub.Delete; +end; + +procedure TfrmCpCkSaoMNew.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +end. diff --git a/盛纺贸易管理/U_CpCkSaoMNewSel.dfm b/盛纺贸易管理/U_CpCkSaoMNewSel.dfm new file mode 100644 index 0000000..281b72b --- /dev/null +++ b/盛纺贸易管理/U_CpCkSaoMNewSel.dfm @@ -0,0 +1,843 @@ +object frmCpCkSaoMNewSel: TfrmCpCkSaoMNewSel + Left = 189 + Top = 134 + Width = 1299 + Height = 650 + Caption = #25104#21697#20986#24211#25195#25551 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1283 + Height = 186 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label1: TLabel + Left = 95 + Top = 134 + Width = 48 + Height = 12 + Caption = #25195#25551#20837#21475 + end + object Label4: TLabel + Left = 310 + Top = 158 + Width = 48 + Height = 12 + Caption = #20986#24211#26102#38388 + end + object Label5: TLabel + Left = 310 + Top = 134 + Width = 48 + Height = 12 + Caption = #20986#24211#21333#21495 + end + object Label6: TLabel + Left = 248 + Top = 134 + Width = 26 + Height = 12 + Caption = #21333#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 432 + Top = 201 + Width = 39 + Height = 12 + Caption = #20837#24211#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ParentShowHint = False + ShowHint = True + end + object Label8: TLabel + Left = 475 + Top = 158 + Width = 48 + Height = 12 + Caption = #20986#24211#22791#27880 + end + object Label9: TLabel + Left = 248 + Top = 158 + Width = 39 + Height = 12 + Caption = #21253#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 747 + Top = 134 + Width = 48 + Height = 12 + Caption = #36864#24211#25195#25551 + end + object Label11: TLabel + Left = 741 + Top = 186 + Width = 48 + Height = 12 + Caption = #20986#24211#31867#22411 + Visible = False + end + object Label13: TLabel + Left = 925 + Top = 186 + Width = 216 + Height = 12 + Caption = #27880':'#27491#21697#27491#24120#20986#24211#20135#29983#36153#29992','#20854#20182#19981#20250#20135#29983 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object BaoID: TEdit + Left = 143 + Top = 130 + Width = 100 + Height = 20 + TabOrder = 0 + OnKeyPress = BaoIDKeyPress + end + object Button2: TButton + Left = 680 + Top = 130 + Width = 48 + Height = 20 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 19 + Top = 129 + Width = 65 + Height = 21 + Caption = #36873#21333 + TabOrder = 2 + OnClick = Button3Click + end + object Button1: TButton + Left = 574 + Top = 131 + Width = 62 + Height = 18 + Caption = #25764#38144#20986#24211 + TabOrder = 3 + OnClick = Button1Click + end + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1279 + Height = 120 + Align = alTop + TabOrder = 4 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 78 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 102 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 110 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + object Button5: TButton + Left = 475 + Top = 129 + Width = 60 + Height = 20 + Caption = #20986#24211 + TabOrder = 5 + OnClick = Button5Click + end + object CRTime: TDateTimePicker + Left = 358 + Top = 154 + Width = 102 + Height = 20 + Date = 41337.663190821760000000 + Time = 41337.663190821760000000 + TabOrder = 6 + end + object CKOrdNo: TEdit + Left = 358 + Top = 130 + Width = 101 + Height = 20 + TabOrder = 7 + end + object RKOrdID: TEdit + Left = 327 + Top = 198 + Width = 100 + Height = 20 + ParentShowHint = False + ShowHint = True + TabOrder = 8 + OnKeyPress = RKOrdIDKeyPress + end + object CRNote: TEdit + Left = 524 + Top = 154 + Width = 206 + Height = 20 + TabOrder = 9 + end + object bao: TEdit + Left = 143 + Top = 154 + Width = 100 + Height = 20 + TabOrder = 10 + OnKeyPress = baoKeyPress + end + object THMJID: TEdit + Left = 797 + Top = 130 + Width = 121 + Height = 20 + TabOrder = 11 + OnKeyPress = THMJIDKeyPress + end + object CRType: TComboBox + Left = 797 + Top = 182 + Width = 121 + Height = 20 + ItemHeight = 12 + TabOrder = 12 + Text = #27491#24120#20986#24211 + Visible = False + Items.Strings = ( + #27491#24120#20986#24211 + #22238#20462#20986#24211 + #20854#20182#20986#24211) + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 186 + Width = 577 + Height = 425 + Align = alLeft + TabOrder = 1 + object Tv1: TcxGridDBTableView + PopupMenu = PopupMenu1 + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1Column6: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 41 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v1Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 41 + end + object v1Column9: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + object v1Column5: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 40 + end + object v2Column5: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 55 + end + object v1MJQty4: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v2Column6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 52 + end + object v1Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 47 + end + object v1Column7: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + object v1Column8: TcxGridDBColumn + Caption = #20837#24211#21333#21495 + DataBinding.FieldName = 'RKOrdId' + HeaderAlignmentHorz = taCenter + Width = 86 + end + object v1Column11: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column12: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'baoID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1PRTHX: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid3: TcxGrid + Left = 577 + Top = 186 + Width = 706 + Height = 425 + Align = alClient + PopupMenu = PopupMenu2 + TabOrder = 2 + object Tv3: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DS_MainSel + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = cxGridDBColumn1 + end + item + Kind = skSum + Column = v3Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object v3Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 44 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 98 + end + object v3Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v3Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v3Column1: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3MJQty4: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 69 + end + object v3Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v3Column6: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3Column7: TcxGridDBColumn + Caption = #20837#24211#21333#21495 + DataBinding.FieldName = 'RKOrdId' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v3Column8: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 55 + end + object v3MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v3PRTHX: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object MovePanel1: TMovePanel + Left = 8 + Top = 207 + Width = 562 + Height = 305 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 64 + Top = 48 + Width = 147 + Height = 48 + Caption = #24050#20986#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 460 + Top = 44 + Width = 49 + Height = 48 + Caption = #21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 68 + Top = 264 + Width = 10 + Height = 17 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 216 + Top = 24 + Width = 241 + Height = 105 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '1234' + end + object Edit2: TEdit + Left = 73 + Top = 143 + Width = 386 + Height = 73 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -65 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Text = '91209120001' + end + object Button4: TButton + Left = 396 + Top = 240 + Width = 75 + Height = 41 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button4Click + end + end + object MovePanel2: TMovePanel + Left = 522 + Top = 260 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 976 + Top = 40 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 136 + Top = 216 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 96 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1072 + Top = 8 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 792 + Top = 64 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 872 + Top = 72 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 48 + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 288 + Top = 48 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 680 + Top = 64 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 56 + Top = 228 + end + object DS_MainSel: TDataSource + DataSet = CDS_MainSel + Left = 619 + Top = 335 + end + object CDS_MainSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 659 + Top = 335 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 808 + Top = 337 + end + object PopupMenu2: TPopupMenu + Left = 757 + Top = 336 + object MenuItem1: TMenuItem + Caption = #20840#36873#25764#38144 + OnClick = MenuItem1Click + end + object MenuItem2: TMenuItem + Caption = #20840#24323 + OnClick = MenuItem2Click + end + end + object ADOQueryPrice: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 608 + Top = 64 + end + object CDSPrice: TClientDataSet + Aggregates = <> + Params = <> + Left = 440 + Top = 352 + end + object cxStyleRepository1: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle1: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + end + object PopupMenu1: TPopupMenu + Left = 705 + Top = 335 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_CpCkSaoMNewSel.pas b/盛纺贸易管理/U_CpCkSaoMNewSel.pas new file mode 100644 index 0000000..c1b3e90 --- /dev/null +++ b/盛纺贸易管理/U_CpCkSaoMNewSel.pas @@ -0,0 +1,1810 @@ +unit U_CpCkSaoMNewSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, + ComCtrls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmCpCkSaoMNewSel = class(TForm) + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + BaoID: TEdit; + Label1: TLabel; + Button2: TButton; + Button3: TButton; + CDS_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOQuerySub: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_MainSel: TDataSource; + CDS_MainSel: TClientDataSet; + Button1: TButton; + cxGridPopupMenu4: TcxGridPopupMenu; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + v3Column5: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + Button5: TButton; + CRTime: TDateTimePicker; + Label4: TLabel; + Label5: TLabel; + CKOrdNo: TEdit; + ADOQueryPrice: TADOQuery; + CDSPrice: TClientDataSet; + Label6: TLabel; + RKOrdID: TEdit; + Label7: TLabel; + v1Column8: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + MovePanel1: TMovePanel; + Label2: TLabel; + Label3: TLabel; + Edit1: TEdit; + Edit2: TEdit; + Button4: TButton; + MovePanel2: TMovePanel; + v1Column9: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + Label8: TLabel; + CRNote: TEdit; + bao: TEdit; + Label9: TLabel; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + Label10: TLabel; + THMJID: TEdit; + v3MJID: TcxGridDBColumn; + Label12: TLabel; + v1MJQty4: TcxGridDBColumn; + v3MJQty4: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + Label11: TLabel; + CRType: TComboBox; + Label13: TLabel; + v1PRTHX: TcxGridDBColumn; + v3PRTHX: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure BaoIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button4Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure MenuItem2Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure RKOrdIDKeyPress(Sender: TObject; var Key: Char); + procedure baoKeyPress(Sender: TObject; var Key: Char); + procedure THMJIDKeyPress(Sender: TObject; var Key: Char); + procedure MenuItem1Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + procedure InitSubGrid(); + function YSData(Order_Main10:TClientDataSet):Boolean; + procedure InitPrice(); + function YFData(Order_Main10:TClientDataSet):Boolean; + function HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; + public + { Public declarations } + end; + +var + frmCpCkSaoMNewSel: TfrmCpCkSaoMNewSel; + +implementation +uses +U_DataLink,U_Fun,U_OrderSel,MMSystem ; + +{$R *.dfm} + +function TfrmCpCkSaoMNewSel.HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit,FConNo:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 A.*,B.ConNo from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid Where Subid='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main11.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); + sql.add(' and YFName='''+trim(FeeType)+''''); + sql.add(' and FeeType='''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main11.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(Order_Main11.fieldbyname('OrderNo').AsString); + fieldbyname('ConNo').Value:=trim(FConNO); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + //FieldByName('Price').Value:=Order_Main11.fieldbyname('PRTPrice').Value; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=trim(PriceUnit); + FieldByName('QtyUnit').Value:=trim(OrderUnit); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:=trim(FeeType); + fieldbyname('FeeType').Value:=''; + FieldByName('MainId').Value:=Trim(Order_Main11.fieldbyname('Mainid').AsString); + FieldByName('Conid').Value:=Trim(Order_Main11.fieldbyname('Conid').AsString); + fieldbyname('Money').value:=FeeMoney; + fieldbyname('BBMoney').value:=FeeMoney; + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + Result:=True; +end; + +function TfrmCpCkSaoMNewSel.YFData(Order_Main10:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date))+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('Subid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNo').AsString); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; + //FieldByName('HuiLv').Value:=1; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 HuiLv from YF_Money_CR '); + sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.Add(' and CRType=''Ǽ'' '); + SQL.Add(' and YFDefFlag1=0'); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.FieldByName('HuiLv').Value:=ADOQueryTemp.fieldbyname('HuiLv').Value; + end; + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:='KG'; + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ޷'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'''); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + sql.add(') '); + + sql.Add(',JZQty=(select isnull(Sum(MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''޳'' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRType=''ӦǼ'''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +procedure TfrmCpCkSaoMNewSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCpCkSaoMNewSel.FormDestroy(Sender: TObject); +begin + frmCpCkSaoMNewSel:=nil; +end; +procedure TfrmCpCkSaoMNewSel.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); + sql.Add(',KHName=(select isnull(customerNoName,OrderNo) from JYOrder_Main where MainId=A.MainId)'); + SQL.Add(',PRTColor=(select PRTColor from JYOrder_Sub where SubId=A.SubId)'); + SQL.Add(',PRTHX=cast('''' as varchar(50))'); + sql.Add(',AOrdDefstr1=(select AOrdDefstr1 from JYOrder_Sub_AnPai where ApId=A.ApId)'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJType=(select MJType from WFB_MJJY where MJID=A.MJID)'); + sql.Add('from CK_BanCP_CR A'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,cast('''' as varchar(80)) ConNO,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); + sql.Add(',KHName=(select isnull(customerNoName,OrderNo) from JYOrder_Main where MainId=A.MainId)'); + SQL.Add(',PRTColor=(select PRTColor from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select AOrdDefstr1 from JYOrder_Sub_AnPai where ApId=A.ApId)'); + SQL.Add(',PRTHX=cast('''' as varchar(50))'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJType=(select MJType from WFB_MJJY where MJID=A.MJID),cast('''' as varchar(50)) YRfactoryName '); + sql.Add('from CK_BanCP_CR A'); + sql.add('where 1=2'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MainSel); + SInitCDSData20(ADOQueryMain,CDS_MainSel); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCpCkSaoMNewSel.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ',Tv2,'Ʒֿ'); + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + ReadCxGrid('ƷSels',Tv3,'Ʒֿ'); + InitSubGrid(); + InitGrid(); + CRTime.DateTime:=SGetServerDate(ADOQueryTemp); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Mainid,PRTPrice,KHName='''' from JYOrder_Sub where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDSPrice); + SInitCDSData20(ADOQueryTemp,CDSPrice); +end; + +procedure TfrmCpCkSaoMNewSel.InitPrice(); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Mainid,PRTPrice,Subid,KHName=Cast('''' as varchar(50)),Cast('''' as varchar(50)) QtyUnit,'); + sql.add('Cast('''' as varchar(50)) OrderNo,Cast('''' as varchar(50)) YRfactoryName,Cast('''' as varchar(50)) ConID from JYOrderCon_Sub where 1=2'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDSPrice); + SInitCDSData20(ADOQueryTemp,CDSPrice); + if CDSPrice.IsEmpty=False then + begin + CDSPrice.Delete; + end; +end; + +procedure TfrmCpCkSaoMNewSel.BaoIDKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + BaoID.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(CKOrdNo.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if CDS_MainSel.Locate('MJId',Trim(BaoID.Text),[]) then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(BaoID.Text); + Label12.Caption:='ѣ˾ظɨ裡'; + BaoID.Text:=''; + Exit; + end; + if CDS_Main.Locate('MJId',Trim(BaoID.Text),[])=false then + begin + application.MessageBox('ѡĶûиþ','ʾ'); + exit; + end; + CDS_Main.Locate('MJId',Trim(BaoID.Text),[]); + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); + sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag='''''); + sql.Add(',CRNote='''+trim(CRNote.Text)+''''); + sql.Add(',MJXH='''+trim(CDS_Main.fieldbyname('MJXH').AsString)+''''); + SQL.Add(',BaoNo='''+trim(CDS_Main.fieldbyname('BaoNo').AsString)+''''); + SQL.Add(',BaoID='''+trim(CDS_Main.fieldbyname('BaoID').AsString)+''''); + sql.Add(',CKOrdNo='''+trim(CKOrdNo.Text)+''''); + sql.Add(',CRFlagQty=-1'); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''ѳ'' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(maxno); + fieldbyname('MJQty4').Value:=self.CDS_Main.fieldbyname('MJQty4').Value; + FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; + FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('KHName').Value:=CDS_Main.fieldbyname('KHName').Value; + FieldByName('RKOrdId').Value:=CDS_Main.fieldbyname('RKOrdId').Value; + FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; + FieldByName('BaoID').Value:=CDS_Main.fieldbyname('BaoID').Value; + FieldByName('YRfactoryName').Value:=Trim(CDS_Main.fieldbyname('YRfactoryName').AsString); + FieldByName('ConID').Value:=Trim(CDS_Main.fieldbyname('ConID').AsString); + fieldbyname('ConNO').Value:=CDS_Main.fieldbyname('ConNO').AsString; + //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); + Post; + end; + PlaySound('ZTFH.wav', 0, SND_FILENAME or SND_ASYNC); + CDS_Main.Delete; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(BaoID.Text); + BaoID.Text:=''; + Exit; + except + BaoID.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCpCkSaoMNewSel.Button2Click(Sender: TObject); +begin + tv1.Controller.EditingController.ShowEdit(); + tv3.Controller.EditingController.ShowEdit(); + Close; + WriteCxGrid('ѡ',Tv2,'Ʒֿ'); + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); + WriteCxGrid('ƷSels',Tv3,'Ʒֿ'); +end; + +procedure TfrmCpCkSaoMNewSel.Button3Click(Sender: TObject); +var + maxno,fsj:String; +begin + try + frmOrderSel:=TfrmOrderSel.Create(Application); + with frmOrderSel do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + if Self.CDS_Sub.Locate('ConSubId',Trim(CDS_OrderSel.fieldbyname('ConSubId').AsString),[])=False then + begin + with Self.CDS_Sub do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_OrderSel.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_OrderSel.fieldbyname('SubId').AsString); + FieldByName('CustomerNo').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNo').AsString); + FieldByName('OrderNo').Value:=Trim(CDS_OrderSel.fieldbyname('OrderNoM').AsString); + FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); + FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTOrderQty').Value:=CDS_OrderSel.fieldbyname('PRTOrderQty').AsFloat; + FieldByName('OrderUnit').Value:=Trim(CDS_OrderSel.fieldbyname('OrderUnit').AsString); + FieldByName('PRTColor').Value:=Trim(CDS_OrderSel.fieldbyname('PRTColor').AsString); + FieldByName('MPRTMF').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTMF').AsString); + FieldByName('MPRTKZ').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTKZ').AsString); + fieldbyname('ConSubid').Value:=trim(CDS_OrderSel.fieldbyname('ConSubid').AsString); + Post; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + end; + end; + finally + frmOrderSel.Free; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete TBSubID where DName='''+Trim(DCode)+''''); + ExecSQL; + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('insert into TBSubID select :SubId,:Dname'); + Parameters.ParamByName('SubId').Value:=Trim(CDS_Sub.fieldbyname('ConSubId').AsString); + Parameters.ParamByName('Dname').Value:=Trim(DCode); + ExecSQL; + end; + Next; + end; + end; + CDS_Sub.EnableControls; + MovePanel2.Visible:=true; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); + sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); + SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); + SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(' from CK_BanCP_CR A '); + sql.Add(' where not exists(select B.MJID from CK_BanCP_CR B where B.MJID=A.MJID and B.CRFlag='''')'); + sql.Add(' and exists(select C.Subid from TBSubID C where C.Subid=A.ConID and C.DName='''+trim(DCode)+''')'); + SQL.Add(' and A.CRFlag='''' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Main); + SInitCDSData20(ADOQueryTemp,CDS_Main); + MovePanel2.Visible:=false; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select A.MainId,A.PRTPrice,A.Subid,C.CustomerNoName from JYOrder_Sub A inner join TBSubID B on A.SubId=B.SubId'); + sql.Add(' inner join JYOrder_Main C on A.MainId=C.MainId '); + sql.Add(' where B.DName='''+Trim(DCode)+''''); + sql.Add(' group by A.MainId,A.Subid,A.PRTPrice,C.CustomerNoName'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDSPrice); + SInitCDSData20(ADOQueryTemp,CDSPrice); + if GetLSNo(ADOQueryCmd,maxno,'CK','CK_BanCP_CR',3,1)=False then + begin + Application.MessageBox('ȡⵥʧ!','ʾ',0); + Exit; + end; + CKOrdNo.Text:=Trim(maxno); +end; + +procedure TfrmCpCkSaoMNewSel.InitSubGrid(); +begin + try + ADOQuerySub.DisableControls; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Cast('''' as varchar(60)) ConSubid'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); + sql.Add(' where 1<>1 '); + + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Sub); + SInitCDSData20(ADOQuerySub,CDS_Sub); + finally + ADOQuerySub.EnableControls; + end; +end; + + +procedure TfrmCpCkSaoMNewSel.Button1Click(Sender: TObject); +var + FMainid:String; +begin + if CDS_MainSel.IsEmpty then Exit; + if CDS_MainSel.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitPrice(); + try + ADOQueryCmd.Connection.BeginTrans; + CDS_MainSel.DisableControls; + CDS_Main.DisableControls; + with CDS_MainSel do + begin + First; + while Locate('Ssel',True,[]) do + begin + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; + FieldByName('MJQty4').Value:=Self.CDS_MainSel.fieldbyname('MJQty4').Value; + FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_MainSel.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; + FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; + FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; + FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; + FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; + FieldByName('KHName').Value:=CDS_MainSel.fieldbyname('KHName').Value; + FieldByName('RKOrdID').Value:=CDS_MainSel.fieldbyname('RKOrdID').Value; + FieldByName('PRTHX').Value:=Self.CDS_MainSel.fieldbyname('PRTHX').Value; + FieldByName('BaoNo').Value:=CDS_MainSel.fieldbyname('BaoNo').Value; + FieldByName('BaoID').Value:=CDS_MainSel.fieldbyname('BaoID').Value; + FieldByName('ConID').Value:=CDS_MainSel.fieldbyname('ConID').Value; + fieldbyname('ConNO').Value:=CDS_MainSel.fieldbyname('ConNO').AsString; + FieldByName('YRfactoryName').Value:=Trim(CDS_Main.fieldbyname('YRfactoryName').AsString); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + sql.Add(',CKOrdNo='''''); + sql.Add(',CRFlagQty=0'); + SQL.Add(',BaoNo='''',BaoID='''' '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(' where exists (select MJID from CK_BanCP_CR where MJID=CK_BanCP_KC.MJID and MJID='''+trim(CDS_Main.fieldbyname('MJID').AsString)+''') '); + ExecSQL; + end; + CDS_MainSel.Delete; + end; + end; + CDS_Main.EnableControls; + CDS_MainSel.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + MovePanel2.Visible:=False; + Exit; + except + MovePanel2.Visible:=False; + CDS_MainSel.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmCpCkSaoMNewSel.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MainSel.IsEmpty=False then Exit; + if CDS_Sub.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(CDS_Main.fieldbyname('SubId').AsString)=Trim(CDS_Sub.fieldbyname('SubId').AsString) then + begin + CDS_Main.Delete; + end else + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Sub.Delete; +end; + +procedure TfrmCpCkSaoMNewSel.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmCpCkSaoMNewSel.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmCpCkSaoMNewSel.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmCpCkSaoMNewSel.MenuItem2Click(Sender: TObject); +begin + SelOKNo(CDS_MainSel,False); +end; + +procedure TfrmCpCkSaoMNewSel.Button5Click(Sender: TObject); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + if CDS_Sub.IsEmpty then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Trim(CKOrdNo.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִг','ʾ',32+4)<>IDYES then exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); + sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag='''''); + sql.Add(',CRNote='''+trim(CRNote.Text)+''''); + sql.Add(',CKOrdNo='''+trim(CKOrdNo.Text)+''''); + sql.Add(',CRFlagQty=-1'); + sql.Add(' where ConID='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); + sql.Add(' and CRFlag='''''); + sql.Add(' and exists(select A.MJID from WFB_MJJY A where A.MJID=CK_BanCP_CR.MJID and Isnull(A.MJStr2,'''')='''')'); + ExecSQL; + end; + Next; + end; + end; + CDS_Sub.EnableControls; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); + sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); + SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); + SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); + sql.Add(' where 1=2 '); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_Main); + SInitCDSData20(Self.ADOQueryTemp,CDS_Main); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 '); + sql.Add('where exists (select MJID from CK_BanCp_CR where MJID=CK_BanCp_KC.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''')'); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''ѳ'' '); + sql.Add('where exists (select MJID from CK_BanCp_CR where MJID=WFB_MJJY.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''')'); + ExecSQL; + end; + with self.ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + SQL.Add('BaoNo=(select A.BaoNo from WFB_MJJY A where A.MJID=CK_BanCP_CR.MJID)'); + SQL.Add(',BaoID=(select A.BaoID from WFB_MJJY A where A.MJID=CK_BanCP_CR.MJID)'); + sql.Add(' where CKOrdNo='''+Trim(CKOrdNo.Text)+''''); + ExecSQL; + end; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); + sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); + SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); + SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); + sql.Add(' where A.CKOrdNo='''+trim(CKOrdNo.text)+''' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_MainSel); + SInitCDSData20(ADOQueryTemp,CDS_MainSel); + ADOQueryCmd.Connection.CommitTrans; + MovePanel2.Visible:=False; + Exit; + except; + BaoID.Text:=''; + CDS_Main.EnableControls; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +function TfrmCpCkSaoMNewSel.YSData(Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,FConNo,FOrderNo:String; + FPRTPrice:double; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 A.*,B.ConNo from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid Where Subid='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + FPRTPrice:=ADOQueryTemp.fieldbyname('PRTPrice').AsCurrency; + FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou,OrderNo from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + FOrderNo:=trim(ADOQueryTemp.fieldbyname('OrderNo').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.add(' and CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date))+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CPS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(FOrderNo); + fieldbyname('ConNo').Value:=trim(FConNO); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + FieldByName('Price').Value:=FPRTPrice; + FieldByName('HuiLv').Value:=1; + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 HuiLv from YF_Money_CR '); + sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.Add(' and CRType=''տǼ'' '); + SQL.Add(' and YFDefFlag1=0'); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.FieldByName('HuiLv').Value:=ADOQueryTemp.fieldbyname('HuiLv').Value; + end;} + if trim(PriceUnit)<>'' then + FieldByName('BZType').Value:=trim(PriceUnit) + else + FieldByName('BZType').Value:=''; + if trim(OrderUnit)<>'' then + FieldByName('QtyUnit').Value:=Trim(OrderUnit) + else + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ۽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + FieldByName('Conid').Value:=Trim(Order_Main10.fieldbyname('Conid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if Trim(OrderUnit)<>'Kg' then + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A '); + end else + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + end; + sql.Add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime '); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'''); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + sql.add(') '); + sql.Add(',JZQty=(select isnull(Sum(MJQty4),0) from CK_BanCP_CR A '); + sql.add(' inner join WFB_MJJY D on D.MJID=A.MJID where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MQty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.add(' and CRType=''ӦտǼ'''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('update YF_Money_CR Set Money=Qty*Price,BBMoney=Price*Qty*HuiLv '); + sql.add('where YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.add(' and CRType=''ӦտǼ'''); + execsql; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + with ADOQueryPrice do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCon_Sub '); + sql.Add('where Subid='''+Trim(Order_Main10.fieldbyname('Conid').AsString)+''''); + open; + end; + if ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat<>0 then + HTData('֯ϻ',ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat<>0 then + HTData('ӡϻ',ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('BaoGangFee').AsFloat<>0 then + HTData('׷',ADOQueryPrice.FieldByName('BaoGangFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat<>0 then + HTData('ư',ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat,Order_Main10); + Result:=True; +end; + +procedure TfrmCpCkSaoMNewSel.RKOrdIDKeyPress(Sender: TObject; + var Key: Char); +var + maxno:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + BaoID.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(CKOrdNo.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if CDS_Main.Locate('RKOrdId',Trim(RKOrdId.Text),[])=False then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(RKOrdId.Text); + Label12.Caption:='ѣⵥڴľУ'; + RKOrdId.Text:=''; + + // Application.MessageBox('ⵥڴľУ','ʾ',0); + Exit; + end; + //CDS_Main.Locate('MJId',Trim(BaoID.Text),[]); + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitPrice(); + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + First; + while CDS_Main.Locate('RKOrdId',Trim(RKOrdId.Text),[])=True do + begin + if GetLSNo(ADOQueryCmd,maxno,'CC','CK_BanCp_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCp_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; + FieldByName('MainID').Value:=CDS_Main.fieldbyname('MainID').Value; + FieldByName('SubID').Value:=CDS_Main.fieldbyname('SubID').Value; + FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; + FieldByName('BaoID').Value:=CDS_Main.fieldbyname('BaoID').Value; + FieldByName('RKPlace').Value:=CDS_Main.fieldbyname('RKPlace').AsString; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('CRNote').Value:=Trim(CRNote.Text); + FieldByName('CKOrdNo').Value:=Trim(CKOrdNo.Text); + //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''ѳ'' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + {if YSData(CDS_Main)=False then + begin + + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; } + if CDSPrice.Locate('MainId',Trim(CDS_Main.fieldbyname('MainId').AsString),[])=False then + begin + CDSPrice.Append; + CDSPrice.FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + CDSPrice.FieldByName('KHName').Value:=Trim(CDS_Main.fieldbyname('KHName').AsString); + //CDS_Sub.Locate('MainId',Trim(CDS_Main.fieldbyname('MainId').AsString),[]); + {if Trim(CDS_Sub.fieldbyname('OrderUnit').AsString)<>'Kg' then + begin + CDSPrice.FieldByName('JLUnit').Value:='M'; + end else + begin + CDSPrice.FieldByName('JLUnit').Value:='Kg'; + end; } + CDSPrice.Post; + end; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('KHName').Value:=CDS_Main.fieldbyname('KHName').Value; + FieldByName('RKOrdId').Value:=CDS_Main.fieldbyname('RKOrdId').Value; + FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; + //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); + Post; + end; + CDS_Main.Delete; + end; + + end; + with CDSPrice do + begin + First; + while not Eof do + begin + if YSData(CDSPrice)=False then + begin + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + Next; + end; + end; + + ADOQueryCmd.Connection.CommitTrans; + + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(RKOrdID.Text); + RKOrdID.Text:=''; + MovePanel2.Visible:=False; + Exit; + except + RKOrdID.Text:=''; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCpCkSaoMNewSel.baoKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + Bao.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(bao.Text)='' then + begin + Application.MessageBox('ŲΪ!','ʾ',0); + Exit; + end; + if Trim(CKOrdNo.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if CDS_Main.Locate('baoID',Trim(bao.Text),[])=False then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(bao.Text); + Label12.Caption:='ѣ˰ڴľУ'; + bao.Text:=''; + + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + first; + while CDS_Main.Locate('baoID',Trim(bao.Text),[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); + sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag='''''); + sql.Add(',CRNote='''+trim(CRNote.Text)+''''); + sql.Add(',MJXH='''+trim(CDS_Main.fieldbyname('MJXH').AsString)+''''); + sql.Add(',BaoNo='''+trim(CDS_Main.fieldbyname('BaoNo').AsString)+''''); + sql.Add(',BaoID='''+trim(CDS_Main.fieldbyname('BaoID').AsString)+''''); + sql.Add(',CKOrdNo='''+trim(CKOrdNo.Text)+''''); + sql.Add(',CRFlagQty=-1'); + sql.Add('where Baoid='''+Trim(CDS_Main.fieldbyname('Baoid').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''ѳ'' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('MJQty4').Value:=Self.CDS_Main.fieldbyname('MJQty4').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('KHName').Value:=CDS_Main.fieldbyname('KHName').Value; + FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; + FieldByName('RKOrdId').Value:=CDS_Main.fieldbyname('RKOrdId').Value; + FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; + FieldByName('BaoID').Value:=CDS_Main.fieldbyname('BaoID').Value; + FieldByName('YRfactoryName').Value:=Trim(CDS_Main.fieldbyname('YRfactoryName').AsString); + FieldByName('Conid').Value:=CDS_Main.fieldbyname('Conid').AsString; + fieldbyname('ConNO').Value:=CDS_Main.fieldbyname('ConNO').AsString; + Post; + end; + PlaySound('ZTFH.wav', 0, SND_FILENAME or SND_ASYNC); + CDS_Main.Delete; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(bao.Text); + bao.Text:=''; + exit; + except + bao.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; + +end; + +procedure TfrmCpCkSaoMNewSel.THMJIDKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if CDS_MainSel.IsEmpty then + begin + BaoID.Text:=''; + Application.MessageBox('δⲻɨ˻','ʾ',0); + Exit; + end; + if Trim(THMJID.Text)='' then + begin + Application.MessageBox('벻Ϊ!','ʾ',0); + Exit; + end; + if not CDS_MainSel.Locate('MJId',Trim(THMJID.Text),[]) then + begin + BaoID.Text:=''; + Application.MessageBox('˾Ųڣ','ʾ',0); + Exit; + end; + + CDS_MainSel.Locate('MJId',Trim(THMJID.Text),[]); + try + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete CK_BanCP_CR where BCID='''+Trim(CDS_MainSel.fieldbyname('BCID').AsString)+''''); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + SQL.Add(' where CRID='+CDS_MainSel.fieldbyname('CRID').AsString); + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + // CDS_Main.DisableControls; + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; + FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=Self.CDS_MainSel.fieldbyname('CRId').Value; + FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; + FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; + FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; + FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; + FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; + FieldByName('KHName').Value:=CDS_MainSel.fieldbyname('KHName').Value; + FieldByName('RKOrdID').Value:=CDS_MainSel.fieldbyname('RKOrdID').Value; + FieldByName('BaoNo').Value:=CDS_MainSel.fieldbyname('BaoNo').Value; + FieldByName('BaoID').Value:=CDS_MainSel.fieldbyname('BaoID').Value; + Post; + end; + CDS_MainSel.Delete; + Edit2.Text:=Trim(THMJID.Text); + THMJID.Text:=''; + THMJID.SetFocus; + Exit; + except + THMJID.Text:=''; + THMJID.SetFocus; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCpCkSaoMNewSel.MenuItem1Click(Sender: TObject); +var + FMainid:String; +begin + if CDS_MainSel.IsEmpty then Exit; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where '); + sql.Add('exists (select MJID from CK_BanCP_CR where MJID=WFB_MJJY.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''') '); + sql.Add('UPdate CK_BanCP_CR set CRFlag='''',CRFlagQty=0 where CKOrdNo='''+Trim(CKOrdNo.Text)+''' '); + sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); + sql.Add(' where exists (select MJID from CK_BanCP_CR where MJID=CK_BanCP_KC.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''') '); + ExecSQL; + end; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); + sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); + SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); + SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); + sql.Add(' where exists( select * from TBSubID AA where AA.SubId=A.conID and AA.DName='''+Trim(DCode)+''')'); + SQL.Add(' and A.CRFlag='''' '); + sql.Add(' and not exists(select BA.MJID from CK_BanCP_CR BA where BA.MJID=A.MJID and BA.CRFlag='''')'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Main); + SInitCDSData20(ADOQueryTemp,CDS_Main); + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); + sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); + sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); + SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); + SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); + sql.Add(' where 1=2 '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_MainSel); + SInitCDSData20(ADOQueryTemp,CDS_MainSel); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + SQL.Add(',CKOrdNo='''' '); + sql.Add(',CRFlagQty=0'); + sql.Add(',BaoID='''',BaoNo='''' '); + sql.Add('where CKOrdNo='''+trim(CKOrdNo.Text)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + MovePanel2.Visible:=False; + Exit; + except + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CpRkSaoMNew.dfm b/盛纺贸易管理/U_CpRkSaoMNew.dfm new file mode 100644 index 0000000..1be528d --- /dev/null +++ b/盛纺贸易管理/U_CpRkSaoMNew.dfm @@ -0,0 +1,1127 @@ +object frmCpRkSaoMNew: TfrmCpRkSaoMNew + Left = 189 + Top = 134 + Width = 1355 + Height = 648 + Caption = #25104#21697#20837#24211#25195#25551 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object TcxGrid + Left = 0 + Top = 209 + Width = 513 + Height = 400 + Align = alLeft + TabOrder = 0 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v1Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 44 + end + object v1Column5: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 43 + end + object v2Column5: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 67 + end + object v2Column6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 56 + end + object v1Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 53 + end + object v1Column7: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 56 + end + object v1Column8: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'baoID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column9: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'baoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + object v1conNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1KHConNO: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PRTHX: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1StyleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJQty4: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1MJType: TcxGridDBColumn + Caption = #24067#21305#31867#22411 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object v1CRNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CRNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1339 + Height = 209 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 61 + Top = 123 + Width = 54 + Height = 17 + Caption = #21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 242 + Top = 123 + Width = 72 + Height = 17 + Caption = #20837#24211#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 6 + Top = 213 + Width = 36 + Height = 51 + Caption = #20837#24211#13#10' '#21333#13#10#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label6: TLabel + Left = 429 + Top = 123 + Width = 36 + Height = 17 + Caption = #24211#20301 + Font.Charset = GB2312_CHARSET + Font.Color = clGreen + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 78 + Top = 163 + Width = 36 + Height = 17 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 279 + Top = 162 + Width = 84 + Height = 20 + Caption = #21253#21495#33258#22686 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 749 + Top = 389 + Width = 36 + Height = 17 + Caption = #32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clGreen + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label10: TLabel + Left = 441 + Top = 229 + Width = 54 + Height = 17 + Caption = #21253#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label11: TLabel + Left = 752 + Top = 124 + Width = 64 + Height = 15 + Caption = #20837#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 752 + Top = 148 + Width = 216 + Height = 12 + Caption = #27880':'#27491#21697#27491#24120#20837#24211#20135#29983#36153#29992','#20854#20182#19981#20250#20135#29983 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label14: TLabel + Left = 752 + Top = 168 + Width = 52 + Height = 12 + Caption = #20837#24211#22791#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MJID: TEdit + Left = 115 + Top = 119 + Width = 118 + Height = 25 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object Button2: TButton + Left = 685 + Top = 156 + Width = 57 + Height = 31 + Caption = #20851#38381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 3 + Top = 115 + Width = 54 + Height = 32 + Caption = #36873#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button3Click + end + object Button1: TButton + Left = 594 + Top = 156 + Width = 82 + Height = 31 + Caption = #25764#38144#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button1Click + end + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1335 + Height = 103 + Align = alTop + TabOrder = 4 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 78 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 75 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 77 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 64 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 60 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 66 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + object Button5: TButton + Left = 594 + Top = 117 + Width = 81 + Height = 31 + Caption = #20840#36873#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Button5Click + end + object CRTime: TDateTimePicker + Left = 312 + Top = 119 + Width = 107 + Height = 25 + Date = 41337.663190821760000000 + Time = 41337.663190821760000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 6 + end + object Button6: TButton + Left = 250 + Top = 217 + Width = 43 + Height = 40 + Caption = #33719#21462 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = Button6Click + end + object RKOrdID: TEdit + Left = 47 + Top = 217 + Width = 205 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + end + object RKPlace: TBtnEditA + Left = 464 + Top = 117 + Width = 121 + Height = 29 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 9 + OnBtnClick = RKPlaceBtnClick + end + object BaoNo: TEdit + Left = 115 + Top = 149 + Width = 118 + Height = 45 + BiDiMode = bdLeftToRight + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = 'Times New Roman' + Font.Style = [fsBold] + ParentBiDiMode = False + ParentFont = False + TabOrder = 10 + OnChange = BaoNoChange + end + object RKOrdPS: TEdit + Left = 293 + Top = 216 + Width = 90 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + end + object Button7: TButton + Left = 381 + Top = 217 + Width = 41 + Height = 40 + Caption = #25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 12 + Visible = False + OnClick = Button7Click + end + object Button8: TButton + Left = 466 + Top = 151 + Width = 96 + Height = 40 + Caption = #25171#21360#21253#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 13 + OnClick = Button8Click + end + object ComboBox1: TComboBox + Left = 685 + Top = 119 + Width = 57 + Height = 25 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemHeight = 17 + ParentFont = False + TabOrder = 14 + Items.Strings = ( + #27491#21697 + #27425#21697 + #30041#26679 + '') + end + object Edit3: TEdit + Left = 244 + Top = 158 + Width = 31 + Height = 28 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 15 + OnClick = Edit3Click + end + object gangNo: TEdit + Left = 784 + Top = 388 + Width = 121 + Height = 20 + TabOrder = 16 + Visible = False + end + object Bao: TEdit + Left = 491 + Top = 225 + Width = 114 + Height = 25 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 17 + Visible = False + end + object CRType: TComboBox + Left = 818 + Top = 121 + Width = 121 + Height = 23 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 15 + ParentFont = False + TabOrder = 18 + Text = #26816#39564#20837#24211 + Items.Strings = ( + #26816#39564#20837#24211 + #22238#20462#20837#24211 + #20854#20182#20837#24211) + end + object CRNote: TEdit + Left = 804 + Top = 164 + Width = 213 + Height = 20 + TabOrder = 19 + end + object Edit_BLA: TEdit + Left = 428 + Top = 158 + Width = 31 + Height = 28 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 20 + OnClick = Edit_BLAClick + end + end + object cxGrid3: TcxGrid + Left = 513 + Top = 209 + Width = 826 + Height = 400 + Align = alClient + PopupMenu = PopupMenu2 + TabOrder = 2 + object Tv3: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DS_MainSel + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = cxGridDBColumn1 + end + item + Kind = skSum + Column = v3KgQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object v3Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 44 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 98 + end + object v3PRTColor: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v3Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v3Column8: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v3KgQty: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3MJQty4: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 69 + end + object v3Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v3Column6: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3PRTHX: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3Column7: TcxGridDBColumn + Caption = #20837#24211#21333#21495 + DataBinding.FieldName = 'RKOrdID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v3Column1: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'baoID' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v3styleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3KHConNO: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3CRNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CRNote' + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object MovePanel1: TMovePanel + Left = 16 + Top = 336 + Width = 506 + Height = 320 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 29 + Top = 48 + Width = 147 + Height = 48 + Caption = #24050#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 421 + Top = 56 + Width = 49 + Height = 48 + Caption = #21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 50 + Top = 268 + Width = 10 + Height = 17 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 181 + Top = 24 + Width = 241 + Height = 105 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '1234' + end + object Edit2: TEdit + Left = 44 + Top = 158 + Width = 429 + Height = 73 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -65 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Text = '91209120001' + end + object Button4: TButton + Left = 394 + Top = 232 + Width = 70 + Height = 41 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button4Click + end + end + object MovePanel2: TMovePanel + Left = 515 + Top = 282 + Width = 289 + Height = 48 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 816 + Top = 48 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 116 + Top = 232 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 80 + Top = 232 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 56 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 554 + Top = 55 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 48 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 808 + Top = 48 + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 856 + Top = 48 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 693 + Top = 56 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 44 + Top = 232 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 776 + Top = 48 + end + object DS_MainSel: TDataSource + DataSet = CDS_MainSel + Left = 623 + Top = 379 + end + object CDS_MainSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 691 + Top = 381 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 856 + Top = 360 + end + object PopupMenu2: TPopupMenu + Left = 891 + Top = 360 + object MenuItem1: TMenuItem + Caption = #20840#36873#25764#38144 + OnClick = MenuItem1Click + end + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 656 + Top = 72 + ReportData = {} + end + object ADOQueryPrt: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 912 + Top = 68 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrt + Left = 767 + Top = 378 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 772 + Top = 84 + end + object ADOQueryPrice: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 706 + Top = 87 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 571 + Top = 382 + end +end diff --git a/盛纺贸易管理/U_CpRkSaoMNew.pas b/盛纺贸易管理/U_CpRkSaoMNew.pas new file mode 100644 index 0000000..1f3cd09 --- /dev/null +++ b/盛纺贸易管理/U_CpRkSaoMNew.pas @@ -0,0 +1,2092 @@ +unit U_CpRkSaoMNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, + ComCtrls, BtnEdit, RM_System, RM_Common, RM_Class, RM_GridReport, + RM_Dataset, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; + +type + TfrmCpRkSaoMNew = class(TForm) + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + MJID: TEdit; + Label1: TLabel; + v1Column5: TcxGridDBColumn; + Button2: TButton; + Button3: TButton; + CDS_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOQuerySub: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DS_MainSel: TDataSource; + CDS_MainSel: TClientDataSet; + v3KgQty: TcxGridDBColumn; + Button1: TButton; + cxGridPopupMenu4: TcxGridPopupMenu; + MovePanel1: TMovePanel; + Edit1: TEdit; + Edit2: TEdit; + Label2: TLabel; + Label3: TLabel; + Button4: TButton; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column2: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v3PRTColor: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + Button5: TButton; + v1Column7: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + MovePanel2: TMovePanel; + CRTime: TDateTimePicker; + Label4: TLabel; + Button6: TButton; + RKOrdID: TEdit; + RKPlace: TBtnEditA; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + BaoNo: TEdit; + RKOrdPS: TEdit; + Button7: TButton; + v3Column7: TcxGridDBColumn; + RM1: TRMGridReport; + Button8: TButton; + ADOQueryPrt: TADOQuery; + RMDB_Main: TRMDBDataSet; + v3Column8: TcxGridDBColumn; + ComboBox1: TComboBox; + Edit3: TEdit; + Label8: TLabel; + v1MJID: TcxGridDBColumn; + Label9: TLabel; + gangNo: TEdit; + Bao: TEdit; + Label10: TLabel; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + Label12: TLabel; + v1conNo: TcxGridDBColumn; + v1KHConNO: TcxGridDBColumn; + v1StyleNo: TcxGridDBColumn; + v3ConNo: TcxGridDBColumn; + v3KHConNO: TcxGridDBColumn; + v3styleNo: TcxGridDBColumn; + ADOQueryPrint: TADOQuery; + v1MJQty4: TcxGridDBColumn; + v3MJQty4: TcxGridDBColumn; + v1MJType: TcxGridDBColumn; + Label11: TLabel; + Label13: TLabel; + CRType: TComboBox; + Label14: TLabel; + CRNote: TEdit; + ADOQueryPrice: TADOQuery; + v3CRNote: TcxGridDBColumn; + v1CRNote: TcxGridDBColumn; + v1PRTHX: TcxGridDBColumn; + v3PRTHX: TcxGridDBColumn; + ClientDataSet1: TClientDataSet; + Edit_BLA: TEdit; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure RKPlaceBtnClick(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Edit3Click(Sender: TObject); + procedure BaoKeyPress(Sender: TObject; var Key: Char); + procedure N3Click(Sender: TObject); + procedure BaoNoChange(Sender: TObject); + procedure MenuItem1Click(Sender: TObject); + procedure Edit_BLAClick(Sender: TObject); + private + { Private declarations } + FBaoId:String; + procedure InitGrid(); + procedure InitSubGrid(); + procedure SavedataCK(); + function YSData(Order_Main10:TClientDataSet):Boolean; + function YFData(Order_Main10:TClientDataSet):Boolean; + function HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; + public + { Public declarations } + end; + +var + frmCpRkSaoMNew: TfrmCpRkSaoMNew; + +implementation +uses +U_DataLink,U_Fun,U_OrderSelRK,U_ZDYHelp,MMSystem; + +{$R *.dfm} + +function TfrmCpRkSaoMNew.HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit,FConNo:String; + FTaoQty:double; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 A.PriceUnit,A.OrderUnit,B.ConNo,A.TaoQty from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid Where Subid='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); + FTaoQty:=ADOQueryTemp.fieldbyname('TaoQty').AsFloat; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main11.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); + sql.add(' and YFName='''+trim(FeeType)+''''); + sql.add(' and FeeType='''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main11.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(Order_Main11.fieldbyname('OrderNo').AsString); + fieldbyname('ConNo').Value:=trim(FConNO); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + FieldByName('Price').Value:=FeeMoney; + if FTaoQty=0 then + fieldbyname('Qty').value:=1 + else + fieldbyname('Qty').value:=FTaoQty; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=trim(PriceUnit); + FieldByName('QtyUnit').Value:=trim(OrderUnit); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:=trim(FeeType); + fieldbyname('FeeType').Value:=''; + FieldByName('MainId').Value:=Trim(Order_Main11.fieldbyname('Mainid').AsString); + FieldByName('Conid').Value:=Trim(Order_Main11.fieldbyname('Conid').AsString); + fieldbyname('Money').value:=FeeMoney; + fieldbyname('BBMoney').value:=FeeMoney; + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('update YF_Money_CR Set '); + sql.add('BBMoney='''+trim(floattostr(FeeMoney))+''','); + sql.add('Price='''+trim(floattostr(FeeMoney))+''','); + sql.add('Money='''+trim(floattostr(FeeMoney))+''' '); + sql.add('where YFID='''+Trim(ADOQueryTemp.fieldbyname('YFID').AsString)+''''); + execsql; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('Money').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +function TfrmCpRkSaoMNew.YFData(Order_Main10:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 PriceUnit,OrderUnit from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date))+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('Subid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNo').AsString); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; + FieldByName('HuiLv').Value:=1; + + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:='KG'; + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ޷'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' where A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'''); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + sql.add(') '); + + sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' where A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRType=''ӦǼ'''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select PS from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +function TfrmCpRkSaoMNew.YSData(Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,FConNo,FOrderNo:String; + FPRTPrice:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 B.ConNo,'); + sql.add('PIPrice=isnull((select C.Price From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.PRTPrice)');//ֻHAMƱPIеۣΪ + sql.add(',PIOrderUnit=isnull((select C.QtyUnit From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.OrderUnit)');//ֻHAMƱPIеۣΪ + sql.add(',PIBZType=isnull((select C.BZType From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.PriceUnit)');//ֻHAMƱPIеۣΪ + sql.add(' from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid '); + sql.add('Where Subid='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PIBZType').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('PIOrderUnit').AsString); + if ADOQueryTemp.fieldbyname('PIPrice').AsFloat=0 then + FPRTPrice:='0' + else + FPRTPrice:=trim(ADOQueryTemp.fieldbyname('PIPrice').AsString); + FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou,OrderNo from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + FOrderNo:=trim(ADOQueryTemp.fieldbyname('OrderNo').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.Add(' and Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.add(' and YFName=''Ʒ۽'''); + sql.add(' and isnull(PBNote,'''')='''+trim(CRNote.Text)+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CPS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(FOrderNo); + fieldbyname('ConNo').Value:=trim(FConNO); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + FieldByName('Price').Value:=FPRTPrice; + FieldByName('HuiLv').Value:=1; + if trim(PriceUnit)<>'' then + FieldByName('BZType').Value:=trim(PriceUnit) + else + FieldByName('BZType').Value:=''; + if trim(OrderUnit)<>'' then + FieldByName('QtyUnit').Value:=Trim(OrderUnit) + else + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ۽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + FieldByName('Conid').Value:=Trim(Order_Main10.fieldbyname('Conid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if (Trim(OrderUnit)<>'KG') and (Trim(OrderUnit)<>'Kg') and (Trim(OrderUnit)<>'kg') then + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A '); + end else + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + end; + sql.Add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + sql.add(') '); + sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',MQty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.add(',Price='''+trim(FPRTPrice)+''''); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('update YF_Money_CR Set '); + sql.add('BBMoney=Qty*Price,'); + sql.add('Money=Price*Qty '); + sql.add('where YFID='''+Trim(YFID)+''''); + execsql; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').AsFloat=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + with ADOQueryPrice do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCon_Sub '); + sql.Add('where Subid='''+Trim(Order_Main10.fieldbyname('Conid').AsString)+''''); + open; + end; + if ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat<>0 then + HTData('֯ϻ',ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat<>0 then + HTData('ӡϻ',ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('BaoGangFee').AsFloat<>0 then + HTData('׷',ADOQueryPrice.FieldByName('BaoGangFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat<>0 then + HTData('ư',ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat*ADOQueryPrice.FieldByName('TaoQty').AsFloat,Order_Main10); + Result:=True; +end; + +procedure TfrmCpRkSaoMNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCpRkSaoMNew.FormDestroy(Sender: TObject); +begin + frmCpRkSaoMNew:=nil; +end; +procedure TfrmCpRkSaoMNew.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName,cast('''' as varchar(50)) RKOrdID,cast('''' as varchar(50)) CRNote'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + // SInitCDSData20(ADOQueryMain,CDS_Main); + SCreateCDS20(ADOQueryMain,CDS_MainSel); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCpRkSaoMNew.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ',Tv2,'Ʒֿ'); + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + ReadCxGrid('ƷSels',Tv3,'Ʒֿ'); + InitSubGrid(); + InitGrid(); + CRTime.DateTime:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmCpRkSaoMNew.MJIDKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo,DBID:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + MJID.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if CDS_Main.Locate('MJId',Trim(MJID.Text),[])=false then + begin + application.MessageBox('ѡĶûиþ','ʾ'); + exit; + end; + CDS_Main.Locate('MJId',Trim(MJID.Text),[]); + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); + sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag='''''); + sql.Add(',CRNote='''+trim(CRNote.Text)+''''); + sql.Add(',MJXH='''+trim(CDS_Main.fieldbyname('MJXH').AsString)+''''); + sql.Add(',BaoNo='''+trim(BaoNo.Text)+''''); + sql.Add(',BaoID='''+trim(Bao.Text)+''''); + sql.Add(',RKOrdId='''+trim(RKOrdId.Text)+''''); + SQL.Add(',RKPlace='''+trim(RKPlace.Text)+''' '); + sql.Add(',CRFlagQty=1'); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''',BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Bao.Text)+''' '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + if CRType.Text='' then + begin + IF not YFData(CDS_Main) then + begin + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('Ӧʧܣ','ʾϢ',0); + end; + end; + if CRType.Text='' then + begin + if YSData(CDS_Main)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('SOrddefstr1').Value:=CDS_Main.fieldbyname('SOrddefstr1').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(Bao.Text); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('CRNote').Value:=trim(CRNote.Text); + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + FieldByName('MJQty4').Value:=Self.CDS_Main.fieldbyname('MJQty4').Value; + FieldByName('KHName').Value:=Self.CDS_Main.fieldbyname('KHName').Value; + FieldByName('YRfactoryName').Value:=Trim(Self.CDS_Main.fieldbyname('YRfactoryName').AsString); + FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; + Post; + end; + if BaoNo.Text<>'' then + begin + if (trim(Edit3.Text)<>'') and (trim(edit_Bla.Text)<>'') then + begin + Button8.Click; + end; + end; + PlaySound('ZTFH.wav', 0, SND_FILENAME or SND_ASYNC); + CDS_Main.Delete; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(MJID.Text); + MJID.Text:=''; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + Exit; + except; + MJID.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCpRkSaoMNew.SavedataCK(); +var + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + //if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=trim(CRType.Text); + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; +end; +procedure TfrmCpRkSaoMNew.Button2Click(Sender: TObject); +begin + IF (trim(RKOrdID.Text)<>'') and (CDS_MainSel.RecordCount>0) then + begin + if Application.MessageBox('ȷҪرս棬ӡⵥ','ʾ',32+4)<>IDYES then Exit; + end; + tv1.Controller.EditingController.ShowEdit(); + tv3.Controller.EditingController.ShowEdit(); + Close; + WriteCxGrid('ѡ',Tv2,'Ʒֿ'); + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); + WriteCxGrid('ƷSels',Tv3,'Ʒֿ'); +end; + +procedure TfrmCpRkSaoMNew.Button3Click(Sender: TObject); +var maxno:string; +begin + {if CDS_Main.IsEmpty=False then + begin + Application.MessageBox('ɨ費ܸĵţ','ʾ',0); + Exit; + end;} + try + frmOrderSelRK:=TfrmOrderSelRK.Create(Application); + with frmOrderSelRK do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + if Self.CDS_Sub.Locate('ConSubId',Trim(CDS_OrderSel.fieldbyname('ConSubId').AsString),[])=False then + begin + with Self.CDS_Sub do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_OrderSel.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_OrderSel.fieldbyname('SubId').AsString); + FieldByName('CustomerNo').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNo').AsString); + FieldByName('OrderNo').Value:=Trim(CDS_OrderSel.fieldbyname('OrderNo').AsString); + FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); + FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTOrderQty').Value:=Trim(CDS_OrderSel.fieldbyname('PRTOrderQty').AsString); + FieldByName('OrderUnit').Value:=Trim(CDS_OrderSel.fieldbyname('OrderUnit').AsString); + FieldByName('PRTColor').Value:=Trim(CDS_OrderSel.fieldbyname('PRTColor').AsString); + FieldByName('MPRTMF').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTMF').AsString); + FieldByName('MPRTKZ').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTKZ').AsString); + fieldbyname('ConSubid').Value:=trim(CDS_OrderSel.fieldbyname('ConSubid').AsString); + Post; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName,cast('''' as varchar(80)) RKOrdID'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_Main); + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(Self.CDS_Sub.fieldbyname('SFlag').AsString)<>'2' then + begin + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName,cast('''' as varchar(80)) RKOrdID'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where isnull(A.MJStr2,'''')=''δ'' '); + SQL.Add(' and A.ConID='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); + Open; + end; + SInitCDSData20(Self.ADOQueryTemp,CDS_Main); + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SFlag').Value:='2'; + CDS_Sub.Post; + Next; + end; + end; + CDS_Sub.EnableControls; + Button6.OnClick(self); + BaoNo.Text:='1'; + if trim(Bao.Text)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'DB','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Bao.Text:=Trim(maxno); + end; + end; + end; + finally; + frmOrderSelRK.Release; + end; +end; + +procedure TfrmCpRkSaoMNew.InitSubGrid(); +begin + try + ADOQuerySub.DisableControls; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Cast('''' as varchar(20)),Cast('''' as varchar(20)) ConSubid'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); + sql.Add(' where 1=2 '); + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Sub); + SInitCDSData20(ADOQuerySub,CDS_Sub); + finally + ADOQuerySub.EnableControls; + end; +end; + + +procedure TfrmCpRkSaoMNew.Button1Click(Sender: TObject); +begin + if CDS_MainSel.IsEmpty then Exit; + if CDS_MainSel.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + CDS_MainSel.DisableControls; + with CDS_MainSel do + begin + First; + while Locate('SSel',True,[]) do + begin + begin + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; + FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; + FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; + FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; + FieldByName('MJQty4').Value:=Self.CDS_MainSel.fieldbyname('MJQty4').Value; + FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; + FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; + FieldByName('SOrddefstr1').Value:=CDS_MainSel.fieldbyname('SOrddefstr1').Value; + FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; + FieldByName('KHName').Value:=Self.CDS_MainSel.fieldbyname('KHName').Value; + FieldByName('YRfactoryName').Value:=Self.CDS_MainSel.fieldbyname('YRfactoryName').Value; + FieldByName('ConPerson2').Value:=Self.CDS_MainSel.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_MainSel.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_MainSel.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_MainSel.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_MainSel.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_MainSel.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_MainSel.fieldbyname('ConID').Value; + FieldByName('PRTHX').Value:=self.CDS_MainSel.fieldbyname('PRTHX').Value; + CRNote.Text:=trim(Self.CDS_MainSel.fieldbyname('CRNote').AsString); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + sql.Add(',RKOrdId='''''); + sql.Add(',CRFlagQty=0'); + SQL.Add(',RKPlace='''',BaoNo=NULL,BaoID=NULL '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''δ'',BaoNo=NULL,BaoID=NULL where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + CDS_MainSel.Delete; + end; + end; + CDS_MainSel.EnableControls; + CDS_Main.EnableControls; + MovePanel2.Visible:=False; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(CDS_Main.fieldbyname('MJId').AsString); + if Trim(RKOrdID.Text)<>'' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); + Open; + end; + SCreateCDS20(ADOQueryCmd,ClientDataSet1); + SInitCDSData20(ADOQueryCmd,ClientDataSet1); + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if CRType.Text='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if CRType.Text='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except; + MovePanel2.Visible:=False; + CDS_MainSel.DisableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNew.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MainSel.IsEmpty=False then Exit; + if CDS_Sub.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(CDS_Main.fieldbyname('SubId').AsString)=Trim(CDS_Sub.fieldbyname('SubId').AsString) then + begin + CDS_Main.Delete; + end else + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Sub.Delete; +end; + +procedure TfrmCpRkSaoMNew.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmCpRkSaoMNew.Button5Click(Sender: TObject); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo,DBID,FDD:String; +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִ','ʾ',32+4)<>IDYES then exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); + sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag='''''); + sql.Add(',CRNote='''+trim(CRNote.Text)+''''); + sql.Add(',BaoNo='''+trim(BaoNo.Text)+''''); + sql.Add(',BaoID='''+trim(Bao.Text)+''''); + sql.Add(',RKOrdId='''+trim(RKOrdId.Text)+''''); + SQL.Add(',RKPlace='''+trim(RKPlace.Text)+''' '); + sql.Add(',CRFlagQty=1'); + sql.Add(' where ConID='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + Next; + end; + end; + CDS_Sub.EnableControls; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_Main); + SInitCDSData20(Self.ADOQueryTemp,CDS_Main); + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''',BaoNo='''+trim(BaoNo.Text)+''''); + sql.Add(',BaoID='''+trim(Bao.Text)+''''); + sql.Add(' where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID and B.RKOrdId='''+Trim(RKOrdId.Text)+''')'); + ExecSQL; + end; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.add(',F.RKOrdId,F.CRNote'); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join CK_BanCP_CR F on F.MJID=A.MJID'); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add('where F.RKOrdId='''+trim(RKOrdId.Text)+''''); + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_MainSel); + SInitCDSData20(ADOQuerySub,CDS_MainSel); + MovePanel2.Visible:=False; + with ADOQuerySub do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); + Open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet1); + SInitCDSData20(ADOQuerySub,ClientDataSet1); + RKOrdPS.Text:=Trim(ADOQuerySub.fieldbyname('ZPS').AsString)+'ƥ'; + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if CRType.Text='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if CRType.Text='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except; + MJID.Text:=''; + CDS_Sub.EnableControls; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNew.Button6Click(Sender: TObject); +var + maxno:string; +begin + if GetLSNo(ADOQueryCmd,maxno,'9','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡⵥʧ!','ʾ',0); + Exit; + end; + RKOrdID.Text:=Trim(maxno); + +end; + +procedure TfrmCpRkSaoMNew.RKPlaceBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KuWei'; + flagname:='λ'; + if ShowModal=1 then + begin + RKPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCpRkSaoMNew.Button7Click(Sender: TObject); +var + fPrintFile:String; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if Trim(RKOrdID.Text)='' then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ⵥǩ.rmf'; + with ADOQueryPrt do + begin + Close; + sql.Clear; + sql.Add('select A1.CRTime,A1.RKOrdID,A.MJTypeOther as QtyUnit,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,'); + sql.Add('PRTColor=DBO.F_Get_Order_SubStr(RKOrdID,''RKColor''),SOrddefstr1=DBO.F_Get_Order_SubStr(RKOrdID,''RKSOrddefstr1''),'); + sql.Add('SOrddefstr4=DBO.F_Get_Order_SubStr(RKOrdID,''RkSOrddefstr4''),PRtHX=DBO.F_Get_Order_SubStr(RKOrdID,''RKPRtHX''), '); + sql.Add('PRTkuanNo=DBO.F_Get_Order_SubStr(RKOrdID,''RkPrtkuanno''),'); + sql.Add('MJStr4=DBO.F_Get_Order_SubStr(RKOrdID,''RKGangNO''), '); + sql.Add('khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=D.conNO), '); + sql.Add('Bsl=(select count(distinct baoNo) from CK_BanCP_CR X where X.RKOrdID=A1.RKOrdID), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty2) as MJQty2,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.Add('from CK_BanCP_CR A1 inner join WFB_MJJY A on A.MJID=A1.MJID '); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + sql.Add(' where A1.RKOrdID='''+Trim(RKOrdID.Text)+''''); + SQL.ADD(' group by A1.CRTime,A1.RKOrdID,A.MJTypeOther,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO'); + //ShowMessage(ADOQueryPrt.SQL.Text); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrt.fieldbyname('RKOrdID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + if FileExists(fPrintFile) then + begin + //CDS_MainSel.Locate('RKOrdID',Trim(RKOrdID.Text),[]); + //RMVariables['RKOrdID']:=Trim(CDS_MainSel.fieldbyname('RKOrdID').AsString); + //RMVariables['OrderNo']:=Trim(CDS_MainSel.fieldbyname('OrderNo').AsString); + //RMVariables['PS']:=Trim(RKOrdPS.Text); + //RMVariables['QtyUnit']:=Trim(CDS_MainSel.fieldbyname('QtyUnit').AsString); + RMVariables['QRBARCODE']:=fImagePath; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ⵥǩ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNew.Button8Click(Sender: TObject); +var + fPrintFile:String; + Txt,fImagePath,DBID:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add(' SELECT D.LBName,D.NLBName'); + sql.Add(' from WFB_MJJY A'); + sql.add(' inner join CK_SXPB_CR B on B.SPID=A.APID'); + sql.add(' inner join JYOrder_Main D on D.Mainid=A.Mainid '); + SQL.Add('where A.MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + Open; + IF not ADOQueryPrint.IsEmpty then + begin + if Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)='' then + begin + application.MessageBox('ûðǩܴ','ʾϢ',0); + exit; + end; + end; + end; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf'; + with ADOQueryPrt do + begin + Close; + sql.Clear; + sql.Add('select A.BaoId,A.BaoNo'); + if Edit3.Text<>'' then + begin + sql.add(' ,WM.MJXH'); + end; + sql.add(' ,A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO SOrddefstr1,isnull(E.SOrdDefStr4,C.PRTColorEng) PRTColorEng,C.PRtHX,'); + sql.Add(' F.KHConNO,Count(A.BaoId) JSl,Sum(WM.MJQty4) MJQty4,Sum(WM.MJQty2) MJQty2,Sum(WM.MJMaoZ) MJMaoZ,Sum(WM.MJLen) MJLen'); + sql.add(' ,D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4 GangNo'); + sql.add(' ,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode '); + sql.Add(' from CK_BanCP_CR A inner join WFB_MJJY WM on A.MJID=WM.MJID'); + sql.Add(' inner join CK_SXPB_CR B on WM.APID=B.SPID'); + sql.Add(' Left join JYOrder_Sub C on WM.SubID=C.SubID'); + sql.Add(' Left join JYOrder_Main D on WM.MainID=D.MainID'); + SQL.ADD(' Left join JYOrderCon_Sub E on E.Subid=A.ConID '); + sql.add(' Left join JYOrderCon_Main F on F.Mainid=E.Mainid '); + sql.Add(' where A.BaoId='''+Trim(Bao.Text)+''' and A.CRflag='''' '); + sql.Add(' Group by A.BaoId,A.BaoNo'); + if Edit3.Text<>'' then + begin + sql.add(' ,WM.MJXH'); + end; + sql.add(',A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO,E.SOrddefstr4,C.PRTColorEng,F.KHConNO,C.PRtHX'); + sql.add(',D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode'); + Open; + end; + if ADOQueryPrt.RecordCount>1 then + begin + Application.MessageBox('볷!','ʾ',0); + Exit; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrt.fieldbyname('BaoID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM1.LoadFromFile(fPrintFile); + //RM1.ShowReport; + rm1.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; + //CDS_MainSel.EmptyDataSet; + FBaoId:=''; + BaoNo.Text:=IntToStr(StrToInt(BaoNo.Text)+1); + if GetLSNo(ADOQueryCmd,DBID,'DB','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Bao.Text:=Trim(DBID); +end; + +procedure TfrmCpRkSaoMNew.Edit3Click(Sender: TObject); +begin + if Trim(Edit3.Text)='' then + begin + Edit3.Text:=''; + fbaoID:=''; + end else + begin + Edit3.Text:=''; + fbaoID:=''; + end; +end; + +procedure TfrmCpRkSaoMNew.BaoKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + Bao.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + IF trim(Bao.text)='' then + begin + // Label12.Caption:='ŲΪգ'; + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if CDS_MainSel.Locate('baoID',Trim(Bao.Text),[]) then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(Bao.Text); + Label12.Caption:='ѣ˰ظɨ裡'; + Bao.Text:=''; + + // Application.MessageBox('˰ظɨ裡','ʾ',0); + Exit; + end; + if CDS_Main.Locate('baoID',Trim(Bao.Text),[])=False then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(Bao.Text); + Label12.Caption:='ѣ˾ڴľУ'; + Bao.Text:=''; + + // Application.MessageBox('˾ڴľУ','ʾ',0); + Exit; + end; + + + + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + DisableControls; + while CDS_Main.Locate('BaoID',Trim(Bao.Text),[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',CRTime.DateTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(CDS_Main.fieldbyname('BaoNo').AsString); + FieldByName('BaoID').Value:=Trim(CDS_Main.fieldbyname('BaoID').AsString); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + + FieldByName('RKPlace').Value:=Trim(RKPlace.Text); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' '); + IF trim(gangNo.Text)<>'' then + sql.Add(',MJStr4='+Quotedstr(trim(gangNo.Text))); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=IntToStr(CRID); + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; + IF trim(gangNo.Text)<>'' then + FieldByName('AOrdDefstr1').Value:=trim(gangNo.Text) + else + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('SOrddefstr1').Value:=CDS_Main.fieldbyname('SOrddefstr1').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(CDS_Main.fieldbyname('BaoNo').AsString); + FieldByName('BaoID').Value:=Trim(CDS_Main.fieldbyname('BaoID').AsString); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + Post; + end; + CDS_Main.Delete; + end; + CDS_Main.EnableControls; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select Mainid from CK_BanCP_CR where RKOrdId='''+Trim(RKOrdID.Text)+''''); + SQL.Add(' group by MainId'); + Open; + end; + if ADOQueryCmd.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ͬʹͬⵥ!','ʾ',0); + Exit; + end;} + ADOQueryCmd.Connection.CommitTrans; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(Bao.Text); + Bao.Text:=''; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + Exit; + except + Bao.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + + +procedure TfrmCpRkSaoMNew.N3Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(Fieldbyname('baoNo').AsString)<>'' then + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + end; + Next; + end; + end; + CDS_Main.EnableControls; +end; + +procedure TfrmCpRkSaoMNew.BaoNoChange(Sender: TObject); +var DBID:string; +begin + if BaoNo.Text<>'' then + begin + if GetLSNo(ADOQueryCmd,DBID,'DB','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + Bao.Text:=Trim(DBID); +end; + +procedure TfrmCpRkSaoMNew.MenuItem1Click(Sender: TObject); +begin + if CDS_MainSel.IsEmpty then Exit; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Sub.DisableControls; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_MainSel); + SInitCDSData20(Self.ADOQueryTemp,CDS_MainSel); + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''δ'',BaoNo=NULL,BaoID=NULL '); + sql.Add('where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID and B.RKOrdId='''+Trim(RKOrdId.Text)+''')'); + ExecSQL; + end; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.add(',F.RKOrdId,F.CRNote'); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join CK_BanCP_CR F on F.MJID=A.MJID'); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add('where F.RKOrdId='''+trim(RKOrdId.Text)+''''); + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Main); + SInitCDSData20(ADOQuerySub,CDS_Main); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + SQL.Add(',BaoNo=NULL '); + SQL.Add(',BaoID=NULL '); + SQL.Add(',RKPlace='''' '); + sql.Add(',CRFlagQty=0'); + sql.Add('where RKOrdID='''+trim(RKOrdID.Text)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + MovePanel2.Visible:=False; + with ADOQuerySub do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.CRFlag='''' and A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); + Open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet1); + SInitCDSData20(ADOQuerySub,ClientDataSet1); + RKOrdPS.Text:=Trim(ADOQuerySub.fieldbyname('ZPS').AsString)+'ƥ'; + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if CRType.Text='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if CRType.Text='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.Add('RKOrdId='''' '); + sql.Add('where RKOrdID='''+trim(RKOrdID.Text)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + except; + MovePanel2.Visible:=False; + CDS_MainSel.DisableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNew.Edit_BLAClick(Sender: TObject); +begin + if Trim(Edit_BLA.Text)='' then + begin + Edit_BLA.Text:=''; + end else + begin + Edit_BLA.Text:=''; + end; +end; + +end. diff --git a/盛纺贸易管理/U_CpRkSaoMNewCS.dfm b/盛纺贸易管理/U_CpRkSaoMNewCS.dfm new file mode 100644 index 0000000..94c38a6 --- /dev/null +++ b/盛纺贸易管理/U_CpRkSaoMNewCS.dfm @@ -0,0 +1,1114 @@ +object frmCpRkSaoMNewCS: TfrmCpRkSaoMNewCS + Left = 189 + Top = 134 + Width = 1396 + Height = 648 + Caption = #25104#21697#20837#24211#25195#25551'CS' + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object cxGrid2: TcxGrid + Left = 0 + Top = 216 + Width = 556 + Height = 392 + Align = alLeft + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v1Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 44 + end + object v1Column5: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 43 + end + object v2Column5: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 67 + end + object v2Column6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 56 + end + object v1Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 53 + end + object v1Column7: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 56 + end + object v1Column8: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'baoID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column9: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'baoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + object v1conNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1KHConNO: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PRTHX: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1StyleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJQty4: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1MJType: TcxGridDBColumn + Caption = #24067#21305#31867#22411 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object v1CRNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CRNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1380 + Height = 216 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 66 + Top = 133 + Width = 57 + Height = 18 + Caption = #21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 262 + Top = 133 + Width = 76 + Height = 18 + Caption = #20837#24211#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 7 + Top = 231 + Width = 38 + Height = 54 + Caption = #20837#24211#13#10' '#21333#13#10#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label6: TLabel + Left = 465 + Top = 133 + Width = 38 + Height = 18 + Caption = #24211#20301 + Font.Charset = GB2312_CHARSET + Font.Color = clGreen + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 85 + Top = 177 + Width = 38 + Height = 18 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 302 + Top = 176 + Width = 88 + Height = 21 + Caption = #21253#21495#33258#22686 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 811 + Top = 421 + Width = 38 + Height = 18 + Caption = #32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clGreen + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label10: TLabel + Left = 478 + Top = 248 + Width = 57 + Height = 18 + Caption = #21253#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label11: TLabel + Left = 815 + Top = 134 + Width = 68 + Height = 16 + Caption = #20837#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 815 + Top = 160 + Width = 235 + Height = 13 + Caption = #27880':'#27491#21697#27491#24120#20837#24211#20135#29983#36153#29992','#20854#20182#19981#20250#20135#29983 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label14: TLabel + Left = 815 + Top = 182 + Width = 56 + Height = 13 + Caption = #20837#24211#22791#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MJID: TEdit + Left = 125 + Top = 129 + Width = 127 + Height = 26 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object Button2: TButton + Left = 742 + Top = 169 + Width = 62 + Height = 34 + Caption = #20851#38381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 3 + Top = 125 + Width = 59 + Height = 34 + Caption = #36873#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button3Click + end + object Button1: TButton + Left = 644 + Top = 169 + Width = 88 + Height = 34 + Caption = #25764#38144#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button1Click + end + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1376 + Height = 112 + Align = alTop + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 78 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 75 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 77 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 64 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 60 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 66 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + object Button5: TButton + Left = 644 + Top = 126 + Width = 87 + Height = 33 + Caption = #20840#36873#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Button5Click + end + object CRTime: TDateTimePicker + Left = 338 + Top = 129 + Width = 116 + Height = 26 + Date = 41337.663190821760000000 + Time = 41337.663190821760000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 6 + end + object Button6: TButton + Left = 271 + Top = 235 + Width = 46 + Height = 43 + Caption = #33719#21462 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = Button6Click + end + object RKOrdID: TEdit + Left = 51 + Top = 235 + Width = 222 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + end + object RKPlace: TBtnEditA + Left = 503 + Top = 127 + Width = 131 + Height = 30 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 9 + OnBtnClick = RKPlaceBtnClick + end + object BaoNo: TEdit + Left = 125 + Top = 161 + Width = 127 + Height = 49 + BiDiMode = bdLeftToRight + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -36 + Font.Name = 'Times New Roman' + Font.Style = [fsBold] + ParentBiDiMode = False + ParentFont = False + TabOrder = 10 + OnChange = BaoNoChange + end + object RKOrdPS: TEdit + Left = 317 + Top = 234 + Width = 98 + Height = 47 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -39 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + end + object Button7: TButton + Left = 413 + Top = 235 + Width = 44 + Height = 43 + Caption = #25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 12 + Visible = False + OnClick = Button7Click + end + object Button8: TButton + Left = 449 + Top = 164 + Width = 103 + Height = 43 + Caption = #25171#21360#21253#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 13 + OnClick = Button8Click + end + object ComboBox1: TComboBox + Left = 742 + Top = 129 + Width = 62 + Height = 26 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemHeight = 18 + ParentFont = False + TabOrder = 14 + Items.Strings = ( + #27491#21697 + #27425#21697 + #30041#26679 + '') + end + object Edit3: TEdit + Left = 264 + Top = 171 + Width = 34 + Height = 29 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 15 + OnClick = Edit3Click + end + object gangNo: TEdit + Left = 849 + Top = 420 + Width = 131 + Height = 21 + TabOrder = 16 + Visible = False + end + object Bao: TEdit + Left = 532 + Top = 244 + Width = 123 + Height = 26 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 17 + Visible = False + end + object CRType: TComboBox + Left = 886 + Top = 131 + Width = 131 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 18 + Text = #26816#39564#20837#24211 + Items.Strings = ( + #26816#39564#20837#24211 + #22238#20462#20837#24211 + #20854#20182#20837#24211) + end + object CRNote: TEdit + Left = 871 + Top = 178 + Width = 231 + Height = 21 + TabOrder = 19 + end + end + object cxGrid3: TcxGrid + Left = 556 + Top = 216 + Width = 824 + Height = 392 + Align = alClient + PopupMenu = PopupMenu2 + TabOrder = 2 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_MainSel + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = cxGridDBColumn1 + end + item + Kind = skSum + Column = v3KgQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object v3Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 44 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 98 + end + object v3PRTColor: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v3Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v3Column8: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'BaoNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v3KgQty: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3MJQty4: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 69 + end + object v3Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v3Column6: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3PRTHX: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3Column7: TcxGridDBColumn + Caption = #20837#24211#21333#21495 + DataBinding.FieldName = 'RKOrdID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v3Column1: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'baoID' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v3styleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3KHConNO: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v3CRNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'CRNote' + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object MovePanel1: TMovePanel + Left = 4 + Top = 238 + Width = 549 + Height = 347 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 31 + Top = 52 + Width = 159 + Height = 52 + Caption = #24050#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -52 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 456 + Top = 61 + Width = 53 + Height = 52 + Caption = #21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -52 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 54 + Top = 290 + Width = 10 + Height = 18 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 196 + Top = 26 + Width = 261 + Height = 112 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -104 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '1234' + end + object Edit2: TEdit + Left = 48 + Top = 171 + Width = 464 + Height = 78 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -70 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Text = '91209120001' + end + object Button4: TButton + Left = 427 + Top = 251 + Width = 76 + Height = 45 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button4Click + end + end + object MovePanel2: TMovePanel + Left = 558 + Top = 305 + Width = 313 + Height = 53 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 816 + Top = 48 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 116 + Top = 232 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 80 + Top = 232 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 56 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 554 + Top = 55 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 48 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 808 + Top = 48 + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 856 + Top = 48 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 693 + Top = 56 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 44 + Top = 232 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 776 + Top = 48 + end + object DS_MainSel: TDataSource + DataSet = CDS_MainSel + Left = 621 + Top = 396 + end + object CDS_MainSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 693 + Top = 391 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 856 + Top = 360 + end + object PopupMenu2: TPopupMenu + Left = 896 + Top = 365 + object MenuItem1: TMenuItem + Caption = #20840#36873#25764#38144 + OnClick = MenuItem1Click + end + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 656 + Top = 72 + ReportData = {} + end + object ADOQueryPrt: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 912 + Top = 68 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrt + Left = 776 + Top = 384 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 772 + Top = 84 + end + object ADOQueryPrice: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 706 + Top = 87 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 571 + Top = 382 + end +end diff --git a/盛纺贸易管理/U_CpRkSaoMNewCS.pas b/盛纺贸易管理/U_CpRkSaoMNewCS.pas new file mode 100644 index 0000000..1d75141 --- /dev/null +++ b/盛纺贸易管理/U_CpRkSaoMNewCS.pas @@ -0,0 +1,2137 @@ +unit U_CpRkSaoMNewCS; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, + ComCtrls, BtnEdit, RM_System, RM_Common, RM_Class, RM_GridReport, + RM_Dataset; + +type + TfrmCpRkSaoMNewCS = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + MJID: TEdit; + Label1: TLabel; + v1Column5: TcxGridDBColumn; + Button2: TButton; + Button3: TButton; + CDS_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOQuerySub: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DS_MainSel: TDataSource; + CDS_MainSel: TClientDataSet; + v3KgQty: TcxGridDBColumn; + Button1: TButton; + cxGridPopupMenu4: TcxGridPopupMenu; + MovePanel1: TMovePanel; + Edit1: TEdit; + Edit2: TEdit; + Label2: TLabel; + Label3: TLabel; + Button4: TButton; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column2: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v3PRTColor: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + Button5: TButton; + v1Column7: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + MovePanel2: TMovePanel; + CRTime: TDateTimePicker; + Label4: TLabel; + Button6: TButton; + RKOrdID: TEdit; + RKPlace: TBtnEditA; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + BaoNo: TEdit; + RKOrdPS: TEdit; + Button7: TButton; + v3Column7: TcxGridDBColumn; + RM1: TRMGridReport; + Button8: TButton; + ADOQueryPrt: TADOQuery; + RMDB_Main: TRMDBDataSet; + v3Column8: TcxGridDBColumn; + ComboBox1: TComboBox; + Edit3: TEdit; + Label8: TLabel; + v1MJID: TcxGridDBColumn; + Label9: TLabel; + gangNo: TEdit; + Bao: TEdit; + Label10: TLabel; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + Label12: TLabel; + v1conNo: TcxGridDBColumn; + v1KHConNO: TcxGridDBColumn; + v1StyleNo: TcxGridDBColumn; + v3ConNo: TcxGridDBColumn; + v3KHConNO: TcxGridDBColumn; + v3styleNo: TcxGridDBColumn; + ADOQueryPrint: TADOQuery; + v1MJQty4: TcxGridDBColumn; + v3MJQty4: TcxGridDBColumn; + v1MJType: TcxGridDBColumn; + Label11: TLabel; + Label13: TLabel; + CRType: TComboBox; + Label14: TLabel; + CRNote: TEdit; + ADOQueryPrice: TADOQuery; + v3CRNote: TcxGridDBColumn; + v1CRNote: TcxGridDBColumn; + v1PRTHX: TcxGridDBColumn; + v3PRTHX: TcxGridDBColumn; + ClientDataSet1: TClientDataSet; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure RKPlaceBtnClick(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Edit3Click(Sender: TObject); + procedure BaoKeyPress(Sender: TObject; var Key: Char); + procedure N3Click(Sender: TObject); + procedure BaoNoChange(Sender: TObject); + procedure MenuItem1Click(Sender: TObject); + private + { Private declarations } + FBaoId:String; + procedure InitGrid(); + procedure InitSubGrid(); + procedure SavedataCK(); + function YSData(Order_Main10:TClientDataSet):Boolean; + function YFData(Order_Main10:TClientDataSet):Boolean; + function HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; + public + { Public declarations } + end; + +var + frmCpRkSaoMNewCS: TfrmCpRkSaoMNewCS; + +implementation +uses +U_DataLink,U_Fun,U_OrderSelRK,U_ZDYHelp,MMSystem; + +{$R *.dfm} + +function TfrmCpRkSaoMNewCS.HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit,FConNo:String; + FTaoQty:double; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 A.PriceUnit,A.OrderUnit,B.ConNo,A.TaoQty from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid Where Subid='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); + FTaoQty:=ADOQueryTemp.fieldbyname('TaoQty').AsFloat; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main11.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); + sql.add(' and YFName='''+trim(FeeType)+''''); + sql.add(' and FeeType='''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main11.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(Order_Main11.fieldbyname('OrderNo').AsString); + fieldbyname('ConNo').Value:=trim(FConNO); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + FieldByName('Price').Value:=FeeMoney; + if FTaoQty=0 then + fieldbyname('Qty').value:=1 + else + fieldbyname('Qty').value:=FTaoQty; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=trim(PriceUnit); + FieldByName('QtyUnit').Value:=trim(OrderUnit); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:=trim(FeeType); + fieldbyname('FeeType').Value:=''; + FieldByName('MainId').Value:=Trim(Order_Main11.fieldbyname('Mainid').AsString); + FieldByName('Conid').Value:=Trim(Order_Main11.fieldbyname('Conid').AsString); + fieldbyname('Money').value:=FeeMoney; + fieldbyname('BBMoney').value:=FeeMoney; + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('update YF_Money_CR Set '); + sql.add('BBMoney='''+trim(floattostr(FeeMoney))+''','); + sql.add('Price='''+trim(floattostr(FeeMoney))+''','); + sql.add('Money='''+trim(floattostr(FeeMoney))+''' '); + sql.add('where YFID='''+Trim(ADOQueryTemp.fieldbyname('YFID').AsString)+''''); + execsql; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('Money').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +function TfrmCpRkSaoMNewCS.YFData(Order_Main10:TClientDataSet):Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 PriceUnit,OrderUnit from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date))+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('Subid').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNo').AsString); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; + FieldByName('HuiLv').Value:=1; + + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:='KG'; + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ޷'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' where A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'''); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + sql.add(') '); + + sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.Add(' where A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); + sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); + SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); + sql.add(' and A.CRTime=YF_Money_CR.CRTime'); + SQL.Add(' )'); + sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); + sql.add(' and CRType=''ӦǼ'''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select PS from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').Value=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; + +function TfrmCpRkSaoMNewCS.YSData(Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,FConNo,FOrderNo:String; + FPRTPrice:String; +begin + Result:=False; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 B.ConNo,'); + sql.add('PIPrice=isnull((select C.Price From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.PRTPrice)');//ֻHAMƱPIеۣΪ + sql.add(',PIOrderUnit=isnull((select C.QtyUnit From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.OrderUnit)');//ֻHAMƱPIеۣΪ + sql.add(',PIBZType=isnull((select C.BZType From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.PriceUnit)');//ֻHAMƱPIеۣΪ + sql.add(' from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid '); + sql.add('Where Subid='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + Open; + end; + PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PIBZType').AsString); + OrderUnit:=Trim(ADOQueryTemp.fieldbyname('PIOrderUnit').AsString); + if ADOQueryTemp.fieldbyname('PIPrice').AsFloat=0 then + FPRTPrice:='0' + else + FPRTPrice:=trim(ADOQueryTemp.fieldbyname('PIPrice').AsString); + FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou,OrderNo from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + Open; + end; + FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + FOrderNo:=trim(ADOQueryTemp.fieldbyname('OrderNo').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); + sql.Add(' and Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); + sql.add(' and YFName=''Ʒ۽'''); + sql.add(' and isnull(PBNote,'''')='''+trim(CRNote.Text)+''''); + sql.add(' and CRFlag=''Ӧ'''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CPS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡƷӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('ConID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); + FieldByName('YFType').Value:='Զ'; + fieldbyname('OrderNO').Value:=Trim(FOrderNo); + fieldbyname('ConNo').Value:=trim(FConNO); + fieldbyname('PBNote').Value:=trim(CRNote.Text); + FieldByName('Price').Value:=FPRTPrice; + FieldByName('HuiLv').Value:=1; + if trim(PriceUnit)<>'' then + FieldByName('BZType').Value:=trim(PriceUnit) + else + FieldByName('BZType').Value:=''; + if trim(OrderUnit)<>'' then + FieldByName('QtyUnit').Value:=Trim(OrderUnit) + else + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); + FieldByName('YFName').Value:='Ʒ۽'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + FieldByName('Conid').Value:=Trim(Order_Main10.fieldbyname('Conid').AsString); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if (Trim(OrderUnit)<>'KG') and (Trim(OrderUnit)<>'Kg') and (Trim(OrderUnit)<>'kg') then + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A '); + end else + begin + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + end; + sql.Add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + sql.add(') '); + sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); + sql.add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.Add(',MQty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where'); + SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType='''' '); + sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); + SQL.Add(' )'); + sql.add(',Price='''+trim(FPRTPrice)+''''); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('update YF_Money_CR Set '); + sql.add('BBMoney=Qty*Price,'); + sql.add('Money=Price*Qty '); + sql.add('where YFID='''+Trim(YFID)+''''); + execsql; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + Open; + end; + if ADOQueryTemp.FieldByName('PS').AsFloat=0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId='+CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId='+CRID); + ExecSQL; + end; + end; + with ADOQueryPrice do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCon_Sub '); + sql.Add('where Subid='''+Trim(Order_Main10.fieldbyname('Conid').AsString)+''''); + open; + end; + if ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat<>0 then + HTData('֯ϻ',ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat<>0 then + HTData('ӡϻ',ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('BaoGangFee').AsFloat<>0 then + HTData('׷',ADOQueryPrice.FieldByName('BaoGangFee').AsFloat,Order_Main10); + if ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat<>0 then + HTData('ư',ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat*ADOQueryPrice.FieldByName('TaoQty').AsFloat,Order_Main10); + Result:=True; +end; + +procedure TfrmCpRkSaoMNewCS.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCpRkSaoMNewCS.FormDestroy(Sender: TObject); +begin + frmCpRkSaoMNewCS:=nil; +end; +procedure TfrmCpRkSaoMNewCS.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + // SInitCDSData20(ADOQueryMain,CDS_Main); + SCreateCDS20(ADOQueryMain,CDS_MainSel); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCpRkSaoMNewCS.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ',Tv2,'Ʒֿ'); + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + ReadCxGrid('ƷSels',Tv3,'Ʒֿ'); + InitSubGrid(); + InitGrid(); + CRTime.DateTime:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmCpRkSaoMNewCS.MJIDKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo,DBID:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + MJID.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if CDS_Main.Locate('MJId',Trim(MJID.Text),[])=false then + begin + application.MessageBox('ѡĶûиþ','ʾ'); + exit; + end; + CDS_Main.Locate('MJId',Trim(MJID.Text),[]); + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1 where 1=1'); + sql.Add('select Top 1 CRID from CK_BanCP_CRID where 1=1 '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',CRTime.DateTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=trim(CRType.Text); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('MJQty4').Value:=CDS_Main.fieldbyname('MJQty4').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); + FieldByName('CRNote').Value:=Trim(CRNote.Text); + if BaoNo.Text<>'' then + begin + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(Bao.Text); + end; + FieldByName('RKPlace').Value:=Trim(RKPlace.Text); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1=2'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''',BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Bao.Text)+''' '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + if CRType.Text='' then + begin + IF not YFData(CDS_Main) then + begin + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('Ӧʧܣ','ʾϢ',0); + end; + end; + if CRType.Text='' then + begin + if YSData(CDS_Main)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=IntToStr(CRID); + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('SOrddefstr1').Value:=CDS_Main.fieldbyname('SOrddefstr1').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(Bao.Text); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('CRNote').Value:=trim(CRNote.Text); + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + FieldByName('MJQty4').Value:=Self.CDS_Main.fieldbyname('MJQty4').Value; + FieldByName('KHName').Value:=Self.CDS_Main.fieldbyname('KHName').Value; + FieldByName('YRfactoryName').Value:=Trim(Self.CDS_Main.fieldbyname('YRfactoryName').AsString); + FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; + Post; + end; + if BaoNo.Text<>'' then + begin + if Edit3.Text<>'' then + begin + Button8.Click; + BaoNo.Text:=IntToStr(StrToInt(BaoNo.Text)+1); + if GetLSNo(ADOQueryCmd,DBID,'DB','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Bao.Text:=Trim(DBID); + end; + end; + PlaySound('ZTFH.wav', 0, SND_FILENAME or SND_ASYNC); + CDS_Main.Delete; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(MJID.Text); + MJID.Text:=''; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + Exit; + except; + MJID.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + +procedure TfrmCpRkSaoMNewCS.SavedataCK(); +var + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + //if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=trim(CRType.Text); + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; +end; +procedure TfrmCpRkSaoMNewCS.Button2Click(Sender: TObject); +begin + IF (trim(RKOrdID.Text)<>'') and (CDS_MainSel.RecordCount>0) then + begin + if Application.MessageBox('ȷҪرս棬ӡⵥ','ʾ',32+4)<>IDYES then Exit; + end; + tv1.Controller.EditingController.ShowEdit(); + tv3.Controller.EditingController.ShowEdit(); + Close; + WriteCxGrid('ѡ',Tv2,'Ʒֿ'); + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); + WriteCxGrid('ƷSels',Tv3,'Ʒֿ'); +end; + +procedure TfrmCpRkSaoMNewCS.Button3Click(Sender: TObject); +var maxno:string; +begin + {if CDS_Main.IsEmpty=False then + begin + Application.MessageBox('ɨ費ܸĵţ','ʾ',0); + Exit; + end;} + try + frmOrderSelRK:=TfrmOrderSelRK.Create(Application); + with frmOrderSelRK do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + if Self.CDS_Sub.Locate('ConSubId',Trim(CDS_OrderSel.fieldbyname('ConSubId').AsString),[])=False then + begin + with Self.CDS_Sub do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_OrderSel.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_OrderSel.fieldbyname('SubId').AsString); + FieldByName('CustomerNo').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNo').AsString); + FieldByName('OrderNo').Value:=Trim(CDS_OrderSel.fieldbyname('OrderNo').AsString); + FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); + FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTOrderQty').Value:=Trim(CDS_OrderSel.fieldbyname('PRTOrderQty').AsString); + FieldByName('OrderUnit').Value:=Trim(CDS_OrderSel.fieldbyname('OrderUnit').AsString); + FieldByName('PRTColor').Value:=Trim(CDS_OrderSel.fieldbyname('PRTColor').AsString); + FieldByName('MPRTMF').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTMF').AsString); + FieldByName('MPRTKZ').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTKZ').AsString); + fieldbyname('ConSubid').Value:=trim(CDS_OrderSel.fieldbyname('ConSubid').AsString); + Post; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_Main); + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(Self.CDS_Sub.fieldbyname('SFlag').AsString)<>'2' then + begin + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where isnull(A.MJStr2,'''')=''δ'' and isnull(A.FHStatus,'''')='''''); + SQL.Add(' and D.Subid='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); + Open; + end; + SInitCDSData20(Self.ADOQueryTemp,CDS_Main); + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SFlag').Value:='2'; + CDS_Sub.Post; + Next; + end; + end; + CDS_Sub.EnableControls; + Button6.OnClick(self); + BaoNo.Text:='1'; + if trim(Bao.Text)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'DB','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Bao.Text:=Trim(maxno); + end; + end; + end; + finally; + frmOrderSelRK.Release; + end; +end; + +procedure TfrmCpRkSaoMNewCS.InitSubGrid(); +begin + try + ADOQuerySub.DisableControls; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,Cast('''' as varchar(20)),Cast('''' as varchar(20)) ConSubid'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); + sql.Add(' where 1<>1 '); + + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Sub); + SInitCDSData20(ADOQuerySub,CDS_Sub); + finally + ADOQuerySub.EnableControls; + end; +end; + + +procedure TfrmCpRkSaoMNewCS.Button1Click(Sender: TObject); +begin + if CDS_MainSel.IsEmpty then Exit; + if CDS_MainSel.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + CDS_MainSel.DisableControls; + with CDS_MainSel do + begin + First; + while Locate('SSel',True,[]) do + begin + begin + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; + FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; + FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; + FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; + FieldByName('MJQty4').Value:=Self.CDS_MainSel.fieldbyname('MJQty4').Value; + FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; + FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; + FieldByName('SOrddefstr1').Value:=CDS_MainSel.fieldbyname('SOrddefstr1').Value; + FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; + FieldByName('KHName').Value:=Self.CDS_MainSel.fieldbyname('KHName').Value; + FieldByName('YRfactoryName').Value:=Self.CDS_MainSel.fieldbyname('YRfactoryName').Value; + FieldByName('ConPerson2').Value:=Self.CDS_MainSel.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_MainSel.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_MainSel.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_MainSel.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_MainSel.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_MainSel.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_MainSel.fieldbyname('ConID').Value; + FieldByName('PRTHX').Value:=self.CDS_MainSel.fieldbyname('PRTHX').Value; + CRNote.Text:=trim(Self.CDS_MainSel.fieldbyname('CRNote').AsString); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + sql.Add(',RKOrdId='''''); + SQL.Add(',RKPlace='''',BaoNo='''',BaoID='''' '); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''δ'',BaoNo='''',BaoID='''' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + CDS_MainSel.Delete; + end; + end; + CDS_MainSel.EnableControls; + CDS_Main.EnableControls; + MovePanel2.Visible:=False; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(CDS_Main.fieldbyname('MJId').AsString); + if Trim(RKOrdID.Text)<>'' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); + Open; + end; + SCreateCDS20(ADOQueryCmd,ClientDataSet1); + SInitCDSData20(ADOQueryCmd,ClientDataSet1); + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if CRType.Text='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if CRType.Text='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except; + MovePanel2.Visible:=False; + CDS_MainSel.DisableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNewCS.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MainSel.IsEmpty=False then Exit; + if CDS_Sub.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(CDS_Main.fieldbyname('SubId').AsString)=Trim(CDS_Sub.fieldbyname('SubId').AsString) then + begin + CDS_Main.Delete; + end else + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Sub.Delete; +end; + +procedure TfrmCpRkSaoMNewCS.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmCpRkSaoMNewCS.Button5Click(Sender: TObject); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo,DBID,FDD:String; +begin + if CDS_Sub.IsEmpty then Exit; + {if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûȫѡ','ʾ',0); + Exit; + end; } + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִ','ʾ',32+4)<>IDYES then exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); + sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag='''''); + sql.Add(',CRNote='''+trim(CRNote.Text)+''''); + sql.Add(',RKOrdId='''+trim(RKOrdId.Text)+''''); + SQL.Add(',RKPlace='''+trim(RKPlace.Text)+''' '); + sql.Add('where ConID='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); + sql.Add(' and CRFlag='''''); + ExecSQL; + end; + Next; + end; + end; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_Main); + SInitCDSData20(Self.ADOQueryTemp,CDS_Main); + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' '); + sql.Add('where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID and B.RKOrdId='''+Trim(RKOrdId.Text)+''')'); + ExecSQL; + end; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.add(',F.RKOrdId,F.CRNote'); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join CK_BanCP_CR F on F.MJID=A.MJID'); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add('where F.RKOrdId='''+trim(RKOrdId.Text)+''''); + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_MainSel); + SInitCDSData20(ADOQuerySub,CDS_MainSel); + MovePanel2.Visible:=False; + with ADOQuerySub do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); + Open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet1); + SInitCDSData20(ADOQuerySub,ClientDataSet1); + RKOrdPS.Text:=Trim(ADOQuerySub.fieldbyname('ZPS').AsString)+'ƥ'; + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if CRType.Text='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if CRType.Text='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + CDS_Main.EnableControls; + except; + MJID.Text:=''; + CDS_Main.EnableControls; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNewCS.Button6Click(Sender: TObject); +var + maxno:string; +begin + if GetLSNo(ADOQueryCmd,maxno,'9','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡⵥʧ!','ʾ',0); + Exit; + end; + RKOrdID.Text:=Trim(maxno); + +end; + +procedure TfrmCpRkSaoMNewCS.RKPlaceBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KuWei'; + flagname:='λ'; + if ShowModal=1 then + begin + RKPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCpRkSaoMNewCS.Button7Click(Sender: TObject); +var + fPrintFile:String; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if Trim(RKOrdID.Text)='' then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ⵥǩ.rmf'; + with ADOQueryPrt do + begin + Close; + sql.Clear; + sql.Add('select A1.CRTime,A1.RKOrdID,A.MJTypeOther as QtyUnit,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,'); + sql.Add('PRTColor=DBO.F_Get_Order_SubStr(RKOrdID,''RKColor''),SOrddefstr1=DBO.F_Get_Order_SubStr(RKOrdID,''RKSOrddefstr1''),'); + sql.Add('SOrddefstr4=DBO.F_Get_Order_SubStr(RKOrdID,''RkSOrddefstr4''),PRtHX=DBO.F_Get_Order_SubStr(RKOrdID,''RKPRtHX''), '); + sql.Add('PRTkuanNo=DBO.F_Get_Order_SubStr(RKOrdID,''RkPrtkuanno''),'); + sql.Add('MJStr4=DBO.F_Get_Order_SubStr(RKOrdID,''RKGangNO''), '); + sql.Add('khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=D.conNO), '); + sql.Add('Bsl=(select count(distinct baoNo) from CK_BanCP_CR X where X.RKOrdID=A1.RKOrdID), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty2) as MJQty2,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.Add('from CK_BanCP_CR A1 inner join WFB_MJJY A on A.MJID=A1.MJID '); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + sql.Add(' where A1.RKOrdID='''+Trim(RKOrdID.Text)+''''); + SQL.ADD(' group by A1.CRTime,A1.RKOrdID,A.MJTypeOther,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO'); + //ShowMessage(ADOQueryPrt.SQL.Text); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrt.fieldbyname('RKOrdID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + if FileExists(fPrintFile) then + begin + //CDS_MainSel.Locate('RKOrdID',Trim(RKOrdID.Text),[]); + //RMVariables['RKOrdID']:=Trim(CDS_MainSel.fieldbyname('RKOrdID').AsString); + //RMVariables['OrderNo']:=Trim(CDS_MainSel.fieldbyname('OrderNo').AsString); + //RMVariables['PS']:=Trim(RKOrdPS.Text); + //RMVariables['QtyUnit']:=Trim(CDS_MainSel.fieldbyname('QtyUnit').AsString); + RMVariables['QRBARCODE']:=fImagePath; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ⵥǩ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNewCS.Button8Click(Sender: TObject); +var + fPrintFile:String; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add(' SELECT D.ConLBName,D.ConNLBName'); + sql.Add(' from WFB_MJJY A'); + sql.add(' inner join CK_SXPB_CR B on B.SPID=A.APID'); + SQL.ADD(' left join JYOrderCon_Sub C on C.Subid=A.ConID '); + sql.add(' left join JYOrderCon_Main D on D.Mainid=C.Mainid '); + SQL.Add('where A.MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + Open; + IF not ADOQueryPrint.IsEmpty then + begin + if Trim(ADOQueryPrint.fieldbyname('ConNLBName').AsString)='' then + begin + application.MessageBox('ûðǩܴ','ʾϢ',0); + exit; + end; + end; + end; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ADOQueryPrint.fieldbyname('ConNLBName').AsString)+'.rmf'; + with ADOQueryPrt do + begin + Close; + sql.Clear; + sql.Add('select A.BaoId,A.BaoNo'); + if Edit3.Text<>'' then + begin + sql.add(' ,WM.MJXH'); + end; + sql.add(' ,A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO SOrddefstr1,isnull(E.SOrdDefStr4,C.PRTColorEng) PRTColorEng,C.PRtHX,'); + sql.Add(' F.KHConNO,Count(A.BaoId) JSl,Sum(WM.MJQty4) MJQty4,Sum(WM.MJQty2) MJQty2,Sum(WM.MJMaoZ) MJMaoZ,Sum(WM.MJLen) MJLen'); + sql.add(' ,D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4 GangNo'); + sql.add(' ,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode '); + sql.Add(' from CK_BanCP_CR A inner join WFB_MJJY WM on A.MJID=WM.MJID'); + sql.Add(' inner join CK_SXPB_CR B on WM.APID=B.SPID'); + sql.Add(' Left join JYOrder_Sub C on WM.SubID=C.SubID'); + sql.Add(' Left join JYOrder_Main D on WM.MainID=D.MainID'); + SQL.ADD(' Left join JYOrderCon_Sub E on E.Subid=A.ConID '); + sql.add(' Left join JYOrderCon_Main F on F.Mainid=E.Mainid '); + sql.Add(' where A.BaoId='''+Trim(Bao.Text)+''' and A.CRflag='''' '); + sql.Add(' Group by A.BaoId,A.BaoNo'); + if Edit3.Text<>'' then + begin + sql.add(' ,WM.MJXH'); + end; + sql.add(',A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO,E.SOrddefstr4,C.PRTColorEng,F.KHConNO,C.PRtHX'); + sql.add(',D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode'); + Open; + end; + if ADOQueryPrt.RecordCount>1 then + begin + Application.MessageBox('볷!','ʾ',0); + Exit; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrt.fieldbyname('BaoID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM1.LoadFromFile(fPrintFile); + //RM1.ShowReport; + rm1.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; + //CDS_MainSel.EmptyDataSet; + FBaoId:=''; +end; + +procedure TfrmCpRkSaoMNewCS.Edit3Click(Sender: TObject); +begin + if Trim(Edit3.Text)='' then + begin + Edit3.Text:=''; + fbaoID:=''; + end else + begin + Edit3.Text:=''; + fbaoID:=''; + end; +end; + +procedure TfrmCpRkSaoMNewCS.BaoKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + if Key=#13 then + begin + Label12.Caption:=''; + if CDS_Sub.IsEmpty then + begin + Bao.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + IF trim(Bao.text)='' then + begin + // Label12.Caption:='ŲΪգ'; + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if CDS_MainSel.Locate('baoID',Trim(Bao.Text),[]) then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(Bao.Text); + Label12.Caption:='ѣ˰ظɨ裡'; + Bao.Text:=''; + + // Application.MessageBox('˰ظɨ裡','ʾ',0); + Exit; + end; + if CDS_Main.Locate('baoID',Trim(Bao.Text),[])=False then + begin + MovePanel1.Visible:=True; + Edit2.Text:=Trim(Bao.Text); + Label12.Caption:='ѣ˾ڴľУ'; + Bao.Text:=''; + + // Application.MessageBox('˾ڴľУ','ʾ',0); + Exit; + end; + + + + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + DisableControls; + while CDS_Main.Locate('BaoID',Trim(Bao.Text),[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',CRTime.DateTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(CDS_Main.fieldbyname('BaoNo').AsString); + FieldByName('BaoID').Value:=Trim(CDS_Main.fieldbyname('BaoID').AsString); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + + FieldByName('RKPlace').Value:=Trim(RKPlace.Text); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' '); + IF trim(gangNo.Text)<>'' then + sql.Add(',MJStr4='+Quotedstr(trim(gangNo.Text))); + sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=IntToStr(CRID); + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; + IF trim(gangNo.Text)<>'' then + FieldByName('AOrdDefstr1').Value:=trim(gangNo.Text) + else + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('SOrddefstr1').Value:=CDS_Main.fieldbyname('SOrddefstr1').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(CDS_Main.fieldbyname('BaoNo').AsString); + FieldByName('BaoID').Value:=Trim(CDS_Main.fieldbyname('BaoID').AsString); + FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; + FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; + FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; + FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; + FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; + FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; + FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; + Post; + end; + CDS_Main.Delete; + end; + CDS_Main.EnableControls; + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select Mainid from CK_BanCP_CR where RKOrdId='''+Trim(RKOrdID.Text)+''''); + SQL.Add(' group by MainId'); + Open; + end; + if ADOQueryCmd.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ͬʹͬⵥ!','ʾ',0); + Exit; + end;} + ADOQueryCmd.Connection.CommitTrans; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(Bao.Text); + Bao.Text:=''; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + Exit; + except + Bao.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; + + +procedure TfrmCpRkSaoMNewCS.N3Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(Fieldbyname('baoNo').AsString)<>'' then + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + end; + Next; + end; + end; + CDS_Main.EnableControls; +end; + +procedure TfrmCpRkSaoMNewCS.BaoNoChange(Sender: TObject); +var DBID:string; +begin + if BaoNo.Text<>'' then + begin + if GetLSNo(ADOQueryCmd,DBID,'DB','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + Bao.Text:=Trim(DBID); +end; + +procedure TfrmCpRkSaoMNewCS.MenuItem1Click(Sender: TObject); +begin + if CDS_MainSel.IsEmpty then Exit; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Sub.DisableControls; + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A '); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add(' where 1=2'); + Open; + end; + SCreateCDS20(Self.ADOQueryTemp,CDS_MainSel); + SInitCDSData20(Self.ADOQueryTemp,CDS_MainSel); + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2=''δ'' '); + sql.Add('where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID and B.RKOrdId='''+Trim(RKOrdId.Text)+''')'); + ExecSQL; + end; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); + sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); + sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); + sql.add(',F.RKOrdId,F.CRNote'); + sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join CK_BanCP_CR F on F.MJID=A.MJID'); + sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); + sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); + sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); + sql.Add('where F.RKOrdId='''+trim(RKOrdId.Text)+''''); + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Main); + SInitCDSData20(ADOQuerySub,CDS_Main); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.add(' CRTime=NULL'); + sql.Add(',CRType='''',CRFlag='''''); + sql.Add(',CRNote='''''); + sql.Add(',RKOrdId='''''); + SQL.Add(',RKPlace='''' '); + sql.Add('where RKOrdID='''+trim(RKOrdID.Text)+''''); + ExecSQL; + end; + MovePanel2.Visible:=False; + with ADOQuerySub do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); + sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); + sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); + sql.Add(' from CK_BanCP_CR A where A.CRFlag='''' and A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); + Open; + end; + SCreateCDS20(ADOQuerySub,ClientDataSet1); + SInitCDSData20(ADOQuerySub,ClientDataSet1); + RKOrdPS.Text:=Trim(ADOQuerySub.fieldbyname('ZPS').AsString)+'ƥ'; + with ClientDataSet1 DO + begin + First; + while not eof do + begin + if CRType.Text='' then + begin + IF not YFData(ClientDataSet1) then + begin + application.MessageBox('Ӧʧܣ','ʾϢ',0); + exit; + end; + end; + if CRType.Text='' then + begin + if YSData(ClientDataSet1)=False then + begin + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + end; + next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set '); + sql.Add('RKOrdId='''' '); + sql.Add('where RKOrdID='''+trim(RKOrdID.Text)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + except; + MovePanel2.Visible:=False; + CDS_MainSel.DisableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CpRkSaoMNewDB.dfm b/盛纺贸易管理/U_CpRkSaoMNewDB.dfm new file mode 100644 index 0000000..eb91430 --- /dev/null +++ b/盛纺贸易管理/U_CpRkSaoMNewDB.dfm @@ -0,0 +1,710 @@ +object frmCpRkSaoMNewDB: TfrmCpRkSaoMNewDB + Left = 31 + Top = 56 + Width = 1199 + Height = 652 + Caption = #25104#21697#25171#21253#25195#25551 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid2: TcxGrid + Left = 0 + Top = 209 + Width = 516 + Height = 405 + Align = alLeft + TabOrder = 0 + object Tv1: TcxGridDBTableView + PopupMenu = PopupMenu1 + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = v1Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1Column6: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 41 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 54 + end + object v1Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 44 + end + object v1Column5: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 43 + end + object v2Column5: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 67 + end + object v2Column6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 56 + end + object v1Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 53 + end + object v1Column7: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 56 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1183 + Height = 209 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 90 + Top = 137 + Width = 48 + Height = 12 + Caption = #25195#25551#20837#21475 + end + object Label4: TLabel + Left = 256 + Top = 137 + Width = 48 + Height = 12 + Caption = #20837#24211#26102#38388 + end + object Label5: TLabel + Left = 22 + Top = 157 + Width = 34 + Height = 48 + Caption = #20837#24211#13#10' '#21333#13#10#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 464 + Top = 137 + Width = 24 + Height = 12 + Caption = #24211#20301 + end + object Label7: TLabel + Left = 464 + Top = 168 + Width = 24 + Height = 12 + Caption = #21253#21495 + end + object BaoID: TEdit + Left = 139 + Top = 133 + Width = 110 + Height = 20 + TabOrder = 0 + OnKeyPress = BaoIDKeyPress + end + object Button2: TButton + Left = 701 + Top = 164 + Width = 57 + Height = 20 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 21 + Top = 133 + Width = 45 + Height = 20 + Caption = #36873#21333 + TabOrder = 2 + OnClick = Button3Click + end + object Button1: TButton + Left = 619 + Top = 164 + Width = 65 + Height = 20 + Caption = #25764#38144#20837#24211 + TabOrder = 3 + OnClick = Button1Click + end + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 1179 + Height = 120 + Align = alTop + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 78 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 100 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 119 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 83 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + object Button5: TButton + Left = 619 + Top = 133 + Width = 65 + Height = 20 + Caption = #20837#24211 + TabOrder = 5 + OnClick = Button5Click + end + object CRTime: TDateTimePicker + Left = 309 + Top = 133 + Width = 97 + Height = 20 + Date = 41337.663190821760000000 + Time = 41337.663190821760000000 + TabOrder = 6 + end + object Button6: TButton + Left = 365 + Top = 163 + Width = 40 + Height = 21 + Caption = #33719#21462 + TabOrder = 7 + OnClick = Button6Click + end + object RKOrdID: TEdit + Left = 59 + Top = 166 + Width = 205 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + end + object RKPlace: TBtnEditA + Left = 491 + Top = 133 + Width = 100 + Height = 20 + TabOrder = 9 + OnBtnClick = RKPlaceBtnClick + end + object BaoNo: TEdit + Left = 491 + Top = 164 + Width = 100 + Height = 20 + TabOrder = 10 + end + object RKOrdPS: TEdit + Left = 265 + Top = 164 + Width = 99 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + end + object Button7: TButton + Left = 365 + Top = 187 + Width = 41 + Height = 21 + Caption = #25171#21360 + TabOrder = 12 + OnClick = Button7Click + end + end + object cxGrid3: TcxGrid + Left = 516 + Top = 209 + Width = 667 + Height = 405 + Align = alClient + TabOrder = 2 + object Tv3: TcxGridDBTableView + PopupMenu = PopupMenu2 + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DS_MainSel + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Format = #21367#25968#37327#65306'#' + Kind = skCount + Column = cxGridDBColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v3Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 44 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 98 + end + object v3Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v3Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v3Column1: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'KgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 69 + end + object v3Column2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v3Column6: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v3Column7: TcxGridDBColumn + Caption = #20837#24211#21333#21495 + DataBinding.FieldName = 'RKOrdID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object MovePanel1: TMovePanel + Left = 8 + Top = 232 + Width = 506 + Height = 305 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 29 + Top = 48 + Width = 147 + Height = 48 + Caption = #24050#20837#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 421 + Top = 56 + Width = 49 + Height = 48 + Caption = #21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 181 + Top = 24 + Width = 241 + Height = 105 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '1234' + end + object Edit2: TEdit + Left = 38 + Top = 143 + Width = 386 + Height = 72 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Text = '91209120001' + end + object Button4: TButton + Left = 181 + Top = 248 + Width = 75 + Height = 41 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button4Click + end + end + object MovePanel2: TMovePanel + Left = 464 + Top = 272 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 976 + Top = 40 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 136 + Top = 216 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 96 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1072 + Top = 8 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 792 + Top = 64 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 872 + Top = 72 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 48 + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 288 + Top = 48 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 680 + Top = 64 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 56 + Top = 200 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 600 + Top = 72 + end + object DS_MainSel: TDataSource + DataSet = CDS_MainSel + Left = 616 + Top = 336 + end + object CDS_MainSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 648 + Top = 336 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 832 + Top = 312 + end + object PopupMenu1: TPopupMenu + Left = 288 + Top = 528 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object PopupMenu2: TPopupMenu + Left = 936 + Top = 480 + object MenuItem1: TMenuItem + Caption = #20840#36873 + OnClick = MenuItem1Click + end + object MenuItem2: TMenuItem + Caption = #20840#24323 + OnClick = MenuItem2Click + end + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 456 + Top = 176 + ReportData = {} + end +end diff --git a/盛纺贸易管理/U_CpRkSaoMNewDB.pas b/盛纺贸易管理/U_CpRkSaoMNewDB.pas new file mode 100644 index 0000000..61bb83a --- /dev/null +++ b/盛纺贸易管理/U_CpRkSaoMNewDB.pas @@ -0,0 +1,940 @@ +unit U_CpRkSaoMNewDB; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, + ComCtrls, BtnEdit, RM_System, RM_Common, RM_Class, RM_GridReport; + +type + TfrmCpRkSaoMNewDB = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + BaoID: TEdit; + Label1: TLabel; + v1Column5: TcxGridDBColumn; + Button2: TButton; + Button3: TButton; + CDS_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOQuerySub: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DS_MainSel: TDataSource; + CDS_MainSel: TClientDataSet; + v3Column1: TcxGridDBColumn; + Button1: TButton; + cxGridPopupMenu4: TcxGridPopupMenu; + MovePanel1: TMovePanel; + Edit1: TEdit; + Edit2: TEdit; + Label2: TLabel; + Label3: TLabel; + Button4: TButton; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column2: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + Button5: TButton; + v1Column7: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + MovePanel2: TMovePanel; + CRTime: TDateTimePicker; + Label4: TLabel; + Button6: TButton; + RKOrdID: TEdit; + RKPlace: TBtnEditA; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + BaoNo: TEdit; + RKOrdPS: TEdit; + Button7: TButton; + v3Column7: TcxGridDBColumn; + RM1: TRMGridReport; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure BaoIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure MenuItem1Click(Sender: TObject); + procedure MenuItem2Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure RKPlaceBtnClick(Sender: TObject); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button7Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + procedure InitSubGrid(); + procedure SavedataCK(); + public + { Public declarations } + end; + +var + frmCpRkSaoMNewDB: TfrmCpRkSaoMNewDB; + +implementation +uses +U_DataLink,U_Fun,U_OrderSelRK,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmCpRkSaoMNewDB.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmCpRkSaoMNewDB.FormDestroy(Sender: TObject); +begin + frmCpRkSaoMNewDB:=nil; +end; +procedure TfrmCpRkSaoMNewDB.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); + SQL.Add(',PRTColor=(select PRTColor from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select AOrdDefstr1 from JYOrder_Sub_AnPai where ApId=A.ApId)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add('from CK_BanCP_CR A'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); + SQL.Add(',PRTColor=(select PRTColor from JYOrder_Sub where SubId=A.SubId)'); + sql.Add(',AOrdDefstr1=(select AOrdDefstr1 from JYOrder_Sub_AnPai where ApId=A.ApId)'); + sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); + sql.Add('from CK_BanCP_CR A'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MainSel); + SInitCDSData20(ADOQueryMain,CDS_MainSel); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmCpRkSaoMNewDB.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ',Tv2,'Ʒֿ'); + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + ReadCxGrid('ƷSels',Tv3,'Ʒֿ'); + InitSubGrid(); + InitGrid(); + CRTime.DateTime:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmCpRkSaoMNewDB.BaoIDKeyPress(Sender: TObject; var Key: Char); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + if Key=#13 then + begin + if CDS_Sub.IsEmpty then + begin + BaoID.Text:=''; + Application.MessageBox('δѡɨ⣡','ʾ',0); + Exit; + end; + if CDS_Main.Locate('MJId',Trim(BaoID.Text),[])=False then + begin + BaoID.Text:=''; + //Application.MessageBox('˾ڴľУ','ʾ',0); + Exit; + end; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if Trim(RKPlace.Text)='' then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + CDS_Main.Locate('MJId',Trim(BaoID.Text),[]); + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('RKPlace').Value:=Trim(RKPlace.Text); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select Mainid from CK_BanCP_CR where RKOrdId='''+Trim(RKOrdID.Text)+''''); + SQL.Add(' group by MainId'); + Open; + end; + if ADOQueryCmd.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ͬʹͬⵥ!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=IntToStr(CRID); + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + Post; + end; + CDS_Main.Delete; + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(BaoID.Text); + BaoID.Text:=''; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + Exit; + except + BaoID.Text:=''; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end; +end; +procedure TfrmCpRkSaoMNewDB.SavedataCK(); +var + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + //if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; +end; +procedure TfrmCpRkSaoMNewDB.Button2Click(Sender: TObject); +begin + Close; + WriteCxGrid('ѡ',Tv2,'Ʒֿ'); + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); + WriteCxGrid('ƷSels',Tv3,'Ʒֿ'); +end; + +procedure TfrmCpRkSaoMNewDB.Button3Click(Sender: TObject); +begin + {if CDS_Main.IsEmpty=False then + begin + Application.MessageBox('ɨ費ܸĵţ','ʾ',0); + Exit; + end;} + try + frmOrderSelRK:=TfrmOrderSelRK.Create(Application); + with frmOrderSelRK do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + if Self.CDS_Sub.Locate('SubId',Trim(CDS_OrderSel.fieldbyname('SubId').AsString),[])=False then + begin + with Self.CDS_Sub do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_OrderSel.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_OrderSel.fieldbyname('SubId').AsString); + FieldByName('CustomerNo').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNo').AsString); + FieldByName('OrderNo').Value:=Trim(CDS_OrderSel.fieldbyname('OrderNo').AsString); + FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); + FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTOrderQty').Value:=Trim(CDS_OrderSel.fieldbyname('PRTOrderQty').AsString); + FieldByName('OrderUnit').Value:=Trim(CDS_OrderSel.fieldbyname('OrderUnit').AsString); + FieldByName('PRTColor').Value:=Trim(CDS_OrderSel.fieldbyname('PRTColor').AsString); + FieldByName('MPRTMF').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTMF').AsString); + FieldByName('MPRTKZ').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTKZ').AsString); + Post; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(Self.CDS_Sub.fieldbyname('SFlag').AsString)<>'2' then + begin + with Self.ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); + sql.Add(',PRTColor=(select PRTColor from JYOrder_Sub JS where JS.SubId=A.SubId) '); + sql.Add(',AOrdDefStr1=(select AOrdDefStr1 from JYOrder_Sub_AnPai JS where JS.APId=A.APId),A.* '); + sql.Add(' from WFB_MJJY A '); + sql.Add(' where isnull(A.MJStr2,'''')=''δ'' '); + SQL.Add(' and A.SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + Self.ADOQueryTemp.DisableControls; + with Self.ADOQueryTemp do + begin + First; + while not Eof do + begin + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=Self.ADOQueryTemp.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.ADOQueryTemp.fieldbyname('SubId').Value; + FieldByName('APId').Value:=Self.ADOQueryTemp.fieldbyname('APId').Value; + FieldByName('OrderNo').Value:=Self.ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.ADOQueryTemp.fieldbyname('MJMaoZ').Value; + FieldByName('Qty').Value:=Self.ADOQueryTemp.fieldbyname('MJLen').Value; + FieldByName('QtyUnit').Value:=Self.ADOQueryTemp.fieldbyname('MJTypeOther').Value; + FieldByName('MJId').Value:=Self.ADOQueryTemp.fieldbyname('MJId').Value; + FieldByName('CPType').Value:=Self.ADOQueryTemp.fieldbyname('MJType').Value; + FieldByName('PRTColor').Value:=Self.ADOQueryTemp.fieldbyname('PRTColor').Value; + FieldByName('AOrddefstr1').Value:=Self.ADOQueryTemp.fieldbyname('AOrddefstr1').Value; + FieldByName('MJXH').Value:=Self.ADOQueryTemp.fieldbyname('MJXH').Value; + Post; + end; + Next; + end; + end; + Self.ADOQueryTemp.EnableControls; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SFlag').Value:='2'; + CDS_Sub.Post; + Next; + end; + end; + CDS_Sub.EnableControls; + end; + end; + finally + frmOrderSelRK.Free; + end; +end; + +procedure TfrmCpRkSaoMNewDB.InitSubGrid(); +begin + try + ADOQuerySub.DisableControls; + with ADOQuerySub do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); + sql.Add(' where 1<>1 '); + + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_Sub); + SInitCDSData20(ADOQuerySub,CDS_Sub); + finally + ADOQuerySub.EnableControls; + end; +end; + + +procedure TfrmCpRkSaoMNewDB.Button1Click(Sender: TObject); +begin + if CDS_MainSel.IsEmpty then Exit; + if CDS_MainSel.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_MainSel.DisableControls; + with CDS_MainSel do + begin + First; + while not Eof do + begin + if CDS_MainSel.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete CK_BanCP_CR where BCID='''+Trim(CDS_MainSel.fieldbyname('BCID').AsString)+''''); + sql.Add('delete CK_BanCP_KC where CRID='+Trim(CDS_MainSel.fieldbyname('CRID').AsString)); + sql.Add('Update WFB_MJJY Set MJStr2=''δ'' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with CDS_Main do + begin + Append; + FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; + FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; + FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; + FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; + FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; + FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; + FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; + FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; + Post; + end; + CDS_MainSel.Delete; + end else + Next; + end; + end; + CDS_MainSel.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + MovePanel2.Visible:=False; + + MovePanel1.Visible:=True; + if CDS_MainSel.IsEmpty=False then + Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) + else + Edit1.Text:='0'; + Edit2.Text:=Trim(CDS_Main.fieldbyname('MJId').AsString); + if Trim(RKOrdID.Text)<>'' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + end; + except + MovePanel2.Visible:=False; + CDS_MainSel.DisableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNewDB.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MainSel.IsEmpty=False then Exit; + if CDS_Sub.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if Trim(CDS_Main.fieldbyname('SubId').AsString)=Trim(CDS_Sub.fieldbyname('SubId').AsString) then + begin + CDS_Main.Delete; + end else + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Sub.Delete; +end; + +procedure TfrmCpRkSaoMNewDB.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmCpRkSaoMNewDB.Button5Click(Sender: TObject); +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + if CDS_Sub.IsEmpty then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Trim(RKOrdID.Text)='' then + begin + Application.MessageBox('ⵥŲΪ!','ʾ',0); + Exit; + end; + if Trim(RKPlace.Text)='' then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִ','ʾ',32+4)<>IDYES then exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',CRTime.DateTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('RKPlace').Value:=Trim(RKPlace.Text); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJStr2='''' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with CDS_MainSel do + begin + Append; + FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; + FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; + FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; + FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; + FieldByName('CRId').Value:=IntToStr(CRID); + FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; + FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; + FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; + FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); + Post; + end; + CDS_Main.Delete; + end else + CDS_Main.Next; + end; + end; + CDS_Main.EnableControls; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select Mainid from CK_BanCP_CR where RKOrdId='''+Trim(RKOrdID.Text)+''''); + SQL.Add(' group by MainId'); + Open; + end; + if ADOQueryCmd.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ͬʹͬⵥ!','ʾ',0); + Exit; + end; + ADOQueryCmd.Connection.CommitTrans; + MovePanel2.Visible:=False; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; + Exit; + except + BaoID.Text:=''; + CDS_Main.EnableControls; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmCpRkSaoMNewDB.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmCpRkSaoMNewDB.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmCpRkSaoMNewDB.MenuItem1Click(Sender: TObject); +begin + SelOKNo(CDS_MainSel,True); +end; + +procedure TfrmCpRkSaoMNewDB.MenuItem2Click(Sender: TObject); +begin + SelOKNo(CDS_MainSel,False); +end; + +procedure TfrmCpRkSaoMNewDB.Button6Click(Sender: TObject); +var + maxno:string; +begin + if GetLSNo(ADOQueryCmd,maxno,'9','CK_BanCP_CR',4,1)=False then + begin + Application.MessageBox('ȡⵥʧ!','ʾ',0); + Exit; + end; + RKOrdID.Text:=Trim(maxno); +end; + +procedure TfrmCpRkSaoMNewDB.RKPlaceBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KuWei'; + flagname:='λ'; + if ShowModal=1 then + begin + RKPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmCpRkSaoMNewDB.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + RKOrdID.Text:=Trim(CDS_MainSel.fieldbyname('RKOrdID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); + Open; + end; + RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'ƥ'; +end; + +procedure TfrmCpRkSaoMNewDB.Button7Click(Sender: TObject); +var + fPrintFile:String; +begin + if Trim(RKOrdPS.Text)='' then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ⵥǩ.rmf' ; + if FileExists(fPrintFile) then + begin + CDS_MainSel.Locate('RKOrdID',Trim(RKOrdID.Text),[]); + RMVariables['RKOrdID']:=Trim(CDS_MainSel.fieldbyname('RKOrdID').AsString); + RMVariables['OrderNo']:=Trim(CDS_MainSel.fieldbyname('OrderNo').AsString); + RMVariables['PS']:=Trim(RKOrdPS.Text); + RMVariables['QtyUnit']:=Trim(CDS_MainSel.fieldbyname('QtyUnit').AsString); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ⵥǩ.rmf'),'ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_CustModelLabel.dfm b/盛纺贸易管理/U_CustModelLabel.dfm new file mode 100644 index 0000000..13ce0b4 --- /dev/null +++ b/盛纺贸易管理/U_CustModelLabel.dfm @@ -0,0 +1,264 @@ +object frmCustModelLabel: TfrmCustModelLabel + Left = 263 + Top = 84 + Width = 1194 + Height = 752 + Align = alClient + BorderIcons = [biMaximize] + Caption = #26631#31614#20449#24687 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object RMPreview1: TRMPreview + Left = 0 + Top = 80 + Width = 1178 + Height = 632 + Align = alClient + BevelOuter = bvLowered + Caption = 'Insert After' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + ParentShowHint = False + ShowHint = False + TabOrder = 0 + Options.RulerUnit = rmutScreenPixels + Options.RulerVisible = False + Options.DrawBorder = False + Options.BorderPen.Color = clGray + Options.BorderPen.Style = psDash + object cxGrid1: TcxGrid + Left = 181 + Top = 1 + Width = 335 + Height = 611 + Align = alLeft + TabOrder = 3 + object tv1: TcxGridDBTableView + OnDblClick = tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnCellClick = tv1CellClick + DataController.DataSource = DS_Label + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object tv1labelId: TcxGridDBColumn + Caption = #26631#31614'ID' + DataBinding.FieldName = 'labelId' + Visible = False + Width = 49 + end + object tv1labeltype: TcxGridDBColumn + Caption = #26631#31614#31867#22411 + DataBinding.FieldName = 'labeltype' + Visible = False + HeaderAlignmentHorz = taCenter + HeaderAlignmentVert = vaCenter + Width = 124 + end + object tv1labelCaption: TcxGridDBColumn + Caption = #26631#31614#26631#39064 + DataBinding.FieldName = 'labelCaption' + HeaderAlignmentHorz = taCenter + HeaderAlignmentVert = vaCenter + Width = 325 + end + object tv1labelFile: TcxGridDBColumn + Caption = #25991#20214#21517 + DataBinding.FieldName = 'labelFile' + Visible = False + HeaderAlignmentHorz = taCenter + HeaderAlignmentVert = vaCenter + Width = 191 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = tv1 + end + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1178 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 87 + Caption = 'ToolBar2' + Color = clBtnFace + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 1 + Transparent = False + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 21 + OnClick = ToolButton1Click + end + object TOK: TToolButton + Left = 65 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 41 + OnClick = TOkClick + end + object Tadd: TToolButton + Left = 130 + Top = 0 + AutoSize = True + Caption = #26032#22686#26631#31614 + ImageIndex = 44 + OnClick = TaddClick + end + object Tupd: TToolButton + Left = 221 + Top = 0 + AutoSize = True + Caption = #20462#25913#26631#31614 + ImageIndex = 54 + OnClick = TupdClick + end + object Tdel: TToolButton + Left = 312 + Top = 0 + AutoSize = True + Caption = #21024#38500#26631#31614 + ImageIndex = 48 + OnClick = TdelClick + end + object Tclose: TToolButton + Left = 403 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TcloseClick + end + end + object Panel4: TPanel + Left = 0 + Top = 32 + Width = 1178 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label10: TLabel + Left = 27 + Top = 16 + Width = 56 + Height = 13 + Caption = #26631#31614#26631#39064 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object LabelCaption: TEdit + Tag = 2 + Left = 87 + Top = 12 + Width = 246 + Height = 21 + TabOrder = 0 + OnChange = LabelTypeChange + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + CommandTimeout = 300 + Parameters = <> + Left = 508 + Top = 208 + end + object OpenDialog1: TOpenDialog + Filter = 'RMFl(*.rmf)|*.rmf' + InitialDir = '.' + Left = 316 + Top = 148 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + ModalPreview = False + ShowProgress = False + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + Preview = RMPreview1 + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 436 + Top = 152 + ReportData = {} + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + CommandTimeout = 300 + Parameters = <> + Left = 528 + Top = 184 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 392 + Top = 228 + end + object DS_Label: TDataSource + DataSet = ClientDataSet1 + Left = 66 + Top = 456 + end + object ADOQueryLabel: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + CommandTimeout = 300 + Parameters = <> + Left = 179 + Top = 319 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 163 + Top = 380 + end +end diff --git a/盛纺贸易管理/U_CustModelLabel.pas b/盛纺贸易管理/U_CustModelLabel.pas new file mode 100644 index 0000000..98e7c95 --- /dev/null +++ b/盛纺贸易管理/U_CustModelLabel.pas @@ -0,0 +1,245 @@ +unit U_CustModelLabel; + +interface + +uses + Windows, Messages, SysUtils, StrUtils,Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, ExtCtrls, DB, ADODB, + RM_System, RM_Common, RM_Class, RM_GridReport, Buttons, FTComboBox, + RM_Preview, RM_e_Xls, RM_e_Graphic, RM_e_bmp, RM_BarCode, + RM_DsgGridReport, RM_Dataset, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, DBClient; + +type + TfrmCustModelLabel = class(TForm) + ADOQueryCmd: TADOQuery; + OpenDialog1: TOpenDialog; + RMGridReport1: TRMGridReport; + ADOQueryTmp: TADOQuery; + RMPreview1: TRMPreview; + ADOQuery1: TADOQuery; + DS_Label: TDataSource; + ADOQueryLabel: TADOQuery; + ToolBar2: TToolBar; + Tadd: TToolButton; + Tupd: TToolButton; + Tdel: TToolButton; + TOK: TToolButton; + Tclose: TToolButton; + Panel4: TPanel; + ToolButton1: TToolButton; + Label10: TLabel; + LabelCaption: TEdit; + ClientDataSet1: TClientDataSet; + cxGrid1: TcxGrid; + tv1: TcxGridDBTableView; + tv1labelId: TcxGridDBColumn; + tv1labeltype: TcxGridDBColumn; + tv1labelCaption: TcxGridDBColumn; + tv1labelFile: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + procedure TcloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TaddClick(Sender: TObject); + procedure TupdClick(Sender: TObject); + procedure TdelClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure TOkClick(Sender: TObject); + procedure tv1DblClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure LabelTypeChange(Sender: TObject); + procedure tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + isLoad:Boolean; + function DeleteData():Boolean; + procedure InitGrid(); + procedure OpenLabel(); + public + fSelLabelId:String; + fKeyNo:string; + fchg:Boolean; + fIsShowModal:Boolean; + fWinStatus:integer; + end; + +var + frmCustModelLabel: TfrmCustModelLabel; + +implementation +uses + U_DataLink, U_LabelAdd,U_RTFun; +{$R *.dfm} + +procedure TfrmCustModelLabel.TcloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmCustModelLabel.FormCreate(Sender: TObject); +begin + fSelLabelId := ''; +end; + +procedure TfrmCustModelLabel.FormShow(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmCustModelLabel.TaddClick(Sender: TObject); +begin + + frmLabelAdd:=TfrmLabelAdd.create(self); + with frmLabelAdd do + begin + if showModal =1 then + begin + fchg:=true; + InitGrid(); + end; + free; + end; +end; + +procedure TfrmCustModelLabel.TupdClick(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then exit; + frmLabelAdd:=TfrmLabelAdd.create(self); + with frmLabelAdd do + begin + fKeyNo:=self.ClientDataSet1.fieldByName('LabelId').AsString ; + fWinstatus:=1; + if showModal =1 then + begin + fchg:=true; + InitGrid(); + end; + free; + end; +end; +///////////////////////////////////////////// + // +///////////////////////////////////////////// +procedure TfrmCustModelLabel.InitGrid(); +begin + try + isLoad:=false; + ADOQuerylabel.DisableControls ; + with ADOQuerylabel do + begin + close; + sql.Clear ; + sql.Add('select labelCaption,labelId from P_Label'); + sql.Add('where valid=''Y'''); + sql.Add(' order by FillTime desc'); + Open; + end; + SCreateCDS20(ADOQueryLabel,ClientDataSet1); + SInitCDSData20(ADOQueryLabel,ClientDataSet1); + finally + ADOQuerylabel.EnableControls; + isLoad:=true; + end; +end; +//////////////////////////////////////////////////////// + //ܣ򿪱ǩļ +//////////////////////////////////////////////////////// +procedure TfrmCustModelLabel.OpenLabel(); +begin + if ClientDataSet1.IsEmpty then exit; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from P_Label where labelId='+ClientDataSet1.fieldbyname('labelId').AsString); + Open; + end; + try + with RMGridReport1 do + begin + LoadFromBlobField(tblobfield(ADOQuery1.fieldbyname('labelFile'))); + ShowReport ; + RMPreview1.Refresh; + end; + except + end; +end; +function TfrmCustModelLabel.DeleteData():Boolean; +begin + try + with ADOQueryCmd do + begin + close; + sql.clear; + sql.Add('delete P_Label'); + sql.Add('where labelId='+ClientDataSet1.fieldByName('LabelID').asString); + execSql; + end; + result:=true; + except + result:=false; + application.MessageBox('ɾʧ!','Ϣ',0); + end; +end; +procedure TfrmCustModelLabel.TdelClick(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then exit; + if application.MessageBox('ȷҪɾ˱ǩ','Ϣ',1)=2 then exit; + if DeleteData() then + begin + fchg:=true; + ClientDataSet1.Delete; + end; +end; + +procedure TfrmCustModelLabel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + if fIsShowModal then + Application:=MainApplication ; + Action:=caFree; +end; + +procedure TfrmCustModelLabel.FormDestroy(Sender: TObject); +begin + frmCustModelLabel:=nil; +end; + +procedure TfrmCustModelLabel.TOkClick(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then Exit; + ModalResult:=1; +end; + +procedure TfrmCustModelLabel.tv1DblClick(Sender: TObject); +begin + TOk.Click ; +end; + +procedure TfrmCustModelLabel.ToolButton1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmCustModelLabel.LabelTypeChange(Sender: TObject); +begin + if ADOQueryLabel.Active=False then Exit; + SDofilter(ADOQueryLabel,SGetFilters(Panel4,1,2)); + SCreateCDS20(ADOQueryLabel,ClientDataSet1); + SInitCDSData20(ADOQueryLabel,ClientDataSet1); +end; + +procedure TfrmCustModelLabel.tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if isLoad then + OpenLabel(); +end; + +end. diff --git a/盛纺贸易管理/U_DJBCKKCList_HTSH.dfm b/盛纺贸易管理/U_DJBCKKCList_HTSH.dfm new file mode 100644 index 0000000..b445e21 --- /dev/null +++ b/盛纺贸易管理/U_DJBCKKCList_HTSH.dfm @@ -0,0 +1,528 @@ +object frmDJBCKKCList_PBSH: TfrmDJBCKKCList_PBSH + Left = 189 + Top = 129 + Width = 1167 + Height = 567 + Caption = #25104#21697#20986#24211#35746#21333#23545#27604 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1151 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_FMMD.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 0 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 20 + OnClick = TBFindClick + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + Caption = #23548#20986 + ImageIndex = 68 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1151 + Height = 60 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 457 + Top = 36 + Width = 48 + Height = 12 + Caption = #20135#21697#21517#31216 + end + object Label4: TLabel + Left = 458 + Top = 12 + Width = 48 + Height = 12 + Caption = #20135#21697#32534#21495 + end + object Label6: TLabel + Left = 618 + Top = 36 + Width = 24 + Height = 12 + Caption = #25104#20998 + end + object Label7: TLabel + Left = 184 + Top = 12 + Width = 48 + Height = 12 + Caption = #25351#31034#21333#21495 + end + object Label9: TLabel + Left = 184 + Top = 36 + Width = 48 + Height = 12 + Caption = #21512' '#21516' '#21495 + end + object Label10: TLabel + Left = 618 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label11: TLabel + Left = 346 + Top = 12 + Width = 24 + Height = 12 + Caption = #27454#21495 + end + object Label13: TLabel + Left = 346 + Top = 36 + Width = 24 + Height = 12 + Caption = #33457#21495 + end + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #26597#35810#26102#38388 + end + object Label2: TLabel + Left = 64 + Top = 36 + Width = 12 + Height = 12 + Caption = #33267 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 507 + Top = 32 + Width = 94 + Height = 20 + TabOrder = 0 + OnChange = TBFindClick + end + object MPRTCode: TEdit + Tag = 2 + Left = 507 + Top = 8 + Width = 94 + Height = 20 + TabOrder = 1 + OnChange = MPRTCodeChange + end + object MPRTCF: TEdit + Tag = 2 + Left = 644 + Top = 32 + Width = 96 + Height = 20 + TabOrder = 2 + OnChange = MPRTCodeChange + end + object OrderNo: TEdit + Tag = 2 + Left = 233 + Top = 8 + Width = 94 + Height = 20 + TabOrder = 3 + OnChange = MPRTCodeChange + end + object ConNoHZ: TEdit + Tag = 2 + Left = 233 + Top = 32 + Width = 94 + Height = 20 + TabOrder = 4 + OnChange = MPRTCodeChange + end + object PRTColor: TEdit + Tag = 2 + Left = 644 + Top = 8 + Width = 96 + Height = 20 + TabOrder = 5 + OnChange = MPRTCodeChange + end + object StyleNo: TEdit + Tag = 2 + Left = 371 + Top = 8 + Width = 65 + Height = 20 + TabOrder = 6 + OnChange = MPRTCodeChange + end + object PRTHX: TEdit + Tag = 2 + Left = 371 + Top = 32 + Width = 65 + Height = 20 + TabOrder = 7 + OnChange = MPRTCodeChange + end + object BegDate: TDateTimePicker + Left = 77 + Top = 8 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 8 + end + object EndDate: TDateTimePicker + Left = 77 + Top = 32 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 9 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 93 + Width = 1151 + Height = 436 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2DDQty3 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_FMMD.SHuangSe + Styles.IncSearch = DataLink_FMMD.SHuangSe + Styles.Selection = DataLink_FMMD.SHuangSe + Styles.Header = DataLink_FMMD.Default + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v2MPRTCode: TcxGridDBColumn + Tag = 2 + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PRTCode' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'prtspec' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 73 + end + object v1StyleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTColorNo: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1PRTHX: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 53 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1PRTColorEng: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1MPRTMF: TcxGridDBColumn + Tag = 2 + Caption = #25104#21697#38376#24133 + DataBinding.FieldName = 'prtmf' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #25104#21697#20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object v1PRTOrderQty: TcxGridDBColumn + Tag = 2 + Caption = #21512#21516#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_FMMD.FoneClMaroon + Width = 67 + end + object v2DDQty3: TcxGridDBColumn + Tag = 2 + Caption = '3%' + DataBinding.FieldName = 'DDQty3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_FMMD.FoneClMaroon + Width = 44 + end + object v1DDQty5: TcxGridDBColumn + Tag = 2 + Caption = '5%' + DataBinding.FieldName = 'DDQty5' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'Kg' + 'M' + 'Y') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_FMMD.FoneClMaroon + Width = 41 + end + object v1HCQty: TcxGridDBColumn + Tag = 2 + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'CKQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_FMMD.FoneClMaroon + Width = 73 + end + object v1BL3: TcxGridDBColumn + Caption = #36229#20986'3%' + DataBinding.FieldName = 'BL3' + HeaderAlignmentHorz = taCenter + Styles.Footer = DataLink_FMMD.FoneRed + Styles.Header = DataLink_FMMD.FoneClMaroon + Width = 52 + end + object v1BL5: TcxGridDBColumn + Caption = #36229#20986'5%' + DataBinding.FieldName = 'BL5' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_FMMD.FoneClMaroon + Width = 54 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_FMMD.ADOLink + Parameters = <> + Left = 792 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_FMMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 824 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_FMMD.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 760 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 360 + Top = 232 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 424 + Top = 232 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 392 + Top = 232 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 520 + Top = 232 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 488 + Top = 232 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 232 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 232 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_DJBCKKCList_HTSH.pas b/盛纺贸易管理/U_DJBCKKCList_HTSH.pas new file mode 100644 index 0000000..f4d4ec0 --- /dev/null +++ b/盛纺贸易管理/U_DJBCKKCList_HTSH.pas @@ -0,0 +1,229 @@ +unit U_DJBCKKCList_HTSH; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit; + +type + TfrmDJBCKKCList_PBSH = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + RMDBHZ: TRMDBDataSet; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v2MPRTCode: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v2DDQty3: TcxGridDBColumn; + v1DDQty5: TcxGridDBColumn; + v1HCQty: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + Label3: TLabel; + Label4: TLabel; + Label6: TLabel; + Label7: TLabel; + MPRTCodeName: TEdit; + MPRTCode: TEdit; + MPRTCF: TEdit; + OrderNo: TEdit; + v1PRTColorNo: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTHX: TcxGridDBColumn; + Label9: TLabel; + ConNoHZ: TEdit; + Label10: TLabel; + PRTColor: TEdit; + Label11: TLabel; + StyleNo: TEdit; + Label13: TLabel; + PRTHX: TEdit; + ToolButton2: TToolButton; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + v1ConNo: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1PRTColorEng: TcxGridDBColumn; + v1BL3: TcxGridDBColumn; + v1StyleNo: TcxGridDBColumn; + v1BL5: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure MPRTCodeNameChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure SXBatchNOChange(Sender: TObject); + procedure MPRTCodeChange(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton2Click(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + canshu1:string; + { Public declarations } + end; + +var + frmDJBCKKCList_PBSH: TfrmDJBCKKCList_PBSH; + +implementation +uses + U_DataLink,U_RTFun,U_SXCKInPut; + +{$R *.dfm} + +procedure TfrmDJBCKKCList_PBSH.FormDestroy(Sender: TObject); +begin + frmDJBCKKCList_PBSH:=nil; +end; + +procedure TfrmDJBCKKCList_PBSH.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmDJBCKKCList_PBSH.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select AA.*,BL3=(CKQty-DDQty3),BL5=(CKQty-DDQty5) '); + sql.add(' from (select A.*,B.StyleNo,B.PrtCode,B.PrtCodeName,B.PRTspec,B.SOrdDefStr4,B.PRTColorNo,B.PRTHX,B.PRTColor,B.PRTOrderQty, '); + sql.add(' DDQty3=(B.PRTOrderQty*1.03),DDQty5=(B.PRTOrderQty*1.05),'); + sql.add(' CKQty=(select Sum(D.MJQty4) from CK_BanCP_CR C inner join WFB_MJJY D on D.MJID=C.MJID '); + sql.add(' where D.ConID=B.SubId and C.CRFlag='''') '); + sql.Add(' from JYOrderCon_Main A '); + sql.add(' inner join JYOrderCon_Sub B on B.Mainid=A.Mainid '); + sql.add(' where A.OrdDate>='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''' '); + sql.Add(' and A.OrdDate<'''+trim(formatdatetime('yyyy-MM-dd',EndDate.DateTime+1))+''' '); + if trim(canshu1)<>'Ȩ' then + sql.add('(A.FillerCode='''+Trim(DCode)+''' or A.KeFu='''+Trim(DName)+''' or A.ConPerson1='''+Trim(DName)+''') '); + sql.add(') AA'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmDJBCKKCList_PBSH.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmDJBCKKCList_PBSH.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmDJBCKKCList_PBSH.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('',Tv1,'첼ֿ'); + Close; +end; + +procedure TfrmDJBCKKCList_PBSH.FormShow(Sender: TObject); +begin + ReadCxGrid('',Tv1,'첼ֿ'); + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + BegDate.DateTime:=EndDate.DateTime-30; + canshu1:=trim(DParameters1); + InitGrid(); +end; + +procedure TfrmDJBCKKCList_PBSH.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmDJBCKKCList_PBSH.MPRTCodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmDJBCKKCList_PBSH.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmDJBCKKCList_PBSH.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmDJBCKKCList_PBSH.SXBatchNOChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmDJBCKKCList_PBSH.MPRTCodeChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmDJBCKKCList_PBSH.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ModalResult:=1; +end; + +procedure TfrmDJBCKKCList_PBSH.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel('첼',cxGrid2); +end; + +end. diff --git a/盛纺贸易管理/U_DJBRKList_CX.dfm b/盛纺贸易管理/U_DJBRKList_CX.dfm new file mode 100644 index 0000000..be02621 --- /dev/null +++ b/盛纺贸易管理/U_DJBRKList_CX.dfm @@ -0,0 +1,590 @@ +object frmDJBRKList_CX: TfrmDJBRKList_CX + Left = 192 + Top = 139 + Width = 1357 + Height = 636 + Caption = #24453#26816#24067#20837#24211#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1341 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 62 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1341 + Height = 66 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 200 + Top = 13 + Width = 26 + Height = 13 + Caption = #21697#21517 + end + object Label4: TLabel + Left = 326 + Top = 13 + Width = 39 + Height = 13 + Caption = #21152#24037#21378 + end + object Label8: TLabel + Left = 200 + Top = 39 + Width = 26 + Height = 13 + Caption = #35268#26684 + end + object Label6: TLabel + Left = 326 + Top = 39 + Width = 40 + Height = 13 + Caption = #25104' '#20998 + end + object Label7: TLabel + Left = 463 + Top = 39 + Width = 52 + Height = 13 + Caption = #25351#31034#21333#21495 + end + object Label9: TLabel + Left = 463 + Top = 13 + Width = 52 + Height = 13 + Caption = #23384#25918#24037#21378 + end + object Label12: TLabel + Left = 48 + Top = 39 + Width = 52 + Height = 13 + Caption = #20837#24211#31867#22411 + end + object Label10: TLabel + Left = 616 + Top = 13 + Width = 54 + Height = 13 + Caption = #24211' '#20301 + end + object Label11: TLabel + Left = 617 + Top = 39 + Width = 52 + Height = 13 + Caption = #26579#21378#32568#21495 + end + object Label13: TLabel + Left = 768 + Top = 13 + Width = 26 + Height = 13 + Caption = #39068#33394 + end + object Label14: TLabel + Left = 768 + Top = 39 + Width = 26 + Height = 13 + Caption = #33394#21495 + end + object Label15: TLabel + Left = 894 + Top = 13 + Width = 26 + Height = 13 + Caption = #33457#21495 + end + object Label16: TLabel + Left = 48 + Top = 14 + Width = 39 + Height = 13 + Caption = #21512#21516#21495 + end + object SPName: TEdit + Tag = 2 + Left = 229 + Top = 10 + Width = 86 + Height = 21 + TabOrder = 0 + OnChange = TBFindClick + end + object FactoryName: TEdit + Tag = 2 + Left = 366 + Top = 10 + Width = 87 + Height = 21 + TabOrder = 1 + OnChange = FactoryNameChange + end + object SPSpec: TEdit + Tag = 2 + Left = 229 + Top = 35 + Width = 86 + Height = 21 + TabOrder = 2 + OnChange = SPSpecChange + end + object SPCF: TEdit + Tag = 2 + Left = 366 + Top = 35 + Width = 87 + Height = 21 + TabOrder = 3 + OnChange = FactoryNameChange + end + object OrderNo: TEdit + Tag = 2 + Left = 518 + Top = 36 + Width = 87 + Height = 21 + TabOrder = 4 + OnChange = FactoryNameChange + end + object ToFactoryName: TEdit + Tag = 2 + Left = 518 + Top = 10 + Width = 87 + Height = 21 + TabOrder = 5 + OnChange = FactoryNameChange + end + object CRType: TComboBox + Tag = 2 + Left = 102 + Top = 35 + Width = 87 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 6 + OnChange = TBFindClick + Items.Strings = ( + #21152#24037#23436#25104 + #22238#20462#23436#25104 + #26816#39564#36864#22238 + #26399#21021#20837#24211 + '') + end + object KuWei: TEdit + Tag = 2 + Left = 672 + Top = 10 + Width = 87 + Height = 21 + TabOrder = 7 + OnChange = FactoryNameChange + end + object RCGangNo: TEdit + Tag = 2 + Left = 672 + Top = 36 + Width = 87 + Height = 21 + TabOrder = 8 + OnChange = FactoryNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 795 + Top = 10 + Width = 87 + Height = 21 + TabOrder = 9 + OnChange = FactoryNameChange + end + object PRTColorNo: TEdit + Tag = 2 + Left = 795 + Top = 36 + Width = 87 + Height = 21 + TabOrder = 10 + OnChange = FactoryNameChange + end + object PRTHX: TEdit + Tag = 2 + Left = 922 + Top = 10 + Width = 87 + Height = 21 + TabOrder = 11 + OnChange = FactoryNameChange + end + object ConNOHZ: TEdit + Tag = 2 + Left = 102 + Top = 11 + Width = 87 + Height = 21 + TabOrder = 12 + OnChange = FactoryNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 99 + Width = 1341 + Height = 497 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #20837#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 100 + end + object v1Column4: TcxGridDBColumn + Tag = 2 + Caption = #20837#24211#31867#22411 + DataBinding.FieldName = 'CRType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + #21152#24037#23436#25104 + #29983#20135#36864#22238) + HeaderAlignmentHorz = taCenter + Width = 83 + end + object v1Column13: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 89 + end + object v1Column5: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column15: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v1Column17: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 101 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'SPName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #35268#26684 + DataBinding.FieldName = 'SPSpec' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 65 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #25104#20998 + DataBinding.FieldName = 'SPCF' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 73 + end + object v1CKName: TcxGridDBColumn + Caption = #20179#24211#31867#22411 + DataBinding.FieldName = 'CKName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #25104#21697#38376#24133 + DataBinding.FieldName = 'SPMF' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column10: TcxGridDBColumn + Tag = 2 + Caption = #25104#21697#20811#37325 + DataBinding.FieldName = 'SPKZ' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Column11: TcxGridDBColumn + Tag = 2 + Caption = #23384#25918#24037#21378 + DataBinding.FieldName = 'ToFactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1Column18: TcxGridDBColumn + Caption = #24211#20301 + DataBinding.FieldName = 'KuWei' + HeaderAlignmentHorz = taCenter + Width = 86 + end + object v1Column19: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'RCGangNo' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v1BPType: TcxGridDBColumn + Caption = #24067#21305#31867#22411 + DataBinding.FieldName = 'BPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #21305#25968 + DataBinding.FieldName = 'PiQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'Kg' + 'M' + 'Y') + HeaderAlignmentHorz = taCenter + Width = 66 + end + object v1Column16: TcxGridDBColumn + Tag = 2 + Caption = #26469#33258#24037#21378 + DataBinding.FieldName = 'FromFactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 79 + end + object v1ConNoHZ: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 584 + Top = 8 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 544 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 616 + Top = 8 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 616 + Top = 232 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 584 + Top = 232 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 552 + Top = 232 + end +end diff --git a/盛纺贸易管理/U_DJBRKList_CX.pas b/盛纺贸易管理/U_DJBRKList_CX.pas new file mode 100644 index 0000000..5a0c707 --- /dev/null +++ b/盛纺贸易管理/U_DJBRKList_CX.pas @@ -0,0 +1,229 @@ +unit U_DJBRKList_CX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit; + +type + TfrmDJBRKList_CX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + Label3: TLabel; + Label4: TLabel; + Label8: TLabel; + SPName: TEdit; + FactoryName: TEdit; + SPSpec: TEdit; + Label6: TLabel; + SPCF: TEdit; + Label7: TLabel; + OrderNo: TEdit; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + Label9: TLabel; + ToFactoryName: TEdit; + Label12: TLabel; + CRType: TComboBox; + v1Column18: TcxGridDBColumn; + Label10: TLabel; + KuWei: TEdit; + v1Column19: TcxGridDBColumn; + Label11: TLabel; + RCGangNo: TEdit; + Label13: TLabel; + PRTColor: TEdit; + Label14: TLabel; + PRTColorNo: TEdit; + Label15: TLabel; + PRTHX: TEdit; + v1BPType: TcxGridDBColumn; + v1ConNoHZ: TcxGridDBColumn; + Label16: TLabel; + ConNOHZ: TEdit; + v1CKName: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure SPIDChange(Sender: TObject); + procedure SPSpecChange(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + private + canshu1,canshu2:string; + procedure InitGrid(); + { Private declarations } + public + FFactoryName,FOrderNo:string; + { Public declarations } + end; + +var + frmDJBRKList_CX: TfrmDJBRKList_CX; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmDJBRKList_CX.FormDestroy(Sender: TObject); +begin + frmDJBRKList_CX:=nil; +end; + +procedure TfrmDJBRKList_CX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmDJBRKList_CX.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmDJBRKList_CX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select A.* '); + sql.Add(',ConNoHZ=[dbo].[F_Get_Order_SubStr](A.ORDMainIdRK,''ConNoHZ'') '); + sql.Add(',OrderNO=(select OrderNO from JYOrder_Main JM where JM.MainId=A.ORDMainIdRK)'); + sql.Add(' ,PRTColorNo=(select PRTColorNo from JYOrder_Sub JM where JM.SubId=A.OrdSubIdRK )'); + sql.Add(' ,PRTColor=(select PRTColor from JYOrder_Sub JM where JM.SubId=A.OrdSubIdRK )'); + sql.Add(' ,PRTHX=(select PRTHX from JYOrder_Sub JM where JM.SubId=A.OrdSubIdRK )'); + sql.Add(' from CK_SXPB_CR A'); + sql.add(' where FactoryName='''+trim(FFactoryName)+''''); + sql.Add(' and (select OrderNO from JYOrder_Main JM where JM.MainId=A.ORDMainIdRK)='''+trim(FOrderNo)+''''); + SQL.Add(' and CRFlag='''' '); + SQL.Add(' order by A.CRTime desc'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmDJBRKList_CX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmDJBRKList_CX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmDJBRKList_CX.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('첼б',Tv1,'첼ֿ'); + Close; +end; + +procedure TfrmDJBRKList_CX.FormShow(Sender: TObject); +begin + + ReadCxGrid('첼б',Tv1,'첼ֿ'); + InitGrid(); +end; + +procedure TfrmDJBRKList_CX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('첼б',cxGrid2); +end; + +procedure TfrmDJBRKList_CX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmDJBRKList_CX.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmDJBRKList_CX.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmDJBRKList_CX.SPIDChange(Sender: TObject); +begin + + TBFind.Click; +end; + +procedure TfrmDJBRKList_CX.SPSpecChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmDJBRKList_CX.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_DataLink.dfm b/盛纺贸易管理/U_DataLink.dfm new file mode 100644 index 0000000..1db3a7b --- /dev/null +++ b/盛纺贸易管理/U_DataLink.dfm @@ -0,0 +1,17988 @@ +object DataLink_TradeManage: TDataLink_TradeManage + OldCreateOrder = False + OnDestroy = DataModuleDestroy + Left = 276 + Top = 210 + Height = 296 + Width = 410 + object AdoDataLink: TADOQuery + Connection = ADOLink + Parameters = <> + Left = 136 + Top = 8 + end + object ADOLink: TADOConnection + LoginPrompt = False + Left = 48 + Top = 8 + end + object ThreeImgList: TImageList + Height = 24 + Width = 24 + Left = 48 + Top = 72 + Bitmap = { + 494C01018900F000040018001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 000000000000360000002800000060000000A005000001002000000000000070 + 0800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008195DB0028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 73002839730028397300283973007287D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A4B3E50031437F002B38 + 680026335B002B396C008E9FD400C0C0C000C1C1C100C7C7C700C8C8C800D5D5 + D500DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCCC + CC003E5291002B3767002A386800445799004D60A1005166AC005267AC005166 + AE005267AB005064A8004E63A7004A5D9B002F3D6E0029366400293665009FAD + DC00D3D3D3000000000000000000000000002D3E7C00092EAA000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7003B57B400354682000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536AB6007089DA005570 + CD003E5ABA00566EBC0047589200B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CBCBCB0093A2 + D800475891005166B1004E60A2004E69C0003B58BA003856B9003B58B9003754 + B7003653B6003552B300304DAF003551AE003545790047568D004C60A3002A37 + 670092A1D7000000000000000000000000004057A7002345B600042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042AAA000328 + A300042AAA00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC004157A200334A9300374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000000000006782DF006983DC00617C + D6004461C2003A57B800576EBC00283A7700B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004860 + B200506BC8003B5BC4005570CA005E78D1003D5DC8004664CA004563C9004563 + C9004361C7003F5DC3003B5AC0003151BA0049598E004E67B800324EAE004A5A + 93004157A400000000000000000000000000A7B7ED00435EBA00153AB7000930 + B3000930B3000930B3000930B3000930B3000930B3000930B3008191C600FFFF + FF00FFFFFF000930B3000930B3000930B3000930B3000930B3000930B3000930 + B3000930B3000F35B5003D4F8D008499DF0033478A004F6CCC004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC004F6CCC0033478A0000000000000000006F8AE5007891E300758E + DF005873CF004663C3003A57B80047589300283B7800B7C5F100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003C52 + 9E005978E100617FE4006F8BE800859DED006D89E9006E8AEA006C89E9006B88 + E8006986E7006481E300617EE1005C7ADE007F93D4005270D3004362CB005971 + C10033458400000000000000000000000000000000003A4E93004E69C0002449 + C500163DC100163DC100163DC100163DC100163DC100153AB800FFFFFF00FFFF + FF00FFFFFF00153AB800163DC100163DC100163DC100163DC100163DC100163D + C1001F45C4004E69C600A8B7EE00000000004158A7001B47D800204BD900224C + D9001B47D800829AE9004158A700000000004158A700829AE900204BD900224C + D900204BD900829AE9004158A700000000004158A700829AE9001B47D800224C + D900204BD9001B47D8004158A7000000000000000000778ACD009EB0EF00829A + E800778FE00096A8E3008292C800344EA200576EBC0048599300B7C5F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435B + AD006E8CEF007994F1007C97F3008DA5F500819BF400829CF500809AF4007F9A + F4007C97F3007692EF00738FED006F8BEB007F98E9005F7DE0005876DB006079 + CC00384C900000000000000000000000000000000000617ACE004E61A5004666 + D0001D44C9001D44C9001D44C9001D44C9001D44C9001C43C500A8B4DC00FFFF + FF00FFFFFF001D44C9001D44C9001D44C9001D44C9001D44C9001D44C9001D44 + C9003E60D0005066AD0000000000000000004961B6002D58E7003861E9003A62 + E9002C57E7009BAFF3004961B600000000004961B6009BAFF3003861E9003A62 + E900365FE8009BAFF3004961B600000000004961B6009BAFF3002D58E7003A62 + E900365FE8002C57E7004961B60000000000000000003F59B0007E90D000A1B3 + EF00839AE5008A96BD00B3C0EB00384F9C00344EA200576EBC002A3D7900B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004862 + B9007A96F4008AA3F6008EA6F60092A9F60093AAF60093AAF60092A9F60091A8 + F6008EA6F60088A2F600839DF400809AF4007591EF006F8BEB006784E700637E + D5003D539C0000000000000000000000000000000000000000003A53A1005A73 + C600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF001C3CA6004660 + B6004660B600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002F54 + D2005974CB003E549E0000000000000000004F69C0003C65EF00496FF0004C72 + F1003A64EF00A9BBF8004F69C000000000004F69C000A9BBF800496FF0004C72 + F100476EF000A9BBF8004F69C000000000004F69C000A9BBF8003C65EF004C72 + F100476EF0003A64EF004F69C0000000000000000000BECCF5004059B0007F92 + D100849BE8004E5C8A008A96BD008292C800384F9C00344EA200495A93002B3D + 7A00B7C5F1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DE00859FF5009FB3F700B2C2F900B7C7F900B8C7F900B9C8F900B7C7F900B5C5 + F900B3C3F900ABBDF800A6B9F800A0B4F70094ABF6008CA5F6007894F400617A + CE006B85DA00000000000000000000000000000000000000000000000000455E + B200476ADF003158DB003158DB003158DB003158DB003158DB0092A2D700FFFF + FF00FFFFFF003158DB003158DB003158DB003158DB003158DB003158DB00657E + D0004159AB000000000000000000000000005770C700BBC9F600BECBF700BFCC + F600BAC8F600B5C4F5005770C700000000005770C700B5C4F500BECBF700BFCC + F600BECBF700B5C4F5005770C700000000005770C700B5C4F500BBC9F600BFCC + F600BECBF700BAC8F6005770C70000000000000000000000000000000000BECC + F5008093D100A2B4EF006576AF008A96BD00B3C0EB008292C800344EA200566E + BC00495A9500B7C5F10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3DB + F8007C95E8009DB2F700B2C2F900C9D5FB00BAC5E800AEB8D800A1AAC900A0A9 + C8009DA7C8009AA6CE009CAAD700A1B1E6009FB3F7008CA5F6007E99F500556E + C200D2DBF8000000000000000000000000000000000000000000000000009AAD + EC006984E0003C62E200375EE000375EE000375EE000375EE00095A5D900FFFF + FF00FFFFFF00375EE000375EE000375EE000375EE000375EE000395FE000566C + B600748ADC000000000000000000000000005B76D2005872C9005872C9007A7E + 8E005872C9005872C9005B76D200000000005B76D2005872C9005872C9006F74 + 83005872C9005872C9005B76D200000000005B76D2005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000435CB2007C8FD1009AADEF004E5C8A008A96BD00B3C0EB00384F9C00344E + A200576EBC002C3F7C00B7C5F100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E76C700869DE9009CB1F700A2AFD900ADB5CF00D6D9E100EDECEB00ECEB + EA00ECEBEA00E4E4E800D2D5E100A2ACCE0097ADF70088A2F6007791E70092A5 + EC00000000000000000000000000000000000000000000000000000000000000 + 0000687ECB00587AE9003E64E5003E64E5003E64E5003E64E50097A7DB00FFFF + FF00FFFFFF003E64E5003E64E5003E64E5003E64E5003E64E5005073E8004A63 + BB00000000000000000000000000000000000000000000000000000000007878 + 7800000000000000000000000000000000000000000000000000000000006666 + 6600000000000000000000000000000000000000000000000000000000005656 + 5600000000000000000000000000000000000000000000000000000000000000 + 0000BECCF500445DB3007C90D1006576AF004E5C8A008A96BD008292C800384F + 9C00344EA2004A5B95002D3F7C00B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED8F7006B84DB005C72BD00C7CBDB00CDCBCA00A19F9E009997 + 960099989600B8B7B500D1D0CE00CACEDE005972C5006B84DB00CED8F7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000657FD9006C83CD006686F2004C71F0004C71F0004C71F000CDD4EE00FFFF + FF00FFFFFF004C71F0004C71F0004C71F0004C71F0006182F1007087D4000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000000000000000000000000000000000000000000000000000000000008080 + 8000000000000000000000000000000000000000000000000000000000007070 + 7000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BECCF5008294D300A2B4EF006576AF008A96BD00B3C0 + EB008292C800344EA200576EBC004B5C9500B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000093A7ED006475AC0083879400ACAAA900C3C1 + C000C7C5C4009896950081879B006879B4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D2DBF800536CC1008098E7005176F1005176F1005176F100CFD6EF00FFFF + FF00FFFFFF005176F1005176F1005176F100597CF2007E97ED005870C3000000 + 0000000000000000000000000000000000000000000000000000000000009D9D + 9D009A9A9A0099999900989898009494940094949400919191008E8E8E008C8C + 8C008C8C8C008888880088888800858585008282820080808000808080007C7C + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465FB5008395D300A2B4EF004E5C8A008A96 + BD00B3C0EB00384F9C003B58B800576EBC002F3E750032437D00354787003B50 + 98004C64BB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009D9D9D005D5C5C00A9A7A500AFAD + AB00B7B5B300C0BEBD00646363009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E3006B81CC00587CF200587CF200587CF200D1D8EF00FFFF + FF00FFFFFF00587CF200587CF200587CF200718FF4007388D200607AD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009999 + 9900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF5004760B6008396D4006576AF004F5D + 8A008A96BD008292C8004663C3003C59B900596DAF00586CAF005D72B800647B + C8005C70B1004760B40000000000000000000000000000000000000000000000 + 000000000000000000000000000059595900ACABAA00C2C1C000BDBCBA00B7B6 + B400AFADAB00A8A6A500B7B5B400AEADAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000839AE800869FF3006686F3006586F300F3F5FA00FFFF + FF00FFFFFF006586F3006586F3006586F300758AD1007189DF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000364C99002B3D7B002B3D7B002B3D7B006367 + 73002B3D7B002B3D7B002B3D7B00364C99000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5007F92D400A2B4 + EF00869DE800778FE0006781D7005873CF003351B600203FA6000C2C96001B3B + A8003D5ABD00667FD0004861B400000000000000000000000000000000000000 + 00000000000000000000000000007E7E7D00D1D0D000D2D2D100CDCCCB00C7C6 + C500BFBDBC00A8A6A400A8A6A400B9B7B600AAAAAA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008B9FE0007E99F5006B8AF300FFFFFF00FFFF + FF00FFFFFF006B8AF3006B8AF3007A96F400526CC50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031448600657ED100506CCA00506CCA00506C + CA00506CCA00506CCA00657ED100314486000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004963B9008597 + D500A4B5EF00849BE600778FE0006781D7004461C200415DBA00445EB4001433 + 9B001839A7003A58BC005F73B4004A62B5000000000000000000000000000000 + 0000000000000000000000000000C2C1C100E0DFDE00E1E0E000DBDBDA00D5D4 + D300CCCBCA00B4B3B100A6A4A300ACAAA8006969690000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005F77C90097ACF2007592F4005B73C3005B73 + C3005B73C3007290F4007491F40090A7F300849BE80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000374C94006580D8000732C1000833C1000833 + C1000833C1000631C1006681D900374C94000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004A63 + BA008799D60093A7EB00859BE600778FE0008196DA0099A8D9008F9DCD008191 + C7003853AB001536A5005E78CD003F549B000000000000000000000000000000 + 0000000000000000000000000000A9A9A8004D4D4D00F7F6F600F1F1F100EBEA + EA00E2E1E000C8C7C600B9B7B60070706F004D4D4D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005C75C8009FB1EF007F9AF5007F9A + F5007F9AF500829CF500A1B4F300687FCD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445BAC00869EEC002C55DE003D62DF003E63 + DF003C61DF002A53DD00869EEC00445BAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D66BB00A3B5F1009EB0EF008FA4EA00596CAD00AAB9EF0000000000536B + BC005A6999007F8FC400546DBE003A4C8B000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00FDFDFD00F8F8F800F2F1 + F100E9E8E800CFCECD00B9B7B6004D4D4D004D4D4D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000006B84DE008699DB00859FF500859F + F500859FF50096ACF7008FA2E0005E79D6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63B900A1B4F600446BEC005F80EE006383 + EF005E7FEE004269EC00A1B4F6004A63B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004E67BD00A7B8F300A7B8F10095A9ED004C65BB0000000000000000000000 + 0000465CAA006B79A8004F66B400374883000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00BCBCBC00E6E6E600CBCB + CB00BABAB9009A9999007A7A79004D4D4D006969690000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF9005C75CC0094ABF6008CA5 + F6008CA5F600A6B7F100647CCD00AFBFF3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F68BF00A6B9F800567AF2007B97F4007F9A + F5007995F4005378F100A5B8F8004F68BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC000A3B5F400ADBDF4009DB0F1004D62AF00D1DAF800000000000000 + 0000000000003F56A1007284C00034437B000000000000000000000000000000 + 0000000000000000000000000000515151004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A7B6EB00A4B7 + F800A2B6F8005E77CA00D3DBF900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556EC500B8C7F900597CF2007E99F500829C + F5007C97F400577BF200B7C7F900556EC5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C77D400AABBF5009BB0F50097ACF300829BEB006D81C9005169C1000000 + 000000000000000000003D5299003D539D000000000000000000000000000000 + 0000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CF00B2C0 + F100B1BFF1007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005771C800B7C6F600BFCCF500C6D1F700C7D2 + F700C6D1F700BECBF500B7C6F6005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008C9EDC00A9BAF50090A7F3007B95EE007993EA006C81C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D00AAAAAA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007C93E6005771 + C9005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005B76D2005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005B76D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005974CF008C9EDD00A5B7F5007490EE00718DED006E8AE800526B + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D600556FC500556EC400546DC1005169 + BB00546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000038477E0041486200404761003E455F003D44 + 5F003C435E003B435D003B425D003A415C000000000000000000000000000000 + 000000000000000000000000000000000000000000002F3E710045569500475C + A400435AA700435AA700435AA600435AA500445BA600435AA500445AA5004359 + A4004359A3004359A2004359A2004359A1004358A0004358A00043589F004358 + 9F00495A990044528B0043569E00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CACACA00596FB9003E5194003E51 + 94003E5194003E5194003E5194003D5092003B4D8B00384A860034447C003241 + 77002F3E71002A3867002936620040529200C3C3C300DBDBDB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000474E6A007A8ABF0013339F0013339F001333 + 9F0013339F0013339F0013339F007988BD000000000000000000000000000000 + 0000000000000000000000000000000000006279C9004660B4002747B000072B + A3000328A0000328A00003279F0003279F0003279E0003279D0003269C000326 + 9B0003269A000326990003269800032597000325960003259500032594000324 + 9300072895002743A2002E3D6F008EA1E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005E72B6008DA1E40090A5 + EB008DA3ED008BA2ED00879EEB008199E9007E96E4007B92E000758CD7007187 + D1006E84CC00687CC0006F7FB7004D5B8A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000048516E007B8BC10003279E0003279E000327 + 9E0003279E0003279E0003279E007B8BC0000000000000000000000000000000 + 000000000000000000000000000000000000283C80002748B5000429A8000429 + A7000429A6000429A5000429A5000328A3000328A2000328A2000328A0000328 + A00003279F0003279E0003279E0003279D0003269B0003269B0003269A000326 + 99000326980003259700495A99002D428A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008AA0EB00829CF5007995 + F4007290F4006989F3006082F2004C71ED004469E6003A5FDE00274DCD001D43 + C300143AB9000328A3003652AF006E7EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004B5472007C8CC3000328A2000328A2000328 + A2000328A2000328A2000328A2007B8BC3000000000000000000000000000000 + 0000000000000000000000000000000000002B3E8100042CB300042CB200042C + B20003238D00506BC800042BAF00042BAD00042BAD00042BAC00042AAA000322 + 8800506AC3000429A8000429A8000429A7000429A6000429A500032184000328 + A3000328A2000328A100435EB800263873000000000028387100283871002838 + 7100283871002838710028387100283871002838710028387100283871002838 + 7100293C7A000000000000000000000000000000000000000000000000000000 + 0000000000004B62B10028387100000000000000000096AAEE0093AAF60096AC + F700829DF5007894F4006D8CF3005679EE004B6FE7004166DF002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000515978007D8EC800042AAB00042AAB00042A + AB00042AAB00042AAB00042AAB007B8CC7000000000000000000000000000000 + 0000000000000000000000000000000000002D418600042DB800042DB700042D + B600032492004F6BCA00042CB400042CB300042CB200042CB100042BB0000323 + 8C004F6AC700042BAD00042BAC00042BAC00042AAA00042AAA00032187000429 + A8000429A8000429A700435FBC0028397700000000004862B8004E67BA005069 + BB004D66BA004C66BA004A64B8004660B700435EB600435DB6007D8FCC00929D + C00033447F000000000000000000000000000000000000000000000000000000 + 0000A3B4EB0035447D0034468200000000000000000097ABEE0097ADF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000535C7C007C8ECB00042CB100042CB100042C + B100042CB100042CB100042CB1007B8DCA000000000000000000000000000000 + 0000000000000000000000000000000000002F438B000530BE00042EBC00042E + BC00032595004F6CCE00042EB900042DB700042DB7000328A200031F7E000219 + 6400374B8D00031F7C0003269A00042CB100042BB000042BAF0003238C00042B + AD00042BAC00042AAB00425FBF002A3C7C00000000004F69BF002948B1002F4D + B3002B4AB2002646B0002142AF001739AB001033A9001538AA00929EC4003749 + 8600ACBBEB000000000000000000000000000000000000000000000000000000 + 000033488F0051629F00445CA900000000000000000099ADEE0098AEF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000555E7F007D8FCE00042DB600042DB600042D + B600042DB600042DB600042DB6007C8ECD000000000000000000000000000000 + 000000000000000000000000000000000000344A9400143ECA001740CA00153E + C900072A9E005875D7000E38C5000B36C4000934C2000D2A8A00CDCCCA00CBCA + C800C9C7C600CECCCB0003208300042EBB00042EBA00042EB90003249300042D + B700042DB600042DB6004361C7002F428500000000005C76CC004C68C7005570 + CA004B67C7004562C500405EC4003454C000546FCA006E80BC00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000004455 + 92004964BF006980CC00B4C3EF0000000000000000009AAEEF0098AEF70097AD + F700829DF5007894F4006D8CF30011172D0000000000161B2B002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005A6488007E92D400042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF007C90D2000000000000000000000000000000 + 000000000000000000000000000000000000364B99001D46D100224AD2002149 + D1000A2DA3005F7CDC001A43CD001640CB00153FCA0016359B00EDEDEC00ECEC + EB00EBEBEA00DBDCE20005258E000530C100042FBF00042FBF0003269800042F + BD00042EBC00042EBB004362CB0031458A0000000000607AD1005873CF00627C + D2005873D000526ECD004D6ACC004261C9004F6CCC00586FBA00000000000000 + 0000000000000000000000000000000000000000000000000000556EC3004D67 + BC003F5FC8008596D00000000000000000000000000099ADF00097ADF70097AD + F700829DF5007894F4006D8CF3001F1F1F000C0C0C001F1F1F002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E678B007F92D5000531C4000531C3000531 + C3000531C3000531C3000531C4007D91D4000000000000000000000000000000 + 000000000000000000000000000000000000394F9E00264FD8002C53D8002C53 + D7000D31A8006884E100254DD400214AD2002049D2001D45CC001639AF000826 + 8B004E67BA001034AC00113AC5000F3AC8000C37C7000A35C50004279C000632 + C3000531C200042FC0004262CF0033478F00000000006580D700637ED6006F88 + DA00647FD700607BD6005A76D4004E6CD1004766CF005C77D2005871C5000000 + 000000000000000000000000000000000000CCD6F700455EB10044599E003255 + CA00385ACB008392C20000000000000000000000000098ACF00094ABF60096AC + F700829DF5007894F4006D8CF3003A405600333333003F4454002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000606A8F008295D800113CCB00153FCC00153F + CC00153FCC00153FCC00123DCC008094D7000000000000000000000000000000 + 0000000000000000000000000000000000003D55A800375EE2004166E3004267 + E3001338B0007691E9003B61E000375DDE00355CDD00345BDD003057DB000F33 + AB006C87E4002951D800274FD700264ED6001834940017349400072074001330 + 9200122F91001338B3004869D800384E9800000000006C86E0007891E300889E + E6007E96E4007992E300748EE2006984E0006480DE005977DC006580D8005269 + B900485EA600445BAA004359A600455BA5005570CC004F6FDA003459D5002F55 + D40095A5D9004960AE000000000000000000000000008EA4EE00859FF50089A2 + F600859FF5007E99F5007592F4006283F000597AE9005072E1003E60D2003457 + C9002C4EC0001C3DAC003652AF007181BA000000000000000000000000000000 + 0000000000008282820080808000828282000000000000000000000000000000 + 0000000000000000000000000000657097008C9EE000365CDB003F64DC003F64 + DC003F64DC003F64DC00365CDB008A9DDF000000000000000000000000000000 + 0000000000000000000000000000000000004059AD003F66E7004B70E8004D71 + E900163BB3007E98ED00456AE5004368E4004166E3003F64E2003C62E1001237 + AF00748FE900345BDD003259DC003158DC00B6B6BA00BFBDBB00BDBBB900BAB8 + B600AEAEB200173494004C6DDC003A509D00000000006E89E5007E96E70094A8 + EB008BA1EA00869DE8008199E8007690E600718BE5006B86E3006683E3006B86 + E300607EE2005270D3005A76D5005A78DE004A6CDE003158D900264FD8006D88 + E2008090C500879CE1000000000000000000000000006E84D0008AA1EE0090A6 + F00091A7F0008FA5F0008CA3EF00879FED00849BE8008097E3007B91DA00788D + D400758ACF007083C5007283BE00576798000000000000000000000000000000 + 0000000000008080800040404000808080000000000000000000000000000000 + 00000000000000000000000000006973990091A4E300466AE1005475E4005475 + E4005475E4005475E400466AE1008FA1E1000000000000000000000000000000 + 000000000000000000000000000000000000425CB200486DEC004D6CD2003D55 + A600122C80005E6FA8003851A4004362CA004B70E800496EE700456AE600153A + B3007A95EC003F64E3003E64E3003C62E200D7D5D400CDCCCA00CBCAC800C7C5 + C300CECCCB001F3B99005071E0003D54A200000000006D89E7007C96EA0097AB + EE009DB0F00093A8EE008DA3ED00839BEC007D97EB007792E9006D89E8006381 + E7006482E700607FE6005E7DE6005072E3004065E1003D62E100335ADF00A8B6 + E400566BB80000000000000000000000000000000000718BE2005771C8005771 + C8005771C8005771C8005771C800556EC400516ABD004E66B600485EA7006D71 + 7D00717170005E616D003A4A83005068B8000000000000000000000000000000 + 0000000000008080800045454500808080000000000000000000000000000000 + 00000000000000000000000000006B769E0096A8E5005879E7006684E9006684 + E9006684E9006684E9005879E70094A5E4000000000000000000000000000000 + 0000000000000000000000000000000000004760B700587CF2005166AD00D7D5 + D400CBCAC800C9C7C600C7C5C300465DA9006283F2006082F1005C7EEF001B40 + BB008AA2F3005477ED005377ED005175EC004361C7004261C70014339B003D5C + C5003C5CC5004166E2005678E8004259AC00000000005F80EE00A0B3F500ACB9 + E700B9C6F100A5B7F500A0B3F5009DB1F40097ACF40092A9F400869FF200819B + F1007D97F100728FF0006C8AF0006786EF005B7DED005074EC007F99F0005C76 + CC00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000CCCCCC008080800000000000000000000000000000000000000000000000 + 000000000000808080005050500080808000000000000000000000000000717F + AF00889FE90091A6EA009AACEB00A8B8ED00B0C0F4008BA3F20087A0F20087A0 + F20087A0F20087A0F200849EF200AFBFF4009DAEE90097AAE90090A4E8008E9A + C200616D9500CDD7F70000000000000000004861B8006082F2005E73BB00E4E5 + EA00ECECEB00EBEBEA00EAEAE9005269B4006D8CF3006B8AF3006888F3001E43 + BE0092A9F5006082F1005F81F1005C7EF000597CEF00577AEF001A3FBB005175 + ED005074EC004A6FEB00597BEB00455DB10000000000859FF400A6B6E8005E76 + C700768BD200BDCAF600A4B7F700A8BAF700A4B7F7009FB3F60094ABF6008EA6 + F50088A1F500809BF5007A96F4007592F4006384F300839DF400B3C1ED00D3DB + F900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D1D1D1008080800000000000000000000000000000000000000000000000 + 000000000000808080005555550080808000000000000000000000000000BAC6 + F40093A2D8008BA4F5007693F30092A9F500A0B4F6009AAFF60098AEF60098AE + F60098AEF60098AEF60097ADF6009FB3F6007E99F4007592F3008CA4F5006571 + 9900869CE0000000000000000000000000004962B9006888F3007D97F0007086 + D000213FA3008D9DD2006A81CF007893F0007894F4007794F4007391F4002146 + BE009BB0F7006C8BF3006A8AF3006888F3006586F3006384F3001D42BE005D7F + F1005C7FF1005478F0005C7EEF004761B70000000000A3B3E8006078C800B4C1 + F2005974CF007D91D600BBC9F800A2B6F800AEBFF800ACBDF800A1B5F7009CB1 + F70097ADF7008BA4F600859FF5007E99F50097ADF700B6C2EE006A80CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D5D5D5008080800000000000000000000000000000000000000000000000 + 0000000000008A8A8A0059595900808080000000000000000000000000000000 + 00007684B5009BA9D90099AFF7009AAFF700A6B9F800A7B9F800A7B9F800A7B9 + F800A7B9F800A7B9F800A7B9F800A6B9F80087A1F50099AFF70092A0D100879C + E100000000000000000000000000000000004B65BC00708EF40089A2F60097AD + F70097ADF70095ACF70093AAF60090A8F6008EA6F6008CA5F60088A2F60087A1 + F500859FF500829CF500809BF5007F9AF5007B97F4007995F4007894F4007491 + F4006F8DF3006283F2006987ED004B65BC000000000000000000000000000000 + 00000000000000000000647EDA0096A8E300C1CEF800C3D0FA00B1C1F900A9BB + F800A5B8F800ABBDF800BAC9F900C1CCF400627BCE00BBC9F500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D8D8D80084848400C6C6C600000000000000000000000000000000000000 + 0000C6C6C6009898980067676700868686000000000000000000000000000000 + 000000000000BAC6F4007683B400B3C3F900B2C2F900BDCBFA00C0CEFA00C0CE + FA00C0CEFA00C0CEFA00BDCBFA00B2C2F9009DA9D5006A76A000889CE2000000 + 0000000000000000000000000000000000004D66BF007995F400829CF50091A8 + F6009AAFF70099AFF70097ADF70096ACF70094ABF60092A9F6008FA7F6008DA5 + F6008BA4F60088A2F60086A0F500849EF500819BF5007F9AF5007C97F4007592 + F4006D8CF3005E80F2006C86E0004F6AC5000000000000000000000000000000 + 00000000000000000000000000005874CF00657DCD008497DB00B9C7F300C1CD + F600C0CDF600A7B6E700889AD900667FCC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000C3C3C3008E8E8E008A8A8A00000000000000000000000000000000000000 + 00008A8A8A00B5B5B5006E6E6E00969696000000000000000000000000000000 + 00000000000000000000BAC6F400A1AEDA00B2C2F900B6C6F900CBD6FB00CBD6 + FB00CBD6FB00C8D4FB00B8C7F900B2C2F9006C77A100889DE200000000000000 + 0000000000000000000000000000000000007990E200839CF0007E99F5007C97 + F400839EF500839EF500839EF500829CF500819BF5007F9AF5007C97F4007B97 + F4007A96F4007794F4007592F4007491F400718FF4006F8DF3006C8BF3006485 + F3005F81F2006485F3005C73C70091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F0006B85DE005771C8005771 + C8005771C800647EDA0093A8ED00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B0B0 + B000A6A6A600B0B0B0008B8B8B00868686000000000000000000000000008686 + 860092929200ACACAC0078787800BBBBBB000000000000000000000000000000 + 00000000000000000000000000007482B2009EABD900B4C4F900D1DBFB00D5DE + FC00D5DEFC00C5D1FA00B6C6F9009AA8D5008A9DE30000000000000000000000 + 000000000000000000000000000000000000000000007991E300506AC3005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C000506AC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D3D3D300D7D7D700DFDFDF00CECECE00AEAEAE009D9D9D0099999900C0C0 + C000C5C5C500B7B7B700D3D3D300000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC6F4007381B200C1CEFA00C1CE + FA00C1CEFA00A7B2D900717DA7008A9EE3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000080808000B3B3B300E1E1E100F3F3F300EFEFEF00E9E9E900CDCD + CD00A7A7A7008080800000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F300A6B1DA00B3C3 + F900B3C3F900737EA8008B9EE400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B0B0B0008A8A8A008080800080808000808080008A8A + 8A00B0B0B0000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007181B0009DAA + D8009CA9D7008B9FE40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED8F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C2C2 + C2003D4E860029355F0027335E0027335E0027335E0027335E0027335E002733 + 5E0027335E0027335E0027335E0027335E0029355F003D4E860098A7D800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000293973008C99C6008897C9004963B7001F3E + A60003269C001F3EA6004963B7006A7EC2008C99C60029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002C3C + 75003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55 + A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A40040518F00AFBD + EC00000000000000000000000000000000000000000000000000000000004053 + 93003F64DE002A54DF004368E5007D97ED0099ADF0009EB1F000849BE700768F + E2006984DB00506CCB004360C2003553B700213EA0003E57A900415187000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005871C0003D54A2002C4082005165A9004A65 + BD000328A3004661BC005165A9004A598E002C3C7A005871C000000000000000 + 000000000000000000000000000000000000D6D6D600384A880023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C00C0C0C000CECECE000000000000000000465DAD004055 + 99001336AC001034AB001034AB001034AB001034AB001034AB001034AB001034 + AB001034AB001034AB001034AB001034AB001034AB001336AC002C4BB4003D54 + A300000000000000000000000000000000000000000000000000000000002B3D + 79001945D7001F42B5005466A300A7B7ED00A3B5F100AABAF2007781A4009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB3001B3898004A5EA1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000042528C00516B + C200042AAA00506AC40042528C008397DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000026356E005A6CAB00566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB00000000000000000000000000000000000324791003E59 + B400042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC001338B1002D40 + 8100000000000000000000000000000000000000000000000000000000002D3E + 7D000938D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034488D005771 + C600042EB9005771C60034488D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D4289005771CA00173F + C500042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC0004F6DD30000000000000000000000000000000000364B95003F5C + BD00042DB800042DB800042DB8001037BB001037BB001037BB001037BB001037 + BB001037BB001037BB001037BB000D35BB00042DB800042DB8001037BB003246 + 8B00000000000000000000000000000000000000000000000000000000003143 + 84000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000374C93005873 + CB00042FC0005873CB00374C9300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324793005873D0001842 + CF000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC005171DB0000000000000000000000000000000000384E9900405D + C200042FBF00042FBF00042FBF00405EC200405EC200405EC200405EC200405E + C200405EC200405EC200405EC2003859C800042FBF00042FBF00113AC2003549 + 9000000000000000000000000000000000000000000000000000000000003346 + 87000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A509A005974 + D0000431C7005974D0003A509A00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000364C9D00607CDA002851 + DC001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9005C7BE400000000000000000000000000000000003A509D00405F + C7000430C4000430C4000430C400374C9700374C9700374C9700374C9700374C + 9700374C9700374C9700374C9700405FC7000430C4000430C400103AC700374C + 9700000000000000000000000000000000000000000000000000000000003447 + 8B000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004057A7005B77 + DA000636D6005B77DA004057A700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003E57AF00748FEA004F74 + F000426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF007B97F400000000000000000000000000000000003F57A7004162 + D1000434D1000434D1000434D1003C54A1000000000000000000000000000000 + 000000000000000000003C54A1004162D1000434D1000434D100113ED3003C54 + A10000000000000000000000000000000000000000000000000000000000384D + 94000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000435BAE005F7D + E0000E3EDF005F7DE000435BAE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000405AB1007D97EB006384 + F300587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF20089A2F600000000000000000000000000000000004058AC004567 + D6000E3DD8000E3DD8000C3BD8003F57A8000000000000000000000000000000 + 000000000000000000003F57A8004567D6000E3DD8000E3DD8001946DA003F57 + A800000000000000000000000000000000000000000000000000000000003A4F + 98000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000465FB4006381 + E5001747E7006381E500465FB400000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425BB300869DED007894 + F4006E8DF3006E8DF3006E8DF3006E8DF3006E8DF3006E8DF300637EDB00637E + DB00637EDB00637EDB006C8AF0006E8DF3006E8DF3006E8DF3006E8DF3006E8D + F3006E8DF30097ADF70000000000000000000000000000000000435CAF004B6C + DB001E4BE1001D4AE0001947E000425AAD000000000000000000000000000000 + 00000000000000000000425AAD004A6CDB001E4BE1001E4BE1002853E200425A + AD00000000000000000000000000000000000000000000000000000000003C51 + 9C000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004B65BC006B88 + EB002755EE006B88EB004B65BC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B519A00465898003A4D + 9000364A8E00364A8E00364A8E00364A8E00364A8E00364A8E00C7CCDD009BA0 + AF00999EAD005967980035488A00364A8E00364A8E00364A8E00364A8E00364A + 8E00364A8E00465898003D55A5000000000000000000000000004862B9005576 + E5003D66EE003D66EE00325DED004761B9000000000000000000000000000000 + 000000000000000000004761B9005475E5003D66EE003D66EE00436AEE004761 + B900000000000000000000000000000000000000000000000000000000004157 + A3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C66BD006E8B + EB00305CEE006E8BEB004C66BD00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006179CC005A75D1005A75 + D1005A75D1005A75D1005A75D1005A75D1005A75D1005A75D100D0D7ED00D0D6 + E700CED4E5006A7FC7005873CD005A75D1005A75D1005A75D1005A75D1005A75 + D1005A75D1005A75D1004B5FA5000000000000000000000000004A64BB005A7B + E8004D72F1004D72F1004068F0004A64BB000000000000000000000000000000 + 000000000000000000004A64BB00597AE8004D72F1004E73F1005176F1004A64 + BB0000000000000000000000000000000000000000000000000000000000435A + A7000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67BE00728E + EC003862EF00728EEC004D67BE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000738CE000466AE2003B61 + E0003B61E0003B61E0003B61E0003B61E0003B61E0003B61E0004665CE005773 + D3005773D3003557C9003A5FDC003B61E0003B61E0003B61E0003B61E0003B61 + E0003B61E0003B61E000566AB3000000000000000000000000004B65BC005F7F + E8005C7FF2005C7FF2004D72F1004B65BC000000000000000000000000000000 + 000000000000000000004B65BC005D7DE8005C7FF2005D80F2005F81F2004B65 + BC0000000000000000000000000000000000000000000000000000000000455C + AB000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005069C0007B95 + ED004A70F0007B95ED005069C000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B8C6F6009BB0F70093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF6006C80C9000000000000000000000000004D67BE006A87 + E9007C97F4007C97F4006686F3004D67BE0000000000000000005A74CB004D67 + BE004D67BE004D67BE004D67BE00728DEA007D98F5007D98F5007F9AF5004D67 + BE004D67BE004D67BE004D67BE005A74CB000000000000000000000000004961 + B3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007E95 + E200C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1007D97 + EE005176F1007D97ED00516AC100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D7DFF900D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC007387CC000000000000000000000000004E68BF006E8A + EA008BA4F6008AA3F6007391F4004E68BF0000000000000000004E68C100607A + D0004E71E7006382E900738EEA0089A2F4008CA5F6008CA5F6008CA5F600738D + EA006483E9005A7BE800607AD0004E68C1000000000000000000000000004C65 + B8000535D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000526BC200809A + EE005A7DF200809AEE00526BC200000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007185CC007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE005870C6000000000000000000000000004F69C000738E + EB009BB0F7009AAFF700809BF5004F69C0000000000000000000BFCDF600516A + C3005A78E0006384F300819BF50098AEF7009CB1F7009CB1F7009CB1F700829D + F5006686F3006183F200516AC300BFCDF6000000000000000000000000004E66 + BC000535D4001F42B5005466A300A7B7ED00A3B5F100AABAF2007882A5009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB300133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FAFE9005671CC0000000000000000000000000000000000546EC50088A0 + EF006B8AF30088A0EF00546EC500000000000000000000000000000000005A72 + C600A1B1E900546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000C7C5C500AFADAC00898685007D7A78007D7A + 78007D7A78007D7A78007D7A7800AFADAC008F8D8B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000516BC2007B95 + EC00BAC9FA00B9C8F90097ADF700516BC2000000000000000000000000000000 + 000092A5EC00738EEB0098AEF700B4C4F900BBCAFA00BBCAFA00BAC9FA0097AD + F7007892EC005A73C6000000000000000000000000000000000000000000536D + C4000425940015349B002C469F005B6CA500727FA9007682A9006070A2005666 + 9F004B5D990035498D002A3F86001F357E00091F6A000D226800344374000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008AA1EC006B81CD00AFBEF300000000000000000000000000556FC6008BA2 + F0007290F4008BA2F000556FC600000000000000000000000000000000007589 + D200879FEF00556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000E0DEDE00D7D5D500D3D1D000D3D1D000D3D1 + D000D3D1D000D3D1D000D3D1D000D5D3D2009C9A990000000000000000000000 + 0000000000000000000000000000000000000000000000000000526CC3007A95 + EC00C4D1FA00C3D0FA009CB1F700526CC3000000000000000000000000000000 + 0000000000006179CB00809AEE00ABBDF800C9D5FB00C9D5FB00C1CEFA007B96 + EE006179CB007991E20000000000000000000000000033437C0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D00374780000000000000000000000000000000000000000000000000000000 + 00007993EE00748EE5005870C8000000000000000000000000005670C7008FA6 + F1007A96F4008FA6F1005670C70000000000000000000000000093A7ED007791 + E7007C96EE005E79D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000DEDDDC00E4E3E200E4E3E200E4E3E200E4E3 + E200E4E3E200E4E3E200E4E3E200E4E3E2009A97960000000000000000000000 + 0000000000000000000000000000000000000000000000000000536DC600738E + E900AFC0F900B0C0F9008FA7F600536DC4000000000000000000000000000000 + 0000000000006883DC00637BCD00869FF200BAC9FA00BAC9FA00A7B9F8006179 + CC006883DC00000000000000000000000000000000002E3F7B004662BF004F6C + CD005F7DE3006685ED006988F1006382EB005F7FE8005B7BE4005474DD005070 + D9004C6CD5004564CC004463CA004766CC004D6BD100506ED400516FD500536F + CC00364A91000000000000000000000000000000000000000000000000000000 + 0000819AEB006183F2005579F100486DE8004469E8004469E8005174E9006585 + F1007894F4006484F1005074E900466BE8004469E8004A6EE8004E73EF006586 + F3007992E500607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CED8F7005770 + C8006D8AEB006D8AEB006A83DA00C1CDF6000000000000000000000000000000 + 00000000000000000000000000005973CF007390F2007592F2006E86D6000000 + 000000000000000000000000000000000000000000003E539B00566EBF004463 + CA005B7AE2007490EE007E99F3006987EC005D7DE7005273E2003B60D8002F54 + D200244ACB000C35BE000831BA001239BE00254AC6002B50C9003256CD005D77 + CE004458A0000000000000000000000000000000000000000000000000000000 + 000095A8E600A8B9F300AABBF300A5B7F300A4B6F300A4B6F300A9B9F300AFBF + F500B1C1F500AEBEF500A8B9F300A5B7F300A4B6F300A6B8F300AABAF300A8B9 + F30095A8E600607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005670C7005670C700647ED900000000000000000000000000000000000000 + 0000000000000000000000000000000000006580DC006681DD005D77CF000000 + 000000000000000000000000000000000000000000006079C700566CB6005D77 + CB006D87DD00748EE5007892E800708BE3006E88E1006A84DE00637DD8005E79 + D5005B76D200536DCA00516CC9005570CC005B75CE005E78D1005E78D100556B + B2006880D2000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C900879CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005972CA005972CA00C1CDF6000000 + 0000000000000000000000000000000000000000000000000000677FD1005068 + BC005068BC005068BC005068BC005068BC005068BC00485EA900485EA900485E + A900485EA9005068BC005068BC005068BC005068BC005068BC005068BC006E85 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000879BE00044589E004458 + 9E00475A9E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CBCBCB00C7C7C70095A4D9002B3A6A002B3A6A002B3A6A002B3A6A002B3A + 6A002B3A6A002B3A6A002B3A6A002B3A6A003040790095A4D900C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B2BFEE002D407D003758C6003758C6003758C6003758C6003758 + C6003758C6003758C6003758C6003758C6003C53A1002E407C00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DADADA00C7C7C700C0C0 + C000C0C0C000253566002A396E00AFBCE400C8C8C800D5D5D500DEDEDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E003E58AF003358D600042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB3000D34B9003358D6003E58AF00BAC6 + F200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000032458D00DDE2 + F600DFE4F700DFE4F700E0E5F700E0E6F700E0E6F700E1E7F800E3E8F800E3E8 + F800E4E9F800E4E9F800E5EAF800E5EAF800E6EBF800E7EBF900E7EBF900E8EC + F900E9EDF900E9EDF90032458D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F1002C3F7D003E58AE003F58AA00425287000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BAC7 + F2004059B200345AD9000D36BE00042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB7000D36BE00345AD9003348 + 9100BAC7F2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000035499400D8DF + F600C9D2F200C9D2F200CAD3F200CCD5F400CDD6F400CED7F400CFD7F400D0D8 + F400D0D8F400D2DAF500D3DBF500D4DBF500D6DDF500D6DDF500D7DEF500D9E0 + F600DAE0F600DBE1F70035499400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002E42 + 81004A5D9D000F309D000F2F9A003F58AA003044890000000000000000000000 + 0000000000000000000000000000000000000000000000000000BCC8F300354A + 95003359DA000D37C200042EBC00042EBC00042EBC00042EBC00042EBC00042E + BC00042EBC00042EBC00042EBC00042EBC00042EBC00042EBC000D37C200415B + B500354A9500BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000384E9A00D5DC + F600C3CEF300C4CFF300C4CFF300C5D0F300C5D0F300C6D0F300C8D2F400C9D3 + F400C9D3F400CBD4F400CCD5F400CCD5F400CED7F500CFD8F600D0D9F600D2DA + F600D2DAF600D3DBF600384E9A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000304285004B5F + A1003F5AB70003269B00032698000F2F9A004453880031458A00000000000000 + 00000000000000000000000000000000000000000000384F9E00435DBA00335A + DE000431C5000431C5000431C5000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C5000431C5000431C5000D39 + CB00335ADE00435DBA00BDC9F400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003F56AA00D7DF + F9000537DD00C6D1F700C6D1F700C6D1F700C5D1F7000537DD00C5D1F700C4D0 + F700C4D0F700C4D0F700C4D0F700C3CFF7000537DD00C3CFF700C3CFF700C4D0 + F7000537DD00C4D0F7003F56AA00000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC7F20035498F003E5BBE000F33 + AB000429A50003279F0003279D0003269B000F2F9A003F58AA00445489000000 + 000000000000000000000000000000000000BDC9F400435FBD00335BE0000D3A + CE000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000D3ACE00335BE0003A52A100BDC9F4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AB000D8E0 + FA000538E500C7D3F900C7D3F900C7D3F900C6D2F9000538E500C6D2F900C6D2 + F900C6D2F900C6D2F900C6D2F900C5D1F9000538E500C5D1F900C4D0F800C4D0 + F8000538E500C4D0F800425AB000000000000000000000000000000000000000 + 0000000000000000000000000000BAC7F200374B93005165AD001035B100042A + AA00A0AEDE000328A20003279F0003279D00032698000F2F9A003F58AA003247 + 8B00000000000000000000000000000000004159AD00345CE3000D3BD3000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000D3BD3004561C0004159AD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455EB600DAE2 + FC00053AEB00CAD5FB00CAD5FB00C9D5FB00C9D5FB00053AEB00C8D4FB00C8D4 + FB00C8D4FB00C7D3FB00C7D3FB00C7D3FB00053AEB00C7D3FB00C6D2FA00C6D2 + FA00053AEB00C6D2FA00455EB600000000000000000000000000000000000000 + 0000000000000000000000000000394E9700546AB2004A67CA000C32B200052C + AD0099A6D000A0AEDD000328A20003279F0003269B00032698000F2F9A004555 + 890033478C000000000000000000000000004159A9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9003760E8004159A9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004861B900DEE5 + FC000F42EC00D0DAFB00D0DAFB00CFD9FB00CFD9FB000F42EC00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB000F42EC00CCD7FB00CCD7FB00CCD7 + FB000F42EC00CBD6FB004861B900000000000000000000000000000000000000 + 000000000000BDC9F4003D54A0005C78D500395BCB002B4FC600A7B5E5001439 + B8000C32B200939FC600FFFFFF00A0AEDD0003279F0003279D0003269B000F2F + 9A003F58AA0046568A000000000000000000435BAF000537DD000537DD000434 + D200042CB100042CB100042EB9000537DD000537DD00042CB1000537DD000537 + DD000430C400042CB100042CB1000430C4000537DD00042CB1000537DD000537 + DD000537DD000537DD00365FE900435BAF0000000000364C97002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C7600000000000000000000000000000000004963BA00DFE6 + FC001949ED00D3DCFB00D3DCFB00D3DCFB00D3DCFB001A4AED00D2DBFB00D2DB + FB00D2DBFB00D2DBFB00D2DBFB00D1DBFB001A4AED00D1DBFB00D1DBFB00D0DA + FB001A4AED00CFD9FB004963BA00000000000000000000000000000000000000 + 0000BDC9F4003F57A3005F76C0004767D2003A5CCD003255C900FFFFFF00A7B5 + E5001439B80004269800939FC600FFFFFF000328A20003279F0003279D000326 + 98000F2F9A003F58AA0033488D0000000000455EB300093BE300093BE2003B5A + C000FFFFFF00FBFBFB00BCC3DD00093BE200093BE200F2F2F200093BE2000835 + CC007F90CB00FFFFFF00F5F5F5007F90CB00093BE200F2F2F200093BE200093B + E200093BE200093BE2003861EB00455EB300000000003F559E004E6CD000274D + CD002B50CD002B50CD002B50CD002C51CD002C51CD002C51CD002C51CD002C51 + CD002C51CD002C51CD002C51CD002C51CD002C51CD002B50CD002B50CD002A4F + CD00274DCD004E6CD000000000000000000000000000000000004A64BB00E2E8 + FD002251ED00D7DFFC00D6DFFC00D6DFFC00D6DFFC002453EE00D6DFFC00D6DF + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC002453EE00D4DDFC00D4DDFC00D4DD + FC002352ED00D2DBFB004A64BB00000000000000000000000000000000000000 + 00004259AA006379C4006883DF004A6AD5004364D2003B5DCD00A5B0D300FFFF + FF00A7B5E5000C32B20004269800939FC600A0AEDD000328A20003279F000326 + 9B00032698000F2F9A0046568B003A4F99004A64BB001949ED001B4BED001B4B + ED001B4BED003761EF00C4D0F9001B4BED001B4BED00FFFFFF001B4BED00C2C9 + E2007F9AF5001B4BED001B4BED00708EF4001B4BED00F5F5F5004F6CCE003A5A + C3001741CF001B4BED004068F0004A64BB00000000005A75D1005771C8006472 + A8006A80CA005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8007684 + B4006472A8005771C800000000000000000000000000000000004D66BE00E5EA + FD003761EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003761EF00D8E0FC004D66BE00000000000000000000000000BECCF500465E + B2007590E7006D88E5006985E200BDC7E700FFFFFF00B9C5EE003B5DCD003250 + B600A5B0D300A7B5E5001439B8000C32B200939FC600FFFFFF00A0AEDD000327 + 9F000F31A100405AB000364B9300000000004B65BD002050ED002352ED00315D + EF00E3E9FD00FFFFFF00C8D4FB002352ED002352ED00FFFFFF002352ED00FBFB + FB005A7DF2002352ED002352ED005A7DF2002352ED00FFFFFF00C9D5FB00EDF0 + FA0092A0D0002352ED00446BF0004B65BD000000000000000000000000005A74 + C7002247C100042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF004A60 + AA005A74C70000000000000000000000000000000000000000004E68BF00E6EC + FD004169F000E1E7FD00E1E7FD00E1E7FD00E1E7FD00436BF000E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00436BF000DEE5FC00DEE5FC00DEE5 + FC004169F000DBE2FC004E68BF000000000000000000BECCF5004961B7006D84 + D0007892E9007892E800728CE600617BCF00BAC3E100FFFFFF004364D2003B5D + CD003250B600FFFFFF00A7B5E5001439B80004269800939FC60099A5CE000F32 + A700415BB5004B5B950000000000000000004C66BD002957EE002C59EE00BCCA + FA007D98F500486FF0002C59EE002C59EE002C59EE00FFFFFF002C59EE00D8E0 + FC0088A2F6002C59EE002C59EE007B97F4002C59EE00FFFFFF002C59EE00476E + F000F8F8F8002C59EE00486FF0004C66BD000000000000000000000000007D93 + E0003457CD000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA004B61 + AF007D93E00000000000000000000000000000000000000000004F69C000E7EC + FD004B71F100E4E9FD00E4E9FD00E4E9FD00E4E9FD004D72F100E3E9FD00E3E9 + FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD004D72F100E2E8FD00E2E8FD00E1E7 + FD004B71F100DEE5FC004F69C00000000000000000004B67C0006A83D30089A1 + F000889FED00819AEB007993E8006A85E200617BCF00BAC3E100B9C5EE004364 + D2003B5DCD00A5B0D300FFFFFF00A7B5E5000C32B2000426980003259500415C + B9004C5E9A003B519B0000000000000000004E68BF003963EF003E67F0006384 + F300FFFFFF00FFFFFF00CFD9FB00FFFFFF00FFFFFF00FFFFFF00FFFFFF003E67 + F000ACBDF800FFFFFF00FFFFFF00ACBDF8003E67F000FFFFFF00FFFFFF00F2F5 + FE009FB3F7003E67F0004F74F1004E68BF000000000000000000000000000000 + 00005E7BDD00234FE100234FE100234FE100234FE100234FE100234FE100234F + E100234FE100234FE100234FE100234FE100234FE100234FE100224EE0004E64 + B500000000000000000000000000000000000000000000000000526CC300EBF0 + FD005D80F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2006183F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2005E80F200E4E9FD00526CC30000000000000000004C66BD00728FF20095AB + F30099AEF20091A7F0008AA1EE007993E800728CE6006A85E200BAC3E100FFFF + FF00B9C5EE003B5DCD003250B600A5B0D3001B40BC001B40B9004562C1003E56 + A200000000000000000000000000000000004F69C0003F68F000476EF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000476EF0005075F1004F69C0000000000000000000000000000000 + 00006984E1003E66EE003862ED003B64ED003B64ED003B64ED003B64ED003B64 + ED003B64ED003B64ED003B64ED003B64ED003B64ED003862ED003E66EE004F68 + C300000000000000000000000000000000000000000000000000536DC400ECF0 + FE00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E6EBFD00536DC40000000000000000004D67BF007693F300A1B4 + F600A1B4F40099AEF20091A7F000819AEB007993E800728CE600617BCF00BAC3 + E100FFFFFF004364D2003B5DCD003250B600274BC2004A67C7005366A8000000 + 000000000000000000000000000000000000506AC100466DF0004E73F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1004E73F1004F74F100566FC3000000000000000000000000000000 + 00006781DA005378F100496FF0005176F1005176F1005176F1005176F1005176 + F1005176F1005176F1005176F1005176F1005075F100496FF0005378F1005975 + D100000000000000000000000000000000000000000000000000546EC500EDF1 + FE00EDF1FE00EEF2FE00EEF2FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0 + FE00EAEFFD00E7ECFD00546EC50000000000000000004E68C0007A96F400A9BB + F700A3B4F1006078C7004B63B600506BC6007C95E7007993E8006A85E200617B + CF00BAC3E100B9C5EE004364D2003A5CCD00516DCD00566AAB00445AAA000000 + 000000000000000000000000000000000000BFCDF6008499E0006686F3005A7D + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006283 + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006082 + F2005A7DF2006686F300526CC500BFCDF6000000000000000000000000000000 + 0000647AC900728FF100577BF2005C7FF2005E80F2005F81F2006082F2006082 + F2006082F2006082F2005F81F2005E80F200567AF200587CF200728FF1009FB1 + F0000000000000000000000000000000000000000000000000005770C700F0F3 + FE007B97F40087A1F5008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F60087A1 + F5007A96F400EBF0FD005770C7000000000000000000506AC1007A96F400B1C1 + F900506AC100D2DBF80000000000A9BAF0004B63B6008AA1EE007993E800728C + E6006A85E2005771CB004B6BD7005D79D7004960B30000000000000000000000 + 00000000000000000000000000000000000000000000536DC60090A2E200718F + F4006787F3006B8AF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3005D80 + F200718FF40090A2E200BFCDF600000000000000000000000000000000000000 + 00005A75D1006E84D2007690EA007D97EB007F98EB007F98EB008099EB008099 + EB008099EB008099EB007F98EB007F98EB007A94EA007790EA006E84D2000000 + 00000000000000000000000000000000000000000000000000005871C800F0F3 + FE00F1F4FE00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE00F1F4FE00F0F3 + FE00EEF2FE00EBF0FD005871C8000000000000000000516BC2006F8DF300A9BB + F800516BC200D3DBF90000000000BFCDF5004D66BA007F99ED00819AEB007993 + E800728CE6005776DD00637FDC005F73BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600536EC70091A4 + E2006384F300708EF4007592F4007592F4007592F4007592F4007592F4007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007290F4007491 + F40091A4E200536EC70000000000000000000000000000000000000000000000 + 000000000000647EDB005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C900647EDB000000 + 00000000000000000000000000000000000000000000000000005872C900F1F4 + FD00F4F6FD00F5F7FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F5F7 + FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F4F6FD00F4F6 + FD00F3F6FD00F1F4FD005872C9000000000000000000546FCB006680D90099AF + F7006E84D1005E78D100D3DBF900556FCB00647BCA0099AEF2008AA1EE00819A + EB00748FE7006984E0006277BF004D65BA000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60099A9E3008CA5F6007894F40086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F500839EF5007894F40093AAF6005670 + C800C1CDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009EB3F700B6C6F900C3D0FA00B7C6F800B1C1F800A8BAF50092A8F100809A + EE00758FE900526BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C9009AAAE300ABBDF8008AA3F6008EA6F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008EA6F6007E99F500ABBDF8009DACE500C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600748DDD0099AFF700ACBDF800B5C5F900AFBFF800A6B8F600869FF100809A + EE006B81CC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF6005771C9009DACE50090A8F60099AFF7009DB2F7009FB3F7009FB3 + F7009FB3F7009EB3F7009DB2F70098AEF700ABBDF8009DACE5005771C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8006982DC007C96ED0089A0EE00869EEE00839BED00738EE9006C83 + D0005671CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005874CF00C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000DBDBDB00D1D1D100C9C9C900C7C7 + C700C7C7C700C5C5C500C5C5C500C5C5C50029386D0030417800C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 00007789C8002C375F0033458000C3C3C300C5C5C500D1D1D100DCDCDC000000 + 00000000000000000000DADADA00D5D5D500C3C3C300B1BCE500394B89007587 + C600DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000006E85CF00273773002534690025346900364D96006E85 + CF00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387100032698000326 + 98004E66B6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007F92D80029396C008494C80025346900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED7F60031417A00536BBC002D3D7800647BC90000000000000000000000 + 0000000000000000000000000000000000002D3D780041569B004B66BE00B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 00007287D100293B7900233576000C2A8F000C2A8F000C2A8F00172F82002335 + 7600293B79000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3D79000328A2000328 + A2004F69BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008093D900324273005466A5008393C80027366B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000354C98003C529C00425DB400384984003D54A200000000000000 + 00000000000000000000000000003D54A200425CB0002245B8003E55A1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293B7B00143090000328A1001638A8001638A8001638A8000328A1000328 + A100143090004F67B60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F418200042BAD00042B + AD00506BC6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036457A005568AA00324DAA008494CC00293A7300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007389D500495991001338B2003A59C0004054960094A6E5000000 + 000000000000A5B6EC002F42860040549600163BB400092EA9004B5B95000000 + 0000000000000000000000000000000000000000000000000000788DD9002F44 + 8D002045BD004B68CA00566FBF003E509000374D9A00374D9A004D609F00566F + BF002045BD002648B70044569700788DD9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000364B94005C76CD00183DB800183DB800183DB8000D37C3000D37 + C3000D37C300183DB800183DB800183DB800364B940000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003850 + 9D00455690002042B300042AA900042AA9008496D4002F428100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003B54A200042CB100042CB100042CB100435EBE003E51 + 9500344890004660BD002146C200072EB300042CB1004961AE00384D98000000 + 0000000000000000000000000000000000000000000000000000374D98001E3F + AD00506ED3005C75C60042559800D0D8F70000000000000000006B83D3004255 + 98005C75C6000B35C000546EC1003A509A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A509B005B79DD001540CF001540CF001540CF001540CF001540 + CF001540CF001540CF001540CF001540CF003A509B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3005365 + A400516CC700042CB200042CB200042CB2008497D90033468700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000788ED900163CBB00062FB700062FB700133ABE003C5C + C900465EAF00163DBF00062FB700062FB7001138BA005062A2005E76C9000000 + 000000000000000000000000000000000000000000007B92DD00354EA200113C + CC005F78CF004559A100889DE30000000000000000000000000000000000889D + E3004559A100133ECC003156D3005165AC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E54A5006782DD006A84DD006A84DD006A84DD001D49DA001D49 + DA00617FE5006A84DD006A84DD006A84DD003E54A50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000CED7F6006179C7004258A50033488F005568AA004D6A + CC001239BE00042EBB00042EBB00042EBB008499DD00364A9000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D0D8F7004762C1001139BE001139BE001139BE00143B + C0002E53CD001139BE001139BE001139BE003959C30040539600BCC8F3000000 + 00000000000000000000000000000000000000000000435AB000254DD4003059 + E2004D63B000D1DAF80000000000000000000000000000000000000000000000 + 0000D1DAF800355BDC001E4BE0006682E0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197E500455FB6002D59ED002D59 + ED00587BF1008197E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004C5F9F005971BF004A66C5002447BA001237B4007288D2004F6FDB000432 + CD000432CD000432CD000432CD000432CD00849BE6003D53A0007087D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005669AA003458D0002B50CE002B50CE002B50 + CE002B50CE002B50CE002B50CE002B50CE00596DAF00647CD000000000000000 + 00000000000000000000000000000000000000000000465EB400355BE0003660 + EB004A64BE000000000000000000000000000000000000000000000000000000 + 000000000000355CE1002250E9006986E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A62BC00526AC4004D6DD5003560EF003560 + EF003560EF00526AC4004A62BC008198E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C9001C43C500042FC000042FC000042FC000728ADB005273E2000D3C + D7000E3DD8000E3DD8000E3DD8000E3DD800869DEB004058A800576EB8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465BA500395BCB00385CD400385CD400385C + D400385CD400385CD400385CD400385CD4004B60A7004D66BC00D1DAF7000000 + 000000000000000000000000000000000000000000004962B9004167E700305C + EE004D68C2000000000000000000000000000000000000000000000000000000 + 0000000000003059E2003661EF006D8AEB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005C76D2005171DE003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF005171DE00526BC1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005071DE000433CF000433CF000433CF000433CF00728DE4005779E9001A48 + E1001C4AE1001C4AE1001C4AE1001C4AE10089A1EF00445DB0004E71E500738C + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000ABBBF0004159AB006580DD004B6DDD004669DC004669DC004669 + DC004669DC004669DC004669DC004669DC006480DE00576EB8004159AB000000 + 000000000000000000000000000000000000000000005772CE006C85DE003C65 + EF006A80CD007990E20000000000000000000000000000000000000000000000 + 00007990E2003F68F0006989F300748CDF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE6006279C7006A88EE004D72F1005879E5005D76CA004E68C3004E68 + C3004F68BD005879E5004D72F1004D72F1006279C700839AE600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006384F300456CF0004C72F1004C72F100466DF00088A1F5005E80F200335E + EF003862EF003862EF003862EF003862EF008EA6F6004A64BC00093DEB00516A + BE0000000000000000000000000000000000000000000000000000000000BFCC + F5005A70BB00728BDF006D8AEA006180E7006180E7006180E7006180E7006180 + E7006180E7006180E7006180E7006180E7006180E700607FE7006B88EA005E73 + BD004A63BA00ABBBF100000000000000000000000000839AE600667DCC00577B + F2005B7BE800576EC10091A4EB000000000000000000000000000000000091A4 + EB00516ABF00597CF2007E99F500677ECC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005169C2008A9FE9005378F100617FE500536CBF007990E200000000000000 + 0000D2DBF800536CBF00617FE5005378F1008A9FE9005169C200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F8DF3006787F3006F8DF3006F8DF3006888F30095ACF7006283F2004068 + F000466DF000466DF000466DF000466DF00091A8F6004B65BD00093DEB004B65 + BD00000000000000000000000000000000000000000000000000768EDF004C64 + B7007D97EB007590ED006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB007C96 + ED006F85D0004C64B70000000000000000000000000000000000526BC3008199 + E8005075F1005475E200526BC000D3DBF80000000000000000007990E300526B + C0005878E3007290F4008AA0E900526BC30000000000000000004E67C1005C74 + C4004E67C1000000000000000000000000000000000000000000000000000000 + 00007288D000718FF4005B7EF200566EC10091A4EB0000000000000000000000 + 00000000000091A4EB00566EC1006684E700718FF4007288D000839AE7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007995F400839EF50090A8F60090A8F600859FF500A0B4F7006586F3004D72 + F1005378F1005378F1005378F1005378F10094ABF6004C66BE002553EE004F6A + C50000000000000000000000000000000000000000005672CE00586FBE00738C + DE007D97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97 + F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007D97 + F1007E99F1007790E200526DC700BFCCF5000000000000000000000000006881 + DA00869FF1006D8CF3005F81F2005679EB004C70E8004D71E7005C7FF2006D8C + F300708EF4006586F300577BF2004E6CD500BFCDF600000000005069C1006384 + F3005069C1000000000000000000000000000000000000000000000000000000 + 00009EB1F2006B8AF300738FEE00D3DBF8000000000000000000000000000000 + 00000000000000000000D3DBF800566EC2006B8AF3009EB1F2004F69C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000089A0EC009FB3F700AFC0F900B8C7F900A6B9F800ACBDF8006C8BF3006485 + F3006F8DF3006F8DF3006F8DF3006F8DF30099AFF7004E68C000667DCB000000 + 00000000000000000000000000000000000000000000516BC200516BC200516B + C200516BC200516BC200516BC200516BC200516BC200516BC20094ABF60095AC + F70095ACF70093AAF600879DE600516BC200516BC200516BC200516BC200516B + C200516BC200516BC200516BC2005671CD000000000000000000000000000000 + 0000657CCC008FA3EA00839EF5006283F2005277F1005C7FF20086A0F50097AD + F700A1B3F1006D8CF3006C8BF3005479F100516BC400BFCDF600516BC2006586 + F300516BC2000000000000000000000000000000000000000000000000000000 + 0000A4B6F3007391F4007C97ED00000000000000000000000000000000000000 + 0000000000000000000000000000526DC8007391F400A4B6F3005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000768CD400B1C0F200B5C5F900B4C4F9009EB3F700A7B9F800718FF4006D8C + F3007C97F4007D98F5007D98F5007D98F5009CB1F7004F69C1007991E3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007189E000A3B6F800A2B6 + F800A2B6F800A0B4F7007A8FD6006882DC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000849AE800576FC7007085D100859DEF00849CEF00849CEF00859AE4007389 + D3005770C500839EF5007592F4006F8DF3005270D600526CC500526CC3006A8A + F300526CC3000000000000000000000000000000000000000000000000000000 + 0000A9BAF300809BF500839CEF00000000000000000000000000000000000000 + 0000000000000000000000000000536EC900809BF500A9BAF300516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006881DB00506AC200657BC9008196DB008FA2E5008EA5F0008FA7F6007794 + F400859FF5008AA3F6008AA3F6008AA3F6009FB3F700506AC200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600AFBFF500B0C0 + F900B0C0F900ACBDF6006078C9009FB1F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC700768EDE0087A1F500829DF5007290F4006A83DB007C97 + F400556EC5000000000000000000000000000000000000000000000000000000 + 0000A5B5EA00A2B6F8008AA3F6007A92E4000000000000000000000000000000 + 000000000000000000007A92E4007D90D600A2B6F800A5B5EA005C77D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005871CF008A9C + DC00A8B9F6009BB0F700A4B7F800A5B8F800A3B6F800536DC400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007F94D800C4D1 + FA00C9D5FB008DA0DF006983DD00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF600566FC7007A91DF008DA5F6008DA5F60086A0F500839E + F500566FC6000000000000000000000000000000000000000000000000000000 + 00008597D800B3C3F90097ADF700637ACA0092A7EC0000000000000000000000 + 00000000000092A7EC00637ACA0096AAEE00B3C3F9008597D800849BE8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + CF00758BD20097ADF70097ADF700A0B4F700A1B5F700546EC500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DCD00BCCA + F700CDD8FB006D84CF009FB1F000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005E79 + D6005771C8005771C8005771C8005771C80095ACF70095ACF70095ACF70086A0 + F5005771C8000000000000000000000000000000000000000000000000000000 + 00005B74C900B9C6F200B2C2F9009FB1EF00657BCB007C92E500000000000000 + 0000D3DBF900657BCB009FB1EF009AAFF700B9C6F2005B74C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006883DC00A7B9F40098AEF700849EF5009EB3F700556FC600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C900A9B8 + EC00CAD5FB005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006E8BED007C96EE007F99EF00859EF00098ADF2009AAEF20097ACF2007C96 + EE005872C9000000000000000000000000000000000000000000000000000000 + 0000000000006B84DE008093D600BCCAFA00ACBDF800A7B9F800AFBFF500AFBF + F500ADBDF600ACBDF800BCCAFA00C5D1F9006B84DE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A7ED00677ECD009DAFEE0094ABF6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009FB1F000667D + CD009AAFF40093A8ED0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005B76D2000000000000000000000000000000000000000000000000000000 + 000000000000000000006B85DE00C2CEF400C2CFFA00B7C7F900A9BBF800A9BB + F800B0C0F900C2CFFA00C2CEF400798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000093A8ED005D76CA008DA5F6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9008297E1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E76CC008D9EDB00B5C2ED00C6D2F800C6D2 + F800C6D2F8008D9EDB005E76CC00879CE9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6008FA2E5005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000647E + DA00667DCD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D6D6D600CDCDCD00C7C7C7007487C6002938 + 6D0025346A00C5C5C500C7C7C700CBCBCB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C70045599A0026336000B2BDE500C7C7C700D2D2D200000000000000 + 0000000000000000000000000000DADADA00C2C2C200475C9D002633620096A6 + DB000000000000000000000000000000000000000000000000005E72B6002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B00687BBC00CFCF + CF0000000000000000000000000000000000000000000000000000000000D3D3 + D300C0C0C00025346D0027315900273159002731590027315900273159002731 + 590027315900273159002731590027315900273159002E3D7300C0C0C000CBCB + CB00DEDEDE000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DFE5F90032406C005261 + 970046568B00455AA500DFE5F900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029387000364FA0008697D0002C3E8000758AD60000000000000000000000 + 0000000000000000000000000000000000002E4286004359A5008596D0002739 + 78007185D000000000000000000000000000000000004C64B4003F59AE002C52 + D2000D35BA000E36BB000E36BB000E36BB000E36BB000E36BB000E36BB000E36 + BB000E36BB000D35BA000C34BA00284ECE00142A74002240A6003C54A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000293973004E67B80003269B0003269B0003269B0003269B000326 + 9B0003269B0003269B0003269B0003269B004E67B80029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F100293C7A0045548D0017369D001C3A + 9E00032083003F57A70043528600283873000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000263A7E007082BE00505F92003A53A60033478E0000000000000000000000 + 000000000000000000000000000000000000294091007789C700505F94002942 + 96003B529E0000000000000000000000000000000000354C97004A68CE003358 + D600355AD200365AD200365AD200365AD200365AD200365AD200365AD200365A + D200365AD2003358D2002C52D1004166DF000A2479001335A500425FC0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C77004E68BC0003279F0003279F0003279F0003218700021C + 700003228A0003279F0003279F0003279F004E68BC002B3C7700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334685006F7EB1003F5AB20003269B002946 + A900032288000F2F99003F58A90048599300B6C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000243E92006676A8005169BB007488CD002E459600576EC300000000000000 + 0000000000000000000000000000A4B3EB00526CBF005F6EA4005B72BF003A54 + A9002F407C00000000000000000000000000000000002E407F005271DE004166 + E2005374E3005677E4005777E4005777E4005777E4005777E4005777E4005777 + E4005777E4005072E3004267E0005275EA0003218700092EA9004160CA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002D3E7C004E68BF000328A4000328A4000328A40003238C00FFFF + FF0003238F000328A4000328A4000328A4004E68BF002D3E7C00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007483B4003D59B800072CA4000328A1002947 + AD000321870003269A00072999003751AA003244840000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C6FB200354A9100A3B3EB004258A100657ECF002F4CB000000000000000 + 00000000000000000000708ADA003953A6005668A70098AAE90000000000586D + B800374C9100000000000000000000000000000000003C54A30033468A003346 + 8A0033468A003A4C8B0030438400304384003043840030438400304384003043 + 84003043840030438400304384003043840003249100042DB500365BD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000031448500506BC700042BAE00042BAE00042BAE00042BAE00042B + AE00042BAE00042BAE00042BAE00042BAE00506BC70031448500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006880D0006170A400173CB7001036B5001237B5000F34B1003D5B + BF0006258B00062BA7000429A3000328A000465FB0003D4D81006179C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006373AC00435BA8005A72C600647ED1004A63B7001F48D1007D93DE000000 + 000000000000D1DAF800455BAC00294EC700445CAD000000000098AAE9007485 + C100485FB2000000000000000000000000000000000000000000000000000000 + 0000364A8F003358D30003279F0003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F00042AA900042EBB00375DDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034468900506CCA00042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300506CCA0034468900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F200455796008496D300153BBC00183EBD00193EBC001F44BC004361 + C60008278E000D32AE000A2FAB00052AA6001F3FAA00485FAA00324279000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B5EA0007A8DCC004157A1004760B3003D5BBD003158DC004A62B800D2DB + F800000000005671CB00425EBF003058DE00465CA9006680D400435DB3006778 + B3008699DF000000000000000000000000000000000000000000000000000000 + 0000384D9500375DDE000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C200375DDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036498E004F6CCD00042DB800042DB800042DB800042DB800042D + B800042DB800042DB800042DB800042DB8004F6CCD0036498E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB2008B98C8004968D0001E44C4002147C6002146C500284CC4004866 + CC000B2B94001439B7001035B2000D32AE000429A500324FB2004D5E98000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF8004D64B2008596D3007E98EC00819BEF006D8BEE0098AAEA00536D + C4004F4E4E008699DD00728FF2006D8BF0007994EC008FA4EB008C9EDD008CA0 + E600000000000000000000000000000000000000000000000000000000000000 + 00003D54A000375EE3000433CE00829DF500829DF500829DF500829DF500829D + F500829DF500829DF500829DF500829DF5000433CE000433CE00375EE3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A4F9700506ED4000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C200506ED4003A4F9700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000091A0D1004769D800234BD1003055D4003055D4002F54D3004062D4005371 + D7001132A0002146C5001D42C100193EBC001035B3000A2FAD002C4BB4003F55 + A200000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCCF5005F79CD006E82C900788DD7008297DE00667DCC00BCC5 + E300D7D6D6005F75C3008095DA008A9EE4007689D1006278C300526BC1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004057A600375FE6000636D4000737D4000737D4000737D4000737D4000737 + D4000737D4000737D4000737D4000737D4000737D5000636D400375FE6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003C529C004F6ED7000431C7000431C7000431C7000431C7000431 + C7000431C7000431C7000431C7000431C7004F6ED7003C529C00000000000000 + 000000000000000000000000000000000000000000000000000000000000D1DA + F8008EA2E6002A52D7002F56D800375CDB00375CDB00365BDA004668DA005876 + DC001334A300274CCB002348C7001F44C300163BB9000F34B3001035AF003B4C + 8400CED7F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF300859BE900788DD900CAD1E900EEEE + ED00EBEAEA00C2C6D6007382B6007289D900AFBEF300D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000435BAD003961E8000D3DDB00103FDB00103FDB00103FDB00103FDB00103F + DB00103FDB00103FDB00103FDB00103FDB000F3EDB000D3DDB003A62E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A0004F6FDB000432CC000432CC000432CC000432CC000432 + CC000432CC000432CC000432CC000432CC004F6FDB003F55A000000000000000 + 000000000000000000000000000000000000000000000000000000000000677F + D4006683E6002E56DD00395FDF003F64E1003E63E0003D62DF005777E2005E7C + E2001638A9002D52D100294ECD00254AC9001B40BF00153AB9000E34B3004A5C + 9D005B74C3000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A6A5006E6D6D00DAD9 + D900E8E7E700BFBDBC009A9897009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004962B8003E66EE001B4BE80092A9F60092A9F60092A9F60092A9F60092A9 + F60092A9F60092A9F60092A9F60092A9F6002250E9001C4BE8004169EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000435AAA005576E3001441D8001542D8001542D8001542D8001542 + D8001542D8001542D8001542D8001441D8005576E300435AAA00000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8005C71 + BB00365FE800446AEA004B70EC004C71EC004B70EB004B70EB006785EB006987 + EA001B3EB200395EDC003459D8003055D400264BCA002045C400183EBE004A65 + C0003F508C00CED7F70000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000807E7E00ACABAA00A0A0 + 9F00F1F0F000BCBAB900AEACAB0082807F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B65BD004068F0002352ED002E5AED002E5AED002E5AED002E5AED002E5A + ED002E5AED002E5AED002E5AED002E5AED002C59ED002352ED00446BF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000465EAF005879E7001E4ADE001F4BDE001F4BDE001F4BDE001F4B + DE001F4BDE001F4BDE001F4BDE001E4ADE005879E700465EAF00000000000000 + 00000000000000000000000000000000000000000000000000008EA3E9007E90 + D1003D65ED004D72F0005277F0005378F0005277F0005176EF00708DF0006E8B + EE001E41B7003F64E1003A5FDD00355AD9002B50CF00254AC9001D43C3003858 + C200495C9E008499DF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009796960094929100BFBDBC00EAEA + E9008A898900C0BEBC00A8A6A400989694000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D67BE00426AF0002A57EE003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003560EF002B58EE00476EF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004861B4005B7CEA002853E4002954E4002954E4002954E4002954 + E4002954E4002954E4002954E4002853E4005B7CEA004861B400000000000000 + 00000000000000000000000000000000000000000000000000006D87DD0091A3 + DF00476EF000567AF2005A7DF2005B7EF2005A7DF200587CF2007794F4007390 + F2002044BB004469E5004065E2003A5FDD002F54D3002A4FCE002248C8002C4F + C1004D62AB005E76C70000000000000000000000000000000000000000000000 + 00000000000000000000000000008B8A8900ABAAA900BAB9B800CBCAC9008786 + 860000000000D2D2D100E7E6E500B6B5B4008987870000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004F69C000466DF0003963EF00A6B9F800A6B9F800A6B9F800A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A6B9F800496FF0003A64EF004E73F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004D67BE006182F1003C65EE003E66EE003E66EE003E66EE003E66 + EE003E66EE003E66EE003E66EE003B64ED006182F1004D67BE00000000000000 + 0000000000000000000000000000000000000000000000000000516CC700AEBE + F300567AF2006586F3006989F3006989F3006888F3006686F3007D98F5007D98 + F5002549BF004E73ED00486DE9004469E500385DDB003257D6002A50CF002348 + C400506BC3003D539D0000000000000000000000000000000000000000000000 + 00000000000000000000000000009F9E9D00C0BFBE00E5E4E4008F8D8C000000 + 0000000000008F8F8D00E2E2E100E4E3E3009E9C9B00B3B1B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC100486FF0004068F0005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005176F1004169F0005075F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C0006485F300466DF000496FF000496FF000496FF000496F + F000496FF000496FF000496FF000466DF0006485F3005069C000000000000000 + 00000000000000000000000000000000000000000000000000004F69C000AFBF + F4005A7DF2006989F300708EF400718FF4006F8DF3006D8CF3007E99F500829C + F500274ABF005378F0004D72ED00476CE8003B60DE00355AD9002D53D3001940 + C300526CC5003C4F910000000000000000000000000000000000000000000000 + 0000000000000000000000000000C8C8C700DFDFDF00F2F2F100C7C7C6000000 + 000000000000D3D3D300A3A2A100F2F2F200C1C0BF00908E8D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000516BC2004A70F000486FF0005F81F2005F81F2005F81F2005F81F2005F81 + F2005F81F2005F81F2005F81F2005F81F2005A7DF200496FF0005378F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516AC1006888F3005075F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005075F1006888F300516AC100000000000000 + 0000000000000000000000000000000000000000000000000000506AC100AFBF + F400577BF2006787F300708EF4007794F4007693F4007491F4007C97F40086A0 + F500294CBF00577BF2005176EF004B70EB003E63E100355BDB002C53D400163E + C500536DC7003D50940000000000000000000000000000000000000000000000 + 000000000000000000009A989700F8F8F800C9C8C80094949400000000000000 + 000000000000000000000000000098979700F8F8F800E2E2E2009F9E9C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000556FC5004D72F1005378F100B8C7F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F9006C8BF3005579F1005C7EF000536D + C400536DC400536DC40000000000000000000000000000000000000000000000 + 000000000000536CC3006E8DF30092A9F60094ABF60094ABF60094ABF60094AB + F60094ABF60094ABF60094ABF60091A8F6006E8DF300536CC300000000000000 + 0000000000000000000000000000000000000000000000000000526CC300ADBD + F4008BA4F60099AFF7009EB3F7008BA4F6007491F4007290F4007D98F5008DA5 + F6002C4EBF005A7DF2004F74F1004269EE005D7DE9007993E900869DE8007B92 + E0008397D8004054980000000000000000000000000000000000000000000000 + 00000000000095959400C6C5C400E3E3E20092918F0000000000000000000000 + 000000000000000000000000000000000000E9E9E900EEEEEE00C5C5C4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C6005C7DEA005579F1007C97F4007D98F5007D98F5007D98F5007D98 + F5007D98F5007D98F5007D98F5007D98F5007290F4005A7DF2005E80F0003761 + ED003761ED00456AE50000000000000000000000000000000000000000000000 + 000000000000546DC400708EF400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB300708EF400546DC400000000000000 + 0000000000000000000000000000000000000000000000000000536DC400ABBB + ED008295D7006F84CE008599DA00B3C2F300B4C4F90091A8F6006B8AF30089A2 + F6002A4DBF004B71F100466DF0006787F30093A4DD008092CF00677ABC008797 + CD00A7B3DC0041569A0000000000000000000000000000000000000000000000 + 0000C7C7C700A8A7A500DDDDDC009C9A9900D3D3D30000000000000000000000 + 0000000000000000000000000000000000009C9B9900F3F2F200DFDFDE00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000556FC7005B7CEA00587CF2007F9AF500849EF50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F500859FF5007592F4005B7EF2005B7EF2000834 + C5000A36CA004568DA0000000000000000000000000000000000000000000000 + 000000000000556EC5007391F4009EB3F700A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F8009EB3F7007391F400556EC500000000000000 + 00000000000000000000000000000000000000000000000000005873CF00536E + C7009FB1F000AEBEF3009FB1F0005A74C9008E9FDD00B4C3F5006888F3007995 + F4002448BF004E73F1007C97F200889BDC006680D9009CAFEE00ACBCF1006780 + D400445AA6004860B10000000000000000000000000000000000000000000000 + 0000A19F9D00EBEBEA00C0BFBE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A5A500C4C3C200A2A0 + 9E00000000000000000000000000000000000000000000000000000000000000 + 00006B85DE005B78DB005479F1006283F2006B8AF3006F8DF3007391F4007391 + F4007391F4007391F400718FF4006D8CF3005C7FF2004A70F0004A70F000324B + 9C002648B700506BC20000000000000000000000000000000000000000000000 + 0000000000005770C7007693F400A6B9F800AFC0F900B1C1F900B1C1F900B1C1 + F900B1C1F900B1C1F900AFC0F900A5B8F8007592F4005770C700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859BE900ACBCF1009CB1 + F7002A4FC8005E77CA00859BE900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A2A000D2D1D0009A999800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009C9A9900A5A3 + A100000000000000000000000000000000000000000000000000000000000000 + 0000AFBFF3005D76CA005879E5005277F1005579F100577BF200587CF200587C + F200587CF200587CF200587CF200567AF2005075F1004C72F100446BF0006379 + C500526AB9005B72C40000000000000000000000000000000000000000000000 + 0000000000005871C8007491F400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB3007391F4005871C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008497D900AEBF + F8007189DA007C93E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A99009D9B9A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009C9A + 9900000000000000000000000000000000000000000000000000000000000000 + 000000000000859CE9005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C90093A8ED0000000000000000000000000000000000000000000000 + 0000000000005872C9006D8CF3006686F3007391F4007A96F4007E99F5007F9A + F5007E99F5007A96F4007290F4006485F3006D8CF3005872C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D200A1B0 + E80094A4DA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004E6ACE005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005B76D200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005A76 + D2005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 00000000000000000000000000000000000000000000000000004A60AE003544 + 7900485EA900435BAC00435BAC00435BAB00435BAB00435BAA00435BA900435A + A8004259A7004259A600435AA6004259A500435AA500435AA500435AA5004556 + 910033406D00455BA5000000000000000000000000000000000000000000AEBD + EC007A87B4008E9ED100808EBC00F0EFEF00EFEEEE00EDEDEC00EBEAEA00E9E9 + E800E8E7E700E5E5E400E4E3E3008E99BE008E9AC3008E9AC300808EBC008293 + CC008293CC008293CE0000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F1000000000000000000000000000000000000000000647BCB00364784004761 + B500072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A3004A5FA6003342760000000000000000000000000000000000BAC6F2002E42 + 8700798ED2002446B60003228900031E7B000322890003228900BCBAB900B7B5 + B400B2B0AF00A7A5A400A2A09E00031E7B00032289000322890003228900042A + AB00042AAB008194D50000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000033478A004B61AA002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A8004B5E9E00000000000000000000000000BAC6F20031458C006A79 + B2001B40B8001D41B90003238D00031F7F0003238D0003238D00CAC8C700C5C3 + C200C0BEBD00B6B4B300B1AFAD00031F7F0003238D0003238D0003238D00042C + B100042CB1008195D7000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB100000000000000000000000000314588004361C700042C + B300042CB2003252BF00DEE3F400C0CAEA003353BD00042BAD00042BAC00425F + C000FFFFFF008194D400042AA900042AA900BFC8E800FFFFFF00FFFFFF000328 + A4000328A300435EBB0000000000000000000000000034488F00879BDD00264B + C3001038BD00284CC4000D2D98000C2888000D2D98000D2D9800E0DFDF00DDDB + DB00D9D7D700D1CFCE00CDCBCA000C2888000D2D98000D2D98000D2D98001038 + BD001038BD00869ADE0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100A0AFE100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000034488C004362CA00042D + B800042DB600DEE4F500FFFFFF00FFFFFF00AFBBE200042BAF00042CB100617A + CE00FFFFFF008191CA000429A800042BAD00C0CAEA00FFFFFF00FFFFFF00042A + AA00042AA900425EBD00000000000000000000000000364B9400889DE100183F + C300183FC3002F53CA0013339C00112D8C0013339C0013339C00EBEAE900E7E6 + E600E3E2E200DCDBDA00D8D7D600112D8C0013339C0013339C0013339C00183F + C300183FC300889DE10000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B600042DB60003279F00FFFFFF009FAFE200042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD00000000000000000000000000364A91004363CE000530 + BE00042EBC00FFFFFF00FFFFFF00FFFFFF00FFFFFF000429A700042DB60091A3 + DE00FFFFFF006177BF00042BAC00042CB300EEF1F900FFFFFF00DEE3F100042B + AE00042BAE00425FC100000000000000000000000000394F99008A9FE3002047 + CA002047CA003559CF001938A100173391001733910017339100F4F3F300F1F0 + F000EDEDEC00E6E5E500E3E2E100173391001938A1001938A1001938A1002047 + CA002047CA008A9FE300000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC40012329D00FFFFFF00FFFFFF00A6B6E800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000003A509A004768D700133D + CA00153EC9004062D300E0E5F600C3CCEA001A3CAD000A32B700647ED800FFFF + FF00FFFFFF000429A700042FBE00042FBD00FFFFFF00FFFFFF008F9FD400042D + B800042DB8004362C9000000000000000000000000003E55A30091A6EA003157 + D6003157D6004668D8003350B2002D4BAE002D4BAE002D4BAE002D4BAE002D4B + AE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE003350B2003157 + D6003157D60090A5EA000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB001C3BA300FFFFFF00FFFFFF00FFFFFF00ABBAEB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000003C52A000496BDA001C46 + D1002149D1001F48D0001D44C900173CB600173DBD001640CB00E1E6F800FFFF + FF00FFFFFF000B33B8000A35C4000833C300FFFFFF00FFFFFF00516BBF00042F + BE00042FBD004363CD000000000000000000000000004058A90094A9ED003A5F + DD003A5FDD004669DF004E70E0004E70E0004E70E0004E70E0004E70E0004E70 + E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0003A5F + DD003A5FDD0093A8ED000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002B4FC700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D200FFFFFF00FFFF + FF00FFFFFF00FFFFFF002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003F56A5004C6EDF00244D + D7002C53D7002A51D6002951D600254DD400234BD3002F55D500FFFFFF00FFFF + FF00EFF2F900163FCA00153FCB00133DCA00FFFFFF00FFFFFF00193CAE000833 + C4000632C3004364D100000000000000000000000000435CAF0097ACF0004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E30097ACF0000000000000000000000000004158A600627CD900365C + DC004569DF004569DF003854B200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008BA1 + EB004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A6000000000000000000445CAF005073E700345C + E2004267E3006F8BE9006D89E800DAE1F900FFFFFF00FFFFFF00FFFFFF007A8F + D4002B4FC7002D54D900385DDA00F0F3FC00FFFFFF005771C8002147C8001C46 + D1001540D0004668D9000000000000000000000000004862B9009EB2F600587B + F000587BF0005070D9004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6E + D7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED700587B + F000587BF0009DB2F600000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E300415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000465FB4005275EA003D64 + E7004D71E900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008296D800375A + CD003C62E100385EDF00BFCBF400FFFFFF00BBC6E900284BBE002D55DA002750 + D9001D48D600486BDD000000000000000000000000004A64BB00A1B5F7006183 + F2006183F2005876DA00BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9 + F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F1006183 + F2006183F200A0B4F700000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8004963B900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C2CEF6005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E7FB005C7CE8005C7C + E800597AE8005375E700475EB40000000000000000004963B9005478EE00456B + EB00587BED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B9C5EB004567D900486D + E700456AE60094A9F000FFFFFF00FFFFFF004D69C800365BD400395FE0003058 + DE00244EDB004A6DE1000000000000000000000000004B65BC00A4B7F8006A8A + F3006A8AF300607CDA00C4CEF1009DAEE8009DAEE8009DAEE8009DAEE8009DAE + E8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8006A8A + F3006A8AF300A3B6F8000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1005C73C000FFFFFF00FFFFFF00CAD5F9007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F100738FEE00677DC500E0E5F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007D98F2007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000004D67BE00597CF2005579 + F1006E8DF3006B8AF0006785EA006585EE006686F3006384F2006082F1006888 + F100C0CDF800FFFFFF00FFFFFF00AEBBE7005074EA005074EC004D72EA00456A + E900345DE6004E72E9000000000000000000000000004D67BE00AABCF8007C97 + F4007C97F4006F88DC00D1D9F400B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0 + EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC007C97 + F4007C97F400A9BBF800000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500677CC400FFFFFF00FFFFFF00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5006B82CD007084C700E2E6F400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00E7ECFD00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F70000000000000000004E68BF005B7EF2005D80 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300A1B5F700EBF0 + FD00FFFFFF00FFFFFF00B4C0E9005370D0005C7EF0005B7EF000597CEF004E73 + ED003B63EB005074EC000000000000000000000000004E68BF00ADBEF800849E + F500849EF500778EDC00D7DEF400BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8 + EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00849E + F500849EF500ACBDF800000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6006F83C500FFFFFF00D4DDFC008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F60089A2F3007489CD00788AC800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00E9EEFD0092A9F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD000000000000000000000000004F69C0005D80F2006586 + F300849EF500829DF500819BF5007E99F50093AAF600C3D0FA00FFFFFF00FFFF + FF00FFFFFF009BABE1005E78D1006987ED006888F3006686F3006586F300597C + F200436AEF005277F0000000000000000000000000004F69C000B0C0F9008DA5 + F6008DA5F6007F95DD00DDE2F600C6D0F000C6D0F000C6D0F000C6D0F000C6D0 + F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F0008DA5 + F6008DA5F600AFC0F9000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F8008E9FD800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A0B3F4008998C900E7EA + F400FFFFFF00A8BAF800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD700000000000000000000000000516BC2006082F200708E + F4009AAFF700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5DBF10098A8 + DC00758BD300859FF500839EF500829CF5007F9AF5007D98F5007B97F4006989 + F3004F74F1005579F100000000000000000000000000516BC200B5C5F9009EB3 + F7009EB3F7008EA0DE00E5EAF700D5DCF200D5DCF200D5DCF200D5DCF200D5DC + F200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF2009EB3 + F7009EB3F700B4C4F90000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF80091A0D000929F + CA00DBE0F300AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA0000000000000000000000000000000000526CC3005F81F200718F + F400A2B6F800FFFFFF00FFFFFF00E8EBF600D9DEF000B2BDE3008598D9008CA1 + E60092A9F40090A8F6008EA6F6008CA5F60089A2F60087A1F500859FF5006E8D + F3005075F1005579F100000000000000000000000000526CC300B8C7F900A7B9 + F800A7B9F80096A6DF00E9EDF800DCE1F400DCE1F400DCE1F400DCE1F400DCE1 + F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400A7B9 + F800A7B9F800B6C6F90000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B6C5F600A1AE + D900B6C5F600B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF60000000000000000000000000000000000536DC4006685EC006C8B + F300A3B6F800A4B5EE0092A1D30097A7DD0098A8E1009BACE700A2B6F800A1B5 + F7009FB3F7009BB0F70099AFF70097ADF70094ABF60091A8F6008CA5F6006B8A + F3005075F1005E7EEC00000000000000000000000000536DC400BAC9FA00B0C0 + F900B0C0F9009DADDF00EDF0F900E3E8F600E3E8F600E3E8F600E3E8F600E3E8 + F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600B0C0 + F900B0C0F900B9C8F90000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 000000000000000000000000000000000000000000007A92E5006079CC00728E + EE007794F400829DF5008AA3F6008DA5F6008DA5F6008BA4F60089A2F60088A2 + F60087A1F500839EF500829DF500819BF5007B97F4007693F4006C8BF3005E80 + F2006786ED005F78CC00000000000000000000000000556FC600BECCFA00C0CE + FA00C0CEFA00ADB9E100F4F6FA00EDF0F800EDF0F800EDF0F800EDF0F800EDF0 + F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800C0CE + FA00C0CEFA00BDCBFA0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 00000000000000000000000000000000000000000000000000005974CF00617A + CD005F81F2006586F3006888F3006A8AF3006A8AF3006A8AF3006A8AF3006989 + F3006989F3006888F3006888F3006787F3006586F3006384F3006082F2005E7D + E5006079CD006984DD000000000000000000000000005670C700A6B9F800C1CE + FA00C3D0FA00BCC8EE00F9FAFE00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6 + FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00C3D0 + FA00C0CEFA00A4B7F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007C93 + E5005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005D76 + CC007C93E500000000000000000000000000000000005771C9005771C8005771 + C8005771C8005771C800ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8 + E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E3005771 + C8005771C8005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293662002531 + 5800253158002633600032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046599700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004659970035457A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D609E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC001338B100CFD6 + EE00FFFFFF001338B100042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046599A00475FB10000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100CFD6EF00FFFF + FF00FFFFFF00CFD6EF001439B600042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB1001439B600CFD6 + EF00042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100A0AFE100A0AF + E100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600143ABA00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D0D7F100143ABA00042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600D0D7F100FFFF + FF00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455CAE004C63 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF009FAFE200042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C63AD00000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED00000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00264BC800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFF + FF00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400A6B6E800FFFFFF00FFFFFF00FFFF + FF00FFFFFF00A6B6E800173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD006C83D40000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35 + BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F5194000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00D4DBF400FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D4DBF4002F54CE00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB002F54CE00D4DBF400FFFFFF00FFFFFF00FFFF + FF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00ABBAEB00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00ABBAEB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53CF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D6DDF5002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200D6DDF500FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004467DC00B6C2EA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627DD900365C + DC004569DF003C5BC200B4BFE200FFFFFF00FFFFFF00FFFFFF003D5CC3003854 + B200B4BFE200FFFFFF00FFFFFF00FFFFFF00B8C6F2004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D300000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C7004C66BA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C700415CB600FFFFFF00FFFFFF00BECBF5005173E3004764 + C700415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00BCC9F4005173E3005173 + E3004F71E3004368E100435BAB0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D700000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7CE800FFFFFF00FFFF + FF00FFFFFF00FFFFFF005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005B7BE5004E69C300DCE1F100FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE800526ECB00BCC5E500C2CEF6005C7CE8005C7CE8005C7C + E800526ECB00BCC5E500FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0CCF5005C7C + E800597AE8005375E700475EB40000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF00FFFFFF007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1006078C900677DC500E0E5F300FFFFFF00FFFF + FF007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F100657FD3005C73C000C3CBE800FFFFFF00FFFFFF00FFFFFF007491 + F1006988EF006E8CF0007790E10000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC006886EC006886 + EC006886EC006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D500000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5007E98F1006B82CD007084C700FFFFFF00FFFF + FF00819BF500819BF500819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000CED8F7005971C3007E98 + F1007D98F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5007088D600677CC400FFFFFF00FFFFFF00CFD9FA007E99 + F5007290F4007E98F100CED8F70000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600FFFFFF00FFFF + FF00FFFFFF00FFFFFF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F60089A2F3007489CD00E3E7F400FFFF + FF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100758C + DD007F9AF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6008BA4F6008BA4F6007A8FD700C9D0E800D4DDFC008BA4F600819B + F500809BF500768DDD00000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC2000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F8008898CF00A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D7008CA4F4008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F70092A9 + F400758AD500607AD700000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF70096ACF70096AC + F70096ACF70096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF8008B99C7008B99 + C7008B99C700AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 00008599E00094ABF60097ADF700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF7008CA0 + E100546FCA000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 0000576FC80090A3E300A0B4F600ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900A9BBF8009CB1F70098ADF5005870 + C700BFCDF600000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE3009FB3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700859BE200667DCC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000869CE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000253671003E4D + 8200495991008699DD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002737730027377300B6C5F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008197DC0044579500405B + B8005B73C4005A679400293D8500B9C6F100000000000000000000000000293D + 8500293D8500B9C6F10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000273770003F519200283B7A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197DD002A3C7B003755BB003E5B + BD008798D100465BA000465BA0002A3E83000000000000000000BAC6F200465B + A000465BA0002A3E830000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002A3C7800435EB90040549800B9C6F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000354787004963B7002B4EC0007188D4006273 + B0004B64B500123DCC00123DCC004A6BD80032499A0032499A004B64B500123D + CC00123DCC004A6BD800384FA200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000304486004260C5001E42BA00445AA50032468E00BAC7F2000000 + 0000000000000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005169BE004A64BA002A4EC400042EB9007289D7006677 + B8004F69C0001240DA000535D8001240DA004E69BF004E69BF004B6EE3000535 + D8001240DA004B6EE3003D55AC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034488E004363CC00143BBF003F5FCB00455DAC00354A95000000 + 0000000000000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546CC000384C90002B50C800042FBE00042FBE002B4FC700869A + DC005E74BB004C71ED001344E7000539E600476DED00476DED001344E7001344 + E7004C71ED00536DCA00BECCF5000000000000000000374C9500374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004364D300143DC700103AC6003E60D1004760B300BDC9 + F4000000000000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0031458E00000000000000000000000000000000000000 + 0000394E97004D68C5002C52D1000431C7000431C7000431C6000431C6000431 + C5003358D0006478C2005C76D2005378F1001748EC001748EC001748EC005C76 + D200435CB600BECCF5000000000000000000000000004D6DD6001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001441D8001441D8000838D5000535D5000535D500103ED7004C67 + C1003F57AA00BECCF5000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F519400000000000000000000000000435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC002C3E7B0000000000000000000000000000000000BCC9 + F400536BBD00385DD7000C39CE000E3ACE000E3ACD000E3ACD000E3ACC000E3A + CC003B5FD600667BC4006981D5006787F300315DEF00315DEF00315DEF006981 + D500455FB800BFCCF5000000000000000000000000004F70DD000637DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD004167 + E6004F6AC700435BB1000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000004361C700042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB40032468800000000000000000000000000000000003E55 + AB004266DD001A45D6001944D5001D47D5001C46D4001C46D4001D47D4004669 + DB0092A4E6006F87D6007F9AF500567AF2004C72F1004C72F1004C72F1007F9A + F5006F87D6004761BA000000000000000000000000005677E4001848E7001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8002552 + E9004B70ED00536FCE00BFCCF50000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000004568DE000D3BD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000C3AD5003F57A5000000000000000000ABBCF100435AA9005B78 + D9002E57E000345CE100385FE200385FE100385FE100385FE0008FA5EE00778B + CE007F93DA0088A2F600819BF50087A1F500899BDD00899BDD00A5B8F800819B + F50088A2F600A5B8F8004E68C30000000000000000006785EA00496FF0005479 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005176 + F1004B71F1005A7DF2004A64BD0000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D3000000000000000000000000004D72EA002652E6002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002955E700224FE500465FB40000000000000000004E68C3007B8DCC006383 + EC003E65E6004469E700456AE700466BE700456AE600456AE60096ABF000798C + D0008699DD00A1B5F700A1B5F700B7C7F9006E82CB006E82CB00899CDE00A1B5 + F700A1B5F700B7C7F9004F6AC50000000000000000006E8AEA005E80F200708E + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF4006989 + F3006E8DF300607AD600BFCCF50000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D7000000000000000000000000005579F1003F68F000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0003761EF004C66BD000000000000000000475FB200B8C5EF005175 + ED004E73EB005376EC005376EC005376EC005477EC005376EB006F8CEE00A9B9 + F1006F84CD00C0CEFA00C0CEFA008FA0DF00A9B9F000A9B9F0006F84CD00C0CE + FA00C0CEFA008FA0DF00BFCDF6000000000000000000738EEB006D8CF30087A1 + F5008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008BA4F6007F9A + F500657FD7004C66C0000000000000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000005D80F2006586F3007491 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007995 + F4006F8DF300597CF200516BC20000000000000000008095DE00A9BBF800577B + F2006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300708E + F4008AA3F5007F91D3007F91D300B4C3F4006F8DF2006F8DF2008AA3F4007D91 + D2007D8FD300AFBFF3006982D90000000000000000006985E300738EEB007C96 + EC00829BED00829BED00829BED00829BED00829BED00829BED00829BED00829B + ED00839CED0096ABEF00B8C7F900C5D1FA00C1CEFA00ACBDF8008CA5F6004F69 + C200BFCDF600000000000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00FFFFFF00FFFF + FF00FFFFFF006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D5000000000000000000000000005E7DEA00718DEC007792 + ED007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95 + EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007993 + ED007590EC006D8AEC00546EC500000000000000000099ACEE00B1C1F9007290 + F400839EF5007F9AF5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500BBCAFA00BBCAFA0097ADF7007F9AF5007D98F5007D98F500B0C0 + F800A5B8F7007995F400536ECA000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC1009BB0F700BDCBFA00B5C5F90096ACF7006882D800BFCD + F60000000000000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA000000000000000000000000005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005A75D1000000000000000000A4B4EE00D3DCFB0087A1 + F50097ADF70092A9F6008EA6F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F60097ADF70096ACF70094ABF6008FA7F6008DA5F6008BA4F6007F9A + F5006C8BF3005B7EF2004760B900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC20088A2F600A3B6F80098AEF7006F87DA00516BC4000000 + 00000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000096AAEC00DFE6FC00D2DB + FB00B5C5F900B7C7F900B4C4F900ADBEF800AABCF800A6B9F800A0B4F700B3C3 + F800DCE3F900DDE4FC00B6C6F900B3C3F900AFC0F900AEBFF800ACBDF80097AD + F7007F9AF5006787F3004861B800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006A8AF3007693F400536DC600BFCDF600000000000000 + 00000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700798AC500798A + C5007F92D10096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000798FD900DCE3FC00E6EB + FD00BECCFA00C1CEFA00C1CEFA00BBCAFA00B4C4F900ACBDF800A4B7F800A4B4 + EA0093A3DB00E7ECFD00D9E1FC00BBCAFA00BCCAFA00BBCAFA00B6C6F9009DB2 + F700839EF5006F8DF300516AC700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600577BF200657FDB00BFCDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000637AC700B8C7F800E6EB + FD00DDE4FC00C6D2FA00C3D0FA00BBCAFA00B3C3F900A5B8F800A7B8F3006177 + C4005068BE00E6ECFD00E7ECFD00E0E6FC00BCCAFA00BBCAFA00B6C6F9009BB0 + F700819BF5007B97F400657FD800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005670C7005B78DA005670C8000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600516AC3008699 + DD00DBE2FC00E7ECFD00E6ECFD00E4E9FD00D0DAFB00A6B6EB00536ECA000000 + 0000000000005C73C400A3B3EB00CBD6F900E2E8FD00E0E6FC00DEE5FC00C3D0 + FA008AA0EE006177C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600516B + C7008499DE009CAEEF00A7B8F2008BA0E7007489D100526AC000000000000000 + 000000000000839AE7004F69C2006D82CD0091A7EE009FB2F10094A9EF006C85 + D9005870C3005E79D30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005975D1005069C0004F69C000526CC7006680DA00D3DBF800000000000000 + 0000000000000000000000000000839AE7004F68BF004F68BF004F68BF005E79 + D5009FB0EF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008D8B8B00918F8D00918F8D00918F8D00918F8D00918F + 8D00918F8D00918F8D00918F8D00918F8D00918F8D008D8B8B00000000000000 + 00000000000000000000000000000000000000000000808080007D7D7D009D9D + 9D00C5C5C500C5C5C500C5C5C500C5C5C500C7C7C700C7C7C700C8C8C800CECE + CE00CFCFCF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000082807F00F7F7F700B2B2B200B2B2B200B2B2B200B2B2 + B200B2B2B200B2B2B200B2B2B200B2B2B200F7F7F70082807F00000000000000 + 00000000000000000000000000000000000000000000B0B0B000A6A6A600F9F8 + F800838382009E9E9E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000273465007287CC005971 + C3005971C3005971C3005971C3005971C3005971C3005971C3005971C3005971 + C3005971C3005971C3005971C3005971C3002734650000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030458D0025356E004B494900717170007171700071717000717170007171 + 700071717000717170007171700071717000717170004B49490025356E000000 + 000000000000000000000000000000000000000000000000000086868600DCDC + DC00ACABA9008988870080808000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3A73006B86E1001639 + AC001639AC001639AC001639AC001639AC001639AC001639AC001639AC001639 + AC001639AC001639AC001639AC002446B7002A3A730000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029386E00283564004D4C4B00767675006261600062616000626160006261 + 600062616000626160006261600062616000767675004D4C4B0028356400768C + CF00000000000000000000000000000000000000000000000000000000008F8F + 8F00DCDCDB00A5A4A2008A898800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3E7B006984E1000328 + A4000328A4000328A4000328A4000328A4000328A4000328A4000328A4000328 + A4000328A4000328A4000328A400163AB2002C3E7B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000344892004358A100425F + BF00425FBF0041528C0076757500ACACAC00ACACAC00ACACAC00ACACAC00ACAC + AC00ACACAC00ACACAC00ACACAC00ACACAC00ACACAC007675750041528C00425F + BF00425FBF004358A10000000000000000000000000000000000000000000000 + 0000CECECE00EBEBEA00C0BFBE008A8988007E7E7E00D3D3D300000000000000 + 0000000000000000000000000000B6C3F0003E55A10000000000000000000000 + 0000000000000000000000000000000000000000000033458900738DE7000A32 + B8000A32B800375BD2006B86E0006480DE00163CBC000A32B8000A32B8000A32 + B8000A32B8000A32B8000A32B8001C42C2003345890000000000000000003449 + 9100334589005E76C90000000000000000000000000037477F00CDD6F6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324588004260C5001036 + B600042CB200021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A + 6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00042C + B2001036B6004260C50000000000000000000000000000000000000000000000 + 00007E7E7E00CECECE00EBEBEA00A5A4A2008A8988007E7E7E00000000000000 + 00000000000000000000B6C3F000273872002E417F0000000000000000000000 + 00000000000000000000000000000000000000000000364A91007E95E3002349 + C8002C51CF00607BD80044589B007A8CCE006884E200143CC300113AC200113A + C200113AC200113AC200113AC2001E45C800364A910000000000869BE100627C + D600607CDA004D62A4000000000000000000000000006D789F004B62B1000000 + 000000000000000000000000000000000000000000000000000000000000293C + 7A00283871002838710028387100283871002838710028387100283871002838 + 71002838710028387100293C7A000000000000000000354A8F004362CB00042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB90003269C000325 + 940003269C004362CB0000000000000000000000000000000000000000000000 + 0000D3D3D3007E7E7E00CECECE00C0BFBE00A5A4A2008A898800D3D3D3000000 + 000000000000B6C5F100283873006472A000364E960000000000000000000000 + 000000000000000000000000000000000000000000005068BE00788DD3005B7A + E0005375E400586DB4006D85D6004559A0007F96E1004063D8001841CA001841 + CA001841CA001841CA001841CA001841CA0042579E00000000003D55A8003B60 + DB002F55D600607EE200BDC9F40000000000000000007D89B10035447D00A3B4 + EB00000000000000000000000000000000000000000000000000000000003447 + 8400949DBE00435DB600435DB600435EB6004761B7004963B8004A64B8004E67 + BB004E67BB004C66BA002B3C760000000000000000003C529D004C6CD8002048 + CE00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234A + CF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002243B2002343 + AC001F41B1004B6BD80000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300CECECE00EBEBEA00C0BFBE00706F6E005C5C + 5C009DADE2006979AE008192CC007E8EC7006077C40000000000000000000000 + 00000000000000000000000000000000000000000000000000005D76CF006073 + BB00798ED200556FC70000000000BDCBF400576CB300859EF0002751DE002751 + DE002751DE002751DE002751DE002751DE00667CCB004058A8006B82D0002751 + DE002751DE003D63E3004E68C0000000000000000000707DAA004B66C0004959 + 9400000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F20094A0C8007A8ED1002647B6002C4CB8003150B9003755BB00415E + BF00435FBF003856BC003143830000000000000000004157A4005373DE00385D + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D900365BD8005272DE0000000000000000000000000000000000000000000000 + 00000000000000000000000000007E7E7E00CECECE00EBEBEA00737271006367 + 74003D5093008195D7005871C3007A8CCA00A2B3E90000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000738B + DD004760BA00BECCF5000000000000000000445CB0008AA1EC002F59E6002F59 + E6002F59E6002F59E6002F59E6002F59E6006A88EE00748DE1006A88EE002F59 + E6002F59E6003C63E800516CC700000000000000000054639C006980CC004964 + BF00546CC0000000000000000000000000000000000000000000000000000000 + 0000000000003C5094006E7FBC00516CC9003858C1003E5CC2004462C5004F6B + C800536ECA004764C600344789000000000000000000445BAB005B7BE4005072 + E2005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3004C6FE1005979E40000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3D3D3007E7E7E00A7A7A70081859400455B + A6007084C7005A75D2004F6AC7008496D300B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005570CC008EA4EF00355FED00355F + ED00355FED00355FED00355FED00355FED003E67EF00456CEF003962ED00355F + ED00355FED00436AEF004761BA0000000000000000003D5196008596D0003F5F + C80040539500556EC30000000000000000000000000000000000000000000000 + 000000000000384D9600586FBA00516DCD004563C9004C69CC00516DCD005C76 + D0005F7AD100536FCD00374C8F0000000000000000004C65BA006A89EF007E99 + F100A4B6F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BA + F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF50090A7 + F3007A95F1006786EF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2B1E600788ED9008CA4 + F5006B8AF0005071DF003257D000123ABF004E5F9B00465CAC00000000000000 + 00000000000000000000000000000000000000000000000000006D87DD00637A + C7007087D8005D77D30000000000D2DBF8005B72C10089A2F300456CF000456C + F000456CF000456CF000456CF000456CF0007F98EA00647AC40090A3E400456C + F000456CF000587CF2005671CE000000000000000000B3C0EF006475B0007089 + DA002D52CE004E6CCF004F64AF005E77CC009CAEED0000000000000000009CAE + ED004C65BC005E78D1005C78D8005371D700607CD9006681DB006A85DC00758E + DF007A92E0006883DB003E539D000000000000000000506AC1006F8DF30090A7 + F5008C90A3006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A + 6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A00B6C6 + F8008AA3F5006B8AF30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004862BC0095ACF7007C97 + F400718FF4003D63E3000534D1000431C600556EC200475890004F67B7000000 + 00000000000000000000000000000000000000000000AEBEF2005B72C200869F + F0007B95EF00536CBF00D2DBF8007990E2007C8FD4007995F4004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1006C83CD005771CE00687DC7005277 + F1004C72F1006C8BF3007990E2000000000000000000000000004960AE0095A5 + D900113DCE002F55D4004B6CDA004D64B200455BA5004359A6004258A500485E + A6005269B9006480DE005A78DD00627EDE006E88E100728CE1007790E3008299 + E400869CE600718BE1004158A3000000000000000000526CC3006C8BF3009CB1 + F700959392009593920095939200959392009593920095939200959392009593 + 920095939200959392009593920095939200959392009593920095939200C6D2 + FA0092A9F6006787F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BD007E92DA008AA3F600859F + F5007E99F5002250E9000F3FDD000534D1002146C400556FC20042538B000000 + 00000000000000000000000000000000000000000000657FD9008195DD006F8D + F3007794F400738AD5005D78D300556DC10089A0EC006686F3005277F1005277 + F1005277F1005277F1005277F1005277F1005E75C300D2DBF8004F69C5007B97 + F4005E80F200879FEF00D2DBF800000000000000000000000000889CE2008090 + C5001F49D600244DD7003057D9005A79E0005A78DE005976D6005C78D600617F + E2006B86E300617FE2006B87E400708BE5007993E7007F97E800849BE80092A7 + EB0090A5EA007690E500455CAA000000000000000000000000005974CF006782 + DB009C9A9900A09D9C0096939200969392009693920096939200969392009693 + 9200969392009693920096939200969392009693920096939200A09D9C007A94 + ED006681DB005974CF0000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF500889BDD00AFC0F900B4C4F900D1DBFB00B6C6 + F9006A8AF300476EF000345FEF002250E9000534D1000431C6003356C900394C + 8E00B9C6F200000000000000000000000000000000004E68BF008FA6F3005B7E + F2006183F2007693F40094A9F300829CF5006485F3006183F2006183F2006183 + F2006183F2006183F2006183F2006A8AF3004E68BF0000000000000000004F68 + C1004E68BF006F89DF00000000000000000000000000000000000000000098AB + EA0098ABED004066E600466BE7005376E900587AE9005D7DEA006987EC006E8B + EC00738FEC007E98EE00839CEF0089A1EF0094A9F10099ADF10098ADF100CCD5 + F400B2C2F5006886EB004C65B900000000000000000000000000000000005A75 + D1006B6968009D9A9900615F5F00BFBFBE00BCBCBB00BAB9B800B4B3B200B1B0 + AE00ADACAB00A6A5A400A2A1A0009F9D9C0097959300615F5F009D9A99005771 + C8005A75D1000000000000000000000000000000000000000000000000000000 + 000000000000000000004F6BC600B9C5EF00ABB9E9008E9FD9006F83CB0096A6 + DD00B2C2F8005579F100466DF000345FEF001040DD000534D1000935C8005B6F + B2003A4D8F00CED7F7000000000000000000000000004F69C0008CA5F6006082 + F2006989F3006989F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006C8BF3004F69C00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2B0E0007E99F0004E73EC005F80EE006686EF006B89EF007692F0007B96 + F100809AF1008BA3F30091A8F30096ACF400A1B4F500A0B3F500A5B7F500677D + C800ABB9E8009BB0F4005069BF00000000000000000000000000000000000000 + 000074727100A3A09F0067656500E2E1E100DFDFDE00DDDCDC00D7D7D600D5D4 + D300D1D1D000CBCAC900C8C7C600C4C3C200BCBBBA0067656500A3A09F000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546FCB005975D1006580D9007990E300BFCDF600546F + CB008FA0DA007491F4005479F100466DF0002250E9001040DE000534D1004161 + CC00596BAC0037488700314075003C539C0000000000506AC1008AA3F6006A8A + F3007D98F5007E99F5007B97F400708EF400708EF400708EF400708EF400708E + F400708EF4007A96F4007995F4007491F400506AC10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C900B4C1EC00829DF4006C8BF3007391F4007995F400829DF40087A1 + F5008DA5F50098AEF6009DB2F600A3B6F700A1B5F700A5B8F700BECBF600617C + D8005A74C900A4B4E800546EC500000000000000000000000000000000000000 + 000085838200AFADAB0073717000F2F2F200F1F1F000F0EFEF00EDECEC00EBEB + EA00E9E9E900E5E5E500E3E3E200E1E0E000DCDBDB0073717000AFADAB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007488CF00B1BFF000829DF500466DF000345FEF002250E900042D + B600082BA100788AC60040539300B8C5F200000000005B76D300526CC300526C + C300526CC300526CC300526CC3007388CF00A2B2E700B3C3F900A0B4F6008FA1 + E0006D82CC00526CC300526CC300526CC300607BD70000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED006D82CE00B1C1F8008AA3F600829DF5009AAFF700A1B5 + F700A6B9F800ACBDF800A8BAF800AFC0F900B5C4F4007E93D6005A76D2000000 + 000000000000C1CDF6005771C900000000000000000000000000000000000000 + 00008E8C8A00B5B3B10079777600F6F6F600F5F5F500F5F5F400F3F3F300F2F2 + F200F1F0F000EEEEEE00ECECEC00EBEAEA00E7E7E60079777600B5B3B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E400687DCA00B3C1F1005277F100466DF000345FEF001035 + B200788CCF009CA8CF00BAC7F300000000000000000000000000000000000000 + 0000000000000000000000000000718AE0006178C900B5C4F500A0B3F300546D + C40092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BBC9F50095A6DE00C2CEF300B9C8F900A8BAF800A4B7 + F800A7B9F800B6C6F900C2CFFA00C1CEF800647CCD00647EDA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000908F8E00959391007F7D7C00F7F7F700F7F7F700F7F7F700F6F6F600F6F6 + F600F5F5F500F4F4F400F3F3F200F2F1F100EFEFEF007F7D7C00959391000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006179CA009CB1F7004F74F100385CD2008196 + DA009FACD6004F67B50000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0006F84CF00A2B2E900A9BBF800AABCF7008C9F + DF00647ACA009FB1F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007C93E400667FCC008799D900BDC9F100C0CD + F600C1CDF600A5B5EA008497DB00657DCD009DB1EF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008B898800EBEBEA00EDECEC00EEEEED00F1F1F100F3F2 + F200F4F4F400F6F6F600F7F7F700F7F7F700F7F7F7008B898800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005670C700647ED2008A9DDC005B74 + CA00C1CDF6000000000000000000000000000000000000000000000000000000 + 0000000000005770C800A1B3EF009BB0F7009BB0F7009BB0F7009BB0F7009BB0 + F7009BB0F7008DA2EB005770C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000918F8D00E4E4E300E6E5E400E7E7E600EAEAE900ECEB + EB00EDEDEC00F0EFEF00F1F1F100F3F2F200F5F5F500918F8D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C8008EA0DF00A5B2DD00C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800A5B7F300A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F80095AAF1005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000908F8E00959391009593910095939100959391009593 + 91009593910095939100959391009593910095939100908F8E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C800A3B0DE005C75CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDB008D9FDF00B4C4F900ADBEF800A8BAF800A6B9F800AABC + F800ACBDF800879ADC006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006B85DE005A74CF005872C9005872C9005B76 + D2006B85DE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C200C0C0 + C000263159002631590026315900263159002631590026315900263159002631 + 5900263159002631590026315900263159002631590026315900263159002631 + 59002E3D7100C0C0C000D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9002736660000000000000000000000000000000000C4C4C4004E63A6003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193004E63A600DBDBDB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F448B002E3F7B002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B7800354B970000000000000000000000000000000000000000000000 + 00004F69BF000328A300FFFFFF00E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F6004F69 + BF002C3D7B0000000000000000000000000000000000000000003D57AE00435D + B30007299A0007299A0007299A0007299A0007299A0007299A0007299A000729 + 9A0007299A0007299A0007299A0007299A0007299A0007299A0007299A000628 + 9A00435DB3003D57AE0000000000000000000000000000000000000000000000 + 00005972C900374D9E0034499400425AAE00768DD80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F2004F609F002C3D7B004E66B700506AC400506A + C400506AC400506AC400506AC400506AC400506AC400506AC400506AC400506A + C400506AC4002D3F7F0000000000000000000000000000000000000000000000 + 0000506AC400042AAA00FFFFFF00E6EAF700E6EAF700E6EAF700E6EAF700E6EA + F700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700506A + C4002F40800000000000000000000000000000000000000000003E58AF004660 + B9000F32A4001032A4001032A4001032A4001032A4001032A4001032A4001032 + A4001032A4001032A4001032A4001032A4001032A4001032A4001032A4000D30 + A3004661B9003E58AF0000000000000000000000000000000000000000005C75 + CF00536CC2005B77D4005874D200566EC1004C60A100354A9300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC6F20031458D00526ECE002F4183000328A000042CB200042C + B200042CB200042CB200042CB200042CB200042CB200042CB200042CB200042C + B200506CC9003043850000000000000000000000000000000000000000000000 + 0000506BC800042CB100FFFFFF009397A5009397A5009397A5009397A5009397 + A5009397A5009397A5009397A5009397A5009397A500E6EAF800E6EAF800506B + C8003245860000000000000000000000000000000000000000003F59B0004863 + BF00173AAE0015359F0015349C0015349C0015349C0015349C0015349C001534 + 9C0015349C0015349C0015349C0015349C0015349C0015349C0015359F001538 + AE004A65C0003F59B000000000000000000000000000000000005E79D3005269 + B900345CE4001744DB000434D200254CCF004666D300586DB6008499DF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374D9A002C459A000732C1006582E30035498F00042BAE000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2004F6DD300364B930000000000000000000000000000000000000000000000 + 0000506ED200042FBF00FFFFFF00E6EBF800E6EBF800E6EBF800E6EBF800E6EB + F800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800506E + D200374B92000000000000000000000000000000000000000000415BB2004D6A + CA002649BF002343AC00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DF + DE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE002343AC002246 + BE00506CCB00415BB200000000000000000000000000607AD1006881D5005176 + F1001344E8000639E3000537DD000434D2000433CE000935C900586EB700374A + 8D00849BE0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F4002E489F000833C5000D3AD0007791EB00374C9700042DB6000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA004F6FD9003A4F990000000000000000000000000000000000000000000000 + 00004F6ED6000431C500FFFFFF009398A6009398A6009398A6009398A6009398 + A6009398A6009398A6009398A6009398A6009398A600E6EBF900E6EBF9004F6E + D6003A4F99000000000000000000000000000000000000000000425CB3004F6D + D0002E52C8002949B300DCDBDA00F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F800DCDBDA00DCDBDA002949B300284D + C500526FD100425CB300000000000000000000000000455EB7007C96EA004D72 + F1002856EE001445E8000639E3000535D8000434D2000433CE004162D100596E + B700384A8E000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000425A + AE005271D9005676E1006583E800859EEF003B509D00042EBC000434D1000434 + D1000434D1000434D1000434D1000434D1000434D1000434D1000434D1000434 + D1004F70DF003C53A10000000000000000000000000000000000000000000000 + 00004F6FDB000432CD00FFFFFF00E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9004F6F + DB003D539F000000000000000000000000000000000000000000435DB400516F + D5003559CF003050BA00D8D7D600F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F700D8D7D600D8D7D6003050BA002F54 + CD005573D700435DB4000000000000000000000000004A62B600859DEE005176 + F1003C65EF002856EE001445E8000537DD000535D8000434D2000935C9004162 + D1005A6FB800859BE00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000445C + AF000432CA000432CA000432CA000432CA000432CA000535D9000537E1000537 + E1000537E1000537E1000537E1000537E1000537E1000537E1000537E1000537 + E1004F73EA00445CAF0000000000000000000000000000000000000000000000 + 00005073E5000536D900FFFFFF009398A8009398A8009398A8009398A8009398 + A8009398A8009398A8009398A8009398A8009398A800E6EBFB00E6EBFB005073 + E500425AAC000000000000000000000000000000000000000000455FB6005676 + E0004367DD003D5DC700DDDDDC00BABED100F3F3F700F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700F2F3F700DDDDDC00DDDDDC003D5DC7003C61 + DB005B7AE100455FB6000000000000000000000000005570CB00859BE6007C97 + F4006384F3005075F1003C65EF001445E8000639E3000537DD000434D2000433 + CE000935C9005A70B9003A4D910096A7E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004760 + B700063AE800073BE900073BE900073BE900073BE900073BE900073BE900073B + E900073BE900073BE900073BE900073BE900073BE900073BE900073BE900063A + E8005075EF004760B70000000000000000000000000000000000000000000000 + 00005174EA00093BE200FFFFFF00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EB + FC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC005174 + EA00465FB20000000000000000000000000000000000000000004660B7005778 + E5004B6EE3004463CC00E1E1E000858FAF00DBDEE800F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700DBDDE700E1E1E000E1E1E0004463CC004368 + E2005D7DE6004660B7000000000000000000000000008197E5007386CE0091A8 + F6007693F4006384F3005075F1002856EE001445E8000639E3000535D8000434 + D2000433CE004162D100979DB700888786000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004963 + BA000E41EC001042EC001143EC001143EC001143EC001143EC001143EC001143 + EC001143EC001143EC001143EC001143EC001143EC001143EC001143EC000E41 + EC005378F1004963BA0000000000000000000000000000000000000000000000 + 00005579EF001344E800FFFFFF00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7EC + FC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC005579 + EF004962B90000000000000000000000000000000000000000004761B8005A7B + EA005376E9004A69D000E5E4E4007C86A700838BAC00B7BBCF00F5F6F900FEFE + FE00FEFEFE00E2E5EC00B6BACD008089A900E5E4E400E5E4E4004A69D000496E + E7006080EB004761B800000000000000000000000000000000004D66BE0094A5 + E300829DF5007794F4006384F3003C65EF002856EE001445E8000537DD000535 + D8000434D2008794C700C5C5C500B3B3B300B0B0B00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004C65 + BC001F4FED002553EE002654EE002654EE002654EE002654EE002654EE002654 + EE002654EE002654EE002654EE002654EE002654EE002654EE002654EE001E4E + ED005A7DF2004C65BC0000000000000000000000000000000000000000000000 + 00005F81F2002856EE00FFFFFF00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD005F81 + F2004D66BD0000000000000000000000000000000000000000004963BA005E80 + F2006283F2005876DA00ECEBEB007780A2007780A1007780A100F1F2F600F1F2 + F600F1F2F600C1C6D500747E9F00737D9F00ECEBEB00ECEBEB005876DA00577B + F2006686F3004963BA00000000000000000000000000000000000000000090A4 + EA009AABE5009FB3F700849EF5006384F3005075F1003C65EF001445E8000639 + E3009BABE100CECECE00C4C4C400BBBBBB00B5B4B3008A898800B1B0B0000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BE002755EE00305CEE00325EEF00325EEF00325EEF00325EEF00325EEF00325E + EF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF002755 + EE005E80F2004D66BE0000000000000000000000000000000000000000000000 + 00006485F300325EEF00FFFFFF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD006485 + F3004E67BF0000000000000000000000000000000000000000004A64BB006082 + F2006989F3005F7BDA00EFEFEE00747E9F00747E9F00737D9F00F1F2F600F1F2 + F600F1F2F600E8EAEF00717A9D00717A9D00EFEFEE00EFEFEE005F7BDA005E80 + F2006989F3004A64BB0000000000000000000000000000000000000000000000 + 0000556DC0009BABE5009FB3F7007794F4006384F3005075F1002856EE00A7B7 + ED00E7E7E700D7D7D700CECECE00C4C4C400C5C5C500B5B4B4008B8A89000000 + 0000000000000000000000000000000000000000000000000000000000004E68 + BF00305CEE003B64EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF002F5B + EE006183F2004E68BF0000000000000000000000000000000000000000000000 + 00006989F3003D66EF00FFFFFF00989DAA00989DAA00989DAA00989DAA00989D + AA00989DAA00989DAA00989DAA00989DAA00989DAA00EBF0FD00EBF0FD006989 + F3004F68C00000000000000000000000000000000000000000004B65BC006384 + F300718FF4006580DB00F2F1F100717A9D00717A9D00717A9C00F1F2F600F1F2 + F600F1F2F600F1F2F5006F7899006F789900F2F1F100F2F1F1006580DB006485 + F3006C8BF3004B65BC0000000000000000000000000000000000000000000000 + 000091A4EB00566FC1009CADE600849EF5007794F4006384F300B7C6F400F5F5 + F500EFEFEF00E0E0E000D7D7D700CECECE00BBBBBB00C5C5C500B5B5B500B1B1 + B10000000000000000000000000000000000000000000000000000000000516A + C1004169F0005075F1005378F1005378F1005378F1005378F1005378F1005378 + F1005378F1005378F1005378F1005378F1005378F1005378F1005378F1004068 + F0006888F300516AC10000000000000000000000000000000000000000000000 + 00007391F4005277F100FFFFFF00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE007391 + F400516BC20000000000000000000000000000000000000000004D67BE006787 + F300809BF500728BDC00F7F7F6006C7697006B7597006B759600F0F1F500F0F1 + F500F0F1F500CDD1DC006972950069729400F7F7F600F7F7F600728BDC007290 + F400718FF4004D67BE0000000000000000000000000000000000000000000000 + 0000000000000000000091A5EB009DAEE6009FB3F700CCD5F300F8F8F800FAFA + FA00F9F9F900EFEFEF00E7E7E700E0E0E000CECECE00C4C4C400BBBBBB00B6B5 + B5008B8A8900000000000000000000000000000000000000000000000000526C + C3004A70F0005A7DF2005E80F2005E80F2005E80F2005E80F2005E80F2005E80 + F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F200496F + F0006B8AF300526CC30000000000000000000000000000000000000000000000 + 00007794F4005C7FF200FFFFFF009DA1AC009DA1AC009DA1AC009DA1AC009DA1 + AC009DA1AC009DA1AC009DA1AC009DA1AC009DA1AC00EFF3FE00EFF3FE007794 + F400526CC30000000000000000000000000000000000000000004D67BF006989 + F30086A0F5007990DC00F9F9F900697295006972940068729400CDD0DC00F0F1 + F500F0F1F5006F77980067709100666F9100F9F9F900F9F9F9007990DC007894 + F4007491F4004D67BF0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C500D0D5E900F7F7F700F7F7F700F8F8 + F800FAFAFA00F5F5F500EFEFEF00E7E7E700D7D7D700CECECE00C4C4C400C7C7 + C700A6A6A500A9A9A9000000000000000000000000000000000000000000536D + C4005075F1006485F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006989F3006989F3006989F3006989F3005075 + F1006E8DF300536DC40000000000000000000000000000000000000000000000 + 00007C97F4006787F300FFFFFF00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE007C97 + F400536DC40000000000000000000000000000000000000000004E68C0006B8A + F3008DA5F6007F95DD00FBFAFA0067709100666F9100666F9100656E9100656E + 9100646E9000646E8F00636D8F00636D8F00FBFAFA00FBFAFA007F95DD007F9A + F5007794F4004E68C00000000000000000000000000000000000000000000000 + 0000000000000000000000000000A2B2EC00BAB9B800ECECEC00F6F6F600F7F7 + F700F8F8F800F9F9F900F5F5F500EFEFEF00E0E0E000D7D7D700CECECE00C3C3 + C300BFBFBE00908F8F000000000000000000000000000000000000000000566F + C600597CF2007290F4007D98F500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF5007D98F500587C + F200718FF400566FC60000000000000000000000000000000000000000000000 + 0000849EF5007C97F400FFFFFF00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00849E + F500556FC6000000000000000000000000000000000000000000506AC100708E + F4009CB1F7008D9FDE00FDFDFD00616A8D00606A8C00606A8C005F698B005F69 + 8B005F698A005F688A005E6789005E678900FDFDFD00FDFDFD008D9FDE008BA4 + F6007C97F400506AC10000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7B7B700ECECEC00F7F7 + F700F6F6F600F8F8F800FAFAFA00F9F9F900EFEFEF00E7E7E700E0E0E000CECE + CE00D3D3D3009B9A990000000000000000000000000000000000000000005770 + C700567AF2006D8CF3007B97F400839EF500839EF500849EF500859FF500859F + F500859FF500859FF500849EF500849EF500839EF500819BF5007A96F4005479 + F1006F8DF3005770C70000000000000000000000000000000000000000000000 + 000088A2F600829DF500FFFFFF0058595C0074757A00F3F6FE0058595C007475 + 7A00F3F6FE0058595C0074757A00F3F6FE0058595C0074757A00F3F6FE0088A2 + F6005670C7000000000000000000000000000000000000000000516BC2007290 + F400A4B7F80093A4DE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE0093A4DE0091A8 + F6007F9AF500516BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BEBCBB00EDEC + EC00F7F7F700F7F7F700F8F8F800FAFAFA00F5F5F500EFEFEF00E7E7E700DADA + DA00DADAD9009C9A990000000000000000000000000000000000000000005871 + C8004A70F0005D80F2006989F3007290F4007491F4007491F4007491F4007491 + F4007491F4007491F4007491F4007491F4007290F4006F8DF3006888F300486F + F0006A8AF3005871C80000000000000000000000000000000000000000000000 + 000089A2F60086A0F500FFFFFF00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D + 7100F4F7FE00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D7100F4F7FE0089A2 + F6005871C8000000000000000000000000000000000000000000526CC3007491 + F400ABBDF80099A9DE00E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5 + E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E50099A9DE0097AD + F700819BF500526CC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B8B8B700BEBD + BC00EDECEC00F6F6F600F7F7F700F8F8F800F9F9F900F5F5F500EFEFEF00E6E6 + E600CFCFCE009F9E9E0000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D20000000000000000000000000000000000000000000000 + 00007D97EE0091A7F1009AAEF200191918007F8FC200A1B4F300191918007F8F + C200A1B4F300191918007F8FC200A1B4F300191918007D8DC2009AAEF2007D97 + EE005872C9000000000000000000000000000000000000000000546EC5007491 + F400B7C7F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F90099AF + F700819BF500546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8B8B800EBEAEA00F6F6F600F5F5F500F7F7F700F9F9F900F9F9F900CDCC + CB00A4A4A3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005F5F5F004F5E92005872C9005F5F5F004F5E + 92005872C9005F5F5F004F5E92005872C9005F5F5F004F5E92005872C9005872 + C9005B76D2000000000000000000000000000000000000000000556FC6006D8C + F300A6B9F800AFC0F900B1C1F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2 + F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2F900B1C1F900ADBEF800849E + F5007894F400556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B6B4B300D7D5D500ECECEB00F6F6F600F8F8F700E6E5E500A7A6 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D2D1D0008080800000000000D2D1D0008080 + 800000000000D2D1D0008080800000000000D2D1D00080808000000000000000 + 00000000000000000000000000000000000000000000000000005670C7006382 + EA00849DEE00889FEE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0 + EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE00879FEE007B94 + ED006886EB005670C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B2B1B100A8A6A600BCBAB900B3B1B000A7A6A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080009090900000000000808080009090 + 9000000000008080800090909000000000008080800090909000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DEDEDE006B80 + C20027335F0026335D002A386D00C3C3C300C3C3C300C4C4C400D1D1D100D5D5 + D500000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C64B5004656 + 8A0098A5CE0098A4CD00828FB90031458A00DEE3F80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D1D1D100CFCFCF00C9C9C900C7C7C700C5C5 + C500C5C5C500C5C5C50091A1D70029386D00C5C5C500C8C8C800D3D3D3000000 + 00000000000000000000000000000000000000000000314792009BA8D200526D + C5002647B5002041B0001B3DAE00909ECB00293D7F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F200364A91004F63 + A5008793BC00A7B0CF00D9DFF300D9DFF400D9DFF400D9DFF400D9DFF400D9DF + F400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400DADF + F200A5AECE003A4D930000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000029396C00526297008494C8000000000000000000000000000000 + 000000000000000000000000000000000000000000002E4285008FA0DB004A66 + C6003C5AC0003655BD003151BA00697FC9002B3E7C0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BAE007182BB005C77 + D3007B90D7006979B200A3ADCF00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CB + EE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C4CE + EF00CFD7F200A3ADD00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008093D9005466A5004059AA008393C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A008296D9005D77 + D000516DCA004C68C8004764C6006079CC002D3F810000000000000000000000 + 00000000000000000000000000008196DC00293A7500293A740033478C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E4696001F3376001F3376001F3376001F3376001F33 + 76001F3376001F3376001F3376001F3376001F3376002E469600000000000000 + 00000000000000000000000000000000000000000000354992008699DA004868 + D200607BD8008699DA005C6CA700B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00BCC8EE00CFD6EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B20036457A00324DAA00032597008494CC000000000000000000000000000000 + 000000000000000000000000000000000000000000006D83D4005669A80092A4 + E300788FDC00758DDB00768DDA004B69CD0032468B0000000000000000000000 + 0000000000008398DE00505F9800A4B1DD003E5BBD003957BB005F77C7005160 + 9400647CCB000000000000000000000000008E8C8A00BBB9B700BBB9B700BBB9 + B700BBB9B700BBB9B70029429500042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB7004F6ED70029429500BBB9B700BBB9 + B700BBB9B700BBB9B700BBB9B7008E8C8A00000000003B509D008EA3E9005D7B + E0005D7BE0008EA3E9003B509D00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00C4CEF00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000045569000546C + BD004762BF007186CE002B4BB6008496D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAE005468 + A90097A9E50092A5E5008399E1003C5ECD003448900000000000000000000000 + 0000000000003B53A2009EABD5005B75CC003252BE002D4EBB002748B70094A2 + D000364A8D0000000000000000000000000093918F00D8D8D700D8D8D700D8D8 + D700D8D8D700D8D8D7002F4AA4001942CD001D46CE001E46CE001E46CE001E46 + CE001E46CE001E46CE001E46CE001C45CE005474E1002F4AA400D8D8D700D8D8 + D700D8D8D700D8D8D700D8D8D70093918F00000000003D54A40095A9ED006885 + E6006885E60095A9ED003D54A400A5B6F000A5B6F0001442D9001442D9001442 + D9001442D9001442D9001442D9001442D9001442D9001442D9001442D900A5B6 + F000A5B6F000C3CEF10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003C54A300516CC7004F6B + C8007184C600344581007184C6009BABE0000000000000000000B9C6F1002E42 + 8800B9C6F1000000000000000000000000000000000000000000000000006E86 + D700384E9A00384E99004264D4004062D200374B950000000000000000000000 + 00000000000034488D0094A5DF005470CD004765C8004260C6003C5BC200788C + D0003143840000000000000000000000000098969400F5F5F400F5F5F400F5F5 + F400F5F5F400F5F5F4003652B4003D63E300476BE300486CE400486CE400486C + E400486CE400486CE400486CE400466BE3005D7DEA003652B400F5F5F400F5F5 + F400F5F5F400F5F5F400F5F5F40098969400000000004058AB009EB1F200738E + EB00738EEB009EB1F2004058AB00A9BAF300A9BAF3001443DE001443DE001443 + DE001443DE001443DE001443DE001443DE001443DE001443DE001443DE00A9BA + F300A9BAF300C7D0F30000000000000000000000000000000000000000000000 + 0000CED7F60092A4E3006179C70033488F002D3C71005568AA004161CB007287 + CC00334687004A5EA40033468700A6B2DA0000000000BAC6F2002F4489004A5E + A4002F448900BAC6F20000000000000000000000000000000000000000000000 + 0000000000003D54A400486BDF004669DC003C529F0000000000000000000000 + 0000000000003D55A5008294D3007F95E0006D86DA006882D700647FD6006982 + D60035498E0000000000000000000000000099989600A3A19F00A3A19F00A3A1 + 9F00A3A19F00A3A19F003D5DC6007994ED0088A0EF00A6B7F200B5C4F500B5C4 + F500B5C4F500B3C2F400A2B4F200859EEF006382EB003D5DC600A3A19F00A3A1 + 9F00A3A19F00A3A19F00A3A19F0099989600000000004660B700B2C2F80094AB + F60094ABF600B2C2F8004660B700B0C0F800B0C0F80088A1F50088A1F50088A1 + F50088A1F500B0C0F80088A1F50088A1F50088A1F50088A1F50088A1F500B0C0 + F800B0C0F800CBD5F70000000000000000000000000000000000536BBE004C5F + 9F004A66C5003857C0002447BA007288D200344889004F6FDB004258A4004F67 + B9004A6BD800123DCC004A6BD8004F67B9003950A1004F67B9004A6BD800123D + CC004A6BD8004F67B90000000000000000000000000000000000000000000000 + 0000000000004058A9004B6EE3004A6DE1003E55A50000000000000000000000 + 0000000000006F85D7005A6DB00094A7E6008197E2007E95E0007E95E0005673 + D400384C93000000000000000000000000000000000000000000000000000000 + 000000000000000000004C6BD2003F5EC8003F5EC8003F5EC8003F5EC8003F5E + C8003F5EC8003F5EC8003F5EC8003F5EC8003F5EC8004C6BD200000000000000 + 000000000000000000000000000000000000000000004962B900BFCDFA00ACBD + F800ACBDF800BFCDFA004962B900B4C4F900B4C4F9001647EC001647EC001647 + EC001647EC00B4C4F9001647EC001647EC001647EC001647EC001647EC00B4C4 + F900B4C4F900CED8F800000000000000000000000000000000003A4F96005A74 + C900042FC000042FC000042FC000728ADB003A4F96005273E200485FAF00536E + C4004B6EE3000535D8001240DA004B6EE300536DC4004B6EE3001240DA001240 + DA004B6EE300536EC40000000000000000000000000000000000000000000000 + 000000000000435CAF004F72E8004D70E5004159AA0000000000000000000000 + 00000000000000000000465FB500586CB2009BADE80097A9E8008BA0E5004969 + D5003A5099000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003C59BC00708CEB006683E6005374 + E1004F70DE005070DA004F6ED700314A9A000000000000000000000000000000 + 000000000000000000000000000000000000000000004A63BB00CAD5FB00BFCD + FA00BECCFA00CAD5FB004A63BB00B7C7F900B7C7F9001849EC001849EC001849 + EC001849EC00B7C7F9001849EC001849EC001849EC001849EC001849EC00B7C7 + F900B7C7F900D0D9F800000000000000000000000000000000004056A3005071 + DE000433CF000433CF000433CF00728DE4004056A3005779E9007F96E3004962 + B7005772CF001344E7000539E6001344E700476DED001344E7000539E6004C71 + ED005772CF00455EB70000000000000000000000000000000000000000000000 + 0000000000004862B9005579F0005578EE00465FB50000000000000000000000 + 000000000000000000000000000000000000BFCDF8004159A7005474E1005272 + DF004056A3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000425FC3007893EE004C6EDE00355A + D6001C45CE00042FC0004F6FD900354DA0000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00D6DEF900DCE3 + F900DBE2F900D6DEF9004C66BD00C3D0FA00C5D1FA00305CEE00305CEE00305C + EE00305CEE00C5D1FA00305CEE00305CEE00305CEE00305CEE00305CEE00C5D1 + FA00C3D0FA00D6DEF900000000000000000000000000000000004A64BB006384 + F3004C72F1004C72F1004C72F10088A1F5004A64BB005E80F2003862EF005D80 + F2008CA2EC005E78D5005378F1001748EC001748EC001748EC005378F1004A64 + BE00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000000000004963BB00597CF200597CF2004963BA0000000000000000000000 + 00000000000000000000000000000000000000000000445CAD005878E5005676 + E3004259A9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004360C5006C88E700738DE4006E88 + E2006781DE005A77D9005976D6003750A3000000000000000000000000000000 + 00000000000000000000000000000000000000000000536ECA004D67BE004D67 + BE004D67BE004D67BE004D67BE00C9D5FB00CBD6FB003E67F0003E67F0003E67 + F0003E67F000CBD6FB003E67F0003E67F0003E67F0003E67F0003E67F000CBD6 + FB00C9D5FB00D9E0F900000000000000000000000000000000004B65BD006F8D + F3006F8DF3006F8DF3006F8DF30095ACF7004B65BD006283F200466DF0006888 + F30092A7EC006780D7006787F300315DEF00315DEF00315DEF006686F3004C66 + C000BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000004A64BC005D80F2005C7FF2004A64BC0000000000000000000000 + 000000000000000000000000000000000000000000004760B3005D7DEA005B7B + E800455DAF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F6DD3004360C500405DBC003F5A + B8003E58B4003B54AC003952A900435EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004F68BF00CFD9FB00D2DBFB004B71F1004B71F1004B71 + F1004B71F100D2DBFB00B1C1F900B1C1F900B1C1F900B1C1F900B1C1F900D2DB + FB00CFD9FB00DCE3F900000000000000000000000000000000004C66BE007995 + F40090A8F60090A8F60090A8F600A0B4F7004C66BE006586F3007391F40097AB + ED00536CC3007C97F400567AF2004C72F1004C72F1004C72F100567AF2006D85 + D9004E68C100BFCDF60000000000000000000000000000000000000000000000 + 0000000000004D67BE006485F3006485F3004D67BE0000000000000000000000 + 000000000000000000000000000000000000000000004C66BD006787F2006484 + F0004A63B9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200D9E1FC00DDE4FC006586F3006586F3006586 + F3006586F300DDE4FC006586F3006586F3006586F3006586F3006586F300DDE4 + FC00D9E1FC00E3E8FB00000000000000000000000000000000004E68C00089A0 + EC00AFC0F900B9C8F900B8C7F900ACBDF8004E68C0006C8BF3005E77CA006D86 + DA009CB1F700819BF50087A1F5009EB3F7007D93DE009DB2F70087A1F50088A2 + F60099AFF7006C85DA0000000000000000000000000000000000000000000000 + 0000000000004E68BF006888F3006E8DF3005B73C4004E68C100839AE700BFCD + F60000000000000000000000000000000000000000004E68BF006B8AF3006989 + F3004D67BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000526CC300DEE5FC00E1E7FD00E2E8FD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E1E7 + FD00DDE4FC00E4EAFB00000000000000000000000000000000006681DA00768C + D400B5C5F900B9C8F900B4C4F900A7B9F8004F69C100718FF4006179CC007189 + DC00ACBDF800A1B5F700AFC0F9008397DF00536EC7008297DF00AEBFF800A1B5 + F700AABCF8006F89DC0000000000000000000000000000000000000000000000 + 0000000000004F69C0006B8AF300849EF500B9C7F700A8B8ED00768AD1005C74 + C500536CC0007991E300AEBEF30000000000000000004F69C0006F8DF3006D8C + F3004F69C0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400E2E8FD00E6EBFD00CDD8FB00CDD8FB00CDD8 + FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00E6EB + FD00E2E8FD00E6EBFB0000000000000000000000000000000000000000006881 + DB00657BC9007388D2008196DB008EA5F000506AC2008FA7F600ADBCF0005D76 + CA00879CE000B4C4F900879CE0005D76CA00C1CDF600556FC800869ADF00B3C3 + F900879BE000556FC80000000000000000000000000000000000000000000000 + 000000000000516BC2007290F400829CF500819BF500809BF5007E99F50089A2 + F6009BB0F700B4C4F900B7C7F900AEBEF200788ED600647BC8007C97F4007693 + F400516BC2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600E7ECFD00EBF0FD0096ACF70098AEF70098AE + F70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF700EBF0 + FD00E7ECFD00EBEFFD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871CF00A8B9F600AABC + F800B6C3F100677FCE00AEBEF000B3C3F9000000000000000000C1CDF6005874 + CF00C1CDF6000000000000000000000000000000000000000000000000000000 + 000000000000526CC3007391F40087A1F50086A0F500859FF500839EF500829D + F500829CF5007F9AF50086A0F50099AFF700B9C8F900C2CFFA008CA5F6007A96 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005771C800E9EEFD00EDF1FE0095ACF7009EB3F7009FB3 + F7009FB3F700A0B4F700A0B4F7009FB3F7009FB3F7009EB3F7009BB0F700EDF1 + FE00E9EEFD00EDF1FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758BD200ACBC + F500A9BBF800C9D5FB0096ACF700A1B5F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006384F30093AAF6008FA7F6008BA4F60089A2F60088A2 + F60087A1F500849EF500839EF500829DF500819BF50087A1F500839EF5007F9A + F500536DC4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C900EAEFFD00ECF0FE00EEF2FE00EFF3FE00EFF3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00ECF0 + FE00EAEFFD00EFF2FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006883DC00768B + D300A7B9F400849EF5007592F4009EB3F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0005D77CF005771C700637CCF007993E90086A0 + F40095ACF70097ADF70092A9F6008FA7F6008DA5F6008BA4F6008AA3F60086A0 + F500556FC6000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009E9C9A009997 + 9500959391008B89870000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005B76D2005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A7ED009DAFEE0086A0F50094ABF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF90093A7ED005874CD005C75 + C900647ED300879EEB008EA6F60099AFF70099AFF70094ABF60090A8F6008AA3 + F6005670C7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D76CA0096A8E7008DA5F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CED8 + F800859CE9005771C9006179CC006680D60092A8F00097ADF7009EB3F70089A2 + F6005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005B74CB008FA2E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF3007C93E4005771 + C8005771C9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C2008FA0D5003A4A + 7A003A4A7A00C0C0C000C1C1C100C7C7C700D5D5D500DCDCDC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C700C0C0C0006679B80027325B0027325B0027325B0027325B002732 + 5B0027325B0027325B0027325B0027325B0027325B00273462007385C800C7C7 + C700D6D6D6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A4B82004B5B + 94004B5A9300B2BFEE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002A3A750003279E0003279E0003279E0003279E000327 + 9E0003279E0003279E0003279E0003279E0003279E00435DB6003F58B0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D4D4D400C5C5C50030428100273567002735670027356700273567002735 + 670027356700273567002735670027356700273567002F428100D1D1D1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B8C6F2003D4E8E003F59B2000F30 + 9F000F309F004B5E9F003D4E8E00B8C6F2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D3D7A00092DA5006077C400768ACC00092DA5006077 + C40096A6D800092DA5006077C4008A9BD4000328A300435EBA004059B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D4188008895C1008895C1008895C1008895C1008895 + C1008895C1008895C1008895C1008795C1006474A9002D438D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C8F2003D5091004C5FA1000F31A3000327 + 9F0003279F003F5AB6004C5FA1003D5091000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E407F00092EAA008C9DD700B5C0E600092EAA008C9D + D700C5CEEB00092EAA008C9DD700BDC7E800042AA900425EBD00415AB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F200283C8200283C8200283C8200283C8200283C + 8200283C8200283C8200283C8200283C82002E479500BAC6F200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DEDEDE00DEDEDE00CECECE00CECECE00C7C7C700C0C0C000C0C0 + C000C0C0C000C0C0C000C0C0C00092A2D700394B8A0093A2D800C0C0C000DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003F5193004C61A500435EBB000328A3000328 + A3000328A3000F32A800435EBB004C61A500BBC8F20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000334688000A31B5006E85D30091A2DD000A31B500607A + CF0098A8E0000A31B500607ACF0091A2DD00042CB4004361C700435CB4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002B408A00283C7E00283C7E00283C + 7E00283C7E00283C7E00283C7E002B408A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007F92D8003E4C7E0093A5E4000000 + 000000000000BDC9F300374E9D004F68BC004A6FE800657ECF00455FBB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004153940041539400415394001338B100042A + AB00042AAB004360C1004153940041539400465CA90000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000035498E000A33BB0091A3E000B5C1EA000A33BB008C9F + DF00BDC8ED000A33BB008C9FDF00CDD5F100042EB9004362CA00445DB5000000 + 0000000000000000000000000000000000003A53A7002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E003A53A7000000000000000000000000000000 + 0000000000000000000000000000000000002E4185005467A7005068BB000000 + 0000000000003950A000506ABE004A6EE5006C8BF1007389D4004661BC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425596001439B500042B + B000042BB0004361C40042559600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000384B9300042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF004363CF00455EB6000000 + 0000000000000000000000000000000000002F44910094A7E90099ABEA009BAD + EA009BADEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009BAD + EA009AACEA0099ABEA008CA1E7002F4491000000000000000000000000000000 + 00000000000000000000000000008296DB0043528900516BBE00384C95000000 + 0000BDC9F400516BC1004A6EE600204EE800738AD500435DB600BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D64B7004F65B20000000000000000000000000043569900143ABA00042D + B500042DB5004361C700435699000000000000000000000000004960AF00BAC9 + F300000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003C529D000A36CA008CA1E600B5C3EF000A36CA008CA1 + E600B8C5EF000A36CA008CA1E600C1CCF2000432CA004365D7004760B8000000 + 00000000000000000000000000000000000032499900617EE100708AE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400708AE4009CAEEC00324999000000000000000000000000000000 + 0000000000000000000000000000475994004D69C7000932BD00556DBD003E54 + A400556EC700204FEB006C8BF300758BD700BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B5004665CC004559A0000000000000000000000000004559A0001C42C3000D36 + BF000D36BF004766CF004559A0000000000000000000000000004559A0005067 + B700445AA300BCCAF40000000000000000000000000000000000000000000000 + 000000000000000000003F55A2000735D0000735D0000735D0000735D0000735 + D0000735D0000735D0000735D0000735D0000735D0004467DB004862B9000000 + 000000000000000000000000000000000000334B9D005D7BE1006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3009BAEED00334B9D000000000000000000000000000000 + 0000000000000000000000000000566AB2003356CB000431C6005D78D7005570 + C9004C71ED006C8BF300758CD7004761BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C63B6005B70 + B6004969D300465AA300465AA300465AA300465AA300465AA300284DCA001A42 + C7001A42C7004D6CD300465AA300465AA300465AA300465AA300465AA3004666 + D200536ABB00445CA70000000000000000000000000000000000000000000000 + 000000000000000000004259A800103ED700A0B2EF00A0B2EF00103ED700A0B2 + EF00A0B2EF00103ED700A0B2EF00A0B2EF00103ED700486BE0004963BA000000 + 000000000000000000000000000000000000354DA1005474E1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE10099ACEE00354DA1000000000000000000000000000000 + 00000000000000000000A8B7ED005470CF000E3ACC000434D1004268E800476D + ED002050ED00778CD8004862BC00BFCCF5000000000000000000000000000000 + 000000000000000000000000000000000000000000004D65B8005E72BA00516F + D5005472D8005C77D1005974D1005974D1005A74D1005C77D1002A50CF00274D + CD00274DCD005876D9005D78D1005A74D1005974D1005974D1005B75D100284E + CE004D6DD700556DBE00BDC9F400000000000000000000000000000000000000 + 000000000000000000004760B3005B668B008895BE008996BF008B98C1008C99 + C2008D9AC3008F9CC500909DC600919EC7008B9ACB005073E9004B65BC000000 + 0000000000000000000000000000000000003952A9004065E000466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE10093A8EE003952A9000000000000000000000000000000 + 000000000000AAB9EF004D61A5000D3CD7000537DE000539E600053AEB000C3F + EC005579F1006B85D8005F76C6004B65BE009DB0EE0000000000000000000000 + 0000000000000000000000000000000000004B63B7005574DC003A5FD9003C61 + D9004064DB003F63DB003F63DB003F63DB003F63DB003F63DB004064DB004064 + DB004064DB004064DB004064DB003F63DB003F63DB003F63DB003F63DB003F63 + DB003B60D900395ED900556FC3004B63B7000000000000000000000000000000 + 000000000000000000004A62B70039456E0054659F005566A0005869A300596A + A4005B6CA6005D6EA8005F70AA006071AB00919DC6005477ED004C66BD000000 + 0000000000000000000000000000000000003B55AC00385FE0003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E10091A7EF003B55AC000000000000000000000000000000 + 0000000000005E77CC005971C5000537E1000539E800053AEB001244EC002654 + EE003B64EF007B97F40086A0F500839BEB006A80CB00526DCA00000000000000 + 0000000000000000000000000000000000004D65BA005777E2004266DE00486B + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF00486BDF004266DE005770C7004D65BA000000000000000000000000000000 + 000000000000000000004C66BD0036426A0051629B0052639C0054659E005667 + A0005768A1005A6BA4005B6CA5005C6DA6008E9AC200597CF1004D67BE000000 + 0000000000000000000000000000000000003C56AE002E56DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE008EA4EE003C56AE000000000000000000000000000000 + 0000D1DAF8004D62AE005B79DF00053AEA00053AEB00093DEB002E5AEE00426A + F000567AF200809BF50093AAF600AEBFF8007287CE00546ECB00000000000000 + 000000000000000000000000000000000000BFCBF5005C76CB006381E7005274 + E3005778E5005475E4005274E3005274E3005374E3005677E5005979E5005979 + E5005979E5005979E5005677E4005374E3005274E3005274E3005475E4005576 + E4005374E3006381E7004A63B600BFCBF5000000000000000000000000000000 + 000000000000000000004F69C000333E63004A5A8F004B5B90004E5E93005060 + 9500516196005464990055659A0056669B008A95BB006283F2004F69C0000000 + 0000000000000000000000000000000000003D57AF001C47D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D80089A0EB003D57AF000000000000000000000000000000 + 0000546BBC005C7CE8001849EC001446EC002856EE003D66EF006D8CF3009BB0 + F700BDCBF9007487CE00536EC90091A5EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5004D66BC005C77 + D0005F7FEC004C65B8004C65B8004C65B8004C65B8004C65B8007792EE00738F + EE00738FEE007994EF004C65B8004C65B8004C65B8004C65B8004C65B8005E7F + EC005C77D0004D66BC0000000000000000000000000000000000000000000000 + 00000000000000000000506AC100313C5F004857890049588A004C5B8D004D5C + 8E004F5E90005160920053629400546395008994B7006686F300506AC1000000 + 0000000000000000000000000000000000003E58B0001340D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D500869DE9003E58B0000000000000000000000000000000 + 0000647DD4003D66EF000A3EEB002F5BEE00446BF0006888F300BAC8F800A2B1 + E6006E83CD009FB1EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004D66 + BF004F74ED004D66BB000000000000000000000000004D66BB007F9AF1007E99 + F1007E99F1007893F0004D66BB000000000000000000000000004D66BB005A76 + D2004D66BF00BFCCF50000000000000000000000000000000000000000000000 + 00000000000000000000516BC2002F395A004554840046558500485787004A59 + 89004B5A8A004E5D8D004F5E8E00516090008690B2006A8AF300516BC2000000 + 0000000000000000000000000000000000003F59B1000B39D3000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D200839AE8003F59B1000000000000000000000000000000 + 00006280E8002654EE002251ED005C7FF20094ABF600B7C6F6006E84CE005C77 + D400AEBEF3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005673D5004E68BF000000000000000000000000004E68BF0089A2F5008BA4 + F5008BA4F5007C97F4004E68BF000000000000000000000000004E68BF004E68 + C100BFCDF6000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC4002B3452003F4C7700414E790043507B004451 + 7C0046537E00485580004A5782004B588300838CAB007391F400546DC4000000 + 000000000000000000000000000000000000415BB2000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE008299E600415BB2000000000000000000000000005972 + CA006183F2008FA7F600AABAF100637BCC006B84DD00D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC1009FB3F700A4B7 + F800A4B7F80086A0F500506AC100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC50029314E003C4870003E4A7200404C7400424E + 7600434F770046527A0047537B0049557D008189A6007794F400556EC5000000 + 000000000000000000000000000000000000415BB3000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB008198E400415BB30000000000000000007C93E6007A8F + D700A2B4EF008699DA005C75CC00D3DBF9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC200516BC200516BC200ADBEF800B1C1 + F900B1C1F90091A8F600516BC200516BC2005973CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600272F49003B466C003B466C003E496F003F4A + 7000414C7200434E740045507600465177007E86A1007B97F400566FC6000000 + 000000000000000000000000000000000000425CB4000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9008198E300425CB40000000000000000005872CA009BAC + E7005C75CC007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000627CD2005F7FEA00748FEC00B7C7F900BDCB + FA00BDCBFA00A7B9F8007E98ED006080EA00546FCA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005871C800242B4400343D5C0038426200384262003943 + 63003B4565003D4767003F496900404A6A00787F99007E99F5005871C8000000 + 000000000000000000000000000000000000445EB5000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4008197E200445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF600536DC6006781DA00AEBFF800C2CF + FA00C3D0FA0094ABF6006E87DB00536DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C90027304F00262D4400282E4400292F4500292F + 4500292F4500292F4500292F4500292F4500515870007794F4005872C9000000 + 000000000000000000000000000000000000445EB500889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCDF600536EC70094ABF6009FB3 + F700A0B4F700718ADD00536EC700BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872CA00879FF0008FA6F00093A9F20095AAF20095AA + F20095AAF20095AAF20094AAF20092A8F200849DF0007A93E7005872CA000000 + 0000000000000000000000000000000000004C67C400445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB5004C67C4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C1CDF6006F88DC00829C + F500829CF500556FC700C1CDF600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005874 + CF005874CF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C0C0 + C0004153940034458000344580009FADDD00C0C0C000C0C0C000C0C0C000C0C0 + C000C0C0C000C0C0C000CBCBCB00CECECE00CECECE00DADADA00DEDEDE00DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B8C5 + F1002338820014309000143090002F407C00A8B8E80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BECCF4003D56AA003A57 + BC008CA2EB008695CC008695CC002650DD003A57BC003D56AA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C400C1C1 + C1003E5194003E5194003E5194003E5194003E5194003E5194003E5194003D50 + 92003B4D8B003647800034447C00324177002C3B6C002A38670029366200B1BC + E500C4C4C400DDDDDD00000000000000000000000000D3D3D3005F5D5E005E5C + 5C0037363800B9B9B90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BB5004967CD003761 + EE008A9AD4004964C1004964C10095ABF5003761EE004967CD00BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000637A + CC0091A4E50095A9EC0095A9ED0091A6ED008EA4ED008BA2ED00849CEB008199 + E9007E96E400788FDB00758CD7007187D1006A7FC500687CC0006F7FB700455A + A30000000000000000000000000000000000000000007B7979008D8B8A007D7B + 7A006462620039383900CFCFCF00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC9004068F00097AC + F5004A65C20000000000000000008E9DD6009EB2F600476EF000455DB700BECC + F500000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000405A + B4008CA5F60089A2F60089A2F6007C97F4007391F4006989F300567AF2004C71 + ED004469E6003157D600274DCD001D43C3000A2FAE000328A3003652AF002636 + 6A000000000000000000000000000000000000000000858383009E9B9A00A19F + 9E00676564006462620039383900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A5B6EF006283F200697F + CC00000000000000000000000000000000004C67C30095A4D9006888F3006E86 + D8004861BA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435D + B500A3B6F800ACBDF800A2B6F8008DA5F600829DF5007894F4006283F2005679 + EE004B6FE700365BD7002C51CE002146C4000B30AE000328A30003269B002838 + 6D00000000000000000000000000000000000000000000000000D3D3D3008583 + 8200A19F9E007D7B7A006765640039383900CFCFCF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000687AB8007084C600566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC007084C6002333670000000000000000009AAADC00A6B9F8007591 + F1004D67C4000000000000000000000000009BAFEC004159B200B2C2F8007391 + F4006F85D0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455F + B700A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A39 + 6D0000000000000000000000000000000000000000000000000000000000D3D3 + D3009E9B9A00A19F9E007D7B7A006462620039383900CFCFCF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004259A600344FA700405C + BB001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF003956B900344FA70027366E0000000000000000004F67BD00B9C4EA00B1C1 + F9006F85CF004E69C50000000000465EB6006177C1005266B10095A3D300839E + F50099ACEC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004761 + B800A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A3A + 6F00000000000000000000000000000000000000000000000000000000000000 + 0000858382009E9B9A00A19F9E00676564006462620039383900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425CB300032491003550 + AB001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3F + B2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2003251 + BA003550AB000324910029397200000000000000000000000000BFCCF5005169 + BF00C5D1FA00A5B7F6007D91D3007A8DCB00A5B8F7006485F3005872C5004357 + 9F008796CD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B65 + BC00A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F40013192E000000 + 0000171C2C00365BD7002C51CE002146C4000B30AE000328A30003269B002D3D + 7100000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D30085838200A19F9E007D7B7A006765640039383900CFCF + CF00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435EBB000429A5000429 + A500324FB0002C4DBC00163BB500163BB500163BB500163BB500163BB5001235 + A8001235A800163BB500163BB500163BB500163BB500163BB5002C4DBC000327 + 9E000429A5000429A5002E3F7D0000000000000000000000000000000000BFCC + F500C4CCEC00C8D4FB00A9BBF700425DB90097A7DD00A4B7F8005E80F1005A73 + C7003B519C000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4001F1F1F000C0C + 0C001F1F1F00365BD7002C51CE002146C4000B30AE000328A30003269B002F3E + 7200000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D3009E9B9A00A19F9E007D7B7A00646262003938 + 3900CFCFCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425FBF00042AAA00042A + AA000328A400304EB200294CBE001338B7001338B7001338B7001136AF000E2F + 9E000E2F9E001338B7001338B7001338B7001338B700294CBE00304EB200042A + AA00042AAA00042AAA0030428200000000000000000000000000000000000000 + 0000536BC100C4CCEC00C8D4FB008E9ED8004F67BA0098A7DE006485F3005E80 + F1005B74C800BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F69 + C000A5B8F800ACBDF800A2B6F8008DA5F600829DF5007894F4003C4257003333 + 330041465600365BD7002C51CE002146C4000B30AE000328A30003269B002F3F + 7400000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000858382009E9B9A00A19F9E00676564006462 + 6200393839000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004361C400052CB000062D + B100062DB100052BAC00304FB6001138B9001138B9001138B9000F31A3008598 + D8008598D8000E33B1001138B9001138B900264AC0002F4EB600042AAB00042B + B000042BB000042BB00033468700000000000000000000000000000000000000 + 000000000000BFCCF500556DC300D5DCF600D5DCF6008E9DD6009AA9E000A4B7 + F8006485F3005D76CA0040549E002D44910019379D002D438F00374B90000000 + 000000000000000000000000000000000000000000000000000000000000536D + C60090A8F6009AAFF7009DB2F7008FA7F60086A0F5007E99F5006C8BF3006383 + F000597AE9004769DA003E60D2003457C9002244B6001C3DAC003652AF003141 + 7600000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D30085838200A19F9E007D7B + 7A005A585700373A4600354A9200425BB3000000000000000000A6B6EC002C3F + 820000000000000000000000000000000000000000004967CD001A40C0002045 + C2002247C3002146C3002146C3003F5DC300284CC3001A3DB1007791E5004C6D + DC004B6CDB008C9EDD00183BAF003052C4001C41BF001D43C2001C42C2001C42 + C200193FC000133ABF00384C9200000000000000000000000000000000000000 + 00000000000000000000D2DBF8005873CE005873CE00657FD9004E68C1009AAA + E200A4B7F8005E80F1005E77CB003E55A3006A84D8000D37C2002846AA00BDC9 + F40000000000000000000000000000000000000000000000000000000000718A + E1008CA3EE0093A8F00096ABF00093A8F00091A7F1008FA5F00089A1EF00879F + ED00849BE8007E94DF007B91DA00788DD4007286C9007083C5007283BE004F66 + B400000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D3009E9B9A008D8C + 8A00646262009E9D9D0034343C0052629D00899DE3006B82D2003B4D8D003A49 + 8000CED7F600000000000000000000000000000000004C6BD200254AC8002D52 + CA002F53CB002F53CB002F53CB00294DC5003B57B70091A3E0005878E1005777 + E0005777E0007993E70091A3E0003855B6002B50CA002B50CA002B50CA002A4F + CA00264BC9001C43C6003A509700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600506A + C3009BABE2006485F3005E80F1005F78CC008C9CD100839BE9001543DA00475F + B300BFCCF5000000000000000000000000000000000000000000000000000000 + 00005771C800888C9C0094939200888C9C005771C8005771C8005771C800556E + C400516ABD004B62AE00485EA7006D717D006C6B6B005E616D003A4A83000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000858382008885 + 8500BBBAB900BBB9B7009E9D9D0032343D00485CA6004A5EA500556FC5004354 + 8E00A5B6EB00000000000000000000000000000000004E6DD6002F54CF003B5E + D2003F61D3003F61D3003E61D300274ABC0096A7E200849CEA006482E5006381 + E5006381E5006381E500839BEA0095A7E2003457CD003A5DD200395CD200395C + D2003257D000254CCD003D529D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DF00516DCC009EADE400A4B7F8006485F3006C80C5004E67BF0093A3DD003761 + EF005270D600516AC30000000000000000000000000000000000000000000000 + 00000000000080808000C6C6C600808080000000000000000000000000000000 + 0000000000000000000000000000808080004646460080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C3CE + F20083838700F0F0F000CCCBCA00BBB9B70032343D002347BF000534D400556C + B6003B4D8F004057A8000000000000000000000000005575E0004669DD005877 + E0005D7BE1005373DE003759CA0098ACF0007B95EC007B95EC007B95EC007B95 + EC007B95EC007A95EC007A95EC007A95EC009EAEE7003457C9004E6FDD005777 + E0004B6DDD00375CDA00435AA700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B75 + D2006B87E6005A72C800A0AFE500AEBFF8007F93D7009FB1EF005671CD009FB3 + F600496FF0005E7AD900BFCDF600000000000000000000000000000000000000 + 00000000000080808000CBCBCB00808080000000000000000000000000000000 + 0000000000000000000000000000808080004C4C4C0080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004660 + B9006A7CBD00CFCECE00F0F0F000CCCBCA009E9D9D002B3049000537DE004668 + D7005772CC00576CB300475EAE0000000000000000005878E4005072E2006683 + E6006885E5004162CF00A3B3E900879FEF00879FEF00879FEF00879FEF00869E + EF00869EEF00869EEF00859EEF00869FF0009EB1F200A1B1E8003E5FCE006683 + E6005979E4003F64DF00465DAE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D3009AACED006C85D8005770C7008598D9005872CA0000000000000000009AA8 + DF00A8BAF700597CF200526BC400000000000000000000000000000000000000 + 00000000000080808000D0D0D0007F7F7F000000000000000000000000000000 + 0000000000000000000000000000888888005050500080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004E69 + C6006A80CE0088888B00CFCECE00F0F0F00093919000383D55000539E8000534 + D4002F54D3005470CE005D74C60000000000000000005A7BE800597AE700728D + EA004D6DD700A4B4EA00ACBDF60093A9F20093A9F20093A9F20092A8F20092A8 + F20092A8F20091A7F20091A7F20091A7F20091A7F2009DB1F300A3B3EB00718D + EA006482E800476CE5004961B300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005972C800A9BBF8007995F2007389D6000000000000000000000000000000 + 00005872CF009AAAE3008FA4EB005C77D4000000000000000000000000000000 + 00000000000080808000D4D4D40082828200C6C6C60000000000000000000000 + 00000000000000000000C6C6C600969696006060600086868600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008FA1E00099AAE300848692004A6AD700305CEE001E4EED004B70 + EE005E77CB004A63BB000000000000000000000000005C7EEE006383F0005273 + E000B4C4F800ADBEF700ACBDF700ACBDF700ACBDF700ABBCF700ABBCF700ABBC + F700ABBCF700AABCF700AABCF700AABCF700A9BBF700A9BBF700A9BBF700A9B9 + EE00486BDF004D72ED004F68BE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF600BDC8EE00B4C4F90089A2F4005973CF0000000000000000000000 + 00005973CF00899DDE00B1C0F1005D78D5000000000000000000000000000000 + 00000000000090909000C0C0C0008B8B8B008A8A8A0000000000000000000000 + 000000000000000000008A8A8A00B1B1B1006A6A6A0096969600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A1B1EB009AAFF7007995F4005479F100436BF000305CEE003B64 + EF00617CD8004F69C4000000000000000000000000005C7FF200466BE500A6B6 + EF00ADBEF800AFC0F900B0C0F900B0C0F900B0C0F900B0C0F900B0C0F900AFC0 + F900AFC0F900AFC0F900AFC0F900AEBFF800ADBEF800ADBEF800ABBDF800AABC + F800A0B2ED003A61E400526CC300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D74CA00C4CDEF00BECCFA008297DB005974CF00000000005974 + CF008297DB009CB0F5009DACE100718AE2000000000000000000000000000000 + 000000000000B0B0B000A4A4A400ADADAD008A8A8A0086868600000000000000 + 000000000000868686008F8F8F00A4A4A40076767600BBBBBB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FB0EF00B0C0F700ACBDF8009BB0F7006787F3005479F1005E80F200486F + F0005A7CED00566EC1000000000000000000000000005578EB0098ACEE0095AC + F7009AAFF7009DB2F7009EB3F7009EB3F7009FB3F7009EB3F7009EB3F7009EB3 + F7009EB3F7009EB3F7009DB2F7009DB2F7009CB1F7009BB0F70099AFF7008EA6 + F6008BA4F60092A7ED00546EC500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005F76CC00C8D4FB00A9BBF7009BACE400A9BB + F700C8D4FB00C7D0F000C1CDF600000000000000000000000000000000000000 + 00000000000000000000D3D3D300D6D6D600DFDFDF00CECECE00ADADAD009C9C + 9C0097979700BBBBBB00C0C0C000B4B4B400D3D3D30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE8005B76D3005B76D300536FCA009EB3F70093AAF6007086D1005B76 + D3005B76D3005B76D300000000000000000000000000617ACC005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF600C7D0F000CED8FB00B7C7F900CED8 + FB00C7D0F0005F76CD0000000000000000000000000000000000000000000000 + 000000000000000000000000000080808000B3B3B300E1E1E100F3F3F300EEEE + EE00E8E8E800CBCBCB00A6A6A600808080000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF30095AAF200889EE600566FC8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005D75CC00A1B0E200CED7F400A1B0 + E2005D75CC00C1CDF60000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B0B0B0008A8A8A00808080008080 + 8000808080008A8A8A00B0B0B000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007289D700637BCE0092A7EC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F00027377300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F1002B3E7C004E5E9400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0031458D0000000000354A88002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D7000D2D2D200000000000000000000000000000000000000 + 00000000000000000000000000002E4282004B5D9F004961B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000003269B000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A9000293973000000000030438600E6EAF700E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F60000000000000000000000000000000000000000000000 + 000000000000BAC7F200354990003F5EC4001E42BA004A65BD00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F80000000000000000000429A8002E3F7E000000 + 00004F70DE004F70DE004F70DE004F70DE004F70DE0039509D00354A9100506E + D400506ED400506ED400506ED400506ED400000000003A51A1005475E2005979 + E3005979E3005878E3003A51A1000000000000000000354A9200E5EAF8004364 + D2000430C2000430C2003659CE000430C2000430C2000430C2000430C2000430 + C2000430C2003659CE000430C2000430C2000430C2003659CE000430C2000430 + C2004364D200E5EAF80000000000000000000000000000000000000000000000 + 0000BCC8F300384D97004F66B1001038BF00143BBF004C67C400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF00000000000000000000000000082EAE00314284000000 + 00005073E8000537DE000537DE000537DE005073E8003E55A900394F9B004F6F + DB000432CD000432CD000432CD004F6FDB00000000004058AF005F80EF002A56 + E9002A56E9002855E9004058AF000000000000000000384E9800E5EAF9004162 + D1000432C9000432C900365BD3000432C9000432C9000432C9000432C9000432 + C9000432C900365BD3000432C9000432C9000432C900365BD3000432C9000432 + C9004365D600E5EAF90000000000000000000000000000000000000000000000 + 00003A519D005169B8003E60D1000430C300143DC7004D6AC900374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004259AC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F8000000000000000000000000001137B800334689000000 + 00004F74EF00053AE900053AE900053AE9004F74EF00425CB2003D55A5005072 + E3000535D8000535D8000535D8005072E30000000000435CB4006A8AF300426A + F000426AF0003F68F000435CB40000000000000000003B519F00DADFED004A64 + B9000937D0000A38D0003B60D9000A38D0000A38D0000A38D0000A38D0000A38 + D0000A38D0003B60D9000A38D0000A38D0000A38D0003A5FD9000A38D0000836 + D0004467DB00E6EBFA0000000000000000000000000000000000BECCF5004159 + AB003E63DE00103ED7000535D5000535D5000838D5001441D8001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001F4AD9003E55A500000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000002248C800384D95000000 + 00005B7EF2001D4DED001D4DED001D4DED005B7EF200455FB600455FB6005075 + F100053AEB00053AEB00053AEB005075F10000000000455FB6007592F4006686 + F3006686F300597CF200455FB60000000000000000004159AB00E5EAFB007E98 + ED003958C0001D48D700496DE5001D49DA001A41C3002F4FBA00B8C4EB003B5B + C6001D49DC00496DE5001E4BDF001E4BDF001E4BDF00496DE5001D4ADF001543 + DE00496DE500E5EAFB00000000000000000000000000BECCF500455EB2005871 + CB001141DF000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DE001544DF004259AD00000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000002B51D0003C519B000000 + 00006485F300305CEE00315DEF00305CEE006485F3004760B7004760B7005075 + F100053AEB00053AEB00053AEB005075F100000000004760B7007590EC008BA2 + EE008BA2EE00849DEE004760B7000000000000000000445DB100E6EBFC004A6F + EA00C7D1F2004260C6004868D3003656BF008FA1DE00D4DCF90089A1F200B0BD + E8002D52CC005074EB002854E6002854E6002854E6005074EB002854E6001C4A + E5004B70EA00E6EBFC000000000000000000000000004962BA005C77D2004A6F + ED001C4BE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001C4BE8002653E900455EB50000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000003459D7003E54A1000000 + 00006C8BF300446BF000456CF000446BF0006D8CF3004861B9004861B9005075 + F100053AEB00053AEB00053AEB005075F100000000005069C7004861B9004861 + B9004861B9004861B9005069C70000000000000000004761B700E6ECFD004D72 + EF006D8BF100CAD4F40090A1DA00D5DDFA0099AEF600476DEE00325DED00ADBE + F70092A3DD00577AF000325DED00325DED00325DED00577AF000325DED002351 + EB004E73EF00E6ECFD000000000000000000000000005E79D600577BF200466D + F0005479F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005479F1005176F1004A64BB0000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000004368E300445CAD000000 + 00007D98F5006989F3006D8CF3006A8AF3007D98F5004A64BB004A64BB005176 + F100083CEB00083CEB00083CEB005176F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004B65BC00E6ECFD007290 + F4006283F2006586F3006586F3006586F3006586F3006586F3006586F3006586 + F3008CA5F600667FD2006586F3006586F300607FE6005874D1005975D400577B + F2007592F400E6ECFD000000000000000000000000004E67C0006681D9006A8A + F3006E8DF300718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F4006F8DF3006586F3004B65BC000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000004D71E9004760B3000000 + 0000829DF5007794F400829CF5007894F400829DF5004C65BC004C65BC00587C + F2001647EC001647EC001647EC00587CF2000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00E6ECFD005277 + F1004B71F1005075F1006D8CF3005075F1005075F1005075F1005075F1005075 + F1005075F100C5CEEC004667D600496CDF00657DCE00B5C1E9009EAEE1003862 + EF00567AF200E6ECFD00000000000000000000000000BFCDF6004F68C2006C86 + D9007E99F50089A2F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F600849EF5007391F4004C66BD000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005579EF004A63B9000000 + 0000829CF5007592F40086A0F5007592F400829CF5004D66BE004D66BE005E80 + F2002453EE002453EE002453EE005E80F2000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF00E6ECFD005479 + F1005479F100597CF2007491F400597CF200597CF200597CF200597CF200597C + F200597CF200CDD7F90099A9DD007E92D500CED8FB00ACBDF800C4D0F900365A + D200587CF200E6ECFD000000000000000000000000000000000000000000BFCD + F6006D86DA0086A0F500A0B4F700C3D0FA00C1CEFA00B4C4F800869EED00839C + ED00829BED00829BED00829BED00829BED00829BED00829BED00829BED008099 + ED007B95EC00728EEB004F69C0000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006787F3004F68BF000000 + 00004F69C0004F69C0004F69C0004F69C0004F69C000556FCC004F69C0006A8A + F3004068F0004169F0004068F0006B8AF3000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC100E6ECFD00577B + F2006586F3006D8CF300829CF5006D8CF3006D8CF3006D8CF3006D8CF3006D8C + F3006D8CF300829CF5007491F4006D8CF3006D8CF300829CF5006C8BF300D2DB + FA008094D700DFE5F60000000000000000000000000000000000000000000000 + 0000536CC5006E87DB0088A2F600B9C8F900B2C2F9009DB0F000506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC3000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006F8DF3005069C1000000 + 0000000000000000000000000000000000000000000000000000516AC100718F + F4004E73F1004F74F1004E73F100718FF4000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC300E6ECFD007995 + F400819BF50088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2 + F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60087A1F500839E + F500D8E0FC00E8EDFD0000000000000000000000000000000000000000000000 + 0000BFCDF600536DC6006E88DB0095ACF70092A9F6008AA1EE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F400516BC2000000 + 0000000000000000000000000000000000000000000000000000526CC3007894 + F4005C7FF2005D80F2005C7FF2007894F4000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC400E6ECFD00597C + F2006F8DF3007C97F4008FA7F600819BF500819BF500819BF500819BF500819B + F500819BF5008FA7F600819BF500819BF500819BF5008EA6F6007A96F4005075 + F1005F81F200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600708ADD006C8BF300708CEC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA00C2C0BE00B6B6 + B500A09E9D00EDEDEC008F8D8D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F600546DC4000000 + 0000000000000000000000000000000000000000000000000000546EC500839E + F5007794F4007A96F4007894F400839EF5000000000000000000000000000000 + 000000000000000000000000000000000000000000005670C700E6ECFD005378 + F100577BF2006384F3007F9AF5006E8DF3006E8DF3006E8DF3006F8DF3006F8D + F3006F8DF300829DF5006E8DF3006E8DF3006C8BF3007E99F5006082F2003F68 + F000587CF200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C8006B85DD006181EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00C2C2C200AFAD + AC00AAA8A700E2E1E00093929100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000092A9F600556EC5000000 + 0000000000000000000000000000000000000000000000000000566FC60087A1 + F500829CF50087A1F500829DF50087A1F5000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00496F + F0005A7DF2005E80F2007E99F5006183F2006183F2006283F2006283F2006283 + F2006283F2007F9AF5006283F2006183F2006183F2007D98F5005D80F2005378 + F1004B71F100E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005871C9006D86D800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00C3C2C200A09F + 9D00BFBDBC00C4C3C200ACACAC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009AAFF700566FC6000000 + 00000000000000000000000000000000000000000000000000005770C7008AA3 + F60088A2F60096ACF7008AA3F6008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8BAF8005872C9000000 + 00000000000000000000000000000000000000000000000000005872C9007D97 + EE0090A7F10097ACF20090A7F1007D97EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF5005872C9000000 + 00000000000000000000000000000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C9005B76D2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004A60B0002839760026356C00283976004A60B000A3B3EA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000042579E0036457D002E3C + 6D00283868008D9DD300C0C0C000C0C0C000C0C0C000C0C0C000C2C2C200CECE + CE00CECECE00CECECE00DEDEDE00DEDEDE00DEDEDE0000000000000000000000 + 00000000000000000000000000000000000000000000000000003B53A4002840 + 93001A3FBA003453BC003F5CBD003453BC001A3FBA000C31B0003B53A4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3B7700DBE0F100DDE2 + F200DEE3F300DFE4F300DFE4F300E0E5F300E0E5F300E2E7F400E3E7F500E3E7 + F500E3E7F500E5E9F600E5E9F600E6EAF600E8ECF700E8ECF700E8ECF700E8EB + F600E9ECF700EAEDF7000000000000000000000000003F59B0005A78DE004D67 + BE00334279002A3C780000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005069C0002E47A2000734 + C8005069BC00475AA20043579D00475AA2005069BC002D52CE002E47A2005069 + C000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D3F7F00D7DDF100C8D0 + EC00C9D1ED00CAD2ED00CBD3ED00CCD3ED00CDD4ED00CED5EE00D0D7EF00D1D8 + EF00D2D9EF00D3D9EF00D4DAF000D5DBF100D7DDF200D7DDF200D7DDF100D9DE + F200DADFF200E6EAF800000000000000000000000000415BB2006F8DF3002F58 + E2003C57B1002A38700000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003F56A9001843D5003059 + E1004059AC008A9FE600000000008A9FE6004059AC005A70BC001843D5003F56 + A900ACBCF1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448600D6DCF200C3CC + EC003E5DC4003E5DC4003E5DC4003F5EC4003F5EC4003F5EC400C9D2EF00C9D2 + EF00CAD2EF00CBD3EF00CDD5F000CDD5F000CFD6F000D0D7F000D1D8F100D2D9 + F100D3DAF100E0E5F5000000000000000000000000004A65BF00657DCF00899F + E800647ED800536DC1003F57A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B61DF002A57EE006076 + C20000000000000000000000000000000000000000008FA3E9002A57EE003B61 + DF00445DB6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000384C9700D7DEF500C6D0 + F1003F61D2003F61D2003F61D2003F61D2003F61D2003F61D200C4CEF000C4CE + F100C4CEF100C4CEF100C3CEF100C3CEF100C3CEF100C3CEF100C3CEF100C4CE + F100C4CEF100D7DEF500000000000000000000000000BFCCF5004862BC006A81 + D000556FC5003355C700506CCC004E65B40090A3E20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000486CE8003C65ED00556C + BC000000000000000000000000000000000000000000000000003963EF004A6E + E600445DB4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000032479000304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 89003045890030458900859AE00000000000000000003B519F00D9E0F700C8D2 + F4003F63DA003F63DA003F63DA003F63DA003F63DA003F63DA00C6D1F400C6D1 + F400C6D1F400C5D0F300C5D0F300C5D0F300C4CFF300C4CFF300C4CFF300C3CE + F300C3CEF300D6DDF70000000000000000000000000000000000BFCCF5004A64 + BD008FA4E8005670C400647DD100425596003645760035498F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006080EB004A6FEE005168 + BB00000000000000000000000000000000000000000000000000476EF0006080 + EB00455EB5000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005C74C5005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0003D529A0000000000000000003F57A700DBE2F900CAD4 + F6004065E0004065E0004065E0004065E0004065E0004065E000C8D3F600C8D3 + F600C8D3F600C7D2F600C7D2F600C7D2F600C6D1F500C6D1F500C6D1F500C5D0 + F500C5D0F500D7DEF80000000000000000000000000000000000000000000000 + 00004F68C1007087D40095A8E9004462C8005570CA00465AA00032458600B8C5 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008397DB006888F3006F88 + DF0000000000000000000000000000000000C9D4F8004A64BD006886EC007F92 + D100607AD3000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587BED001444E6000E2A + 8A001744DB000F2B8A001744DB000F2B8A000F2B8A000F2B8A000F2B8A001744 + DB000F2B8A000F2B8A000F2B8A001744DB000F2B8A000F2B8A001744DB000F2B + 8A001644DB000D2A8A005268B70000000000000000004761B700DEE5FB00D1DA + FA005176EF005075EF005075EF005075EF005075EF005075EF00D0DAFA00D0DA + FA00D0DAFA00CFD9FA00CFD9FA00CFD9FA00CED8FA00CED8FA00CED8FA00CDD7 + FA00CCD7FA00DAE1FB0000000000000000000000000000000000000000000000 + 0000BFCDF600506AC3007288D500637AC5004563C8003B5BC800394A86003142 + 7D00A4B3EA00293B7B00283871002E4185000000000000000000000000000000 + 000000000000000000000000000000000000000000006076C20096ACF4007391 + F4004C64BE0090A4EA000000000090A4EA004C64BE009DACDE00A0B3F3005E73 + BB004159AB000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006383EE002352ED006886 + EB00335EEF006A88EE00335EEF006985E2006985E2006985E2006986E600335E + EF006A88EE006A88EB006986E600335EEF005F71B0006883DF00335EEF006A88 + EE00325EEF006786EE00566EBE0000000000000000004963BA00E0E6FC00D4DD + FC00597CF200597CF200597CF200597CF200597CF200597CF200D4DDFC00D4DD + FC00D4DDFC00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D2DBFB00D2DB + FB00D0DAFB00DDE4FC0000000000000000000000000000000000000000000000 + 000000000000BFCDF600536CC50098AAE900637AC6004566D4003954B1003A49 + 7E0035406900576EB900566DBA00556BB400374E9900CED7F700000000000000 + 000000000000000000000000000000000000000000005C76D2008295D6009EB2 + F500859BE400697EC9006076C200697EC900859BE400A9BBF800A0AEDF004362 + CC002D4FC300BDCBF40000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006D8AEB00305CEE002B43 + 9400243D90003D63E300243D9000354C9800486CE400354C9800304896003960 + E300284192002C44940030489600385EDE007692EF005075F1003D66EF002841 + 92003960E300253E92005A70C10000000000000000004A64BB00E2E8FD00D8E0 + FC006283F2006283F2006183F2006183F2006183F2006183F200D8E0FC00D7DF + FC00D7DFFC00D7DFFC00D7DFFC00D7DFFC00D6DFFC00D6DFFC00D6DFFC00D5DE + FC00D4DDFC00DFE6FC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C800748BD900879DE8004D5D97004E65 + B4004A6AD3000430C2000430C2000430C2004162D1005971C00046589B000000 + 0000000000000000000000000000000000000000000000000000000000005D77 + D3009CABE200BECBF500BCCAF600BECBF5009CABE200687CC600798FDA0086A0 + F5004B71F1002E50C400435BAE00BDCBF4000000000000000000000000000000 + 000000000000000000000000000000000000000000007691ED00496FF0003D51 + 94006381E700394D91005D7DE6005D7DE600394D91005D7DE6005D7DE600394D + 91005D7DE6007483B3007483B3006583E6007483B3007483B3006280E4003C50 + 93005A7AE600374C93005F76C50000000000000000004D66BE00E6EBFD00DEE5 + FC007290F4007290F4007290F4007290F4007290F4007290F400DEE5FC00DEE5 + FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DCE3 + FC00DAE2FC00E2E8FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005872CA006F85D000516BBE004A6C + DC00123ED2000433D0000433D0000433D0000937D2002F56D8005775D700455E + B500BDCBF4000000000000000000000000000000000000000000000000000000 + 0000657FD9004C65BF004C65BC004C65BF00657FD900AEBEF2004C65BF007A90 + DB0086A0F5001848EB002F51C500445CAE000000000000000000000000000000 + 000000000000000000000000000000000000000000007A94EE005378F10092A7 + EE007693F40099AEF2007693F4007693F40099AEF2007693F4007693F40099AE + F2007693F40094A7E60095A8EA007995F40094A7E60095A8EA007995F40099AE + F2007391F4008DA4F1005871C40000000000000000004E68BF00E6ECFD00E1E7 + FD007A96F4007A96F4007A96F4007A96F4007A96F4007A96F400E2E8FD00E1E7 + FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00DFE6 + FC00DDE4FC00E4E9FD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AEBEF3005E6FAD004B6FE7001242 + E0000537DE000537DE000537DE000537DE000537DE000537DE001B49E1005E76 + CA00455DB2008DA2E80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004D66 + C0007A90DB004B71F1001848EB003052C500BDCBF40000000000000000000000 + 000000000000000000000000000000000000000000007B96EE00597CF2004B5C + 96004E5E93007D96E9004E5E93004E5E93007D96E9004E5E93004E5E93007D96 + E9004E5E93005A699A00576698007A94E8005A699A00576698007A94E8005060 + 9500718CE8003D519300536DC40000000000000000004F69C000E8EDFD00E3E9 + FD00829CF500829CF500829CF500829CF500829CF500829CF500E5EAFD00E5EA + FD009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009BB0 + F700E0E6FC00E6EBFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004963BC006A87E8002553EE002553 + EE002553EE007C97F4007F9AF1007C97F4002553EE002553EE002553EE002553 + EE004A70F0006983DB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCDF6007B91DC0086A0F5004B71F1003153C700475EB100BDCBF4000000 + 000000000000000000000000000000000000000000007B93E700819CF30092A9 + F600A3B6F800A4B7F800A6B9F800A8BAF800A6B9F800A8BAF800A8BAF800A6B9 + F800A8BAF800A9BBF800ABBDF800A6B9F800ADBEF800AABCF800A4B7F8009FB3 + F70094ABF60087A1F5005771C9000000000000000000526CC300EBF0FD00E7EC + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7EC + FD00E5EAFD00E8EDFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004A64BB00718DEB003E67F0003E67 + F0006888F300667CC5005A71C100667CC5006888F3003E67F0003E67F0003E67 + F000486FF000718CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004F69C3007B92DC0086A0F5001848EB003154C700485FB2000000 + 000000000000000000000000000000000000000000005872CA00495891004A59 + 9100697EC8006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82 + CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006C82 + CF006B82CE006980CE0093A8ED000000000000000000536DC400ECF0FE00E9EE + FD007693F4007693F4007693F4007693F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007693F4007693F4007693F400708E + F400E6ECFD00E9EEFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F69C4007892E700567AF200567A + F20091A3E4009DB0EE00000000009DB0EE0091A3E400567AF200567AF2005D80 + F2007794F4006B83D40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600506AC4007C92DD004B71F1001848EB003254C800BFCB + F400000000000000000000000000000000000000000000000000000000008380 + 7E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546EC500EDF1FE00EBF0 + FD00809BF500809BF500809BF500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF500809BF5007794 + F400E8EDFD00EBF0FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC0096ACF7007995 + F4005971C4000000000000000000000000005D75C500809AF10087A1F500728A + DB004F69C200BFCDF60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF6007D93DD0086A0F5004B71F1003355 + C9004A62B400BFCBF5000000000000000000000000000000000000000000918F + 8F00908D8B00918E8C00928F8D0093908E0094918F0095929000979492009895 + 9300999694009B9896009C9997009D9A98009E9B99009F9C9A009B999800A09F + 9E00B6B4B400D6D6D6000000000000000000000000005770C700F0F3FE00EDF1 + FE00839EF5008AA3F6008CA5F6008EA6F6008FA7F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008FA7F6008DA5F6008CA5F6008AA3F6007693 + F400EAEFFD00ECF0FE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3DBF9009AACEA008FA7 + F600647BC800000000000000000000000000657BC800859FF5009CB1F700516A + C400BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC6007E94DE0086A0F5001848 + EB003456CA004B63B50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871C800F0F3FE00EDF1 + FE00F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EEF2FE00ECF0 + FE00EAEFFD00EDF1FE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006278C900A2B4 + F3008A9EE2009FB1F000000000009FB1F000869BE3009BB0F700788FDD00BFCD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF600536CC500859AE0004B71 + F1001848EB003457CA00BFCBF500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900F1F4FD00F1F4 + FD00F2F5FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6 + FD00F2F5FD00F2F5FD00F2F5FD00F2F5FD00F1F4FD00F1F4FD00F1F4FD00F0F3 + FD00EFF2FD00EEF2FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005974 + CF0098AAE400B2C2F900B4C4F900ADBEF8007D93DF00566FC700C1CDF6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000566FC8008295D400A1B1E500798F + DD0086A0F5004B71F1005E78D1005169BE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005C75CC00C1CEFA00B9C8F900B7C7F9005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005874CF008DA0DF00C4CEF100657B + C5008B9FE30086A0F5006781DB00556DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A8ED009CAEE900A0B2EF008195DB00C1CDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF6005874CF00556EC300B0BD + E7007A8CCA008399E1005872CA00C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005770 + CA00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C9C9C900A1ADDA0058648C00545664005456640054566400545664005456 + 6400545664005456640054566400545664005456640053556300525E8800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C4003847 + 7D0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0038477D00C4C4C40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C3CEF1005E607000999CA600B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1 + BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00999BA600BEC9 + EE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002B3C + 78000328A30003208200E8E8E700E5E4E300E0DFDE00DBDAD900032082000328 + A3000328A3000328A3000328A3000328A3000328A3000328A3000328A300435E + BA002B3C78000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000060647500A6A9B60025377600253776002537760025377600253776006870 + 92007B819B002537760025377600253776002537760025377600253776006569 + 7A00000000000000000000000000000000000000000000000000000000000000 + 00000000000029386A005469AE005065AC005065AC005065AC005065AC005065 + AC005065AC005065AC005065AC005065AC005065AC005469AE00344686000000 + 0000000000000000000000000000000000000000000000000000000000002C3F + 7E00042AA90003218700E8E8E700EFEEED00EAE9E800E5E4E30003218700042A + A900042AA900042AA900042AA900042AA900042AA900042AA900042AA900425E + BD002C3F7E000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000063677800A2A4B400263877002638770026387700263877002C3D77005960 + 7A0059607A002638770026387700263877002638770026387700263877006367 + 7800000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C7800536CBF000328A0000328A0000328A0000328A0000328 + A0000328A0000328A0000328A0000328A0000328A000536CBF00354994000000 + 0000000000000000000000000000000000000000000000000000000000002F42 + 8300042BAF0003238C00DFDFDD00F3F3F100F3F3F200EFEFEE0003238C00042B + AF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF004360 + C3002F4283000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000676B7C009FA2B20028397800283978002839780028397800283978003A42 + 63003B425C00283978002839780028397800283978002839780028397800676B + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000002E3F7E00536DC3000429A8000429A8000429A80003279E000326 + 99000325970003269A0003279F000429A7000429A800536DC300374D97000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8E00042EBB0003259500CAC9C800E3E2E000E6E6E500EAEAE90003259500042E + BB0003279D00032595000325950003259500032595000325950003279D004262 + CB0034488E000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 00006F738300A7ABBB002B3C7B003963EF00446BF000486FF000496FF000496F + F000496FF000496FF000486FF000476EF000325EEF00466DF0002B3C7B006F73 + 8300000000000000000000000000000000000000000000000000000000000000 + 00000000000034478B005470CD00042DB600042BAC000320800003208000586B + AB00ADB6D50003208000031F7E0003269B00042DB6005470CD003B519F000000 + 000000000000000000000000000000000000000000000000000000000000364B + 94000430C20003269B00C1C0BE00DAD9D800DEDDDC00E2E1E00003269B000430 + C20003269B0002175D0002175D000110410002175D0002175D0003269B004364 + D100364B94000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 000073778700AAAFBF002C3D7C004068F000486FF000496FF000496FF000496F + F000496FF000496FF000496FF000496FF0003761EF00486FF0002C3D7C007377 + 8700000000000000000000000000000000000000000000000000000000000000 + 000000000000364A91005773D300042DB60003228A0003218700032187000321 + 870003238D00032187000321870003218500042CB4005773D3003C53A3000000 + 000000000000000000000000000000000000000000000000000000000000394F + 9A000633C80004289F00B5B4B200D2D1CF00D6D5D300DAD9D70004289F000633 + C70004289F00031860000318600002114300031860000318600004289F004365 + D500394F9A0000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000000000000000000000000 + 000075798A00AFB3C3002E3E7E003E67F000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF0003761EF00486FF0002E3E7E007579 + 8A00000000000000000000000000000000000000000000000000000000000000 + 000000000000394D98005875D8000429A5000324920003249200042AA900042C + B200042CB200032493000324920003249200042DB5005875D8003E56A6000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A4001E49D800193BAC00AFADAC00B3B1B000BAB8B600C1BFBD00193BAC00204A + D800193BAC00091743000D1E58000A194900091743000D1E5800193BAD004B6D + DF003E55A400000000000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F51940000000000000000000000000000000000000000000000 + 00007C819200B7BACA00304180003661EF003B64EF003B64EF003B64EF003B64 + EF003B64EF003B64EF003B64EF003B64EF00305CEE00466DF000304180007C81 + 9200000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A4005878E1000429A8000429A8000429A8000328A1000328 + A1000328A10003279F000429A8000429A800042FBD005878E100425BAE000000 + 0000000000000000000000000000000000000000000000000000000000004159 + AA002A54DF002649BB002445B3002445B3002445B3002445B3002649BB002D56 + DF002649BB002445B3002445B3002445B3002445B3002445B3002649BB004E71 + E4004159AA00000000000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A90000000000000000000000000000000000000000000000 + 000080849500BBBFCF0032428100315CED00355FED00355FED00355FED00355F + ED00355FED00355FED00355FED00355FED002B58EC00456CEF00324281008084 + 9500000000000000000000000000000000000000000000000000000000000000 + 0000000000004259AB005879E6002044BC00ADBBE7003C5BC400032699000326 + 99000326990003239000042DB800C9D2EF000431C6005879E600445DB1000000 + 0000000000000000000000000000000000000000000078767600D3D3D300445D + B000365EE5003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62 + E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6005376 + E900445DB000D3D3D300807F7F0000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE0000000000000000000000000000000000000000000000 + 000084889800BDC2D200334482002D59EA00315CEA00315CEA00315CEA00315C + EA00315CEA00315CEA00315CEA00315CEA002855E900446BEC00334482008488 + 9800000000000000000000000000000000000000000000000000000000000000 + 000000000000455EB100597BEB000430C200042FBF00042FBF00032187000323 + 8D0003238D0003249100042FBF00042FBF000434D300597BEB00465FB5000000 + 00000000000000000000000000000000000000000000EBEBEB00AEADAC007979 + 7D00728EEE005D80F200567AF200567AF200567AF200567AF200567AF200567A + F200567AF200567AF200567AF200567AF200567AF200567AF2005C7FF2004F67 + BB0079797D00AEADAC007C7A790000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800395ED800395ED800395ED800FFFFFF00FFFF + FF00FFFFFF00395ED800395ED800395ED800395ED800395ED800395ED8003459 + D700224BD4005773D30000000000000000000000000000000000000000000000 + 00008B8F9F00C5C9D90035468400234FE2002551E2002551E2002551E2002551 + E2002551E2002551E2002551E2002551E2001F4CE2004066E600354684008B8F + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000004B64BB006082F2001445E9001240D700123FD600123FD600123F + D600123FD600123FD600123FD600113DD1001143EC006082F2004B64BB000000 + 00000000000000000000000000000000000000000000CFCECE00EBEBEB00AFAE + AD005F71B000829CF0006A8AF3006384F3006384F3006384F3005673D4004F6A + C2004F6AC2006283F0006384F3006384F3006384F3006A8AF300829DF5007979 + 7F00AFAEAD00EBEBEB007F7D7C0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569DF003E63 + DD002B53DA005975D70000000000000000000000000000000000000000000000 + 00008E92A300C7CCDD00374785001E4ADE00214DDF00214DDF00214DDF00214D + DF00214DDF00214DDF00214DDF00214DDF001B48DE003E64E400374785008E92 + A300000000000000000000000000000000000000000000000000000000000000 + 0000000000004C65BC006485F3001E4DED001D4CE9001C49DE007691EB00E8ED + FB00E8EDFB001C49DD001C49DE001D4CE9001949ED006586F3004C65BC000000 + 00000000000000000000000000000000000000000000807E7E00D0CFCF00EBEB + EB007E7E81006878B1008DA4F100708EF400708EF400708EF400A4B0D800E4E4 + E300D6D5D400627CD500708EF400708EF4007794F4008FA7F6006D80BF00B0AF + AF00EBEBEB00D0CFCF00D3D3D30000000000000000005C79DB00375EDF00486C + E3005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173E300486C + E3003058DE005B78DB0000000000000000000000000000000000000000000000 + 00009195A600CBD0E000384987001A47DB001B47DA001B47DA001B47DA001B47 + DA001B47DA001B47DA001B47DA001B47DA001744DB003D62E100384987009195 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000004D66BD006888F3002856EE002957EE002956EC002854E5002854 + E5002854E5002854E7002956EC002957EE002150ED006888F3004D66BD000000 + 0000000000000000000000000000000000000000000000000000D3D3D3008584 + 8300EBEBEB00B2B1B10084848700A1B4F30090A8F6008AA3F600C9C8C600D4D3 + D100E0DFDD006F83C5008AA3F60090A8F6007E8EC00084848700B2B1B100D2D2 + D10085848300D3D3D3000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00536CBE00536C + BE00536CBE006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D50000000000000000000000000000000000000000000000 + 0000989CAC00D0D5E6003A4B8900113ED300123FD300123FD300123FD300123F + D300123FD300123FD300123FD300123FD3000F3CD3003A5FDB003A4B8900989C + AC00000000000000000000000000000000000000000000000000000000000000 + 0000000000004F68C0006E8DF3003E67F0004068F0004068F0004068F0004068 + F0004068F0004068F0004068F0004068F000335EEF006E8DF3004F68C0000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300D4D3D200EBEBEB00B3B3B2007C89B400ABBBF4009DB2F7009FA6C200C3C1 + BF00C9C7C5008598D8009DB2F700AEBFF80088878B00B3B3B200EBEBEB008B89 + 8700D3D3D300000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA0000000000000000000000000000000000000000000000 + 00009A9EAF00D3D8E9003B4C8A000D3AD0000E3BD0000E3BD0000E3BD0000E3B + D0000E3BD0000E3BD0000E3BD0000E3BD0000C39D000395ED9003B4C8A009A9E + AF00000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C100718FF400F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE007290F4005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008B898800D5D4D400EBEBEB008B8A8E007E8BB400B4C3F40092A2D9008494 + C6008494C600A8BAF500B5C5F9008896C300B4B4B300EBEBEB00D5D4D4008684 + 83000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500EDF1FD00FFFF + FF00EDF1FD00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 00009DA1B200D6DBEC003C4D8B000835CC000936CC000936CC000936CC000936 + CC000936CC000936CC000936CC000936CC000835CC00375CD5003C4D8B009DA1 + B200000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC2007491F400F1E0CB00F1E0CB00F1E0CB00F1E0CB00F1E0 + CB00F1E0CB00F1E0CB00F1E0CB00F1E0CB00F5EADA007592F400516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D300908E8D00EBEBEB00B7B6B50091919300CBD6FB00C3D0 + FA00C3D0FA00949FC50091909400B7B6B500D7D6D600908E8D0093918F009290 + 8F000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700FFFFFF00FFFF + FF00FFFFFF0096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000A3A7B800DBE0F1003F4F8D000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C500365AD1003F4F8D00A3A7 + B800000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4007E99F500F3E2CB00F3E2CB00F3E2CB00F3E2CB00F3E2 + CB00F3E2CB00F3E2CB00F3E2CB00F3E2CB00F5EADA007E99F500536DC4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300D8D7D700EBEBEB00B8B7B6009DA6C500CDD8 + FB00CDD8FB0094939600B8B7B600EBEBEB009391900099979500A5A4A200A5A4 + A200939291000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000A6AABA00DDE3F3003F518E000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2003558CD003F518E00A6AA + BA00000000000000000000000000000000000000000000000000000000000000 + 000000000000546EC500819BF500F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4 + FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F3F6FE00819BF500546EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000096949300D9D9D800EBEBEB0097979900919D + C500919DC500B9B8B800EBEBEB00D9D9D800D3D3D300A09E9C00CCCCCC00CCCC + CC00A09E9C00000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800E1E3E800F2F2 + F200E1E3E800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000A9ADBD00DFE5F60040518F003558CA003558CA003558CA003558CA003558 + CA003558CA003558CA003558CA003558CA003558CA003558CA0040518F00A9AD + BD00000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600829DF500F4E4CB00F5E4CB00F5E4CB00F5E4CB00F5E4 + CB00F5E4CB00F5E4CB00F5E4CB00F5E4CB00F6EADA00829DF500556FC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D3009B999800EBEBEB00BBBA + BA00BBBABA00DBDBDA009B999800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AEB2C200E2E8F90042539000425390004253900042539000425390006776 + A6006776A600425390004253900042539000425390004253900042539000AEB2 + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800829CF500CACCD100CBCDD100CBCDD100CBCDD100CBCD + D100CBCDD100CBCDD100CBCDD100CBCDD100D9DBDF00829CF5005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D5D5D300DDDCDB00EBEB + EB00EBEBEB009D9C9B00D5D5D300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0B4C400E3E9FA0043549100435491004354910043549100435491003543 + 740035437400435491004354910043549100435491004354910043549100B6BA + CB00000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C97F400A5A7AC00A5A7AB00A5A7AB00A5A7AB00A5A7 + AB00A5A7AB00A5A7AB00A5A7AB00A5A7AB00BEC0C4007D98F5005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A19F9D00DEDD + DC00DEDDDC00D5D5D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000094A2D300D8DEEF0094A0C700445492004454920044549200445492004454 + 920044549200445492004454920044549200445492004454920094A0C70094A2 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C96EE008FA5F00094AAF20095AAF20097ACF20097AC + F20097ACF20096ABF20095AAF20093A9F200889FF0007C96EE005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C2CEF60096A3D400B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9 + CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA0096A3D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1D1D100CBCBCB00C7C7C700C5C5C5007C8FCD005368AF00354785003546 + 8100364783004358A100566CB5007F91D100C7C7C700C7C7C700C9C9C900DADA + DA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C200B1BCE5003446 + 820029376700C0C0C000C0C0C000C5C5C500CDCDCD00DADADA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ACACAC00A4A4A400A4A4A400A4A4A4008A8A + 8A008A8A8A00A4A4A400B3B3B300C7C7C7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008EA2E10031458B004B64B5004561C1002E4FBE00143AB9002347 + BF00143BBC002449C7002E53CD004566D4004B61AF003D56AA0097A9E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008297DD00485A9900415C + B9003654B7002E3F7C008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A4A40000000000000000002A3B7400354476003F518C004D66B7004F67 + B9004F68BA00485DA50040518D00374677007288CB0000000000C7C7C700A4A4 + A400000000000000000000000000000000000000000000000000000000000000 + 00005068BA00374885004B62AD002345B600082EAD00042AAB00617ACB008295 + D7005974CB00042DB600042EB9000832BF003E61D500506AC4004258A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008297DE00304381003755BB000F34 + AE00082DAB004B60A4002F4180008297DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009494 + 940000000000B7C3EE0032427D004C61A5004E69C3004B69CE003F62D6004063 + D9004064DA004365D4004B69CF004F6AC6003A497D002C3E7B00AAB9EB00D3D3 + D30096969600D3D3D30000000000000000000000000000000000000000000000 + 0000415393004B65BE002E50BF00042CB300042CB2001B3FB7008194D6008194 + D5006179CA003353BE00042CB100042DB5000832C0002E53CE004C6ACF005B74 + C900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005169BD00394B89004D65B300082FB000042B + AF00042BAE003655BD004C61A700314483000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000096969600D3D3 + D30095A5DF00959392007D8294004464CE00385DD7004368E3005175EB005275 + EB005174EA004D72EA004469E5003B60DC004963B7007D81940091908F000000 + 0000000000009F9F9F000000000000000000000000000000000093A5E4003E52 + 96003256CD001D44C8002349C900274CCA008B9FE20091A4E4008B9FE100879B + DE008498DC006A82D2002245B800042AAB00042BAF00042CB400042EB9004D6A + CB004258A20095A9E7000000000000000000283870003551AE003552B000455F + B4004964B6004B65B800546EBB005E76BC005F78C000657DC200788DC500788D + C500788DC500788DC5007287C4005F78C0005E76BC005E76BC004B65B8004963 + B5004963B5003A56B1003E59B0002D3E75000000000000000000000000000000 + 00000000000000000000546CC1004C66BC002A4EC400042EB900042DB800042D + B800042DB700042DB7000830B8003657C50035488B00A8B7ED00000000000000 + 000000000000000000000000000000000000000000009A9A9A0000000000B7C4 + EF00C7C6C500E1E1E000F0F0F00094A0C8003D5DC9002D50C400183BAD001739 + A8001738A7001D40B300284BBF003757C300D1D0D000EDECEC00DDDCDB00B1AF + AE00A4B5E80000000000B3B3B3000000000000000000000000003A519D00546D + C1002D52D100365BD3003D60D500496AD8009DAEE9009CADE80096A8E60093A6 + E5008197DF002348C300052EB700042CB200042AAB00042BAD00042CB2002F53 + C9005069BF003D54A30000000000000000002A3C760003279F00032699001032 + A300032699001032A30003279F001032A30003279F000326990003279F000326 + 9C001033A800032699001032A30003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F002947AD002A3C76000000000000000000000000000000 + 000000000000566FC3003F5396002B50C800042FBE00042FBE00042FBD00042F + BD00042EBC00042EBC00042EBB000831BC004F66B100384D9600BCC8F3000000 + 0000000000000000000000000000000000000000000000000000000000003344 + 8000E7E6E600F3F3F300F7F7F700BAB9B8007580A700233F9C00425AAB00425A + AA00455CA700334EA500203B9800747FA500EBEAEA00F9F9F900EFEFEF009EA3 + B7002F3E7300000000009A9A9A0000000000000000006D85D6004F64AD005272 + DB004668DA005070DD005373DE007D95E600A8B8EE00A6B6ED00A1B2EB009EAF + E9006782DC002248C800173EC2000B34BC00042BB000042AAB00042BAC000830 + B8003F60CD004C61A90000000000000000002D3E7C000328A400042695002545 + B000042695002545B0000328A4002545B0000328A400042695000328A4000426 + 95002545B000042695002545B0000328A4000328A4000F32A8003250B5003250 + B5000F32A8000328A4002949B2002D3E7C000000000000000000000000000000 + 00007A8FDC0041559B004E69C4000430C2000430C2000430C2000430C2000430 + C2000430C1000430C100042FC000042FC0003E5FCE004E63A900364D98000000 + 00000000000000000000000000000000000000000000000000007388CB003A49 + 7C00ADB9E100FAFAFA00EBEBEA00CCCAC900A5A3A100797F9800384677003543 + 7500324172003B4B8000797F9800A6A4A300DFDEDD00EEEEEE00FBFBFA004862 + B7003F4E82005D73BE009F9F9F0000000000000000004D63AB005F7DE1004D6F + E100758FE9007691E9007792E900BBC8F400BAC8F400B8C6F300B3C2F200B0BF + F000ACBCEF00496BDA003E61D5003156CF00163DC1000831B900042CB300042A + AB00082FB1004563C70098AAE90000000000324687000D33B3000D2B8F005670 + C9000D2B8F005670C9000E34B3005670C9000E34B3000D2B8F000E34B3000D2B + 8F005670C9000D2B8F005670C9000E34B3000E34B3001B399C00304AA400304A + A4001B399C001439B5002D4EBD0032468700000000000000000000000000BDCB + F400546DC000355AD6000A37CE000D3ACE000E3ACE000E3ACD000E3ACC000E3A + CC000E3ACC000E3ACC000E3ACC000D39CB000A36C9001841CC004C6ACF005871 + C7000000000000000000000000000000000000000000A4B2E5003A4879004C66 + BF005074EA004060CC0098A4CC00C5C3C100D3D2D000A1B3ED00000000000000 + 00000000000000000000A1B3ED00D3D2D000D5D3D20097A2C8003656C2003A5F + DD00506BC8003D4D8200A4A4A4000000000000000000566FC2005E7DE6006180 + E700859DED0088A0EE0088A0EE00C2CEF600C1CDF500C0CCF500BCC9F400B8C6 + F300B5C3F3007892E6004F6FDC004466D800294ECC001940C3000932BA00042B + AC00042BAC006B82D000617ACD000000000035488C002145BD001D378D00788E + D7001D378D00788ED7002549BF00788ED7002549BF001D378D002549BF001D37 + 8D00788ED7001D378D00788ED7002549BF002549BF001C368F006B7CB6006B7C + B6001C368F002549BF003858C50035488C000000000000000000000000004B61 + B4003C61DC001440D4001541D4001B46D5001C46D4001C46D4001D47D4001C46 + D3001C46D3001D47D3001D47D3001C46D2001641D100123ED000284FD300455A + A3008A9EE400000000000000000000000000000000005B71B70042538D004765 + C8005073E8003154CA002541A000D5D4D200A1B3ED0000000000000000000000 + 0000000000000000000000000000A1B3ED009CA3BB001F3A9600274ABE00466B + E7004565D000475A9C009F9F9F0000000000000000005D77CF006684E9007590 + EC0094A9F100A3B5F300B9C7F600CBD5F800C9D4F800C7D2F700C2CEF600C0CC + F500BCC9F400AFBFF1006582E3005575DE00395DD3002A4FCC001A41C300042C + B2003252BB008598D700465FB10000000000384C92003658C8002E4696008398 + DC002E4696008398DC003B5CCA008398DC003B5CCA002E4696003B5CCA002E46 + 96008398DC002E4696008398DC003B5CCA003B5CCA0029408C00828FB900828F + B90029408C003B5CCA004262CB00384C920000000000000000006680D5005067 + B300214CDB001D49DB00234DDB002A53DC002A53DC002A53DC002A53DB002A52 + DA002A52DA002A52DA002A52D9002A52D900244DD7001F49D6001944D500556E + C5003E57A800D1DAF8000000000000000000000000003A4E9000495DA1003D5E + CC004A6DE1002548BE003751AA007382B8000000000000000000000000000000 + 0000000000000000000000000000000000003D4C8100324CA3001B3EB0004D72 + EA004063D5005066B100A4A4A40000000000000000006F89E3007893EF0094AA + F200D6DEFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D5DDFA00D1DAF900CED8 + F900C7D2F800BAC8F50097ABEE00728DE8005776DF005372DB009BADE800133B + C0003354C300425FC200364A8B00000000003E539E005A77D9005A71BD00879C + E3005A71BD00879CE3006983DD00879CE3006983DD005A71BD006983DD005A71 + BD00879CE3005A71BD00879CE3006983DD006983DD006983DD006983DD006983 + DD006983DD006782DC005371D7003E539E0000000000526DC9005B75C800466B + E800345DE6003D64E6004368E700466BE700456AE600456AE600456AE6004469 + E500456AE5004469E4004469E4004469E4004469E4004065E300385FE1002F58 + E0005876DC004B61AF00000000000000000000000000222F59004F67B500385B + D1004063D7001D3FB100425AAB00D4D4D4000000000000000000000000000000 + 00000000000000000000000000000000000038477900425AAA001032A1005174 + E9004266DC00546DBF008A8A8A000000000000000000718BE5007E99F0009EB2 + F400DCE3FB00DDE4FB00DDE4FB00DDE4FB00DCE3FB00DAE1FA00D6DEFA00D4DD + FA00C4D0F800C8D3F800C2CEF60094A9EE006481E4007B94E600A1B2EB003D5F + CE004866CC003354C20036488A00000000004158A3005C7ADD00637CCD00849B + E6006A81CE00859BE600738DE100859BE500738DE1006A81CE00738DE1006A81 + CE00859BE5006A81CE00859BE500738DE100738DE100738DE100738DE100728C + E100718BE1006C86E0005372DB004158A300000000004E67BA006380E500365F + EA00456BEB004D72EB005276EC005376EC005477EC005376EB005376EB005376 + EB005376EA005376EA005376EA005376E9005376E9005073E900496EE7003059 + E300456AE6005972CC00000000000000000000000000232F59004F67B500385B + D1004164D8001E40B200425AAB00D6D6D6000000000000000000000000000000 + 00000000000000000000000000000000000039477900465DA8001133A2005174 + E9004266DC00546DBF008A8A8A000000000000000000728DE400819BF100A5B7 + F500D6DEFB00E2E8FC00E2E8FC00E2E8FC00E1E7FC00E0E6FC00DBE2FA00D8E0 + FA00CBD6F900CED8F900C9D4F800C3CFF600758FE8009CAEED00A8B8EE004062 + D2007C92DD007289D600364A900000000000455CA9003158D900375CDA00395E + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60 + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003A5F + DA00395EDA00365BDA003C61DB00455CA900000000005C75CC005579F100355F + ED005478F0005E80F0006182F1006182F0006182F0006182F0006182F0006182 + EF006182EF006182EF006081EE006181EE006181EE006080ED005A7CEC004268 + E900345DE7005677E400BFCCF5000000000000000000374577004E65B200385B + CE004467DB001E41B600435CAD0093A5DE000000000000000000000000000000 + 0000000000000000000000000000000000003C4B7C00425AAB001537A8005275 + EA003F63D900526BBC00A4A4A4000000000000000000647ED100849EF200A4B7 + F600D3DCFB00D5DEFB00E2E8FC00EAEFFD00E9EEFD00E8EDFD00E5EAFD00E1E7 + FC00DFE5FB00D7DFFA00CDD7F900CDD7F800C0CCF500BAC8F400B2C1F2009FB0 + EA008A9FE3006680D7006079CA0000000000BFCCF5004967CA00335BE3002651 + E100335BE200375EE300385FE3003960E3003960E3003960E3003960E3003960 + E3003960E3003960E3003960E3003960E300385FE300385FE300375EE3002C56 + E1002550E100335BE3004B64B900BFCCF500000000006583E9005A7DF2005C7F + F2007B97F4007E99F5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500829DF50086A0F500859FF500809BF5007E99F5007B97F4006384 + F3004C71F000466DEF005773CE0000000000000000005D71B90045558F004664 + C7005275E9003356CB002642A2009C9A990096A8E20000000000000000000000 + 000000000000000000000000000096A8E2007A809800203B98002B4EC000476C + E6004666CF00495C9E00A4A4A40000000000000000005D74C2007E99F10099AE + F600D8E0FB00DCE3FC00DEE5FC00E7ECFD00ECF0FE00EBF0FD00DAE1FB00CBD6 + FA00CED8FA00DAE1FA00D6DEFA00D1DAF900C5D1F700BECBF500B6C4F300A0B1 + EB0094A7E7006983D70097A9E80000000000000000004E68BF00506DD000456A + E9004F73EA005578EB005578EB005578EB005578EB005578EB005578EB005578 + EB005578EB005578EB005578EB005578EB005578EB005578EB005578EB004268 + E800446AE900506DD000BFCCF50000000000000000006D8AEA006C8BF3007491 + F4008FA7F60092A9F6008EA6F6008AA3F6008AA3F6008AA3F60086A0F500849E + F500839EF50097ADF7009BB0F7009AAFF70093AAF6008FA7F6008AA3F600718F + F400587CF200436BF0004E68C10000000000000000009FAFE3003F4D7E004B66 + BD005174E9004464CF007985AD00BEBCBA009E9C9B0096A8E200000000000000 + 0000000000000000000096A8E2009E9C9B00ABA9A8007884AA003B5BC5003A5F + DB004F6BC80042518500ACACAC0000000000000000004D67C100728CE50091A8 + F500D8E0FC00E2E8FD00E3E9FD00E2E8FD00E4E9FD00EEF2FE00E4E9FC00DBE2 + FB00E3E8FC00DEE5FB00D9E0FA00D4DDFA00C9D4F800C1CDF500BAC8F400A0B1 + EC00A0B1EA00788CCF00000000000000000000000000BFCDF600516BC4005774 + D6005E80EF006A89F0006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8C + F1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006B8AF0005679 + EF005774D500516BC400000000000000000000000000718CEA008EA6F6008AA3 + F6009FB3F700A3B6F800A2B6F8009AAFF70097ADF70093AAF600859FF500829D + F5008AA3F600A7B9F800AABCF800ABBDF800A5B8F800A2B6F8009CB1F7007C97 + F4006183F2004A70F0004E68C00000000000000000000000000034467F004F63 + A5004163D20099A5CC00BFBEBE00C8C6C400BCBBB900B7B5B50093A5DE00D4D4 + D400D4D4D4006C7AB000B7B5B500BDBBB900D6D4D300C2C1C10098A4CB004061 + D0005067B20034447700C7C7C700000000000000000000000000536CC500738D + E000C0CEFA00DDE4FC00E8EDFD00EBF0FD00E9EEFD00E6ECFD00E4E9FD00EDF1 + FE00EAEFFD00E3E8FC00DFE5FB00D9E0FA00CED8F900C5D1F700B7C5F400A9B9 + EF007F93D500455DAA000000000000000000000000000000000000000000C1CD + F6005876DA005F7FEA006A87EB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006B88EB006986EB006281EA005771 + C900C1CDF600000000000000000000000000000000006882DA009DB2F700BDCB + FA00AEBFF800B4C4F900B5C5F900ACBDF800A0B4F7008CA5F600718FF400738C + E1006F87D600C8D4FB00BCCAFA00B3C3F900B8C7F900B4C4F900AEBFF8008AA3 + F6006888F3004E73F1005671CD00000000000000000000000000000000003646 + 8200B4B3B200E8E8E700F9F9F900ECEBEB009CA8D0002642A000425BAC00425A + AB00425AAB003550A800233E9B009CA8CE00F5F4F400F8F8F700E4E3E2007D83 + 97003242780000000000000000000000000000000000000000009CAEEE005B73 + C600AEBFF800CAD5FB00E2E8FD00EEF2FE00EDF1FE00EAEFFD00E3E9FD00E9EE + FD00EAEFFD00E6EBFD00E0E6FC00DBE2FA00CED8F900C1CDF600B0C0F300AFBD + ED00596DB20097A9E80000000000000000000000000000000000000000000000 + 00005771C9005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C800C1CD + F60000000000000000000000000000000000000000006179CC00809AF300B9C8 + F900BAC9FA00B3C3F900B4C4F900A6B9F80096ACF7007D98F5006D8AED005F77 + C800556EC400BAC9FA00CCD7FB00BECCFA00B4C4F900B2C2F900ABBDF800859F + F5006082F200567AF2006882DB0000000000000000000000000000000000ACBB + ED00C4C3C200D8D7D600EBEAEA00BAC6ED004262CD003255CA001D40B300183B + AD00173AAC002245B9002F52C5003E5EC900F8F8F800E7E6E600D4D3D200ACAB + A900A6B5E8000000000000000000000000000000000000000000000000006883 + DC0096ABF100B3C3F900CCD7FB00EAEFFD00EEF2FE00EDF1FE00E6EBFD00E1E7 + FD00E2E8FD00E6ECFD00E1E7FC00DBE2FA00C9D4F900B9C7F600B0C0F3007485 + C400617AD0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005570CC006F87DA008EA6 + F600CBD6FB00C5D1FA00B5C5F9009EB3F700859FF5007894F400637CCD00617C + D8007993E200859CE800B1C1F900C7D3FB00BAC9FA00B0C0F900A7B9F8007995 + F4006082F2005F7EE700AEBEF3000000000000000000B3B3B300000000000000 + 0000C6C5C300C8C7C600DFDFDE004264D3005174EA005174E8004265D9003E61 + D5003E61D4004669DD004F72E5005376EA00A6B2DB00DDDCDB00C3C2C1008EA0 + D900000000000000000000000000000000000000000000000000000000000000 + 00006883DC005E76C9007992E400A9BBF800B8C7F900C9D5FB00D2DBFB00D0DA + FB00C9D4FA00C6D2F900CED8F900C3CFF800B7C6F700A2B1E5005C72BE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005772 + CC006E88DC007A94EA007D97ED006E89E5006A83D3005871C700000000000000 + 0000000000008FA4EA00556FC7006980CF007C96EB007A95EC00738EEB00617D + DA005D76C9006B84DA00000000000000000000000000000000009A9A9A000000 + 000000000000A6B6E90038487C005064AC004D68C0004361C7003A5DD1003E61 + D5003E61D5003F60CF004463CA004D68C50049598E0034447900A6B6E9000000 + 0000B3B3B300ACACAC0000000000000000000000000000000000000000000000 + 0000000000009CAFEE005871C9007B95E80091A8F400A1B5F700ABBDF800ABBC + F700A6B8F700BDCBF900C0CDF800BCCAF7008092D300536CC1009BADEC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E79D6005771C8005670C7005874CD006B84DD00D3DBF900000000000000 + 0000000000000000000000000000859BE9005670C7005670C7005670C700647E + D9009FB1F0000000000000000000000000000000000000000000D3D3D3009696 + 96000000000000000000000000003A497A00445487004A5C9B005068B600526A + B8005169B9005066AF004B5E9D00455588005E74BB000000000000000000B3B3 + B3009A9A9A000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C800677ECD007089DB0096AAEE009DB1 + F200A8B9F30093A6E70091A2DF006F84CD007A91E30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9F9F00BDBDBD0000000000000000008598D8005065AD00344478002A36 + 60002A3661003E4F87005065AD008598D8000000000000000000BDBDBD00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9B9B0092908F0086858500BFBFBF00C0C0C000C0C0C000C5C5C500C7C7 + C700C7C7C700DADADA00DBDBDB00DCDCDC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000DCDCDC00DADADA00CACACA00C5C5C500C0C0C000C0C0C000213166001521 + 490015214900C0C0C000C1C1C100C7C7C700D2D2D200DADADA00DCDCDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200C2C0BF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003349920035447C00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CBCBCB0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0026346600CBCBCB000000000000000000000000000000 + 0000000000006C82CD001E306E002F3F740038509D004E66B60042548F003751 + AB003751AB001E3377004E66B60038509D003F4F88001E306E006C82CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D54A2006271A7003D54 + A200000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B50026377400000000000000000000000000000000000000 + 000000000000203372005264A0005268B30039497D003F518D005067B4001F3E + A6001F3EA6004C60A2003F518D0039497D004963B7005264A000203372000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D1D0CF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000657ECC00647AC5004051 + 8D008397DE000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003753B2000F34AF001337 + AF00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AE00283A7C00000000000000000000000000000000000000 + 00000000000031479600465A9E002948AE004E68BC003C58B5001638A7000328 + A0000328A0002443AC003C58B5004E68BC002948AE00465A9E00314796000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8B7ED005D78CF004664 + C9004F63A4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000415EBF001F44BC00274A + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4E + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002C4E + BD00284BBD001F44BC002D4186000000000000000000000000006F86D200253C + 85002B429000455793004C66C000042AAA00042AAA00042AAA00042AAA00092E + AC00092EAC00042AAA00042AAA00042AAA001B3EB2004C66C00045579300344C + 9C00253C85007F95DB0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D0D8F700728AD900173E + C1005871C800A8B7EE0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003254C400284CC4002F448D000000000000000000D0D8F700263A8000566A + AE004B5FA1004C67C4001237B400042BAF00042BAF001F42B800506BC800506B + C800516BC2003D5BC1001F42B800042BAF00042BAF001237B4004C67C400485E + A900566AAE00263A800000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007A8FD700123B + C500375ACE004359AD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004C6ACD003155CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003C5DCC003155CB003147920000000000000000004B64B800465A9C004B68 + C9003D5CC5001B40BB00042CB4000D34B6004160C600546DC000364886003345 + 84002E41810044599F00546DC0004160C600042CB400042CB4001B40BB00294C + BF004B68C900465A9C0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CD00355A + D8000433CF005B76D0004259A900D1DAF8000000000000000000000000000000 + 000000000000000000000000000000000000000000005C79DA004668D8005674 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005674DA00486AD900374E9D00000000000000000000000000435DB2004659 + 99000F38C1001039C2000F38C1005168B3002B428C00A7B6EC00000000000000 + 00000000000000000000A7B6EC002B428C004766CF000F38C1001039C2005673 + D30045589800435DB20000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006E84CC003E63 + DF000737D6004468E0005A72C000556FC8000000000000000000000000000000 + 000000000000000000000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006380E1005474E0003A51A3000000000000000000000000005A74C7004B61 + AC001A42C8001A42C8003155CD0033488D00A7B7ED0000000000000000000000 + 0000000000000000000000000000A7B7ED005B75CB003055CD001A42C8004E6D + D4004960AB005A74C70000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DC700607F + E8001241DE002450E100607EE2005369B4000000000000000000000000000000 + 000000000000000000000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900718CE900607FE7003C55A800000000000000000096A9E80030499C005A72 + C300244BCE00244BCE00506FD800506AC0000000000000000000000000000000 + 0000000000000000000000000000000000004D64AF004F6FD800234ACE003D60 + D4005871C30030499C0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7004C63B200455EB3005E77CE007189DA005973 + CC004762B90044579B00475DA7004862B6005C77D2005E7CE2006583E7006681 + D8005970C000425BB40000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63BA004A63BA004A63BA005D74C2007995 + F3002855EC002855EC002C58EC006282EF007790E20000000000000000000000 + 000000000000000000000000000000000000000000007C97F400708EF400829D + F4008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F50088A1F5007794F400425CB30000000000000000005D78D5005273E0004669 + DD003A5FDB003A5FDB006481E200000000000000000000000000000000000000 + 0000000000000000000000000000000000003E549D006481E300355BDA00395E + DB004367DD004B6DDE002D459400000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006886EB006D87E0005F7AD500546EC200546F + C8005A74CB004E6DD6003B5DCD002E52CA003E62D8004568DE005778E5007994 + F1007C97F4006881DB0000000000000000000000000000000000000000000000 + 00000000000000000000000000008BA1EA006F8BEB006E8BEB007993ED006C8B + F300325EEF00325EEF00325EEF00486FF000536CBF00D2DBF800000000000000 + 000000000000000000000000000000000000000000007E99F500708EF400829D + F50093AAF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70091A8F6007E99F500445DB40000000000000000005E7AD8005676E3004E70 + E2004368E000466AE1006986E600000000000000000000000000000000000000 + 0000000000000000000000000000000000004157A2006B86E1003E63DF004267 + E0004A6DE1004F71E20030489900000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006282EC00839DF3007C97F3006886EA005878 + E4004E6FDE001D45CB000D36C1000F38C200395ED6005071E0006583E700869F + F20087A1F5007791EA0000000000000000000000000000000000000000000000 + 00000000000000000000000000008DA3EE005378F100496FF0004C72F1004169 + F0003D66EF003D66EF003D66EF003D66EF007087D6005873D000000000000000 + 000000000000000000000000000000000000000000007D98F5006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A0B4 + F70096ACF700819BF500455EB6000000000000000000455CA700556EBF00718B + E5004D70E5004A6EE500718DEA00AABAEF000000000000000000000000000000 + 000000000000000000000000000000000000485EA8006F8BEA00496DE5005677 + E6006D88E500546DBF003E58B300000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700879FF000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009FB3F600839BEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000008498DF007693F4005176F1005176F1005176 + F1005176F10091A7F00099ADF10096ABF1008EA5EF008DA0E100526CC7000000 + 000000000000000000000000000000000000000000005C79DA002E55D6002E55 + D6002E55D6002E55D6006D87E0008DA5F60094ABF60097ADF7009AAFF7009AAF + F7009AAFF7009AAFF7009AAFF7009AAFF7009AAFF70099AFF70097ADF70090A8 + F60086A0F5007794F4004761B800000000000000000000000000667ED5005C75 + C7006081EE006383EF006A88EE00425BAC00ADBCF10000000000000000000000 + 0000000000000000000000000000ADBCF1007690E5006A89EF006383EF007994 + F1005872C600667ED50000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000798ED70090A8F6005D80F2005D80F2005D80 + F2005D80F2006B81CF00506AC100506AC100506AC100506AC100566FCD000000 + 000000000000000000000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ACBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B9000000000000000000000000005370CB005D73 + BE006989F2006E8CF2006A89F2006982D6003E59B100ADBCF100000000000000 + 00000000000000000000ADBCF1003E59B2007C97F4006989F2006E8CF200849E + F4005970BC005370CB0000000000000000000000000000000000000000000000 + 0000A7A5A300D2D1D000AEACAB0089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000007489D1009BB0F7006787F3006787F3006787 + F3006787F300859BE900516BC400000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB000000000000000000728BDD005069BA006F8B + EB006E8DF3007894F4007894F4007F9AF5006B84D700465FB300ADBCF1000000 + 0000000000005D79D100465FB3006781D5007491F4007894F4007894F4007290 + F4006A88EB004F68BA0000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009DB2F600839CED0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C600B1C1F500839EF5007D98F5007D98 + F5007D98F5008BA4F600879EE900536DC6000000000000000000000000000000 + 00000000000000000000000000000000000000000000819BF5005579F1005579 + F1005579F1005579F1005579F1005579F1005D80F2007E99F500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5004C66BD000000000000000000D2DBF800425CB6006983 + D9006A82D100809BF2007E99F5008DA5F60088A2F6008BA4F6008DA5F60086A0 + F50086A0F5008EA6F6008CA5F60088A2F6008BA4F600829CF500849EF200617C + D8006882D900425CB60000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700849DF000A4B7F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C200385DD6004D6FDF006280E60089A1 + F20091A8F5007E98EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005973CF00AEBEF30094ABF60086A0F50086A0 + F50086A0F50089A2F60097ADF7006C83D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C1000000000000000000000000008EA2E9004460 + BC004964C100667DCA00849EF20097ADF70097ADF70097ADF70090A8F6008DA5 + F6008EA6F60094ABF60097ADF70097ADF70093AAF60089A2F300687FCA004E6B + C8004460BC008EA2E90000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A7007691EE009CB1F50091A8F4006D8AEB005979 + E4004669DD001F46CB00143CC3002147C7004567D8005D7BE1006885E7007994 + F1007B96F3007691EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D50099AAE800A5B8F80092A9F60092A9 + F60092A9F60092A9F6009AAFF7008EA4EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004965C2006E85D20094ABF6009BB0F7009EB3F700A2B6F800A2B6 + F800A2B6F800A1B5F7009EB3F7009DB2F70095ACF700748AD5004965C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000817F7E00B9B8B600C1C0BE00787F9E007A93E7007994EF006A87EA006984 + E100647ED800576DB9005468A800475DA7006981D600748DDD00778DDF00546E + C800637BCD006C85DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000859CE9008699DD00BAC9FA00A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A2B6F8005771C90000000000000000000000 + 000000000000000000000000000000000000000000008EA6F6008EA6F6008EA6 + F6008EA6F6008EA6F6008EA6F600546DC10091A5EB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004763BF006D87DB007C96ED006A80C8006D84D20099AEF200A0B4 + F7009EB3F7008399E3006D84D2006A7FC7007491F400718ADD00405DBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFBEBC00D9D8D700E3E2E1007A7877005974CF005F77C9005E74C000556B + B800516BC200899EE500C9D4F600000000000000000000000000000000000000 + 000092A7ED005874CD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000AFBFF3007D91D600B0C0F900A1B5F700A4B7 + F800A5B8F800A2B6F8009BB0F7008AA3F6006D84D4007C93E600000000000000 + 00000000000000000000000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008197E5004862BC005971C2005974D0006B85DB006B84D6008AA3 + F60087A1F5004965C0006B85DB005974D000627BCF004862BC008197E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CFCDCC00EBEBEA00F8F8F8007A7877000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3DBF9006F84D000A7B8F300B1C1F500B2C2 + F500B2C2F500B1C1F500B0C0F500AABAF30093A6E8005872CA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D2DBF8008197E50000000000000000005871C300728D + EA00708CEA009DAFEE0000000000000000006B85DC00D2DBF800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A9A00959392008C8A8900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C2003B4E + 91003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E9100C2C2C200000000000000000000000000D6D6D600566AB0002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667005468AB00DEDEDE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448900BECAF4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000283B80004F6CCD00506C + CB00506ABE00506AC000516BC500475CA5002E46920000000000000000000000 + 00000000000000000000000000002E469200516BC500506BC300506ABE00506C + CB004F6CCD004F6CCD0000000000000000000000000000000000000000003850 + A3000536DB000536DB000536DB000536DB000536DB000536DB000536DB000536 + DB000536DB000536DB000536DB000536DB000536DB000536DB000536DB004368 + E4003850A3000000000000000000000000000000000000000000293C8000042D + B6000000000000000000042DB6006780D3006780D3005B75CF005772CE00536F + CC004765C9004765C9003F5EC7003758C5003758C5000931B800000000000000 + 0000042DB600293C800000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000026366A007D94E1004256 + 9C00687FCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000293D8400042EBC00042E + BC00042EBC00042EBC00042EBC002A408B00BBC7F20000000000000000000000 + 0000000000000000000000000000BBC7F2001B389800042EBC00042EBC00042E + BC00042EBC00042EBC0000000000000000000000000000000000000000003851 + A1000535D8000535D8000535D8000535D8000535D8000535D8000535D8000535 + D8000535D8000535D8000535D8000535D8000535D8000535D8000535D8004368 + E1003851A10000000000000000000000000000000000000000002A3E8200042D + B7000000000000000000042DB7003052C4003052C4003052C4003052C4003052 + C4003052C4003052C4003052C4003052C4003052C400042DB700000000000000 + 0000042DB7002A3E820000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387000869FF1007D95 + E6004A5DA0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3E8600042FBF00042F + BF00042FBF00042FBF001D399C00BBC7F2000000000000000000000000000000 + 0000000000000000000000000000000000002C438E001D399C00042FBF00042F + BF00042FBF00042FBF000000000000000000000000000000000000000000384F + 9F000534D4000534D4000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D4000534D4004367 + DF00384F9F0000000000000000000000000000000000000000002B3F8400042E + B900042EB900042EB900042EB900395AC800395AC800395AC800395AC800395A + C800395AC800395AC800395AC800395AC800395AC800042EB900042EB900042E + B900042EB9002B3F840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3B75008BA1EB00829A + EA006A87EB003349900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002E428D000431C5000431 + C5000431C5000431C5002148CC003A4D9300869AE10000000000000000000000 + 0000000000000000000000000000BBC8F300566CB7003358D0000431C5000431 + C5000431C5000431C5000000000000000000000000000000000000000000384E + 9B000634CD000735CD000735CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000735CD000735CD004366 + D900384E9B0000000000000000000000000000000000000000002D418700042E + BC00042EBC00042EBC00042EBC004C6ACF004C6ACF004C6ACF004C6ACF004C6A + CF004C6ACF004C6ACF004C6ACF004C6ACF004C6ACF00042EBC00042EBC00042E + BC00042EBC002D41870000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000304180009CAEED007F96 + E1004B67C7004368E40030418000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F4590000432C9000432 + C9001F3EA5000432C9000432C9005671C8003B4F9600889CE200000000000000 + 00000000000000000000BDC8F300354B99003358D3000432C9000432C9001F3E + A5000432C9000432C9000000000000000000000000000000000000000000384E + 98000E3ACB000F3ACB000F3ACB000C2FA3000C2FA3000C2FA3000C2FA3000C2F + A3000C2FA3000C2FA3000C2FA3000C2FA3000C2FA3000F3ACB000F3ACB004567 + D600384E980000000000000000000000000000000000000000002F438A00042F + BE000000000000000000042FBE005673D3005673D3005673D3005673D3005673 + D3005673D3005673D3005673D3005673D3005673D300042FBE00000000000000 + 0000042FBE002F438A0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000334486009EB0EE007F96 + E1004B67C7004468E40033448600000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324893000835CC002341 + A800334A9A002442A9000835CC00254DD2005A74CB003E539A00000000000000 + 000000000000BDC9F300374E9C005B71BD000835CC000835CC002442A900334A + 9A002341A8000835CC000000000000000000000000000000000000000000384D + 9800153FCA001740CA001740CA001740CA001740CA001740CA001740CA001740 + CA001740CA001740CA001740CA001740CA001740CA001740CA001740CA004868 + D500384D9800000000000000000000000000000000000000000030448C00042F + C0000000000000000000042FC0005F7AD7005F7AD7005F7AD7005F7AD7005F7A + D7005F7AD7005F7AD7005F7AD7005F7AD7005F7AD700042FC000000000000000 + 0000042FC00030448C0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000035488B009FB1EE007F96 + E1004B67C7004468E40035488B00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004159B0003B53A900BCC9 + F40000000000BCC9F400384FA0001945D6001945D6003359D9004358A1008A9E + E400BDC9F400647AC5004468DE001945D600324FB400324B9F0091A6EB000000 + 0000BCC9F4003B53A90000000000000000000000000000000000000000003A50 + 9B00254CCF00274ECF00274ECF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00274ECF00274ECF004D6D + D8003A509B000000000000000000000000000000000000000000324790000430 + C3000430C3000430C3000430C300718ADD00718ADD00718ADD00718ADD00718A + DD00718ADD00718ADD00718ADD00718ADD00718ADD000430C3000430C3000430 + C3000430C3003247900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A4F9700A0B2EE007F96 + E1004B67C7004469E5003A4F9700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BDC9F4003956BA00224CDA00224CDA006B84D600465A + A5003D55A6004B6EE100224CDA00224CDA00354EA10091A6EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000003B51 + 9C002D53D2003055D2003055D2002745A9002745A9002745A9002745A9002745 + A9002745A9002745A9002745A9002745A9002745A9003055D2003055D2005070 + D9003B519C000000000000000000000000000000000000000000334893000430 + C4000430C4000430C4000430C4007B92E0007B92E0007B92E0007B92E0007B92 + E0007B92E0007B92E0007B92E0007B92E0007B92E0000430C4000430C4000430 + C4000430C4003348930000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D539E00A0B2EE007F96 + E1004B67C7004469E5003D539E00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003C53A700415DBE002B54DE004368E2007189 + D9006E84CD002B54DE002B54DE00415DBE0093A7EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003C53 + 9D003358D400375CD400375CD400375CD400375CD400375CD400375CD400375C + D400375CD400375CD400375CD400375CD400375CD400375CD400375CD4005271 + DA003C539D000000000000000000000000000000000000000000354A95000532 + C70000000000000000000532C700859BE300859BE300859BE300859BE300859B + E300859BE300859BE300859BE300859BE300859BE3000532C700000000000000 + 00000532C700354A950000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004056A300A1B3EE007F96 + E1004B67C7004569E5004056A300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECAF4004059AD003B62E5003B62 + E5003B62E5004B67CA003B55AC0094A8EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A1004366D900486AD900486AD900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00486AD900486ADA005776 + DC003E55A1000000000000000000000000000000000000000000394F99000D39 + CB000D39CB000D39CB000D39CB009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA000D39CB000D39CB000D39 + CB000D39CB00394F990000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004962B9006B82CC00B4C4F900A7B9 + F80098AEF7007692F2006279CA00465EB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECCF500455DB200446AE900446A + E900446AE9006C85DE005065B3008CA1E8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004056 + A2004A6CDB005171DD005171DD00405AB000405AB000405AB000405AB000405A + B000405AB000405AB000405AB000405AB000405AB0005171DD005070DD005977 + DD004056A20000000000000000000000000000000000000000003B519B00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE003B519B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000516AC4006980CD0087A0F3009DB1F3008AA3 + F4007993ED005C7AE0006081EE006078CC00BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF500475FB5008396D9004B70EC004B70 + EC004B70EC006081EF00879CE5005369B6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004157 + A5005272DD005978DE005978DE005978DE005978DE005978DE005978DE005978 + DE005978DE005978DE005978DE005978DE005978DE005978DE005978DE005D7B + E0004157A50000000000000000000000000000000000000000003E539E001641 + D1001641D1001641D1001641D100728CE300728CE3006783E0006480E000607D + E0005574DD005574DD004D6EDC004568DA004568DA001641D1001641D1001641 + D1001641D1003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000677FD0007A95F1008CA1E80096ACF500839D + F100728DEA004F6ED7004667D4005276EC004D65BE00BFCDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCCF5008DA0DF007C97F4005D80F2006A83D700455F + BB004962BB005D80F2005D80F200708EF400586FBD008FA3E900000000000000 + 000000000000000000000000000000000000000000000000000000000000435A + A800617FE2006A86E3006A86E300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006A86E3006985E300617E + E100435AA80000000000000000000000000000000000000000004258A2001E48 + D50000000000000000001E48D5004E6FDE004E6FDE004E6FDE004E6FDE004E6F + DE004E6FDE004E6FDE004E6FDE004E6FDE004E6FDE001E48D500000000000000 + 00001E48D5004258A20000000000000000000000000000000000000000000000 + 000000000000556FCD00637CD1006B85D9008096E1009CAEED0088A1F3007792 + EC006582E4004363CF003354C3002446B5003C63E8005B75CF00506AC3000000 + 000000000000000000000000000000000000000000004E69C5004A65C000BFCC + F50000000000BFCCF5004D66BD00829DF5006686F3006686F3004761BC0098AB + F000BFCCF5007089D9006686F3006686F30098AAEB005970BF0090A3EA000000 + 0000BFCCF5004A65C0000000000000000000000000000000000000000000445B + AA006985E300728CE500728CE5005A6FB7005A6FB7005A6FB7005A6FB7005A6F + B7005A6FB7005A6FB7005A6FB7005A6FB7005A6FB700728CE500718BE5006481 + E300445BAA0000000000000000000000000000000000000000004359A500234C + D700234CD700234CD700234CD7005978E0005978E0005978E0005978E0005978 + E0005978E0005978E0005978E0005978E0005978E000234CD700234CD700234C + D700234CD7004359A50000000000000000000000000000000000000000000000 + 00005671CD00637CD1005C7DEC006E86D7008A9FE500A1B3F000819BF000718C + E9005F7DE1003D5ECB002D4EBD001F41B0001033A500375FE7005C76D000BFCD + F60000000000000000000000000000000000000000004761B8008296DA004862 + BB00BFCCF5004E67BE0096A6E1006E8DF3006E8DF300778DDB0098ABF0000000 + 0000000000004C65BD00778DDB006E8DF3007F9AF5009CAEEC005C73BF00BFCC + F5004862BB008296DA000000000000000000000000000000000000000000465D + AB00708BE5007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94 + E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007892E6006683 + E400465DAB000000000000000000000000000000000000000000455BA8002750 + D9002750D9002750D9002750D9006481E4006481E4006481E4006481E4006481 + E4006481E4006481E4006481E4006481E4006481E4002750D9002750D9002750 + D9002750D900455BA80000000000000000000000000000000000000000000000 + 0000607AD1005375EB004D69C8007990DD0094A8EA00A0B3F3007B96EE006A86 + E6005977DD003758C600284AB9001A3CAB0004248F000C2E9F00375FE700526C + C500BFCDF600000000000000000000000000000000004963BA007F9AF50097AD + F700A0AFE40097ADF7007F9AF5008498DE004B64BF0098ABF000000000000000 + 00000000000000000000BFCCF5004F67BF007F9AF5007F9AF5008DA5F60091A2 + DE0097ADF7007F9AF5000000000000000000000000000000000000000000485F + AF007F98EA008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0 + EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB0089A0EB006A86 + E500485FAF0000000000000000000000000000000000000000004A60AD003058 + DE0000000000000000003058DE007A94EA007A94EA007A94EA007A94EA007A94 + EA007A94EA007A94EA007A94EA007A94EA007A94EA003058DE00000000000000 + 00003058DE004A60AD00000000000000000000000000000000005973CF005F79 + D2003251B7003F5BB8005772C9008DA2E700A1B3F10092A9F4006F8BE8005D7B + E0004C6CD5002C4DBC001E40AF001031A00003238D0003238D0003238D00375F + E7005E78D200536EC7000000000000000000000000004B64BB0087A1F50087A1 + F5009EB3F70087A1F50087A1F5004D66C00098ABF00000000000000000000000 + 0000000000000000000000000000BFCCF5008A9EE00087A1F50087A1F5009EB3 + F70087A1F50087A1F50000000000000000000000000000000000000000004960 + B000879EEB0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8 + ED0093A8ED0093A8ED0093A8ED007D8EC9007D8EC9007D8EC9007B8DC9005A73 + C4004960B00000000000000000000000000000000000000000004C62AF00355C + E0000000000000000000355CE000849CEC00849CEC00849CEC00849CEC00849C + EC00849CEC00849CEC00849CEC00849CEC00849CEC00355CE000000000000000 + 0000355CE0004C62AF000000000000000000000000005973CF005F78D3004068 + EE003B59BF00516DCB006882D8009CAFEE00A3B5F40091A8F400708CE900607E + E3005070DA003255C7002447BC00183BB1001033A6001033A6001033A600193E + B8003B64ED005F78D300C1CDF60000000000000000004C65BC008FA7F6008FA7 + F6008FA7F6008FA7F60090A2E20098ABF0000000000000000000000000000000 + 000000000000000000000000000000000000526AC20090A2E2008FA7F6008FA7 + F6008FA7F6008FA7F60000000000000000000000000000000000000000004B62 + B2008EA4ED009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAE + EF009BAEEF009BAEEF009BAEEF008494CC00485EAB00485EAB00485EAB005167 + B0004B62B20000000000000000000000000000000000000000004F64B1003960 + E2003960E2003960E2003960E2008FA5EF008FA5EF008FA5EF008FA5EF008FA5 + EF008FA5EF008FA5EF008FA5EF008FA5EF008FA5EF003960E2003960E2003960 + E2003960E2004F64B1000000000000000000000000005F79D3003C65EE00426A + F0006183F2007491F40088A2F600B3C3F900ADBEF8009EB3F700829CF5007491 + F4006787F3004F74F100446BF0003B64EF003761EF003761EF003761EF003761 + EF003761EF003B64ED005872CD0000000000000000004E67BE00A1B5F700A1B5 + F700A1B5F700A1B5F700B3C3F8004E68C100BFCDF60000000000000000000000 + 0000000000000000000000000000BFCDF6009BABDE00B3C3F800A1B5F700A1B5 + F700A1B5F700A1B5F70000000000000000000000000000000000000000004D65 + B6009BAEF000ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBB + F200ABBBF200ABBBF200ABBBF20092A0CF00C7D2F600AEBEF200718CE7004C65 + B900BFCCF5000000000000000000000000000000000000000000536AB7004267 + E6004267E6004267E6004267E600A2B4F300A2B4F300A2B4F300A2B4F300A2B4 + F300A2B4F300A2B4F300A2B4F300A2B4F300A2B4F3004267E6004267E6004267 + E6004267E600536AB7000000000000000000000000003761EF000936CC00214A + D4005475E4006E8AE900869EEF0098ADF50088A1F5007B96F0005C7BE2004E6E + DA003F60CF002648B900193BAB000E2F9E000324930003269A000328A000042B + AD00042DB500042EBB005872C90000000000000000004F69C000A9BBF800A9BB + F800A9BBF800A9BBF800A9BBF800A0ADDF00526CC70000000000000000000000 + 0000000000000000000000000000526CC700B9C8F900A9BBF800A9BBF800A9BB + F800A9BBF800A9BBF80000000000000000000000000000000000000000004E66 + B80097ABEF00AEBEF300B1C1F300B2C1F300B2C1F300B2C1F300B2C1F300B2C1 + F300B2C1F300B2C1F300B1C1F30096A3CF00A6B7F100738EE800546DC200BFCC + F500000000000000000000000000000000000000000000000000546BB900466B + E7000000000000000000466BE700AABBF400AABBF400AABBF400AABBF400AABB + F400AABBF400AABBF400AABBF400AABBF400AABBF400466BE700000000000000 + 0000466BE700546BB900000000000000000000000000486CE800496DE8005477 + EA006D8AED007994EE00849DF0008BA2F000849DF0007E98EE00708DED006A88 + ED006483EB005678EA005174EA004C70E800486CE800486CE800486CE800486C + E800486CE800486CE8005872C9000000000000000000556FCC005069C0005069 + C0005069C0005069C0005069C0005069C000556FCC0000000000000000000000 + 0000000000000000000000000000556FCC005069C0005069C0005069C0005069 + C0005069C0005069C00000000000000000000000000000000000000000004F67 + BA00879FEE009DB0F100A5B6F100A8B9F200A8B9F200A8B9F200A8B9F200A8B9 + F200A8B9F200A7B8F100A5B6F1008898CD006986E7005770C4004F67BD000000 + 0000000000000000000000000000000000000000000000000000576DBB00496E + E9000000000000000000496EE900B2C2F500B2C2F500B2C2F500B2C2F500B2C2 + F500B2C2F500B2C2F500B2C2F500B2C2F500B2C2F500496EE900000000000000 + 0000496EE900576DBB000000000000000000000000005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C000516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516A + BD00516ABD00516ABD00516ABD00516ABD00516AC000BFCDF500000000000000 + 00000000000000000000000000000000000000000000000000007790E100546B + BE005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C100546BBE007790E10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455CA5002F3E + 7100475CA400445BA800435AA700435AA600435AA600435AA500435AA500435A + A500445AA5004359A3004359A3004359A2004359A1004359A1004358A0004353 + 8C002D3A660043589F000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B500263774000000000000000000000000007E7E7E003C3C + 3C007B7B7B008A8A8A00D8D8D800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3E90029396C003B4A7E0043549300485C9E00485C + 9E00485C9E00435493003B4B80002A396E00A3B3E90000000000000000000000 + 000000000000000000000000000000000000000000006279C90030427E004660 + B400072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A300495EA5002E3D71000000000000000000000000003753B2000F34AF001236 + AE00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AF00283A7C000000000000000000000000009E9E9E005959 + 5900333333006B6B6B0088888800C6C6C6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E55A3002F3E7400455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF002F3E74003E55A300000000000000 + 00000000000000000000000000000000000000000000283C8000495EA8002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A800485B9B000000000000000000000000003C58B800173CB5001D40 + B6002244B6002345B7002345B6002446B7002446B7002446B7002446B7002446 + B7002446B7002446B7002446B7002446B7002345B6002345B6002345B7002144 + B7001E41B700183DB6002A3D8100000000000000000000000000000000007676 + 76003C3C3C00ADACAC00C4C3C2008D8D8D0080808000B0B0B000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293D85003D4E8900465FB0000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA100465FB0003D4E8900293D85000000 + 000000000000000000000000000000000000000000002B3D81004361C700042C + B300042CB200042CB100042BB000042BAF00042BAE00042BAD00042BAC00042A + AB00042AAA00042AAA00042AA9000429A8000429A7000429A6000429A6000328 + A4000328A300435EBB000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5002B4BB5000626910003269B00677FCF004160C8003556C5003556 + C5003254C400284CC4002F448D00000000000000000000000000000000000000 + 0000E0DFDF00CECCCC00C0BEBD00A09E9D00605F5E006F6F6E0027377200B6C3 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002D41 + 8A003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9002D41 + 8A0000000000000000000000000000000000000000002D4185004362CA00042D + B800042DB600042DB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00042AAA00042A + AA00042AA900425EBD000000000000000000000000004C6ACD003054CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC000728960003279F0003279F002343AD006D85D5004A68CE003F5F + CC003C5DCC003155CB0031479200000000000000000000000000000000000000 + 0000CBCACA00DAD9D900C7C6C500767574007777760071737A003E508B002738 + 7300B6C5F0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000445DAE004154 + 9500082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004154 + 9500445DAE00000000000000000000000000000000002F438A004363CE000530 + BE00042EBC00042EBB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0003259600042B + AE00042BAE00425FC1000000000000000000000000005471D4003C5FD2004969 + D3004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6A + D2003D5BC100072CA400072CA400072CA400072CA4002646B100758CD9004B6A + D2004969D2003C5FD100344A9700000000000000000000000000000000000000 + 00009A999900E3E2E200C8C7C6009291910085888F001F3A95003E57A9003E50 + 8B00283873000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A7B6EC00384987004863 + BE00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004863 + BE0038498700A7B6EC00000000000000000000000000334993004A6BD800143E + CA00153EC900143DC800123CC8000C30A8000A2FA700092EA700062BA4001437 + A9001437A9000328A1000328A1000328A00003279F0003279F0003279F00042D + B800042DB8004362C9000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1005571CF001435 + A2001035AF001035AF001035AF001035AF001035AF001035AF001035AF00859B + E3006C87E3005373E0003A51A300000000000000000000000000000000000000 + 0000B0B0B00093929200B3B2B2006883E0005070DC003B5CCB00092A99000F2D + 93003E57A900293A7500B6C5F100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000394B8E004A67C800133A + BF000C35BE000C35BE000C35BE00FFFFFF00FFFFFF00A2B2E5000C35BE000C35 + BE000C35BE00A2B2E500FFFFFF00FFFFFF000C35BE000C35BE000C35BE001239 + BE004A67C800394B8E00000000000000000000000000354B98004E6FDC001D46 + D1002149D1001F48D0001D46CF001A43CD001841CC001640CB002148CC00D1D9 + F400D1D9F4000B36C5000A35C4000833C3000530C1000530C100042FBF00042F + BE00042FBD004363CD000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900173496001336 + A9001336A900153AB500153AB500153AB500153AB500153AB5001439B1003250 + B4008B9FE3006885E8003C55A800000000000000000000000000000000000000 + 0000000000006F75900091939D006E8CF2006A88EC005574DD002143B300092A + 99000F2D930040528C002A3B7500B6C5F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004A5DA500395BCD00153D + C400173FC400173FC400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173F + C400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173FC400173FC400153D + C400395BCD004A5DA500000000000000000000000000384F9D005172E000264F + D8002C53D7002A51D6002951D600254DD400234BD300214AD200D3DBF500FFFF + FF00FFFFFF00254CCF00153FCB00133DCA000F3AC8000E39C7000C37C7000833 + C4000632C3004364D1000000000000000000000000007591EF006887EE007B96 + F000819BF000819BF000819BF000819BF000819BF000819BF000142F8C00142F + 8C00142F8C001A3FBA001A3FBA001A3FBA001A3FBA001A3FBA002949B400142F + 8C00324B9D008DA3EB004058AE00000000000000000000000000000000000000 + 000000000000BECCF500455FB900829DF5007B97F4006C89EC003B5CCB002143 + B300092A99003E57A90040528D002A3C76000000000000000000000000000000 + 000000000000000000000000000000000000000000005169BD003357CF002148 + CB00234ACB00234ACB00234ACB009DA9D000FFFFFF00FFFFFF00ABBAEB00234A + CB00ABBAEB00FFFFFF00FFFFFF009DA9D000234ACB00234ACB00234ACB002148 + CB003357CF005169BD000000000000000000000000003C54A7005879E800375E + E2004267E3004065E2003F64E2003B61E0004569E100D9E0F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D6DDF700365BDA00264ED600244DD600224BD4001E47 + D2001742D0004B6CDB000000000000000000000000007E99F500708EF400829D + F50094ABF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF7002448BF002448BF002448BF002448BF002448BF00B7C7F90099AF + F70091A8F6007E99F500445DB400000000000000000000000000000000000000 + 00000000000000000000000000004762BB00627BD4007D98F5006B89EC005574 + DD003B5CCB00092A99000F2D93003E57A9002C3D7800B6C5F100000000000000 + 000000000000000000000000000000000000000000005D78D5002D54D500365B + D700395ED800395ED800395ED800395ED8003353BE00A4AFD400FFFFFF00FFFF + FF00FFFFFF00A4AFD4003353BE00395ED800395ED800395ED800395ED800385D + D8002E54D5005F79D5000000000000000000000000003F58AB005C7DEC003F66 + E7004D71E9004B6FE700496EE7005073E600DBE2F900FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00D8DFF8003158DC002F56DB002D55DA002951 + D900204AD6004E6FDE000000000000000000000000007C97F4006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F8002646B3002646B3002646B3002646B3002646B300BECCFA00A1B5 + F70095ACF700819BF500455EB600000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BC00627CD5007894F4006D8A + EC005574DD002143B300092A99000F2D930042548E002C3E7900B6C5F1000000 + 00000000000000000000000000000000000000000000607BD800365CDC004266 + DE004569DF004569DF004569DF004569DF004569DF003D5CC300FFFFFF00FFFF + FF00FFFFFF003D5CC3004569DF004569DF004569DF004569DF004569DF004468 + DF003A5FDC006681DB00000000000000000000000000415AB1006081F000486D + EC00587BED005679EC005477EC00DDE4FA00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005F7EE6003A60E000395FE000335A + DE002952DC005173E200000000000000000000000000ADBEF8009AAFF700A0B4 + F700A7B9F800ACBDF800ADBEF8009FB3F700A4B7F800A6B9F800A7B9F800A7B9 + F800A8BAF800223C9000223C9000223C9000223C9000223C9000C0CEFA009FB3 + F70093AAF600809BF5004660B700000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004A64BD007E99F5007E99 + F5006D8AEC003B5CCB002143B300092A99003E57A90042548F002D3E79000000 + 00000000000000000000000000000000000000000000657FDC003F64E1004D70 + E3005173E3005173E3005173E3005173E3005173E300BCC9F400FFFFFF00FFFF + FF00FFFFFF00BCC9F4005173E3005173E3005173E3005173E3005173E3004F71 + E3004368E1006C85DE00000000000000000000000000455EB6006787F300597C + F2006E8DF3006D8CF3006B8AF3005B77D5005772CF005570CD00FFFFFF00FFFF + FF00FFFFFF004C69CB004A68CB004866CA004563C9004564CA004D71E700486D + E9003A62E700597BEA000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ABBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B900000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67C0006C85 + D80088A2F6006D8AEC005574DD003B5CCB00092A99000F2D93003E57A9002E40 + 7B00B6C5F100000000000000000000000000000000006680D6006080EC006080 + EB006886EC006886EC006886EC00C5D1F800FFFFFF00FFFFFF00B2BBDA005670 + C400B2BBDA00FFFFFF00FFFFFF00C5D1F8006886EC006886EC006886EC006181 + EB006181EC006780D6000000000000000000000000004660B7006B8AF3006183 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300FFFFFF00FFFF + FF00FFFFFF005671CE006384F3006082F1005C7EF0005B7EF000597CEF005276 + EE004269EB005C7EEE000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006D85D9007E99F5006D8AEC005574DD002143B300092A99000F2D93004354 + 8D004C526E00AFBEEE000000000000000000000000006279C8006E8CF0006887 + EF007491F1007491F1007491F100FFFFFF00FFFFFF00FFFFFF00657FD3007491 + F100657FD300FFFFFF00FFFFFF00FFFFFF007491F1007491F1007491F1006988 + EF006E8CF0006279C8000000000000000000000000004761B8006E8DF3006A8A + F300849EF500829DF500819BF5007E99F5007C97F4007A96F400FFFFFF00FFFF + FF00FFFFFF005E78CF006D8CF3006C8BF3006888F3006686F3006586F3005E80 + F2004B71F0006082F1000000000000000000000000007C97F4005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1004B65BC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6004F69C2007E99F5007894F4006B89EC003B5CCB002143B300092A99007B7E + 8F0068676900555769000000000000000000000000005169BB007E97F0006F8D + F300819BF500819BF500819BF500FFFFFF00FFFFFF00BAC2DC00819BF500819B + F500819BF500BAC2DC00FFFFFF00FFFFFF00819BF500819BF500819BF5007290 + F4007E98F1005169BB000000000000000000000000004963BA007491F4007995 + F4009BB0F70099AFF70097ADF70093AAF60091A8F60090A8F600FFFFFF00FFFF + FF00FFFFFF007187D100839EF500829CF5007F9AF5007D98F5007B97F400718F + F400597CF2006686F300000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC4006881D9007D98F5006C89EC005674D700949AAF00F4F4 + F400E3E2E200B1B2B800697CC2000000000000000000AEBDF200586EBF00869E + F0008FA7F60096ACF70096ACF7008497D8008497D80096ACF70096ACF70096AC + F70096ACF70096ACF7008497D8008497D80096ACF70096ACF70091A8F60089A1 + F000586FBF00AEBDF2000000000000000000000000004B64BB007693F4007D98 + F500A6B9F800A4B7F800A2B6F8009FB3F7009DB2F7009BB0F700FFFFFF00FFFF + FF00FFFFFF007B8FD1008EA6F6008CA5F60089A2F60087A1F500859FF5007995 + F4005F81F2006888F30000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600536DC6006882DA007A95ED00B9BFD400BFBEBC00EEEE + ED00CDCED400898D9C005A6387000000000000000000000000005C76D2006980 + CE008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F7008FA7F6006F85 + D0005C76D200000000000000000000000000000000004C65BC007C96EF007F9A + F500ADBEF800AFC0F900ADBEF800AABCF800A8BAF800A6B9F800A3B6F800899A + D3008798D2008496D2009AAFF70098AEF70094ABF60092A9F60090A8F6007B97 + F4006283F200718EEE000000000000000000000000008DA5F6006787F3006787 + F3006787F3006787F3006989F3008597D700546DC10091A5EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600536EC700ADB2C100EDECEC00EDECEC00BFC0 + C6008F93A2008F93A2006A6E7E00000000000000000000000000000000004E68 + C30094ABF60097ADF700A8BAF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF70095ACF7004E68 + C30000000000000000000000000000000000000000007990E3005F77C8008AA2 + F1008AA3F60091A8F60094ABF60094ABF60093AAF60093AAF60090A8F6008EA6 + F6008DA5F6008AA3F60088A2F60086A0F500829DF500809BF5007995F4007391 + F4007D97EF005D74C700000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000787D9300B5B5B900C9CAD000AFB4 + C300B3B8C800B3B9C8007286CC00000000000000000000000000000000000000 + 00004F6AC500758AD3009EB2F400A8BAF800B2C2F900B7C7F900BCCAFA00BCCA + FA00BBCAFA00B6C6F900B1C1F900A7B9F80098ADF2006F85D1004F6AC5000000 + 0000000000000000000000000000000000000000000000000000546FCB006078 + C9007C97F400809BF500829DF500839EF500829DF500829DF500819BF500819B + F500809BF5007F9AF5007E99F5007E99F5007B97F4007A96F4007794F400718B + E6005E75C8006680D90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006974A1009095A500BCC1 + D000BCC1D100A3A8B80000000000000000000000000000000000000000000000 + 0000000000005E79D3005F76C5009FB3F500A3B6F800A4B7F8009FB3F7009FB3 + F7009FB3F700A3B6F800A0B4F7009FB3F5005F76C5005E79D300000000000000 + 0000000000000000000000000000000000000000000000000000000000007991 + E3005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C000506A + C3007991E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007489C8008E92 + A200828BAF007A8ED40000000000000000000000000000000000000000000000 + 00000000000000000000AEBEF2005C74C500768CD500859AE40090A6F10091A7 + F10090A6F100839AE500758AD5005C73C400AEBEF20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DADA + DA002F417A002834600028346000283460002834600028346000283460002834 + 600028346000283460002834600028346000283460002834600028346000CACA + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CDD6F6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000092A1D7002635640026356300C3C3C300CACACA00D3D3D300000000000000 + 0000000000000000000000000000D5D5D50090A1D5002532600025326000C8C8 + C800DADADA0000000000000000000000000000000000C2C2C200C0C0C0003345 + 7F0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0033457F00C0C0C000D6D6D600000000000000000000000000000000000000 + 00002A3970000525910004208000031D7300031D7300031D7300031D7300031D + 7300031D7300031D7300031D7300031D7300031D7300031D7300031D73000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B6C3F0002939 + 740027366B000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F100405396003F5AB6003F5AB5002A3D7D00B9C6F10000000000000000000000 + 0000000000000000000000000000B7C5F1003F5291003E58AF003E58AF00283A + 7800B7C5F100000000000000000000000000000000000000000000000000364B + 99007E93D7007D92D7007D92D7007C91D7007C91D7007C91D7007B90D7007B90 + D7007B90D7007A8FD700798FD700798FD700788ED700788ED700778DD70099A9 + E100364B99000000000000000000000000000000000000000000000000000000 + 00002D407F00637BCA005771CB006684EA006684EA006684EA006684EA006684 + EA006684EA006684EA006684EA006684EA006584EA008AA1EF00032288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7C5F1004A5B99003E59 + B1003E59B1002C3B73008195DB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BAC6F2002C40 + 83003E5AB9000F32A8000F32A800415599002B3F8000B9C6F100000000000000 + 00000000000000000000B9C6F1002A3E7D003F5AB4000F31A0000F31A0004052 + 94002A3C7B00B7C5F1000000000000000000000000000000000000000000384F + 9D008398DC008398DC008297DC008297DC008297DC008196DC008196DC008196 + DC008196DD008095DC007F94DC007F94DC007E94DC007E94DC007E94DD009EAE + E500384F9D000000000000000000000000000000000000000000000000000000 + 000030438400667ECF00536ECB005D7EEB005D7EEB005D7EEB005D7EEB005D7E + EB005D7EEB005D7EEB005D7EEB005D7EEB005D7EEB00879FF00003238D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B9C6F1002E4281003F5AB6000F31 + A3000F31A3004A5D9E002D3E79008196DC000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F2002E4288004358 + A0000F34AD00042AAA00042AA9003E5BBC0042569D002D418500000000000000 + 000000000000B9C6F1002C41820041569A000F32A7000328A1000328A1003F5A + B700415598002B3F7F0000000000000000000000000000000000000000003A51 + A2008A9EE100899DE100899DE100889DE100879CE100879CE100869BE100869B + E100869BE100859AE100859AE100859AE1008499E1008499E1008499E100A2B2 + E8003A51A2000000000000000000000000000000000000000000000000000000 + 000032478A006780D3004C68C8005477EA005477EA005477EA005477EA005477 + EA005477EA005477EA005477EA005477EA005477EA00829CF000032493000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C6F100304285004C5FA1000F33A9000328 + A4000328A4003E5AB9004C5FA1002F417E000000000000000000000000000000 + 000000000000000000000000000000000000000000006678B5004261C800183D + BC001036B7001036B7000F35B6000A31B4001338B700405EC40032468E00BAC7 + F200BAC7F2004459A4003F5DC2001035B200042BAD00042BAC00042BAC00042A + AB000F34AE003E5BBD002F428800000000000000000000000000000000003E56 + AA0097AAEC0097AAEC000633C9000633C9000633C9000633C9000633C9000633 + C9000633C90092A7EB0092A7EB0092A7EB0091A6EB0091A6EB0091A6EB00ABBB + F0003E56AA000000000000000000000000000000000000000000000000000000 + 0000374C96006883DB003C5CC6004268E9000434D2004268E9004268E9004268 + E9004268E9004268E9004268E9000434D2004268E9007893F00003279D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC7F2004E62AA003E5CC2001035B400042BB000042B + B000042BB000042BB0001035B4003E5CC200344688008499DF00000000000000 + 000000000000000000000000000000000000000000007D8DC1007D93DC001C42 + C200183EBF001A40C000193FBF00143BBC001037BB00183EBD00465CA900344A + 9200344991003F5EC6001036B700042CB400042CB300042CB200042CB200042B + B0001035B400798ED40032478C00000000000000000000000000000000004159 + AE00A1B3F200A1B3F200A1B3F200A0B3F200A0B3F2009FB2F2009FB2F2009EB1 + F2009EB1F2009DB0F2009DB0F2009CB0F2009BAFF1009BAFF1009BAFF100B1C1 + F4004159AE000000000000000000000000000000000000000000000000000000 + 00003A509A006984DF003455C4003962EA000434D3003962EA003962EA003962 + EA003962EA003962EA003962EA000434D3003962EA00728FEF000328A1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC7F200374B94003F5EC7001037B900042DB600042DB600042D + B600042DB600042DB600042DB6001037B9004F65AF0036498C00859AE1000000 + 00000000000000000000000000000000000000000000384E9A007F8FC4007F95 + DF001D44C5002147C7002248C7001E44C4001B42C300163DC1004564CD004860 + AD00485FAD00153CBE000831BA000730B900042DB700042DB700042DB7001037 + B9007A90D8007C8BBE00BAC7F20000000000000000000000000000000000425C + B300A9BBF600A9BBF6001541D3001541D3001541D3001541D3001541D3001541 + D3001541D3001541D3001541D3001541D3001541D3001541D300A3B6F600B8C7 + F800425CB3000000000000000000000000000000000000000000000000000000 + 00003C53A1006985E2002B4EC300305BEA000534D400305BEA00305BEA00305B + EA00305BEA00305BEA00305BEA000534D400305BEA006C8AF0000429A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BCC8F300394F98005167B200153CC0000932BC000932BC000932BC000932 + BC000932BC000932BC000932BC000932BC004161CC005167B200394C91000000 + 0000000000000000000000000000000000000000000000000000BDC9F4003C53 + A200839AE5002C52D2002A50D1003055D2002E53D1002C52D100264DCE002D52 + CF002B50CF001E46CB001C44CA001A42C900143DC600103AC500173FC700808F + C500394F9B00BCC8F3000000000000000000000000000000000000000000455F + B600B6C6F900B6C6F900244DD600244DD600244DD600244DD600244DD600244D + D600244DD600244DD600244DD600244DD600244DD600244DD600B1C1F900C0CE + FA00455FB6000000000000000000000000000000000000000000000000000000 + 00004259AD006987EA001B41C1001E4DEA000535D6001E4DEA001E4DEA001E4D + EA001E4DEA001E4DEA001E4DEA000535D6001E4DEA006081F000042BB0000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F400536BBC00496AD7002C51D000284ECE002A50D0002048CD001C44CC001C44 + CC001C44CC001C44CC001C44CC002A50D000254CCE002C51D000496AD7003D52 + 9C00899EE400000000000000000000000000000000000000000000000000BDCB + F4008393CD00859CE7003056D600375CD800365BD700355AD6003056D5002E54 + D4002C52D300274ED100254CD000234BD0001942CC001E46CE007E95E2003A52 + A000BDC9F4000000000000000000000000000000000000000000000000004660 + B700BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9FA00BAC9FA00B9C8F900B9C8 + F900B9C8F900B9C8F900B8C7F900B8C7F900B7C7F900B7C7F900B7C7F900C4D1 + FA004660B7000000000000000000000000000000000000000000000000000000 + 0000455EB2006987ED00133ABE00153CBF000535D7001546EA001546EA001546 + EA001546EA001546EA001546EA000535D7001546EA005A7DF100042DB6000000 + 0000000000000000000000000000000000000000000000000000000000003D56 + A500506ED2005370D2005673D3005B77D4005A78DC002B52D400254DD300254D + D300254DD300254DD300244CD3005A78DC005974D3005673D3005370D2005D72 + B9004056A000D1DAF80000000000000000000000000000000000000000000000 + 00004059AB008495D000869DEA003A5FDC003F64DD003D62DC003A5FDB00385D + DB00355BDA003157D7002E55D6002C53D600254DD4008097E5008292CB00BDC9 + F400000000000000000000000000000000000000000000000000000000004760 + B800C1CEFA00C2CFFA003358D7003358D7003358D7003358D7003358D7003358 + D7003358D7003358D7003358D7003358D7003358D7003358D700BCCAFA00C8D4 + FB004760B8000000000000000000000000000000000000000000000000000000 + 00004761B8006988F1000B34BD009DB2F6000535D7000C3FEA000C3FEA000C3F + EA000C3FEA000C3FEA000C3FEA000535D7000C3FEA005478F000042EBA000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + AF003F56A5003F56A5003F56A5003F56A5005D79D8002A52D9002F56DA002F56 + DA002F56DA002F56DA002951D9005D79D7003F56A5003F56A5003F56A5003F56 + A5003F58AA000000000000000000000000000000000000000000000000000000 + 000000000000BECCF500455EB5006483EA005275E8004F72E7004B6FE600496D + E500466BE4004267E3004166E3004267E2007C8FD100425BB000BDCBF4000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00CBD6FB00CBD6FB004164D8004164D8004164D8004164D8004164D8004164 + D8004164D8004164D8004164D8004164D8004164D8004164D800C7D3FB00CFD9 + FB004962BA000000000000000000000000000000000000000000000000000000 + 00004A64BC006989F300042DB6009AAFF3002242AE002245BA000538E4000538 + E4000538E4000538E4000538E4000434D2000538E4004F73EB00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445DB100607DE000375FE5004167E6004167 + E6004167E6004167E600375FE500607DE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCCF5004861BA006887EE00597BEC00597BEC005578EB005275 + EA005074EA004C70E800496EE8004B6FE7005670CB00465EB400BFCCF5000000 + 0000000000000000000000000000000000000000000000000000000000004A63 + BB00D0DAFB00D1DBFB00D0DAFB00CFD9FB00CFD9FB00CFD9FB00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB00CCD7FB00CCD7FB00CCD7FB00D2DB + FB004A63BB000000000000000000000000000000000000000000000000000000 + 00004B65BD006989F300042CB4009AAEF2009BADEC009AAEF2000537E1000537 + E1000537E1000537E1000537E1000433D0000537E1004F73EA00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004760B5006381E5003E65EA004A6FEB004A6F + EB004A6FEB004A6FEB003E65EA006280E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCCF5004B65BE005975D300577AF0005E80F0006384F1005E80EF005C7E + EF00597CEE005477ED005276ED004E73EC00597BEC005973CF004861B9000000 + 0000000000000000000000000000000000000000000000000000000000004B64 + BC00D5DEFC00D5DEFC005070D9005070D9005070D9005070D9005070D9005070 + D9005070D9005070D9005070D9005070D9005070D9005070D900D0DAFB00D5DE + FC004B64BC000000000000000000000000000000000000000000000000000000 + 00004C66BD006989F300042CB2009AAEF1000433CE000537DE000537DE000537 + DE000537DE000537DE000537DE000433CE000537DE004F72E800042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004964BB006683E800466DEE005478F0005478 + F0005478F0005478F000456CEE006582E8000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005B76D5006183F200577BF2007693F4007894F4007592F400718FF4006E8D + F3006B8AF3006888F3006586F3006384F3005277F1004A70F0005C7FF2004D67 + C000BFCDF6000000000000000000000000000000000000000000000000004D66 + BD00DDE4FC00DDE4FC005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7B + DA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA00D9E1FC00DBE2 + FC004D66BD000000000000000000000000000000000000000000000000000000 + 00004E68BF006989F300042BAD000535D9000432CA000535D9000535D9000535 + D9000535D9000535D9000535D9000432CA000535D9004F71E300042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BE006B88EA005479F1006686F3006686 + F3006686F3006686F3005479F1006A87EA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006384F3005C7FF2006C8BF300829DF500819BF5007F9AF5007290F400718F + F4006F8DF3006F8DF3006F8DF3006C8BF3006485F300577BF2004E73F1005D78 + D6004E68C100BFCDF60000000000000000000000000000000000000000004E67 + BE00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00E0E6FC00E0E6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DFE6 + FC004E67BE000000000000000000000000000000000000000000000000000000 + 00004F69C0006989F300042AAB000535D6000431C7000535D6000535D6000535 + D6000535D6000535D6000535D6000431C7000535D6005072E200042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BF006D8AEA005C7FF200708EF400708E + F400708EF400708EF4005C7FF2006D8AEA000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF6004F69C2005C77 + D6005F81F2007290F400849EF5008CA5F60089A2F600829DF5006B8AF300A3B6 + F800A3B6F8006A8AF3007391F4007592F400718FF4006989F3005A7DF2005D80 + F2005A76D6004F69C20000000000000000000000000000000000000000004F68 + BF00E5EAFD00E5EAFD006D87DB006D87DB006D87DB006D87DB006D87DB006D87 + DB006D87DB006D87DB006D87DB006D87DB006D87DB006D87DB00E1E7FD00E1E7 + FD004F68BF000000000000000000000000000000000000000000000000000000 + 0000506AC1006989F300042AA9000434D3000431C5000434D3000434D3000434 + D3000434D3000434D3000434D3000431C5000434D3004F70DF00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004E68C000708CEA006485F3007995F4007995 + F4007995F4007995F4006485F300708BEA000000000000000000000000000000 + 00000000000000000000000000000000000000000000778EDB005B7EF2005579 + F10086A0F50098AEF700A0B4F70091A8F6007D98F5006888F3008FA1E000506A + C400506AC40095ACF7005B7EF2006B8AF300829CF500809BF5007995F4005378 + F1003E67F0005075F100506AC40000000000000000000000000000000000516A + C100EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E6EB + FD00516AC1000000000000000000000000000000000000000000000000000000 + 0000526CC3006989F3000328A4000433CE000430C1000433CE000433CE00B2C0 + F000B2C0F0000433CE000433CE000430C1000433CE004F6FDC00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000506AC1007590EC007491F4008CA5F6008CA5 + F6008CA5F6008BA4F6007491F400748FEC000000000000000000000000000000 + 000000000000000000000000000000000000000000008B9FE0008FA7F600577B + F20089A2F60099AFF7009EB3F700829CF5006C8BF3009AAFF700516BC400BFCD + F600BFCDF6008EA1E00095ACF7005D80F2007E99F500819BF5007A96F4005479 + F1003E67F00086A0F500516BC40000000000000000000000000000000000526B + C200EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00ECF0 + FE00ECF0FE00EBF0FD00EBF0FD00C8CCD800C8CBD600C8CBD600C8CCD700C6CA + D700526BC2000000000000000000000000000000000000000000000000000000 + 0000536DC4006989F3000328A2000432CB00042FBF000432CB000432CB000432 + CB000432CB000432CB000432CB00042FBF000432CB004F6FDA00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC2007892EC007B97F40095ACF70095AC + F70095ACF70095ACF7007B97F4007691EC000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC50090A2E1009AAF + F7007F9AF5008EA6F60091A8F6006E8DF3009BB0F7008FA2E100BFCDF6000000 + 000000000000526CC5008FA1E10095ACF7006F8DF3007693F400718FF4005378 + F1008DA5F6008D9FE100BFCDF60000000000000000000000000000000000526C + C300F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00EFF3FE00EEF2FE00EEF2FE00CBCED800516BC100526CC300526CC300526C + C300526CC3000000000000000000000000000000000000000000000000000000 + 0000546EC5006989F3000328A0000431C800042EBC000431C8000431C8000431 + C8000431C8000431C8000431C800042EBC000431C800506FD800042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000526CC3007994EC00829CF5009EB3F7009EB3 + F7009EB3F7009EB3F700819BF5007993EC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009DB2F7006082F2006082F20090A3E100536EC700BFCDF600000000000000 + 00000000000000000000BFCDF600536EC70095ACF7004F74F1004E73F10091A3 + E100536EC700BFCDF6000000000000000000000000000000000000000000546E + C500F4F7FE00F5F7FE00F5F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7 + FE00F4F7FE00F3F6FE00F3F6FE00CFD1D800FAFBFF00FAFBFF00F5F7FD00536E + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005670C7006888F30003269C000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C200506ED400042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000546EC5007A94ED00829CF500B0C0F900B0C0 + F900B0C0F900A9BBF800829CF5007993ED000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60092A4E20092A9F60092A9F600556FC700C1CDF60000000000000000000000 + 0000000000000000000000000000C1CDF60090A3E2008DA5F6008CA5F600556F + C700C1CDF600000000000000000000000000000000000000000000000000556F + C600F5F7FE00F7F9FE00F7F9FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F5F7FE00F5F7FE00D0D2D800FAFBFF00F5F7FD00B7C2E800C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 00005771C8006586F30003269900042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC0004F6DD2000430C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556FC600738FEC007693F400A3B6F800A6B9 + F800A6B9F80098AEF7007693F400728EEC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8008DA1E3008DA1E300C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000005670C8008DA1E3008DA1E300C1CD + F600000000000000000000000000000000000000000000000000000000005670 + C700F5F7FE00F7F9FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F7F9FE00D2D4D800F4F6FD00B7C3E8005670C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C8005D80F20003259700032597000325970003259700032597000325 + 970003259700032597000325970003259700032597003F57A6000536D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C7006D88E5007590ED00859DEE00869E + EE00869EEE00829AEE007691ED006C88E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9005871C8005871C8005871C8005871C8005871C8005871C8005871C8005871 + C8005871C8005871C8005871C8005871C8005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005A73C9005A73C9005A73C9005A73C9005A73C9005A73 + C9005A73C9005A73C9005A73C9005A73C9005A73C9005A73C9005771C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002A3B78002F448B00B9C6F1000000000000000000000000002F44 + 8B002A3B78002F448B0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C5CEF3006A7FC8002A3A75002433 + 6900243369002A3A7500364D95006A7FC8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6C3F000414F800023316200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374887006D84CF005B73C7007286C800566EBE000E30A300334FB1008496 + D5006D84CF005D74C10000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000004256 + 9B008E9ED10095A7E2009FB0E900A1B1E9009DADE40099A9DF008E9ED3008999 + CD008595C7007C8BBB007785B5007381AF007180B2007A8ABF008191C3004256 + 9B00000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCD6 + F60022357800435BAA0023336900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000364C98009EADDD008492C30031448600506CCA00042CB400314486008391 + C3009EADDD008291C30000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000002736 + 6E00708ADF007993E70091A7F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC8002736 + 6E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002F43 + 840043538C00425CB00025356D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F20033478B00374D9C00BAC7F2004F6CCE00042EB90033478B00374D + 9C0033478B00374D9C0000000000000000000000000000000000000000000000 + 0000334686006E7AA6004C65B8000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000002A3A + 74006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4002A3A + 7400000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000046589600405B + B8000F33A900435EBA002A3B7700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000384D9600384D9600384D9600384D9600384D + 9600384D9600384D9600384D9600384D96001F46CB000C37C600384D96000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100BCBFC900A6ABBA00808DB6001438AE00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB10000000000000000000000000000000000000000003042 + 8200718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4003042 + 820000000000000000000000000000000000000000000000000090A3E3003B51 + A2002F4385002F4284002E4284002E4183002E4183002E408100405DBD000F34 + AF00042AAA00425EBD002C3E7D002B3D7C002B3C7A002B3C7A002B3C79002A3C + 7800344A95008196DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000617BD4001F44C1002C50C6005F79D3005F79 + D3005F79D3005F79D3005F79D3006079D3005A78DC00133ECD003754BA000000 + 0000000000000000000000000000000000000000000000000000A8B7ED005665 + 9800B2B6C300ADB1BF00A9AEBE004A63B7001439B200042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000000000003346 + 8800708ADF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4003346 + 88000000000000000000000000000000000000000000546CC100405498004D66 + B7004261CA004362CA004362C9004261C7004361C7004361C7001036B600042C + B100042BB0003655BE00425FC1004360C100425FBF00425EBE00435FBE004661 + B9004B60A8003B4C870000000000000000000000000000000000000000000000 + 00000000000000000000000000005E7CE0002C53D7003D52A0003D52A0003D52 + A0003D52A0003D52A0003D52A0003D52A0005670CA00163BB4003D52A0000000 + 0000000000000000000000000000000000000000000000000000455BAE00A2A9 + BF00B1B6C300B1B6C300B1B6C3008794C0004B65BB00153AB700042DB600042D + B600042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD000000000000000000000000000000000000000000364A + 8F007790E1007C95E90092A8F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC800364A + 8F000000000000000000000000000000000000000000506AC100294FD0000C38 + CA000D38C8000C37C6000C37C6000934C3000833C2000833C1000631BF00052F + BD00042EBC00042EBA00042EB900042DB800042DB600042DB600042DB500042C + B300042CB2002346BB00354B9600000000000000000000000000374E9B002C3F + 7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F + 7E002C3F7E00374E9B00000000004259AB008099EB005879E7004960AF000000 + 00000000000000000000000000000000000000000000788DD7008D98BA00CACE + D900C1C5D300C1C5D300C1C5D300C1C5D300BDC2D10097A4CE00274CC500173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000000000000000000000D1DA + F7003D529D003D529D003D529D003D529D003D529D003D529D003D529D003D52 + 9D003D529D003D529D003D529D003D529D003D529D003D529D003D529D00D1DA + F70000000000000000000000000000000000000000004B6BD7001440D1001641 + D1001943CF001943CF001842CE00153FCB00143ECA00133DC900103AC7000E38 + C5000D37C4000B35C2000933C1000832BF000630BD00052FBC00052FBB00042E + B900042DB8000831B90033468A0000000000000000000000000032468C00506D + CF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506D + CF00506DCF0032468C00000000004C66C0008195D8004462C700445DB0000000 + 000000000000000000000000000000000000000000004963B600B6BCD100CBCF + DB00C6CAD800C6CAD800C6CAD800C6CAD800C6CAD800C4C9D8006780D1003256 + CD00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B600000000000000000000000000000000005E77 + CD0092A4E00094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC00899A + D5008596CF007C8CC3007787BC007282B6007182BB007A8CC9008697D3005E77 + CD000000000000000000000000000000000000000000496CE1001945D800214B + D800264FD800254ED700234CD500214AD3001F48D1001E47D1001B44CE001A43 + CD001841CC00163FCA00143DC800133DC800103AC5000F39C4000E38C3000A34 + C0000933BF000630BD00364A9000000000000000000000000000384E99004F6F + DA000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB00384E9900000000005069C4003D5DC9003156D300466AE2000000 + 000000000000000000000000000000000000000000003D54A200D6D9E200CED2 + DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00A7B3DB007088 + D7003D60D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002C52D2003257D3003D54A20000000000000000000000000000000000435B + AC006F89DF007892E8008FA6F10096ABF1008AA0EA007E95E200657ED0005972 + C6004E68BC003751A5002B4498001F388C001C3792002D4AAC00506BC800435B + AC0000000000000000000000000000000000000000004E72EA002B56E5003961 + E6003D64E5003B62E3003A61E300375EE100365DE000355CDF003259DD003057 + DC002F56DB002C54D9002B53D8002A52D700274FD500264ED400244CD3002149 + D1001E47D0001640CD003A519B00000000000000000000000000455EB5004F74 + EF0098ABEA005474DD005474DD00445EB400445EB4005474DD005474DD00435D + B100053AE900455EB50000000000516CC9008B9EDE00536FCE004B65BC000000 + 000000000000000000000000000000000000000000004158A600DFE2EB00D8DC + E900DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00D8DD + EA00B6C1E7005373DF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A600000000000000000000000000000000004A63 + BA00708AE000859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004361C4004A63 + BA0000000000000000000000000000000000000000005176EE00335DEB00436A + EB00486DEB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002C53 + D8002850D7001E48D4003E54A0000000000000000000000000004761B8005176 + F1009AADEC005575DE005575DE00455FB400455FB4005575DE005575DE00455F + B300073CEB004761B80000000000526DC9004D6BCE004366D9005577E8000000 + 00000000000000000000000000000000000000000000435BAB00E3E6EF00DCE0 + ED00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4 + EF00DDE1EF008CA1E8005F7EE4005173E3005173E3005173E3005173E3005173 + E3004F71E3004267E000435BAB00000000000000000000000000000000004C66 + BD00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4004C66 + BD0000000000000000000000000000000000000000005378F1003B64EF004D72 + F0005277EF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00385E + DF003259DD00264FDA004157A6000000000000000000000000004A63BA00567A + F200A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC0094A2 + D2001546EC004A63BA00000000004D67BE0099AEF6007995F4005971C3000000 + 00000000000000000000000000000000000000000000475EB400E6E9F200E2E6 + F200E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8 + F300E5E8F300C3CDF00095A9EC006A87E9005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB400000000000000000000000000000000004D67 + BE00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C5004D67 + BE000000000000000000000000000000000000000000587CF2004A70F0006283 + F2006989F3006888F3006787F3006485F3006384F3006183F2005F81F2005D80 + F2005C7FF200597CF100587BF100567AF0005478EF005276EE005074EC004E73 + EB00486DEA00365FE700465FB3000000000000000000000000004E67BE006283 + F2009FABD3006174B5006174B5006174B5006174B5006174B5006174B5005F73 + B500325EEF004E67BE0000000000556FCC005B76CE005573D9006382EA000000 + 000000000000000000000000000000000000000000007790E100A7B3DC00EBEE + F900EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0 + FA00EDF0FA00EDF0FA00EBEFFA00D0D9F8007E99F1007390F0007390F0007390 + F0006988EF006E8CF0007790E100000000000000000000000000000000006680 + DA0096A7E4009EB0EB00A6B7F000A8B8F000A4B4EC00A0B0E80096A6DE0093A2 + D9008E9ED4008595CA008191C4007D8DC0007C8CC3008294CE00899BD8006680 + DA0000000000000000000000000000000000000000005A7DF2005176F1006C8B + F3007592F4007491F4007290F400708EF4006E8DF3006D8CF3006A8AF3006989 + F3006787F3006485F3006384F3006283F2005F81F2005E80F2005C7FF100597C + F0005176EF003D65EC004962B8000000000000000000000000005069C1006787 + F300B2C0ED008399E2008399E2006B7CB7006B7CB7008399E2008399E2006779 + B4004068F0005069C10000000000506AC100A5B8F70088A2F6005F76C6000000 + 00000000000000000000000000000000000000000000BFCDF6006C81CA00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00EFF2FD00AFBFF8008AA3F500819BF5007E99 + F500718FF4007E98F100CED8F70000000000000000000000000000000000D3DB + F900516AC100516AC100516AC100516AC100516AC100516AC100516AC100516A + C100516AC100516AC100516AC100516AC100516AC100516AC100516AC100D3DB + F90000000000000000000000000000000000000000005D80F200587CF2007693 + F400809BF500FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006485 + F3005B7EF200456CF0004C66BD00000000000000000000000000526CC3006B8A + F300B8C5EE0090A3E40091A4E4007585B9007585B90091A4E40090A3E4006E7E + B5004A70F000526CC300000000005671CD009EADDF007086D000516BC2000000 + 00000000000000000000000000000000000000000000000000005975D100CAD1 + ED00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DAE2FC00B6C6F90095ACF700829C + F500809BF500768DDD0000000000000000000000000000000000000000006882 + DB0094A6E40094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC008A9B + D6008697D0007C8CC3007787BC007282B6007182BB007A8CCB008899D8006882 + DB0000000000000000000000000000000000000000006183F2006586F30088A2 + F60096ACF7007F92D2007D90D1007C90D2007A8ED1007A8ED100778CD100758A + D000758AD1007288D1007086D0007086D1006E85D0006C83CF006B82D0007B97 + F4006E8DF3005277F1004F69C0000000000000000000000000005670C7006A8A + F3005A7DF2006586F3006B8AF3006F8DF3006F8DF3006D8CF3006586F300597C + F200476EF0005670C70000000000546DC400B1C1F80098AEF700647BCA000000 + 000000000000000000000000000000000000000000000000000000000000607A + D700F4F6FD00F4F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F4F7FE00E0E6FC009FB2 + F500758AD500607AD7000000000000000000000000000000000000000000546E + C5006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C500546E + C50000000000000000000000000000000000000000006183F2006A8AF3008FA7 + F600A2B6F800A0B4F7009FB3F7009CB1F7009BB0F70099AFF70097ADF70095AC + F70094ABF60091A8F60090A8F6008EA6F6008CA5F6008AA3F60089A2F600849E + F5007693F400577BF200506AC1000000000000000000000000005871C8006C8A + ED00809AEF00859EF000889FF00089A1F00089A1F00089A1F000849DF0007F99 + EF007A95EE005871C800000000005973CF00A8B5E0007F92D200556EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D6DCF200F4F7FE00F5F7FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F3F6FE00ACBA + E800546FCA00000000000000000000000000000000000000000000000000556F + C6006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004562C500556F + C60000000000000000000000000000000000000000006183F2006989F30091A8 + F600ADBEF800ACBDF800AABCF800A7B9F800A6B9F800A5B8F800A2B6F800A1B5 + F7009FB3F7009CB1F7009BB0F7009AAFF70097ADF70096ACF70094ABF6008CA5 + F6007A96F4005A7DF200516BC2000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000005974CF007C8FD1007A91DC007D97EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C74C900D8DDF200F4F6FD00F6F8FE00F7F9FE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F6F8FE00F5F7FE00F4F6FD005B74 + C900BFCDF6000000000000000000000000000000000000000000000000005670 + C7006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004663C5005670 + C70000000000000000000000000000000000000000006581E0006183F200708E + F400A2B6F800A9BBF800ACBDF800ABBDF800AABCF800AABCF800A8BAF800A6B9 + F800A5B8F800A2B6F800A1B5F700A0B4F7009CB1F70099AFF70093AAF6007B97 + F4006283F2005D80F2005570CB00000000000000000000000000000000000000 + 0000000000000000000000000000B0C0F9009BB0F7005871C8005871C8005871 + C8005871C8005871C8005871C8005871C800B3C3F900A6B9F8005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900CDD4EF00F4F6FD00F6F8FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F6F8FE00F5F7FE00CDD4EF007E91D300627DD9000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006F89DF007993E70090A6F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002F4CAD00556FC9005872 + C90000000000000000000000000000000000000000005C75CB006282EC006686 + F3007995F400829CF500849EF50086A0F500859FF500849EF500839EF500829D + F500829CF500809BF5007F9AF5007E99F5007B97F4007894F4007290F4006586 + F3006183F2006583EC007A92E500000000000000000000000000000000000000 + 0000000000000000000000000000ABBCF400B9C7F600ACBBF000A5B6EF00A5B6 + EF00A5B6EE00A5B6EF00A5B6EF00A7B6EF00BAC9FA00A4B7F8007E97E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D5007489D100AFBBE500F3F6FD00F3F6 + FD00F3F6FD00F3F6FD00D5DCF200AFBBE5005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000006B85 + DE0096A7E5009DAFEB00A6B7F000A9B9F100A5B5ED00A1B1E80098A8E00094A3 + DA00909FD5008696CB008191C5007E8EC1007E8EC5008494CF008A9CDA006B85 + DE0000000000000000000000000000000000000000006983DD006079CB00627E + E0006586F3006888F3006A8AF3006B8AF3006B8AF3006B8AF3006B8AF3006B8A + F3006B8AF3006A8AF3006A8AF3006A8AF3006989F3006888F3006586F3006A88 + EC006380E0005D77CC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900ABBCF400ABBCF4005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA0098A8DC006075BD00455BA3003B4C8B003A4B + 8900394B88003849850042579C005C71B700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F1006177C500273773002534 + 6A0025346A0027377300364D96006177C5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009BAFEC004B61AF007787C000A0ABD400BAC5EA00B5C1 + E700B1BDE500ACB9E20092A0CF006E7EB600465EB000A3B4EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C7C7C700C0C0C000AEBA + E40028345E0028345E0028345E0028345E0028345E0028345E0028345E002834 + 5E0028345E0028345E0028345E0028345E0028345E0028345E0028345E004053 + 9300AEBAE400C0C0C000D6D6D600000000000000000000000000000000000000 + 00000000000000000000000000002D4085003A4A7D0047589300556AB000556A + B000556AB000556AB0004F62A100475893002D4085008195DB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB40095A1CD00DCE1F100BBC8F100AABAEE00A7B7ED009CAEE90094A7 + E8008CA1E500889DE4007991E0006882DC00C8D3F800CED7F500929EC90096A9 + E800000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBEED004C5D9500364E9D00364E9D00364E9D00364E + 9D00364E9D00A3B2E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E42 + 86002445B400042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042A + AA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00586F + BA002D3F7F000000000000000000000000000000000000000000000000000000 + 00008297DD00334580005467A7003351B7001134AA002444B1004E68BF004E68 + BF004E68BF004E68BF003C59B9002444B1003351B700506ABE005467A7008297 + DD00000000000000000000000000000000000000000000000000000000008EA2 + E800C5CAE000E9EDFA00D7DEF500C4CEF100BBC7EF00ADBCEC0092A5E500889D + E2007D94DF008096E0008096E0009CAEE900AFBFF400BAC8F600E3E8FA003E51 + 9400859AE1000000000000000000000000000000000000000000000000000000 + 000000000000B9C8F20040529200324FB0000C2FA10003279F0003279F000327 + 9F002947AD00788DD80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003043 + 8600042CB30003279D0003238F0003238F0003238F0003238F0003238F000323 + 8F0003238F0003238F0003238F0003238F0003238F0003238F0003238F00506C + CA00304386000000000000000000000000000000000000000000000000000000 + 00003A4B8900566DB800415EC100294AB900546FC70093A3DB00E7EBF700E7EB + F700B9BCC600E7EBF700C2CBEA0093A3DB00294AB9001136B100415EC1003A4B + 89005068BB0000000000000000000000000000000000000000009DAFED004860 + B200F2F4F900E2E7F500DBE0F400C4CEEE00B5C1EA00ADBBE9009FAFE50095A7 + E2008C9FE000879BDE007B91DC00ADBDF000BBC9F600D3DCF900D4DCF900B9C1 + DE003D50940096A9E80000000000000000000000000000000000000000000000 + 0000BAC7F300425496004C60A8000C31A9000429A6000429A6000429A6000429 + A600193CAE004C61B00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8F00042FBD00E0E6F700DFE4F600DFE4F600DEE3F600DEE3F600DDE2F600DDE2 + F600DCE2F600DAE0F500DAE0F500DAE0F500D9DFF500D9DFF500D8DEF400506E + D10034488F00000000000000000000000000000000000000000000000000859A + E0005971C1003253C2000D34B6008999CC00CACFDF00E6EAF800E6EAF800E6EA + F800C9CDD900E6EAF800E6EAF800E6EAF8008999CC00415FC5000D34B6005971 + C1003D4F8F00859AE000000000000000000000000000506BC80098A5CF00ECEF + FA00F0F1F600F0F1F400E5E8F100D2D8EC00C4CCE800B8C2E500A2B0DF0099A9 + DD0090A1DA00899BD900B4C2EE00C1CDF500DCE3F900D7DFF900BFCAED00A6B5 + E600C8D1F0008492C2000000000000000000000000000000000000000000BAC9 + F3005066B3003153C3000D34B9000A32B9000A32B9000A32B9000A32B9000A32 + B9000A32B9004E61A200889DE300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003B52 + 9F000433D000C5D0F400C4CFF400C2CDF300C1CDF300C0CCF300BECAF200BECA + F200BDC9F200BBC8F200BBC8F200B9C6F100B7C5F100B6C4F100DAE1F7005071 + DE003B529F0000000000000000000000000000000000000000003B53A3005A70 + BB000934C5004B6AD300E1E6F800E5EAF800DADFEC00E5EAF800E5EAF800E5EA + F800E5EAF800E5EAF800E5EAF800E3E8F600E5EAF800E5EAF800E1E6F8000934 + C5004162D1005A70BB000000000000000000000000005B71B900DEE3F200DAE0 + F600E6E9F400EAECF000EBECF000D5DAE900CAD0E600C6CDE700C0C9E700B8C2 + E400B2BDE300AAB7E300CED7F600C6D1F500DDE3F900C1CBEC00AAB8E400A9B8 + E8007B91DA0097A7D90099ABEA00000000000000000000000000BCCAF400455A + A500395BCC00163EC400133BC300133BC300133BC300133BC300133BC300133B + C300133BC3004E66B700556DC200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003F57 + A8000536D900C6D1F600C6D1F600C4D0F600C4D0F600C3CFF600C1CDF500C0CC + F500BFCCF500BECBF500BDCAF500BCC9F500BAC8F500B9C7F500DCE3F9005073 + E5003F57A800000000000000000000000000000000008A9DE4004E61A8005271 + D8002A50D100CDD6F500E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9002A50 + D100123DCD005271D8008A9DE4000000000000000000AFBADD00D5DDF700CAD3 + F200D7DCEF00E0E4EF00E6E8EC00DDE0E900D9DDEA00C1C9E600627CD0005B75 + CC005771CA008FA1DC00D3DBF700E2E7F900C4CDED00B3BFE600B3BFE7007288 + D300516DCC007E93D8004C64B500000000000000000000000000445CA9006E82 + C7001E46CD001C45CD001C45CD001C45CD00274DCE006B86DE001E46CD001C45 + CD001C45CD00516DCE004A5FA700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435B + B0000538E300CAD5F900C9D4F900A4A9BC00A3A8BC00A3A8BC00A2A8BC00C3CF + F800C2CFF800BFCCF700BECBF700BDCBF700BCCAF700BBC9F700DDE4FA004F73 + EB00435BB00000000000000000000000000000000000425AAE005B75CA003359 + D9008497D600D2D7E400E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EA + FA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA008497 + D6000938D3003359D900425AAE0000000000758BDE00C6D1F500AABAEE00BCC8 + EF00C4CDEB00C8CFE800CFD4E700ADB9E1006880CF00657FD300758CD900738A + D8006F87D6005B76CE004A66C4004C66BF00BCC5E4007A8DCC00697FC9005C76 + CC007189D7005673D5006D7EBA007288D9000000000000000000000000004E67 + BF00708BE700335ADE002D56DE00879DE7006679BE00475FB2006F89E6003159 + DE002D56DE003F64E1005C75CF004B62B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004861 + B800053AEB00CFD9FB00CED8FB00A6ABBD00A6ABBE00A6ABBE00A4A9BD00A4A9 + BD00A3A9BD00A2A8BD00A2A8BD00A1A7BD00C1CEFA00C0CEFA00DFE6FC005075 + F1004861B800000000000000000000000000000000005871C8004268E7000537 + DF00E5EAFB00DFE4F500E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00809AEE000537DF005871C800738BDD00516CC700B1C0F100A7B7ED00ADBC + EC00B8C3E800BBC5E500C9D0E6006880D0006780D4007B91DB006879B2005C6C + A7005B6BA5006E81C500637CCF004965C3008E9DCF008192CC006E83CB006B84 + D5007089DA006A85DD008E9DD4004E67C0000000000000000000000000000000 + 0000788CCD00738EEB006B89EC00596EBA00627BD400000000008093D6005779 + E900365EE6003860E600597AE800576CB8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00053AEB00D1DBFB00D0DAFB00CFD9FB00CED8FB00CDD8FB00CBD6FB00CAD5 + FB00C9D5FB00C7D3FB00C6D2FA00C6D2FA00C4D1FA00C3D0FA00E1E7FD005075 + F1004962BA00000000000000000000000000000000005C78D8002A56EA000539 + E600E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00E5EBFC00E5EBFC00D5DAE6009C9B9D00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00C2CFF8000539E6005C78D800536ECA00435CB0009BADEC00A2B2EB00A0B0 + E900ABB9E500AFBBE300C5CDE7005E78CE007088D9007E90CE007189D800E0E6 + F900000000005668A2006D81C5005B76CE007085CC0098A7D9007B8FD3007990 + DB00728BDD007B93E200A4B3E4004159A9000000000000000000000000000000 + 00004D67C200798DD1008499DC0090A4EA0000000000000000005A71BF0089A0 + EC004A6FEE003E66ED005276EE006079D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004A64 + BB000E41EC00D5DEFC00D4DDFC00A8ADBD00A8ADBD00A8ADBD00A7ACBD00A6AC + BD00A6ACBD00A6ABBD00A5AABD00A5AABD00C8D4FB00C7D3FB00E3E9FD005479 + F1004A64BB00000000000000000000000000000000005C7CE9001849EC00053A + EB00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00C5CA + D900B8BDCA00C9CCD6009B989800B8B9BF00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E8EDFD00053AEB005C7CE9004862BC00445CAF008098E60092A6E800849A + E20094A5DF0099A9DD00B9C3E4005873D000758BD6005E6EA900000000000000 + 000000000000E0E6F9005C6CA7007088D6005873CB00B1BDE3008FA0DA008DA0 + E1007F96E1008CA1E600B2C0EC00445CAF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F6A + C5008A9EE1004F74F1004F74F1006586F3005873CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004C66 + BD002553EE00DDE4FC00DDE4FC00ACB0BE00ACB0BE00ACB0BE00ABB0BD00ABB0 + BE00ABB0BE00A9AEBD00A9AEBD00A9AEBD00D1DBFB00D0DAFB00E7ECFD005E80 + F2004C66BD00000000000000000000000000000000006683E9002C59EE001B4B + ED00CBD0DD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E9EEFD00ADAB + A9009C999700E0E4F100E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00CBD0 + DD00BABECB001B4BED006683E9004A63BB00445CAE007690E400899EE5007C93 + DF008A9DDD008FA0DA00B1BDE3005470CE007289D4005D6EA800000000000000 + 000000000000000000005F6EA900738AD8005C76CD00B7C1E40099A9DE0096A8 + E300879CE30095A8E900B7C4ED00455EB1000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AEBE + F2005E75C4006686F300577BF2005D80F2005A72C200AEBEF200000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00305CEE00E1E7FD00E0E6FC00DFE6FC00DEE5FC00DDE4FC00DCE3FC00DBE2 + FC00DAE2FC00D8E0FC00D8E0FC00D7DFFC00D6DFFC00D5DEFC00E9EEFD006485 + F3004D67BE00000000000000000000000000000000006A88EB003761EF002755 + EE00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00CACA + CB00C3C1C000E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00D8DDEA002755EE006A88EB004B64BC00445CAD006E88E2008198E300718A + DD007F94DA008497D800A8B5E0004F6BCA006B83D4006677B000000000000000 + 000000000000738ADA006B7BB400758CD900627CD000C0C9E700A4B2E1009FAF + E60092A5E6009EB0EB00BBC7EF00465FB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F89DF008DA5F4006686F3006082F2006C85D900546FCB00000000000000 + 0000000000000000000000000000000000000000000000000000000000004E68 + BF003C65EF00E4E9FD00E4E9FD00B0B3BE00B0B3BE00AFB3BE00AFB3BE00AFB3 + BF00AEB2BE00ADB1BE00ADB1BE00ACB0BE00DAE2FC00D9E1FC00EBF0FD006989 + F3004E68BF0000000000000000000000000000000000708BEB00426AF000335E + EF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD008D8A8800EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00D4D8E600335EEF00708BEB004C66BF00516BC3007E95E3006580DB006B84 + D8007086D1006B81C9007F91CC005872C6004A66C400637CCE006878B0005F70 + AA006070AB008091CF007B91DB00647ED300C2CAE700C6CDE700B9C3E600AEBC + EA00AEBDED00A8B8EF00A7B4E0005471CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000576FC600A0AFE7008BA4F6007D98F5007F95E300536DC6000000 + 000000000000000000000000000000000000000000000000000000000000516A + C1005378F100EAEFFD00EAEFFD00B4B7BE00B3B6BE00B3B6BE00B2B5BE00B2B5 + BE00B2B5BE00B2B5BF00B2B5BF00B0B3BE00E2E8FD00E1E7FD00EFF3FE007491 + F400516AC100000000000000000000000000000000006D85D8007391F4004C72 + F100EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE0098959300EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00E9EDFA00EDF1 + FE007588C8004C72F1006D85D8007990E300748CDB008FA3E500506ED4006C84 + D5006980CB006B81CB0092A2D600B1BDE4004D68C0004A66C4006B83D4007088 + D600748BD8007088D9006780D4006880CF00DADEEB00CBD1E700C5CDE900B7C3 + EC00BDC9F100AABAEF008494CE007790E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009FB1EF00637AC800A4B4ED007A96F40086A0F500758AD5000000 + 000000000000000000000000000000000000000000000000000000000000526B + C2005F81F200ECF0FE00ECF0FE00EBF0FD00EBF0FD00EAEFFD00E9EEFD00E8ED + FD00E7ECFD00E6ECFD00E6ECFD00E6EBFD00E5EAFD00E4E9FD00F1F4FE007995 + F400526BC20000000000000000000000000000000000647AC700819CF3005E80 + F200C1C6D400CCCFDA00E2E6F100EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2 + FE009E9B9900EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00C1C6 + D4005370D2005E80F2006479C700BFCDF600BDCBF40097A7DD005772CE00617B + CF006B82CF00A3B1E000B1BDE500E3E8F800C5CEEE005D76CA004F6BCA00536F + CD005873D0005E78CF00667FD000ADB9E100DEE1EA00D6DBEA00D2D8ED00C6D0 + F000C4CFF200BDCAF3005D74C100BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006A7FCB0092A9F60086A0F5008BA3F100849B + E80000000000000000000000000000000000000000000000000000000000536C + C4006B8AF300EFF3FE00EFF3FE00EEF2FE00EDF1FE00EDF1FE00ECF0FE00EBF0 + FD00EBF0FD00EAEFFD00E9EEFD00E8EDFD00E7ECFD00E7ECFD00F3F6FE007E99 + F500536CC40000000000000000000000000000000000526CC8008399E4007D98 + F5007582AE00D7DAE400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00A8A5A400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE007582 + AE006282EE007E99F500526CC8000000000000000000566AAC009EADDE00A0B0 + E500AEBCE800AAB8E600D2DAF500D5DDF800C3CFF500C4CFF200B1BDE400B1BD + E300BAC4E500C6CEE800C9D0E700D0D5E800E8EAEE00EDEEF200E6E9F200DDE2 + F600D9E0F700DFE4F500AABBF100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000778BD200ABBBEF009DB2F7008298 + E0005871C900C1CDF6000000000000000000000000000000000000000000556F + C600819BF500F2F5FE00F2F5FE00DADDE500D9DCE400D9DCE400D8DBE400D8DB + E400D8DBE400D7DAE400D7DAE400D6D9E400E0E4F000EDF1FE00F6F8FE0087A1 + F500556FC6000000000000000000000000000000000000000000536EC900889D + E4007F9AF5006377B900D1D5E100F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00DCDDE200F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00D1D5E1007F9A + F50095ACF7008A9FE2000000000000000000000000004F69BE0093A0CC00C5CF + F000B0BEEA00D0D8F500D6DEF900C1CDF500C0CCF500A2B2E7008FA0DB008FA0 + DA0099A9DD00B0BCE400BCC6E600C8CFE900E2E6F100ECEEF200F2F3F600E4E9 + F700EAEEFB00A1AFDA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007C93E500687FCD00ADBCED008DA5 + F600788EDA005874CD0000000000000000000000000000000000000000005670 + C70088A2F600F3F6FE00E9ECF3008E8C8D008986860089868600898686008986 + 860089868600898686008986860089868600BABBC100E5E8F300F7F9FE008BA4 + F6005670C7000000000000000000000000000000000000000000BFCDF6006178 + C9009DB2F700869FF1006878B100DDE0E700C8CAD100ECEFF700F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DADDE400C0C5D6006878B1009DB2 + F7009EAFEE005C74C700000000000000000000000000D1DAF8004C62AA00B4BE + DE00C5D0F400D7DFF900D8DFF900BAC8F500BDCAF4008599DC00899CDD00899C + DD0094A5DF00ADBBE700BAC5EA00C6CFED00D9DEF100E8EBF600F2F3F800F4F6 + FB00CED3E9005972C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000093A8ED005C75CC00A5B7 + F5008EA6F400778DD70000000000000000000000000000000000000000005771 + C8008DA5F600F5F7FE00E1E3EA00EEEEEF00FDFDFD00FDFDFD00FDFDFD00FDFD + FD00FDFDFD00FDFDFD00FDFDFD00FDFDFD00A09FA100DFE2EA00F8FAFE008CA5 + F6005771C80000000000000000000000000000000000000000000000000092A7 + EC00A7B8F300A6B9F80094AAF2008A92AF00C9CCD500F4F7FE00F4F7FE00F4F7 + FE00D4D6DD00F4F7FE00F4F7FE00F4F7FE008A92AF007182BB0094AAF200ABBB + F4006279C90092A7EC000000000000000000000000000000000000000000889D + E400CAD0E800DDE3F900B3C3F500BBC9F600879CE3007C93DF00778FDF007C93 + E000869BE300A0B1EA00AEBDED00BECAF100CCD5F400DCE2F800ECF0FB005C74 + C70092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AFBF + F3006B85DE005A74CF005B76D20000000000000000000000000000000000728C + E20093A8F0009BAFF20099ABE900B3B2B400B5B3B200ABA9A700ABA9A700ABA9 + A700ABA9A700ABA9A700ABA9A700B5B3B200919BBB0099ABE9009AAEF200748A + D8006B85DE000000000000000000000000000000000000000000000000000000 + 000092A7EC005F77CA009AABE600B5C5F900AEBEF40096A5D7007985AD007985 + AD007985AD007985AD008694C00096A5D700B6C6F900B3C3F8009AACE70092A7 + EC00000000000000000000000000000000000000000000000000000000000000 + 00004A61AA0094A2D100D0D9F7009CAEED00637FDC00748DE100849AE500899E + E60093A7E900A3B4ED00A8B8EF00AABAEF00D6DEF800E2E7F600A4B1DC009FB1 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C900A1A1A700EDECED00F4F4F300E8E8E700E8E8 + E700E8E8E700EBEBEA00F4F4F300EDECED006277BF005872C9005872C9006B85 + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005872CD00A0B0EB00B9C8F900BECCFA00BBCAFA00BCCA + FA00BCCAFA00BBCAFA00BDCBFA00BFCDFA00A1B2EB007489D3005872CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF800526AC0006175B500AEBCEB009CAEEA008BA0E7006E89E3007690 + E4008199E8009CAFEE00B3C2F300C7D2F600B7C2E6006E83CC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B1B1B1009C999800ABABAA00EDECEC00E4E3 + E300E4E3E300D8D7D600ABABAA00959391000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005874CD007287D1008B9FE100ACBCF400ACBC + F500ADBDF500ACBCF4009DAEEA008C9FE1005874CD0093A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF500778DDF005771CA005068BA005169 + BC00526BBE00546DC1005C77D2007A92E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009F9E9D009F9C + 9B009F9C9B000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA00C7C7C7007486C4004659970028345F002835 + 5F0028355F0028345F002F3F770046599700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED7F7003C54A200475B9D00455FB6003754B6001739AA001336 + A9001336A9001739AA002343AF003754B600475B9D00384881003C54A2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859AE000344991003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F51900030468E00000000000000000000000000000000005B74C7004455 + 94004F64AD005062A1004057A900000000000000000000000000000000000000 + 00006780CF005369B3004F64AD005062A1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F2002D418600445796003352B8001337AE000429A8000429A8000429 + A8000B30AB000429A8000429A8000429A8003352B8004761B70044579600BAC6 + F20000000000000000000000000000000000000000004D64B6002A3B78002A3B + 7800344B960000000000344B96002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B7800344B9600000000002A3B + 78002A3B78002A3B7800000000000000000000000000344A96005C72BF00506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED3005C72BF0000000000000000000000000000000000374E9E005671 + CE000B206700435FBF0041569C002A3B75002A3B75002A3B75002A3B75002A3B + 7500364C960010266E000B206700435FBF00D1DAF80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032468C004C61A700405DBE00042BAD00042BAD002245B700617ACC00677F + CD006B81CB00617ACC004360C1002245B700042BAD001B3FB600405DBE003246 + 8C00BAC6F200000000000000000000000000000000006E7CAC00ACB6DC00A8B5 + E0002D3F7F00000000002D3F7F00A5B3E100A4B2E000A4B2E000A4B2E000A3B1 + E000A3B1E000A3B1E000A2B0DF00A2B0E000A2B0E0002D3F7F0000000000A1B0 + E000A0AFDF00A5B1DA005067BA000000000000000000364C9700506FD8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C800506FD800000000000000000000000000000000003E58AE00274F + D600021C7100153EC700455DAE000E2D9A000E2D9A000E2D9A000E2D9A000E2D + 9A003A54AE00031E7900021C7100153EC7000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455C + AE004160C6001037BB00042DB7002F52C4005069BA003D509100859AE100A8B7 + ED00C1CCF200859AE1004B61B1003D5091006981D0002E51C300042DB7004160 + C600495DA200455CAE00000000000000000000000000ACBAE800899DDF00A7B6 + E700546CC10000000000546CC100A5B4E600869ADE00869ADE008499DD008499 + DD008499DD008398DD008398DD008297DD006C7BAF00546CC100000000006B7A + AF00A0B0E5007F94DC0033478D0000000000000000003F57A7005072E4000535 + D9000535D9000535D9000535D9000535D9000430C3000430C2000430C2000430 + C2000430C2000430C2000430C2000430C3000535D9000535D9000535D9000535 + D9000535D9005072E40000000000000000000000000000000000000000006983 + DA00435CB300516CCA0000000000000000000000000000000000000000000000 + 000000000000435CB300435CB3003754B7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000869BE1004255 + 96001C42C300042FBD00042FBD001038C0004161CA004D62A700BCC8F3000000 + 0000000000000000000000000000B4C2F0005264A2006B83D100294EC6001C42 + C3004966C70042559600000000000000000000000000AFBDEC008DA1E300AEBC + EC00000000000000000000000000B0BEEA008A9FE3008A9FE300889DE200889D + E200879CE200879CE300869BE200869BE2005667A60000000000000000005869 + A700AAB8E8008399E200374B95000000000000000000435CAF005074EA000638 + E1000638E1000638E1000638E1000E3EE2003C60D6000533CA000533CA000533 + CA000533CA000533CA000533CA003C60D6000638E1000638E1000638E1000638 + E1000638E1005074EA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003F56A6001939A600869BE10000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3004F66 + B5000934C300153EC6004162D1000934C300143DC6004363CF00384E9B00BCC8 + F300000000000000000000000000000000005671C4005466A700647ED5000833 + C3003558CE004E66B600000000000000000000000000B2C0F00094A8EA00B0BF + EF005B74CA00000000005B74CA00AFBEEF0090A4E80090A4E8008FA4E8008FA4 + E8008FA4E8008EA3E8008CA1E7008CA1E7007381BA005B74CA00000000007483 + BB00AABAED00899FE7003A509C0000000000000000004760B700567AF0001445 + E9001445E9001445E9001445E9001B4AEA008199E900889EE900889EE900889E + E900889EE900889EE900889EE9008199E9001445E9001445E9001445E9001445 + E9001445E900567AF00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A8FDB002D469B004E66BC0000000000000000000000 + 000000000000000000000000000000000000000000005B74CA005067B2004467 + D9002E54D4006882D700465BA300617DDC00214AD2001842D0004A6AD700556A + B5003D53A40000000000000000000000000000000000B7C5F100465BA3002B52 + D3001742D0004063D8006C83CF000000000000000000BCCAF600A2B4F200A2B4 + F200BBC9F600BCC9F500BAC8F6009FB2F2009FB2F2009FB2F2009EB1F2009DB0 + F2009DB0F2009CB0F2009CB0F2009BAFF100AABBF400B7C6F600B8C6F600A7B8 + F30099ADF10099ADF1004259AD0000000000000000004C65BC006586F300335E + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00335EEF006586F300000000000000000000000000465EB3006279C300607C + D900617EDE00617EDE00627EDE00637FDF00637FDF00637FDF00637FDF00637F + DF00627EDE00617EDE00607DDE005F7CDE004F64AB008A9EE500000000000000 + 000000000000000000000000000000000000000000004760B700556EC8003A5F + DB004266DD00657AC4004760B6006B7FC0006480E0002750D8002750D8004E6F + DC00566DB800BDCBF40000000000000000000000000000000000556DC1003F63 + DB001F49D600365CDB004E66BA000000000000000000BFCCF800A8BAF500A8BA + F500A7B9F500A7B9F500A6B8F500A5B7F500A5B7F500A5B7F500A5B7F500A4B6 + F500A4B6F500A3B6F500A2B5F500A2B5F500A1B4F500A1B4F500A0B3F500A0B3 + F5009FB3F5009FB3F500455EB40000000000000000004D67BE006C8BF300446B + F000456CF000456CF000456CF000456CF000456CF000456CF000446BF000446B + F000446BF000446BF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0006C8BF3000000000000000000000000004057A6006B85DC00355B + DA002F54CE003D62DC00365BD3003E63DB00365AD2003357CF00365AD2003256 + CE003E63DC003055CE003A5FDC002B50CD00647CCB00556FC700000000000000 + 000000000000000000000000000000000000000000004058A8005775D900375D + DD005576E3005D71B7008CA1E6004059AC006D81C4006883E300254FDB002D55 + DD004F70DF004159AC00BECCF5000000000000000000000000008CA1E6005374 + E300254FDB00335ADD00445BA8000000000000000000C3D0FA00B0C0F900AFC0 + F900AFC0F900AEBFF800AEBFF800ADBEF800ADBEF800ADBEF800ACBDF800ABBD + F800ABBDF800ABBDF800AABCF800AABCF800AABCF800A9BBF800A9BBF800A8BA + F800A7B9F800A7B9F8004962BA0000000000000000004F69C0007391F4005378 + F1005479F1005479F1005479F100829CF300819BEF007E98EE007E98EE007D97 + EE007D97EE007E98EE007E98EE00819BEF00718FF4005479F1005479F1005479 + F1005378F1007491F4000000000000000000000000005066B100758FE600476B + E300032597004A6AD700082A9C004B6BD700082A9C0003259700082A9C000325 + 97004B6BD700032597004768D600032597007B93E100485FAE00000000000000 + 00000000000000000000000000000000000000000000455EB2006482E6004167 + E7006180E7005168B600C6D1F50000000000BECCF500465FB6006E8BEB003A62 + E700335CE5005577E8005D75C600465FB6000000000000000000C6D1F5005477 + EA003D64E7003B62E700455EB2000000000000000000CBD6FB00BBCAFA00BBCA + FA004068F0004068F0004068F0004068F0004068F0004068F000B8C7F9004068 + F0004068F0004068F0004068F0004068F0004068F000B5C5F900B5C5F900B4C4 + F900B4C4F900B4C4F9004C65BC000000000000000000536DC400809BF500708E + F4007592F4007A96F40096ACF4002750D900053AEB00053AEB007B97F4007A96 + F4007A96F4007995F4007894F4007894F400667DCB0097ACF4007D98F5007592 + F400708EF400809BF500000000000000000000000000657BC5007F9AF1007490 + F0000328A000607DDD000328A000607DDD000328A0000328A0000328A0000328 + A000607DDD000328A000607DDD000328A0007D98F200758BD8005C76D2000000 + 000000000000000000000000000000000000000000004861B7006885E8004B70 + ED005E7FEE00556CBC00AEBDF2000000000000000000BFCCF5007187D0006E8B + EE004067EB003F66EB005D7EEC00627ACB00BFCCF50000000000AEBDF2005A7C + EE003C64EB00446AEB004861B7000000000000000000CED8FB00C1CEFA00C1CE + FA00496FF000496FF000496FF000496FF000496FF000496FF000BECCFA00BECC + FA00BDCBFA00BCCAFA00BCCAFA00BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9 + FA00BAC9FA00B9C8F9004D67BE000000000000000000556EC500839EF5007A96 + F400859FF50099AFF700889ADE000D40EC000D40EC000D40EC00A2B6F800A1B5 + F7007D98F5007C97F4007B97F4007B97F400536FD000889BDE0098AEF700859F + F5007A96F400839EF5000000000000000000000000006C83D3008AA3F500859F + F4000328A4006D87E1000328A4006D87E1000328A4000328A4000328A4000328 + A4006D87E1000328A4006D87E1000328A4007A95F00094A9EF00526AC0000000 + 000000000000000000000000000000000000000000004B65BC006F8BEB005075 + F0006384F2005B73C50090A4EB000000000000000000000000004B65BE00748C + DB007290F300426AEF00466DEF006081F0004B65BE00BFCDF50090A4EB006384 + F200466DEF004D72F0004F68BC000000000000000000D1DBFB00C6D2FA00C6D2 + FA005176F1005176F1005176F1005176F1005176F1005176F100C4D1FA005176 + F1005176F1005176F1005176F1005176F1005176F1005176F1005176F1005176 + F100C0CEFA00BFCDFA004E68BF0000000000000000005770C700819BF5007491 + F4008FA7F6009DAFF0006078CB002553EE002553EE002553EE00B1C1F900B0C0 + F9002553EE002553EE002553EE002553EE002C58E9006078CB009EB0F000839E + F5007592F400839DF300000000000000000000000000748AD6008DA5F60095AC + F7000328A4007891E3000328A4007891E3000328A4000328A4000328A4000328 + A4007891E3000328A4007891E3000328A4006E88E20095ACF7006A80CB000000 + 000000000000000000000000000000000000000000006580D9007087D2006A8A + F3005B7EF2006A87EA00536CC00000000000000000000000000000000000BFCD + F6005069C3007995F4005479F1005479F1006685F000667FD000536CC0006384 + F300587CF2006686F300778FDE000000000000000000D8E0FC00D1DBFB00D1DB + FB006384F3006384F3006384F3006384F3006384F3006384F300CED8FB006384 + F3006384F3006384F3006384F3006384F3006384F3006384F3006384F3006384 + F300CBD6FB00CAD5FB00516BC200000000000000000093A8ED005872CA005872 + C9005872C9005A78DB00567AF200567AF200567AF200567AF200CBD6FB00CAD5 + FB00567AF200567AF200567AF200567AF200567AF200567AF2005A78DB005872 + C9005872C9005872CA000000000000000000000000007A91E200839EF50094AB + F6000328A4007D94E2000328A4007D94E2000328A4000328A4000328A4000328 + A4007D94E2000328A4007D94E2000328A4007991E20090A8F60098ACF0000000 + 000000000000000000000000000000000000000000009FB0EF005B74C5007B96 + F100567AF2006A8AF3006881D400000000000000000000000000000000000000 + 0000BFCDF6007D93DE007E99F5005F81F2006485F3007592F2008197E2006686 + F3006888F3007793F000B7C4F2000000000000000000DBE2FC00D6DFFC00D6DF + FC006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF300D3DCFB00D3DC + FB00D3DCFB00D2DBFB00D2DBFB00D2DBFB00D1DBFB00D1DBFB00D1DBFB00D0DA + FB00D0DAFB00CFD9FB00526CC30000000000000000000000000000000000556E + C500C0CEFA006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300D6DFFC00D5DE + FC006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300C3D0 + FA00556EC50000000000000000000000000000000000829BED007290F400849E + F5003C5BC30095AAF2003454BE008EA4ED00173AAF000328A4000D31A9000328 + A4007D94E2000328A4007D94E2000328A4007891E30088A2F60090A8F60092A7 + EC00000000000000000000000000000000000000000000000000516CC8008196 + DF005D80F2006283F2006C8AEF006681DA000000000000000000000000000000 + 000000000000526BC4007E94DF00849EF5007C97F400809BF5008FA7F6007592 + F4007D98F5007E94DF00000000000000000000000000DEE5FC00DAE2FC00DAE2 + FC007592F4007592F4007592F4007592F4007592F4007592F400D8E0FC007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007592F4007592 + F400D5DEFC00D4DDFC00546DC400000000000000000000000000000000005770 + C700DCE3FC00DFE6FC00E0E6FC00E1E7FD00E0E6FC00E0E6FC00DFE6FC00DFE6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DCE3FC00DCE3FC00D9E1FC00D7DF + F9005770C700000000000000000000000000000000008098E700859FF5008CA5 + F6009AAFF70092A9F60094ABF6008CA5F600859EF1008099EC006E89E100617C + D8009EB3F7003E5DC30095AAF200294AB9007D97EB007D98F5007D98F500617C + D800000000000000000000000000000000000000000000000000000000005D78 + CF00819CF3006787F3006888F300718EEF006C85D6005770C40092A5EC00AEBE + F300C8D2F60092A5EC005671CE005A73C600A7B9F8009AAFF70095ACF7008FA6 + F400788ED6005D78CF00000000000000000000000000E6EBFD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6 + FC00E0E6FC00E0E6FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5 + FC00DEE5FC00DBE2FC005770C7000000000000000000000000000000000093A8 + ED005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + CA0093A8ED000000000000000000000000000000000000000000AFBFF300AFBF + F3007C92E5007C92E5007C92E5005E79D5005E79D500566FC700687ECD006A80 + CD006A80CD00768BD9007B91DB007F97E4008098E600809AEF007893EE006077 + CA0093A7ED00000000000000000000000000000000000000000000000000D3DB + F900859AE100859FF5006D8CF3007491F4007A96F4007892EC00647CCC006078 + C8006078C800647CCC006D85D9007F99EC00A3B6F8009DB2F7008EA6F600899E + E200526CC50000000000000000000000000000000000E7ECFB00E5EAFD00E4E9 + FD00E5EAFD00E6EBFD00E5EAFD00E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9 + FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8FD00E2E8FD00E1E7 + FD00DFE6FC00DEE5FC005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600AFBFF300859BE9007C93E5007C93E5005E79D6005E79D6005770C8004D6A + CC00647EDA000000000000000000000000000000000000000000000000000000 + 00005871C800869AE2008AA3F4007995F4007A96F400819BF500829DF5007F9A + F5007F9AF500859FF50088A2F6008FA7F60099AFF70095ACF70099AEF5005871 + C800BFCDF600000000000000000000000000000000009FAFE100E7ECFB00E8ED + FB00E8EDFB00E8EDFB00E8EDFB00E7ECFB00E7ECFB00E7ECFB00E7ECFB00E7EC + FB00E7ECFB00E6EBFB00E6EBFB00E6EBFB00E6EBFB00E5EAFB00E5EAFB00E5EA + FB00E4EAFB00E3E8FB006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006B85DE002C57 + E700647CCD00647CCD005A72CB00000000000000000000000000000000000000 + 000000000000D3DBF9006179D1008A9EE2009AAFF40099AFF70097ADF70097AD + F7009AAFF7009AAFF7009DB2F700A0B4F7008B9FE200687FCC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9005872C9005872C9005872CA00000000000000000000000000000000000000 + 00000000000000000000000000005772CD00637BCC007A8FD90092A8F00098AD + F0009AAEF10092A8F000879DE6007A8FD9005772CD0092A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F000728BE0005771C8005771 + C8005771C8005771C8005A75D100728BE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DBDBDB002E3F79002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B002E3E7700C5C5C500C5C5C500C5C5C500C7C7C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000027366E004F65 + AE004F64AC00485B9B004F64AC004F64AC00485B9B004F64AC004F64AC00485B + 9B004F64AC004F64AC002736680026335C0026335B0026335B0026335B002632 + 5D002E3F7900CBCBCB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C4C4C400B9B9B9004558 + 9700253159002531590025315900253159002531590025315900253159002531 + 5900253159002531590025315900253159002531590025315900253159004558 + 9700BDBDBD00DADADA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002C3D7A004F69 + BE000328A200032082001D3EAC000328A200032082001D3EAC000328A2000320 + 82001D3EAC004F69BE002C3D7A001D3EAC000328A200032082001D3EAC004F69 + BE002C3D7A0000000000000000000000000000000000A6A4A400E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200A6A4A400B6B5B500A09E9E000000 + 00000000000000000000000000000000000000000000000000002C3B75004B62 + AC0003279D0003279D0003279D0003279D0003279D0003279D0003279D000327 + 9D0003279D0003279D0003279D0003279D0003279D0003279D0003279D004B62 + AC002C3B75000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002E407E004F69 + C200042AA900032187001D3FB100052AA900042288001E40B100052AA9000321 + 87001D3FB1004F69C2002E407E001D40B300062CAB00052389001F42B400506A + C4002F41800000000000000000000000000000000000A7A6A500E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A7A6A500D8D8D800B7B6B600D5D5 + D5000000000000000000000000000000000000000000000000002B3D7900435E + BB00546393005A6792005A6792000328A300546393005A679200546393000328 + A300546393005A679200546393000328A3005A6792005A67920054639300435E + BB002B3D790000000000000000000000000000000000B1BCE500465792003441 + 6E00333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 6800333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 680034416E00485C9B0000000000000000000000000000000000304385004760 + B30005248C0006258D000E2C910009278D0009278D000F2D900009278D000827 + 8D000D2B90004760B300304385002346BC000E34B5000B2A91002548BD00516C + C9003144870000000000000000000000000000000000A8A7A600E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A8A7A600ECECEC00D8D8D800A1A1 + A000D5D5D50000000000000000000000000000000000000000002D407F00435F + BF008190C2008194D4008194D400092EAC008190C2008194D4008392C300042A + AA007080B8008194D4007080B800092EAC008194D4008194D4008392C300435F + BF002D407F00000000000000000000000000000000002D3F7F0043548D004B60 + A8004A60A9004A60A9004A60A9004A60A9004A60A9004A60A9004A60A900495F + A700465BA000425698004256980042569800465BA000495FA7004A60A9004A60 + A9004B60A80044559000DBE2F80000000000000000000000000035498F00516E + CF001239BE00102F98002D50C600183EBF00133299002F52C600183EBF001231 + 99002B4FC600526FCF0035498F003256CE001F46C8001938A1003357CE005472 + D500384D950000000000000000000000000000000000AEACAB00E6E6E600DCDC + DC00DCDCDC00DCDCDC00DCDCDC00718BE400DCDCDC00DCDCDC00DCDCDC00718B + E400DCDCDC00DCDCDC00DCDCDC00718BE400AEACAB00EFEEEE00ECECEC00CDCD + CD00B6B5B400A3A1A1000000000000000000000000000000000032478A004261 + C800042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6008196DA008196DA008196DA00042DB600042DB600042DB600042DB6004261 + C80032478A00000000000000000000000000000000003E58B5001544DF000537 + E0001229760026387700042AAB00042AAB00042AAB00042AAB00182F7F004142 + 4A0079777700ADACAC00ADACAC00ADACAC007977770041424A00182F7F00042A + AB00042AAB001B3EB4003F519200000000000000000000000000374D94005371 + D4001840C50015359E003256CC001E45C70018379F003558CC001E45C6001736 + 9F003054CC005371D400374D94003A5ED600274ED100203FA8003A5ED6005574 + DB003B519D0000000000000000000000000000000000B3B1B100ECECEC00E4E4 + E400E4E4E400E4E4E400E4E4E400758FE800E4E4E400E4E4E400E4E4E400758F + E800E4E4E400E4E4E400E4E4E400758FE800BCBBBA00B3B1B100B3B1B100B3B1 + B100B3B1B100B3B1B10000000000000000000000000000000000354890004262 + CD0055659D005A699B005A699B00042FBD0055659D005A699B0055659D00042F + BD008196DE008196DE008196DE00042FBD005A699B005A699B0055659D004262 + CD0035489000000000000000000000000000000000003555BE000839DD000537 + E000032187002A3B7500042CB200042CB200042CB200042AAA004D4B4C009493 + 92009492920043414200454344004341420094929200949392004D4B4C004C66 + C0004B67C7001439B70041548F0000000000000000000000000039509A004B66 + C2001838A4001B3BA5002241A7001D3CA4001D3CA4002341A7001D3CA4001C3B + A4001F3EA6004B66C20039509A004064DC002F56DA002645AE004064DC005777 + E1003F56A40000000000000000000000000000000000B8B6B600F1F1F100EBEB + EB007892EB007892EB007892EB007892EB007892EB007892EB007892EB007892 + EB007892EB007892EB007892EB007892EB007B95EE007B95EE007B95EE00F1F1 + F100F1F1F100B8B6B60000000000000000000000000000000000384D96004364 + D3008192CB008197E1008197E1000934C5008192CB008197E1008494CD000934 + C50090A3E5008197E10092A5E5000934C5008197E1008197E1008494CD004364 + D300384D9600000000000000000000000000000000003555BE000537DE000537 + E000032187002C3C7600042DB700042DB700042DB600072AA0008F8E8D008483 + 82004342450024283900202537001E23360041404400848382008F8E8D004760 + B2004F6BCA00143BBC00455794000000000000000000000000003F56A5005676 + E1002951D9002545AF004468DE003259DA002847AF004669DE003259DA002645 + AE003F64DC005676E1003F56A5004F73EB003F66E8003352BA004E72EA00597B + EB00455FB30000000000000000000000000000000000C0BEBD00F9F9F900F6F6 + F600F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F6007E98 + F100F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F600F6F6 + F600F9F9F900C0BEBD00000000000000000000000000000000003C54A1004266 + DC000433D0000433D0000433D0000433D0000433D0000433D0000433D0000433 + D0000433D0000433D0000433D0000433D0000433D0000433D0000433D0004266 + DC003C54A100000000000000000000000000000000003555BE000537DE000537 + E000032187002F3F79000E38C6000E38C6000D34B500434757006D6B6B004242 + 4900333540002D2F3C00292C3B00262A3800313648002C303D006D6B6B004347 + 57000D34B5001B43C9004B5FA000000000000000000000000000425AAA005778 + E5003058DF002A4AB300496DE300385FE0002D4CB3004D70E300385EDF002B4A + B200456AE2005778E500425AAA005579F000476DEE003A59BF005478F0005A7D + F1004963BB0000000000000000000000000000000000C2C1C000FBFBFB00F9F9 + F9007F99F2007F99F2007F99F2004E73EF004E73EF004E73EF004E73EF004E73 + EF007F99F2007F99F2007F99F2007F99F2007F99F2007F99F2007F99F200F9F9 + F900FBFBFB00C2C1C000000000000000000000000000000000003F58A8004368 + E1005669A8005B6CA5005B6CA5000535D8005669A8005B6CA5005669A8000535 + D8005669A8005B6CA5005669A8000535D8005B6CA5005B6CA5005669A8004368 + E1003F58A800000000000000000000000000000000003555BE000537DE000537 + E0000321870030417A001B44CE001B44CE00193EBA004E4C4C004D4B4C004243 + 4A00393B42003537400032333F002E313E0025293800222839004D4B4C004E4C + 4C00193EBA00264DD0004E62A400000000000000000000000000445DB100506E + D2002A4AB7002F4FB8003553B9003251B8003251B7003856BA003251B8003150 + B8003150B9004F6DD200445DB1005D80F2005075F100405EC1005B7EF2005C7F + F2004C66BD0000000000000000000000000000000000C5C3C300FDFDFD00FCFC + FC00FCFCFC00FCFCFC00FCFCFC004F74F00099AEF50099AEF50099AEF5004F74 + F000FCFCFC00FCFCFC00FCFCFC00819BF400FCFCFC00FCFCFC00FCFCFC00FCFC + FC00FDFDFD00C5C3C30000000000000000000000000000000000425AAD004469 + E6008295D600819AEE00819AEE000A3ADE008295D600819AEE008598D7000A3A + DE008295D600819AEE008598D7000A3ADE00819AEE00819AEE008598D7004469 + E600425AAD00000000000000000000000000000000003555BE000537DE000537 + E0000321870032427C002951D6002951D6002448C0004F4D4E004F4D4E004545 + 4A006060650072737A0053555D00353741002B2F3D00272B3A004F4D4E005856 + 56002448C0003056D7005166AA000000000000000000000000004A64BB005A7D + F1004169EF003857BF005B7EF1004C71F0003D5BC0005E80F1004C71F0003B59 + BF005478F000597CF1004A64BB006684E8005F81F2004D68C2006482E8005E80 + F2004E68BF0000000000000000000000000000000000C8C7C600FFFFFF00FFFF + FF00829CF500829CF500829CF5005075F1005075F1005075F1005075F1005075 + F100829CF500829CF500829CF500829CF500829CF500829CF500829CF500FFFF + FF00FFFFFF00C8C7C600000000000000000000000000000000004862B9004A70 + F0001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4C + EC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC004C71 + F0004862B900000000000000000000000000000000003555BE000537DE000537 + E0000321870035457F004368E4004368E4003E60D1004F526000686666004E4C + 4D00959495008C8C8E008283880044444A00373944003A3C4400686666004F52 + 60003D5FD1004469E400586DB6000000000000000000000000004B65BD005C7F + F200466DF0003E5CC1006183F2005176F100425FC1006586F3005176F100405E + C100597CF2005B7EF2004B65BD006D89E9006787F300536DC2006986E8005F81 + F2004F69C10000000000000000000000000000000000CAC8C700FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00829C + F500FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00CAC8C700000000000000000000000000000000004A64BB004E73 + F1006777AC006777AC006777AC006777AC006777AC006777AC006777AC006777 + AC006777AC006777AC006777AC006777AC006777AC006777AC006777AC005075 + F1004A64BB00000000000000000000000000000000003555BE000537DE000537 + E00003218700324176005275EB005275EB004D6FDE004F5C8B008F8D8D005452 + 530071707000969496006F6E710049494E003A3B4300514F51008F8D8D004F5C + 8B004D6FDE004E72EA005C72BB000000000000000000000000004C66BD005473 + D9003D5BC100425FC1004965C2004763C1004864C1004C67C3004763C1004561 + C100425FC2005372D9004C66BD00728DE9006F8DF3005871C3006E8AE8006082 + F200516BC20000000000000000000000000000000000C9C7C600FCFCFC00FBFB + FB00FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00809A + F300FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00FBFB + FB00FCFCFC00C9C7C600000000000000000000000000000000004B65BC005075 + F10090A4E80099AFF70090A4E80090A4E80099AFF70090A4E80090A4E80099AF + F70090A4E80090A4E80099AFF70090A4E80090A4E80099AFF70090A4E8005479 + F1004B65BC0000000000000000000000000000000000465EB2001743D5001844 + D60019307D0039497A00809AF300657AC2006D84D1005D77D100908E8E007F7D + 7D00575555004F4D4D004D4B4D0047474A00545254007F7D7D00908E8E003E52 + 94004158A5004059AC005F75C1000000000000000000000000004E68BF005F81 + F200567AF2004C67C200718FF4006586F300516BC2007693F4006586F3004F69 + C2006888F3005D80F2004E68BF00829DF5007C97F4005D75C3007491F4005F81 + F200536DC40000000000000000000000000000000000BDBBBA00E8E8E800DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00E8E8E800BDBBBA00000000000000000000000000000000004D67BE00587C + F2004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1005E80 + F2004D67BE00000000000000000000000000000000005E79D0006B86E2006179 + CA005669AB005669AB007B97F4006279C4006B84D6007B97F4006879B2005959 + 5F00757373008F8E8D008F8E8D008F8E8D007573730059595F006879B2005669 + AB004D62AA004B62AE00617AD3000000000000000000000000004F69C0006082 + F2005B7EF2004F6AC2007794F4006B8AF300566FC3007C97F4006B8AF300536D + C2006D8CF3005E80F2004F69C00086A0F5007995F400566FC3006989F3005C7F + F200556FC60000000000000000000000000000000000AEADAC00D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200AEADAC00000000000000000000000000000000004D67BF005B7E + F2004D5B8B005563930055639300556393005563930055639300556393005563 + 9300556393005563930055639300556393005563930055639300556599006283 + F2004D67BF0000000000000000000000000000000000627ACE007592F4003E4E + 8000343D5D006071AB0089A2F60089A2F60089A2F60089A2F600829AEA007A8E + D5006A7191005A585800646262005A5858006A7191007A8ED500829AEA00829C + F5006D8CF3006F8CF1008EA3E900000000000000000000000000506AC1005775 + DA004D68C200546EC2005B73C4005A72C3005B73C3006077C4005B73C3005871 + C300526CC3005674DA00506AC1009CB1F70096ACF7007A91DC00819BEF006483 + EB005670C700000000000000000000000000000000005263A1005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005263A100000000000000000000000000000000004E68C0005F81 + F2002C3B6C003242790032427900324279003242790032427900324279003242 + 7900324279003242790032427900324279003242790039497E005B6894006787 + F3004E68C000000000000000000000000000000000005C75CC00728ADD00404F + 8100404C72006575AC0091A8F60092A9F60092A9F60093AAF60097ADF70099AE + F30095A9EB008C9EDD008C9EDD008C9EDD0095A9EB0098ADF30094ABF600819B + F5007390F2006983D80000000000000000000000000000000000526CC3006283 + F2006989F3005D75C300859FF5007E99F500657BC3008DA5F6007F9AF5006279 + C4007A96F4006082F200526CC300375EE5003159E4002551E3005771C8000000 + 00000000000000000000000000000000000000000000556CBD005A79DF000536 + D900042EBB00042BAE00042EBB000536D9000536D9000536D9000536D9000536 + D9000536D9000536D9000536D9000536D900042EBB00042BAE00042EBB000536 + D9005A79DF00556CBD0000000000000000000000000000000000506AC1006686 + F30038446D003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C + 7A007982A2005C688F00737D9E004A5782003E4C7A003E4C7A00646F9400708E + F400506AC1000000000000000000000000000000000000000000000000008DA2 + E800536DC400536DC4004E66B8004B62B0004E66B800536DC400546DC0005870 + BF007D8DC6008D9BC7008E9BC7008D9BC7007789C5004F69BE00556EC100637A + CE008DA2E8000000000000000000000000000000000000000000536DC4006283 + F2006C8BF3006077C3008AA3F600839EF5006B80C40092A9F600849EF500657B + C3007C97F4006183F200536DC4005771C8005771C8005771C8005A76D2000000 + 00000000000000000000000000000000000000000000566FC6006A89F200053A + EA005574DB006886EB005574DB00053AEA00053AEA00053AEA00053AEA00053A + EA00053AEA00053AEA00053AEA00053AEA004D6CD3006482E7004D6CD300053A + EA006A89F200566FC60000000000000000000000000000000000516BC2006A8A + F3003D486E0044517A0044517A0044517A0044517A0044517A0044517A004451 + 7A009097B0007881A000848CA8007881A00044517A0044517A00687294007491 + F400516BC2000000000000000000000000000000000000000000000000000000 + 000000000000DAE1F900637BCE00556FC600637BCE00DAE1F9006C84D800607B + D9007D98F500AABCF800ADBEF800AABCF8007491F4005775D9006C84D8000000 + 0000000000000000000000000000000000000000000000000000546EC5005876 + DA00566FC3006379C4006C81C5006E82C4007083C5007587C6006E82C400687D + C4005B73C4005775DA00546EC500000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C8007794F4001C4C + ED0090A7F4007995F40090A7F4001E4EED001E4EED001E4EED001E4EED001E4E + ED001E4EED001E4EED001E4EED001E4EED0090A7F4007995F40090A7F4001C4C + ED007794F4005771C80000000000000000000000000000000000526CC3006D8C + F300434D6E00485378004A557B004A557B004A557B004A557B004A557B004A55 + 7B004A557B004A557B004A557B004A557B004A557B004A557B006F7896007995 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A8B8F0005570 + CB00466BE300CFD8F800CFD8F800CFD8F8004165E300546ECA00A8B8F0000000 + 00000000000000000000000000000000000000000000000000005670C7005D80 + F200587CF2005972C3008EA6F60093AAF600798AC500A3B6F80087A1F5005B73 + C3006989F3005B7EF2005670C700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900889FEB0091A6 + EC0097ABED0098ABED0098ABED0099ACED0099ACED0099ACED0099ACED0099AC + ED0099ACED0099ACED0099ACED0099ACED0099ACED0098ABED0097ABED0091A6 + EC00889FEB005872C900000000000000000000000000000000005670C6007794 + F400AABCF800ADBEF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ADBEF800A9BBF800829C + F500546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C8006583 + EB00809AEE007B92DD009BB0F700AEBFF8009FAEDF00B2C2F9009EB3F7007C92 + DD00809AEE006382EB005771C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005B76D2005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000000000000000000000000000005A74C7008CA3 + ED009BB0F700A6B9F800A9BBF800AABCF800AABCF800AABCF800AABCF800AABC + F800AABCF800AABCF800AABCF800AABCF800A9BBF800A5B8F80098AEF70092A7 + EF005972C6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D2005771 + C8005771C8002A4DBF00425FC100566FC3005B73C3005A72C3004360C100294C + BF005771C8005771C8005A76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000728BDF007289 + D7009BAFF1009FB2F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3 + F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F2009EB1F2009AAEF1007389 + D700728BDF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003044890030448900000000000000000000000000000000000000 + 0000000000003044890000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000263569004F5E9400000000000000000000000000000000000000 + 0000536BBA002635690000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BC007D94DF007B94E7007F97E7008098E7008199E7008199E7008199E7008199 + E7008199E7008199E7008199E7008199E7008098E7007F97E7007C94E5006377 + BB004D66BC000000000000000000000000000000000000000000000000000000 + 00000000000029397200627DD900334992000000000000000000000000003349 + 92005E71B3002939720000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F58AD003D59B9003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003A5097005169BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8004E66 + B7006686F3006888F3006F8DF3007592F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007391F4006F8DF3006888F3007F99 + F0004E66B700D2DBF80000000000000000000000000000000000000000000000 + 0000000000002C3C7700617DDA00445591007389D300000000007389D300495A + 9300526FD2002C3C770000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000283C82000730BA00042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB9003453B900283C820000000000364C9A002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D0000000000000000000000000000000000AEBDF100556C + BB00617FE30040508500576AAB00819BF500819BF500435180005D70B000829C + F500829CF5005A6CAB005C6FAF00819BF500425080005669AA005469AF007B97 + F400556CBB00AEBDF10000000000000000000000000000000000000000000000 + 0000000000002E3F7C00617DDB005872C70032478800CED7F70033478800647B + CB002447BB002E3F7C0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027387A00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD001035B10027387A00000000002F4284005872CB004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8005872CB00000000000000000000000000000000008FA3E900627A + CD004862BC0036488600445BA9006283F2006283F20031417700445BA9006283 + F2006283F200445BA900445BA9006283F20031417700445BA900445BA9007290 + F400627ACD008FA3E90000000000000000000000000000000000000000000000 + 00000000000032458600617EDF00173CBA005472D800435492005D7ADA001238 + B700042BAF003245860000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002A3C7E00042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB0002A3C7E0000000000354A92005875D600BBC2 + DA00D0D8F400D0D8F400D0D8F400CED6F300CED6F300CED6F300CED6F300CCD5 + F200CDD6F300CED6F300CED6F300D0D8F400D1D9F400D1D9F300D3DAF400D5DC + F400E9EDFA005875D60000000000000000000000000000000000768EE1006079 + CD003955B3002F458F003751A8005075F1005075F100273975003751A8005075 + F1005075F1003751A8003751A8005075F100273975003751A8003751A8006183 + F2006079CD00768EE10000000000000000000000000000000000000000000000 + 00000000000034478B00627FE100042CB4002E53CB005B73C7002E53CB00042C + B400042CB40034478B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002C408400042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB9002C40840000000000384E99005876DB00BDC4 + DC00D2DAF500D1D9F500D1D9F500D1D9F500D1D9F500D1D9F500CFD7F400CFD7 + F400CED7F400CED7F400CED7F400CED7F500CED7F500CED7F500CED7F500CED7 + F500E6EBF9005876DB00000000000000000000000000000000007790E100657E + D3002844A200243D8E002C48A7003E67F0003E67F0001E3274002C48A7003E67 + F0003E67F0002C48A7002C48A7003E67F0001E3274002C48A7002C48A7005075 + F100657ED3007790E10000000000000000000000000000000000000000000000 + 000000000000374B8F006280E300042EB9000932BC004164D8000932BC00042E + B900042EB900374B8F0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002F448C000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2002F448C00000000003C53A0005A79E000C0C7 + DE00D5DDF700D3DBF600D3DBF600D3DBF700D2DAF600D2DAF600D2DAF700D1D9 + F600D2DAF700D1D9F600D0D9F600D0D9F600D0D9F600CFD8F600CFD8F600CFD8 + F600E6EBFA005A79E00000000000000000000000000000000000516AC2005E7A + D8000D257600112D8A00123095001A45D6001A45D6000C216800123095001A45 + D6001A45D60012309500123095001A45D6000C2168001230950012309500335B + E1005E7AD800516AC20000000000000000000000000000000000000000000000 + 0000000000003B509A00617FE5000430C4000430C4000430C4000430C4000430 + C4000430C4003B509A0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000354B9B000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D400042AAA00042A + AA00042AAA00042EB9000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D400354B9B0000000000435CAF006181EC00C2C9 + E000D8E0FA00D8E0FA00D7DFFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D6DE + FA00D6DEFA00D6DEFA00D6DEFA00D5DDFA00D5DDFA00D4DDFA00D4DDFA00D4DD + FA00E9EEFC006181EC00000000000000000000000000000000004D66BA005E7A + D80003185F0005207B00062489000833C3000832BD0004195F00062489000833 + C3000832BD0005218000062489000833C30004195F0005218000062489001A43 + CE005E7AD8004D66BA0000000000000000000000000000000000000000000000 + 0000000000003E539E006180E7000432C9000432C9000432C9000432C9000432 + C9000432C9003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003850A3000537DD000537DD000537 + DD000537DD000537DD000537DD000537DD000537DD000537DD00C5C3C200C3C1 + BF00C0BEBC00042EBC000537DD000537DD000537DD000537DD000537DD000537 + DD000537DD000537DD000537DD003850A300000000004660B6006182F100C5CB + E100DAE1FB00DAE1FB00DAE1FB00D9E1FB00D9E1FB00D9E1FB00D8E0FB00D8E0 + FB00D8E0FB00D7DFFB00D7DFFB00D7DFFB00D6DEFB00D6DEFB00D6DEFB00D6DE + FB00EBF0FD006182F100000000000000000000000000000000004960B2005D7D + EA0002175D000216580002165800042CB300042BAC0002175D0002175D00042C + B300042BAC000216580002175D00042CB30002175D000216580002165800173E + C2005D7DEA004960B20000000000000000000000000000000000000000000000 + 0000000000004056A3006180E9000433CE000433CE000433CE000433CE000433 + CE000433CE004056A30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003B54AA000539E5000537E0000434 + D1000433CE000433CE000433CE000433CE000433CE000433CE00D9D8D700D7D5 + D400D4D2D100042BB0000433CE000433CE000433CE000433CE000433CE000433 + CE000434D3000538E2000539E5003B54AA00000000004962BA006283F200C7CD + E300DEE5FC00DDE4FC00DDE4FC00DCE3FC00DCE3FC00DCE3FC00DBE2FC00DBE2 + FC00DBE2FC00DAE2FC00DAE2FC00DAE2FC00D9E1FC00D9E1FC00D8E0FC00D8E0 + FC00EBF0FD006283F2000000000000000000000000003C4E9300405190000D26 + 7800031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D000D2678003C4E8C00879DE200000000000000000000000000000000000000 + 000000000000455DAE006887ED001543DC001543DC001543DC001543DC001543 + DC001543DC00455DAE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F59B000193BAD004565CF005D7D + EA006082F2006082F2006082F2006082F2006082F2006082F200D9D7D600D3D1 + D000CDCBCA00516DCD006082F2006082F2006082F2006082F2006082F2006082 + F2005B7BE5003959C2001646E9003F59B000000000004C65BC006B8AF300CCD1 + E300E3E9FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DDE4 + FC00EDF1FE006B8AF3000000000000000000000000007A93E4003F64E0004569 + E0004A6DE0004C6EE0004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6F + E1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004C6EE000486B + E0004569E0004266DD004C64B700000000000000000000000000000000000000 + 0000000000004760B3006D8BF0001F4CE1001F4CE1001F4CE1001F4CE1001F4C + E1001F4CE1004760B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000415AB1005E7CE2005579F100486F + F000466DF000466DF000466DF000466DF000466DF000466DF000F1F0F000EFED + ED00ECEBEA003B5DCC00466DF000466DF000466DF000466DF000466DF000466D + F000486FF000587CF2002247C400415AB100000000004D67BE006B8AF300CED3 + E300E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00EFF3FE006B8AF3000000000000000000000000007290F4006A8AF3006888 + F300708EF4007290F4007290F4007391F4007391F4007391F4005771CE00354A + 940032458D007391F4007391F4007391F4007290F4007290F4007290F4006E8D + F3006888F3006A8AF3005771C800000000000000000000000000000000000000 + 0000000000004A63B8006F8DF1002854E7002854E7002854E7002854E7002854 + E7002854E7004A63B8004A63B8004A63B8004A63B8004A63B800516BC7000000 + 000000000000000000000000000000000000425BB200597CF2005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1004766CD004766 + CD004766CD004B6CDA005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1004D68C400425BB200000000004E68BF006B8AF300CFD4 + E300E7ECFD00E6ECFD00E6ECFD00E6ECFD00E6EBFD00E6EBFD00E5EAFD00E5EA + FD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8 + FD00F0F3FE006B8AF3000000000000000000000000005872CA005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9003C53A3005072 + E2000535D7005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90093A8ED00000000000000000000000000000000000000 + 0000000000004F69C0007894F4003D66EF003D66EF003D66EF003D66EF003D66 + EF003C65EF004F69C0003656C2005579F1005378F1007592F4004F69C0000000 + 000000000000000000000000000000000000445DB5006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3007491F400445DB50000000000516BC2006D8CF300D3D7 + E400EBF0FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E7ECFD00E7ECFD00E6EC + FD00F2F5FE006D8CF30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAF004F73 + EB000538E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000506AC1007C97F400476EF000476EF000476EF000476EF000476E + F000466DF000506AC1003555C2005176F1005075F1007290F400506AC1000000 + 000000000000000000000000000000000000455EB6007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F400455EB60000000000526CC3007491F400D6D9 + E400EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0 + FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00F4F7FE007491F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004760B8005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC200819BF5005075F1005075F1005075F1005075F1005075 + F1005075F100516BC2002A4DBF004169F0004068F0006B8AF300516BC2000000 + 0000000000000000000000000000000000004660B70086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F5004660B70000000000546DC4007491F400D8DB + E400F0F3FE00EFF3FE00EFF3FE00EFF3FE00EEF2FE00EEF2FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0FD00EAEF + FD00F4F7FE007491F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C65BD005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC40088A2F6006485F3006485F3006485F3006485F3006485 + F3006384F300536DC4000F35B6001546EC001546EC00577BF200536DC4000000 + 0000000000000000000000000000000000005570CD00A3B6F500A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F7008798D6005570CD00000000005770C7007B97F4001B46 + D500254ED600274FD600274FD6002850D6002850D6002850D6002850D6002850 + D6002850D6002850D6002850D6002850D6002850D600274FD600274FD600214A + D5001B46D5007B97F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004E68BF005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546DC4008BA4F6006F8DF3006F8DF3006F8DF3006F8DF3006F8D + F3006E8DF300546DC400042BB0000538E5000538E5005075EF00546DC4000000 + 000000000000000000000000000000000000000000004963BA004963BA004963 + BA004963BA004963BA004963BA003D5BC300042EBC003B57B9004963BA004963 + BA004963BA004963BA003B57B900042EBC004963BA004963BA004963BA004963 + BA004963BA004963BA005670CE0000000000000000005871C800829CF5003E67 + F0005176F1005579F100577BF200597CF200597CF200597CF200597CF200597C + F200597CF200597CF200597CF200597CF200587CF200577BF2005579F1004A70 + F0003E67F000829CF50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC6008FA7F6007995F4007995F4007995F4007995F4007995 + F4007995F400556EC600042AA9000434D3000434D3005073E900556EC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A64BB000430C4004760B300000000000000 + 000000000000000000004760B3000430C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C90089A1F00093A9 + F2009DB0F2009FB2F400A0B3F400A1B4F400A1B4F400A1B4F400A1B4F400A1B4 + F400A1B4F400A1B4F400A1B4F400A1B4F400A0B3F400A0B3F4009FB2F40098AD + F20093A9F20089A1F00000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005971C7005075 + F1001345EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005770C8009DB1F3008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F600697ECB0003269B00042AAA000930B3005D78D6005770C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516ABE002049D4004862BD004D66BD004D66 + BD004D66BD004D66BD004862BD002049D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005972CB006A86 + E4006A86E4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDA0095A8E80097ADF70096ACF70096ACF70096ACF70096AC + F70096ACF700758AD4001A36940003269B002042B3005E78CF005874CF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000536CC0006481E4000B39D4000434D3000434 + D3000434D3000434D3000B39D4006D88E3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000093A8ED005872 + CA005872CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED007086D2009DB2F70098AEF7009CB1F7009DB2F7009AAF + F70095ACF70096A9EB005E74BF0016349A004D6ACB00657BC5007C93E6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006680D9007489D400879FF200829DF500829D + F500829DF500829DF500879FF2007489D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900647EDB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E3E + 79002A396C0090A1D600C8C8C800B6C3EC00667CC4003D559D0025356A002535 + 6A00243468003C5198006277BD00ABB9E500C3C3C30090A1D6002A396C002E3E + 7900000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008196DC002F42 + 820056659A002F4282008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DADADA00CECECE00C0C0C000C0C0C0009EACDC00273360002631 + 590026315900384987008D9DD300C0C0C000C0C0C000CECECE00D3D3D3000000 + 0000000000000000000000000000000000000000000000000000000000003B51 + 9F0003279F0022377D002F3F79003C56AA002F4CAF001F3FA9000F31A3000F31 + A3000F31A3001F3FA9002F4CAF003C56AA002F3F790022377D0003279F003B51 + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000859AE000364C98004C5D99005F79CD003D5C + C4002447BD003D5CC4005F79CD00697CBD00364C9800859AE000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002B3F800030458B0000000000000000000000 + 00000000000000000000000000004055A3007085D00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000CED7F6002A3D7D0056669F004B5989002A3A + 73002A3A73007381AE005264A4002A3A73000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005871 + C1001C368C00374986003F57A9001639AD001034AB002344B1003553B7003553 + B7003553B7002344B1001034AB001639AD003F57A900374986001C368C005871 + C100000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A9B9EE005062A1006E81C300627CD300294EC600294E + C600294EC600294EC600294EC6004161CD006E81C3005062A10039509E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008196DB002E4187005366A6003F4E84007287D200000000000000 + 0000000000000000000090A3E30039487D003F4E84002E4187008196DB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F65B600213783007181B600A3B4EB000000 + 000000000000354B97007281B300213783000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008297 + DE003C4E8D003C58B6002244B6002849B8005C73C1009EA8C800CCCCCC006C6C + 6C00CCCCCC009EA8C8005D74C200294AB9002244B6003C58B6003C4E8D008297 + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000627ACE00465A9E006882DB004A6AD6003E61D3003E61D3002E53 + CF002E53CF002E53CF002E53CF003257D0005674D900748CDD006E82C600627A + CE00000000000000000000000000000000000000000000000000000000000000 + 0000364C980047578E005568AB003C58B800576CAF0030428500000000000000 + 0000000000000000000030468D005568AB004B65BB005568AB0047578E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F428600324CA4004F5E9300000000000000 + 000000000000A5B6EC004F5E9300324CA4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D0D8F7003C4E + 91002348C300163DBE004B66C100DFDEDE00F5F5F500F8F8F800F9F9F900FAFA + FA00FAFAFA00FBFBFB00F8F8F800E2E2E2004D68C300163DBE002348C3003D50 + 9300D0D8F7000000000000000000000000000000000000000000000000000000 + 00005469B1008BA0E8005E7CE2005A6DB400445AA9004D67C0006F83C8007590 + EA004469E3003A60E1004E67BE00445DB200445AA9005A6DB4007388CF009FB0 + EA005469B100ABBBF00000000000000000000000000000000000000000000000 + 0000A8B7ED00495A96006A81CF00042DB6001C41BD005771C500BAC7F2000000 + 000000000000374B9400576FBE002045BE000E35B8006880CF004D5E9B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334689002440A30033468900000000000000 + 00000000000000000000334689001C399F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000566FC400455C + A900113AC3004765CB00B1B4BB00E2E2E200F5F5F500F6F6F600F7F7F700F8F7 + F700F8F8F800F9F9F900F9F9F900FAFAFA00B7BAC1004967CD00113AC300455C + A900566FC40000000000000000000000000000000000000000004B66BF00435C + B4008F9FDA005878E0005B71BD009DAFED0000000000000000004860B5008299 + E7005B7DEC004E6EDD00455EB40000000000000000009DAFED00516AC600859C + E60092A3DB004761BA004B66BF00000000000000000000000000000000000000 + 000000000000455EB2006B7DB900042FBF00042FBF003C5DCC00465EB2000000 + 0000000000005267AE004161CE00042FBF004363CE007081BD00455EB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000465EB100364A8F002B49AB00364A8F00000000000000 + 000000000000364A8F00364A8F001D3CA5000000000000000000000000000000 + 00000000000000000000000000000000000000000000D1DAF7003F539C004463 + CA003156CF00A2AAC700E1E1E100EEEDED00D6D6D600F3F3F300F4F4F400F5F5 + F500F6F5F500F7F6F600F7F7F700F8F7F700E9E9E900A8B1CE003055D0004463 + CA003F539C00D1DAF70000000000000000000000000000000000455FB600A4B4 + E900708CE9006076C4005169BB00000000000000000000000000627CD500798F + DC006A89F2005471D500627CD5000000000000000000000000004E67C5006076 + C400708CE9006E82CB00455FB600000000000000000000000000000000000000 + 000000000000D1DAF70044589E002048CD000431C7000E39CA00485CA000899D + E300A9B9EF005772D1001740CB000431C7007189D70044589E00BDC9F3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000394D9500394D95003350B300394D9500000000000000 + 0000000000003953AE00394D95001E3EAC000000000000000000000000000000 + 00000000000000000000000000000000000000000000556EC7004B68C700385E + DD009CA5C800E5E4E400E9E8E800EAEAEA00EBEAEA00E1E0E000EEEDED00EBEB + EB00EFEFEF00F1F0F000F1F1F100F2F1F100F3F3F300F1F0F000A5AED100385E + DD004B67C700556EC700000000000000000000000000000000004861B8008CA3 + EF004F74F100607EE0004A63BC00000000000000000000000000AEBDF200657A + C400839EF500586FBF00AEBDF200000000000000000000000000BFCCF5008DA1 + E800839EF500587CF2004861B800000000000000000000000000000000000000 + 0000000000000000000000000000778DD7002C55DE000536D9004D6FE100576D + BA005369B4000D3DDA000536D9002751DE00455DB00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003E53A1003E53A1004260C2003E53A100000000000000 + 0000000000004260C2003E53A1002143B8000000000000000000000000000000 + 000000000000000000000000000000000000000000004960B3004C6DDB003A61 + E300C8C9D000E7E6E600E6E6E600E6E5E500E7E6E600E8E7E700BEBEBE00D2D2 + D200D5D4D400EDECEC00EEEDED00EEEEEE00F0EFEF00F1F0F000CFD1D8003960 + E2005473D9004660B700000000000000000000000000000000004962B9008FA4 + EF005E7DE500516ABD0090A4EA00000000000000000000000000D2DBF8006076 + C20087A1F500576FBF00D2DBF800000000000000000000000000000000005970 + C0008CA1EC00849EF5004962B900000000000000000000000000000000000000 + 00000000000000000000000000005C71BD006886EA000E3FE200204EE5005A78 + DE00607BDA000538E2000A3CE3005E7EEA00758CDE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004157A7004157A7004A66C9004157A700000000000000 + 0000000000004A66C9004157A7002246BD000000000000000000000000000000 + 00000000000000000000000000000000000000000000455EB2005474E0004369 + E900E0E0E000EFEEEE00EDECEC00EAE9E900E9E8E800E7E6E6007B7979006A68 + 68007F7D7D00E9E8E800EAE9E900EBEAEA00ECECEC00EDECEC00DEDDDD004268 + E8005878E100455EB200000000000000000000000000000000004A63BA0092A8 + F0005971C4007790E2000000000000000000000000000000000000000000546C + BF0091A7F2005068BD0000000000000000000000000000000000000000007790 + E200697EC90091A7F2004A63BA00000000000000000000000000000000000000 + 00000000000000000000000000005570CC00768DD9004068EF00073BEA003560 + EE003A63EE00073BEA003963EE00778EDD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000445CAD00445CAD00516ED000445CAD00000000000000 + 000000000000516ED000445CAD002449C4000000000000000000000000000000 + 000000000000000000000000000000000000000000004A64BB006E8BEE005A7D + F200E9E9E900F9F8F800F8F8F800F6F6F600F5F5F500F4F4F4009F9E9C009290 + 8E009F9D9B00EDECEC00EBEBEB00EAE9E900E7E6E600E6E5E500D7D6D600587C + F2007490EE004A64BB00000000000000000000000000000000004C65BC007A8D + D000000000000000000000000000000000000000000000000000000000004C65 + BC009AAEF1004C65BC0000000000000000000000000000000000000000000000 + 000000000000526CC9004C65BC0000000000000000005F7FE9006381E9006382 + E9006483E9006483E9006483E9006784EA006A87EA006484EE001A4AED001A4A + ED001A4AED002654EE006484EE006986EA006583E9006483E9006483E9006483 + E9006382E9006381E9004A64BB00000000000000000000000000000000000000 + 000000000000000000004963B9004963B900607CDC004963B900000000000000 + 000000000000607CDC004963B9003458D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC100819BEF006384 + F300DBDDE200FCFCFC00FBFBFB00FAFAFA00F9F9F900F9F8F800E0DFDF005856 + 5500DEDDDD00F3F3F300F2F1F100F1F0F000EEEDED00EDECEC00CCCDD2006183 + F20089A1F100526CC10000000000000000000000000000000000536ECA004F6A + C50000000000000000000000000000000000000000000000000000000000536E + CA009DB0F200536ECA0000000000000000000000000000000000000000000000 + 00000000000000000000536ECA000000000000000000587CF2001949ED001D4D + ED002050ED002150ED002150ED002352ED002352ED002352ED002352ED002352 + ED002352ED002352ED002352ED002352ED002251ED002150ED002150ED001F4F + ED001D4DED001949ED004B65BC00000000000000000000000000000000000000 + 000000000000000000004C66BD004C66BD006782E0004C66BD00000000000000 + 0000000000006782E0004C66BD003C60D7000000000000000000000000000000 + 000000000000000000000000000000000000000000005F79D2008DA1E6006D8C + F300BEC5DE00FAFAFA00FDFDFD00FDFCFC00FCFCFC00FCFBFB00FBFAFA007674 + 7300F9F9F900F8F7F700F7F7F700F6F6F600F4F4F400F0EFEF00B7BDD6006B8A + F30092A5E7005F79D20000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546ECB006177C5006177 + C5007893ED006177C5006177C5005C73C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005B7EF2001F4FED002453 + EE002957EE002A57EE002B58EE002D5AEE002D5AEE002D5AEE002D5AEE002D5A + EE002D5AEE002D5AEE002D5AEE002D5AEE002C59EE002B58EE002A57EE002755 + EE002453EE001F4FED004C66BD00000000000000000000000000000000000000 + 000000000000000000004D67BE004D67BE006E88E2004D67BE00000000000000 + 0000000000006E88E2004D67BE004365DA000000000000000000000000000000 + 00000000000000000000000000000000000000000000919FD0005C74C500A6B8 + F3009FB3F700C5CADA00EFEFEF00FFFFFF00FFFFFF00FFFEFE00FEFEFE008785 + 8400FEFEFE00FDFDFD00FDFDFD00FCFCFC00ECECEC00C4C9D9009DB2F600A3B5 + F3005D75C5008A97C60000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC005069C0005069 + C000A9BAF3005069C0005069C0005069C0000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF005870C300829AEB00426AF000426A + F000426AF0004D72F100849CEE005870C3004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF00546FCB00000000000000000000000000000000000000 + 000000000000000000004F69C0004F69C000879EE9004F69C000000000000000 + 000000000000879EE9004F69C0005171DE000000000000000000000000000000 + 000000000000000000000000000000000000000000007F7E7D008390C10092A3 + DD0091A8F600B2C1F300C2C3C700FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9B + 9A00FFFFFF00FEFEFE00FEFEFE00EBEBEB00C0C1C500B1C1F3008DA5F50091A2 + DD00818FBE008785840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C100B0C0F600516AC10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005975D1007B90DA007592F4004D72F1007794 + F4007995F4004D72F1007592F4007D92DD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000506AC100506AC1009AAEF0005D75C600000000000000 + 0000D3DBF9009AAEF000506AC1005977DF000000000000000000000000000000 + 00000000000000000000000000000000000000000000B2B0AF009A9CA6005E76 + C70096ACF700A3B6F800B8C4EC00E5E5E500FBFBFB00FFFFFF00FFFFFF00D7D6 + D600FFFFFF00FFFFFF00FBFBFB00E5E5E500B7C3EC00A0B4F70092A9F6005E76 + C7009498A100B5B4B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000092A7EC00526B + C200A0B3F400526BC20092A7EC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006278C800869EF2005F81F2006989F300A1B3 + EE00A3B3ED00567AF2005C7FF200859EF20092A5EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200516BC200A3B2E7008396D900000000000000 + 0000607BD700A3B2E700516BC200607DE1000000000000000000000000000000 + 00000000000000000000000000000000000000000000BDBCBB00A3A1A0007978 + 77007B90D300BAC8F600A9BBF800C9D5FB00D1D8F200D0D3DE00CECECE006D6D + 6D00CECECE00D0D3DE00D1D8F200C8D4FB00A5B8F800B8C6F6007B90D3007372 + 71009B999800B5B4B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB1F000BDCAF6009FAE + E3007287CF00A6B4E400CAD5F800798DD2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A92E4008CA4F4006D8CF3006A8AF30099ABEA00556F + CB00556FCB00859FF5006A8AF3006D8CF3007389D3007A92E400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400546DC400718AE0007388CF00C9D3F500C9D3 + F500B2C0EC00718AE000546DC4006E89E4000000000000000000000000000000 + 00000000000000000000000000000000000000000000B4B3B200908E8D007D7B + 7A006C7BAA00758AD200B8C6F200B8C7F900C1CEFA00CED8FB00D5DEFC00D5DE + FC00D5DEFC00CDD8FB00BFCDFA00B6C6F900B6C4F200748AD200707DAE007371 + 700089888700B1B0AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000627DD8009AAAE1005973 + CF00D3DBF9005973CF00A4B2E300C0CBF1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005971C80086A0F5007592F4007C97F4006B81CC009FB1 + F000AEBEF300A7B9F5007F9AF5007592F40092A7EE005D75C800D3DBF9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC500556EC500000000009FB1F000556EC500556E + C5005D78D50000000000556EC5007892E6000000000000000000000000000000 + 00000000000000000000000000000000000000000000A9A8A600898887006E6C + 6B008C8B8B00919BBC00637BCB00C6D1F700C0CEFA00BECCFA00BAC9FA00BAC9 + FA00B7C7F900BCCAFA00BECCFA00C4D0F700627ACB0097A1C200989796006F6E + 6D00817F7E00ADABAA0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000566FC7007085CF00D3DB + F90000000000D3DBF9007488D100C7D1F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006983DD007E92DA007F9AF5007F9AF5009AAFF7005D78D5000000 + 0000000000008DA0DF009CB1F7007F9AF50094ABF6008195DC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600566FC6000000000000000000000000000000 + 00000000000000000000566FC6008AA0EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000B3B3B300A19F9D00CBCA + CA00F2F1F100DEDEDE00B9B9B9007D808B008891B2006B81D3005771C8005771 + C8005771C8006681D8008A93B4007D808B00A8A8A800D1D1D100F2F2F200D6D5 + D500A9A8A6009F9F9F0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000647EDA00B1BEE8005B76 + D200D3DBF9005B76D200AAB8E800A5B5ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000647EDA0090A3E4009DB2F70093AAF600AABCF7008497D900000000000000 + 0000000000007C93E5008497D900A9BBF7008BA4F60097ADF70093A6E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000647EDA008B9FE2005B76D200AFBFF300000000000000 + 0000000000005B76D2008C9EDF00A2B2E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B4B4B400AAA9 + A700E4E4E400D2D1D100BAB9B900A09F9D00A0A09F0000000000000000009896 + 94000000000000000000B4B4B400A09E9D00B1B0B000C9C9C900E1E0E000B1AF + AE00A0A09F000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB2F000D3DCF900B2BF + E9007B8FD400AEBCE700CDD7F800798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005B76D2008195D900AEBDF100A0B4F700A3B4ED005A74CF00000000000000 + 000000000000000000005A74CF00A1B1EC00ACBDF700A2B2EC00778CD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF600BFCBF200A2B1E600778BD3005872C9005872 + C9005872C900A0AFE300BCC9F2006F84D0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9D9B00A9A7A500A1A09E00C8C8C800000000000000000092918F009896 + 940092918F000000000000000000D5D5D5009F9D9B00A9A7A5009F9D9B00C8C8 + C800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758AD300BFCA + EF00D7DFF900C1CBEF00758AD3006B85DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007C93E6005C75CC00A5B6EF006F84D0009FB2F000000000000000 + 000000000000000000009FB2F0006F84D0008296DA005872CA00879CE9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000677ECE00A0B0E400C8D3F600CAD4F500CAD4 + F500CAD4F500A6B5E8006F85D00093A8ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 00000000000000000000DADADA00C1C1C1002C3C720025315900253159002531 + 590025315900253159002531590025315900C1C1C100C8C8C800DADADA000000 + 0000000000000000000000000000000000000000000000000000798CD2001926 + 54001F2E65002233700024367500243675002436750024367500243675002436 + 7500243675002436750024367500243675002436750024367500243675000000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000320000001E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 00000000000000000000000000000000000027387100425CB10013339E001333 + 9E0013339E0013339E001F3DA300425CB1000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001A2755002231 + 6A003655BD001C41BA00042CB300042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300072FB400193EB9003656C200273A + 7D00667DCD00000000000000000000000000031D3D85093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF010D1D3A000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 000000000000000000000000000000000000293A7500435DB60003279E000327 + 9E0003279E0003279E001334A300435DB6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001B2957002333 + 6D003555BF00042DB700042DB700042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB700042DB7003556C500AAAF + BE00293D80000000000000000000000000000C458BFF1D54ABFF1E54A9FF1E54 + A9FF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54 + AAFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1D54ABFF1D54 + ABFF1D54ABFF1C54AEFF0D468CFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000002C3D7B00435EBB000328A4000328 + A4000328A4000328A4001336AA00435EBB000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001D2A5A002435 + 70003656C300042EBB00042EBB00042EBB00042EBB00042EBB00042EBB00042E + BB00042EBB00042EBB00042EBB00042EBB00042EBB00042EBB003658C800B6BB + C8002A3E84000000000000000000000000000F4791FF14439DFF14439DFF1544 + 9EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF1544 + 9EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF1544 + 9EFF15449EFF3E8AD8FF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 000000000000000000000000000000000000314486004361C500042CB100042C + B100042CB100042CB1001439B6004361C5000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001F2D5F002839 + 77003658C9000430C3000430C3000430C3000430C3000430C3000430C3000430 + C3000430C3000430C3000430C3000430C3000430C3000430C3003559CF00BEC3 + D1002E438D000000000000000000000000000F4792FF15459FFF1546A0FF1546 + A0FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647 + A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647 + A1FF1647A1FF1D55AFFF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000033478C004362C900042DB700042D + B700042DB700042DB700143BBC004362C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000203063002A3B + 7B00375ACD000633C8000633C8000633C7000633C7000633C7000633C7000633 + C7000633C7000633C7000633C7000633C7000633C8000633C800375BD300C3C8 + D600314691000000000000000000000000000F4892FF1749A3FF184CA6FF194D + A7FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1B4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1B51ABFF448EDAFF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000364A91004363CF00042FBE00042F + BE00042FBE00042FBE00143CC3004363CF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000213164002B3D + 7E003D5FD1000F3BCD00103CCE00123ECF00123ECF00123ECF00123ECF00123E + CF00123ECF00123ECF00123ECF00123ECF00103CCE000F3BCE003D61D700C6CB + DA00324894000000000000000000000000000F4893FF1A4EA8FF1B51ABFF1C54 + AEFF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57 + B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57 + B1FF1E57B1FF4C92DCFF0B448AFF000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000003B519C003B519C003B51 + 9C003B519C003B519C003B519C003B519C003B519C004366D8000432CB000432 + CB000432CB000432CB00143FCE004366D8003B519C003B519C003B519C003B51 + 9C003B519C003B519C003B519C004B63BA00000000000000000025356A002E41 + 8400496BDA00214BD900244ED9002750D9002750D9002750D9006985E5006985 + E5006985E5002750D9002750D9002750D900244ED900204AD800486BDF00CFD4 + E400364D9C00000000000000000000000000104894FF1A4EA8FF1B52ACFF1C55 + AFFF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF0B448AFF000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000004F6ED500516FD5005270 + D6005270D6005270D6005270D6005270D6005370D600496CDE000E3CD4000E3C + D4000E3CD4000E3CD400113ED4004A6DDF005270D6005270D6005270D6005270 + D6005270D6005270D600506ED4003E55A300000000000000000027366E003044 + 88004E6FDE002A53DE002E57DF00325ADF00325ADF005878E500112B8400112B + 8400112B8400325ADF00325ADF00325ADF002E57DF002A53DE004F72E400D3D8 + E8003951A000000000000000000000000000104894FF1A4EA8FF1B52ACFF1C55 + AFFF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF053D82FF053D82FF0D4187FF053D + 82FF053D82FF053D82FF053D82FF03254F9B000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 00000000000000000000000000000000000000000000476BE300244FDD002852 + DE002953DE002953DE002953DE002953DE002A53DE00224DDD001C48DC001C48 + DC001C48DC001C48DC001C48DC00224DDD002953DE002953DE002953DE002953 + DE002953DE002852DE00496DE3004058AA000000000000000000283870003246 + 8C005475E200335BE300385FE3003C62E3003C62E3005268B000607FE8007792 + EC007792EC00607FE8003C62E3003C62E300385FE300325BE3005476E700D6DB + EC003B52A500000000000000000000000000114995FF1A4EA8FF1C53ADFF1D56 + B0FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59 + B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1C54AEFF3D5978FF6C715CFF3458 + 88FF1C54AEFF1C54AEFF1A4FA9FF053D82FF000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000005175ED00325CEA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA00577AEE00465FB50000000000000000002B3B7500354A + 9400607FE800446AEA004A6FEB004F73EB004F73EB0042548F0042548F004F73 + EB0042548F0042548F004F73EB004F73EB004A6FEB004369EA006081EE00DFE4 + F5003F58AD00000000000000000000000000114A96FF194FA9FF1C53ADFF1D57 + B1FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5A + B4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1C54AEFF3F463CFF32372CFF3B45 + 42FF1A4FA9FF1A4FA9FF1A4FA9FF053D82FF00000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000005579F1003E67EF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF005C7FF2004963BA0000000000000000002D3E7800384D + 97006685EC004C71EF005377EF00597CF000597CF00044569100364B90008BA3 + F400364B900044569100597CF000597CF0005377EF004B70EF006686F100E3E9 + FA00415BB100000000000000000000000000114A97FF1A4FA9FF1D54AEFF1E58 + B2FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205B + B5FF205BB5FF205BB5FF205BB5FF205BB5FF1C54AEFF43586CFFD3D6B6FF3956 + 7BFF1A4FA9FF1A4FA9FF1A4FA9FF053D82FF00000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000597CF2004B71F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1006183F2004A64BB0000000000000000002E407A003A50 + 9A006B89EE005277F1005B7EF2006384F3006384F300394D91003B57B400223C + 90003B57B400394D91006384F3006384F3005B7EF2005277F1006C8BF300E6EC + FD00445DB400000000000000000000000000114B97FF1A50AAFF1D55AFFF1E59 + B3FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205C + B6FF205CB6FF205CB6FF205CB6FF205CB6FF5495DEFF3786D5FF327DCEFF327D + CEFF327DCEFF327DCFFF2D77C4FF032F65C788878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587CF2005479F1006183 + F2006888F3006888F3006888F3006A8AF3006E8DF3006D8CF3006D8CF3006D8C + F3006D8CF3006D8CF3006D8CF3006E8DF3006A8AF3006989F3006888F3006888 + F3006686F3006183F2006082F2004C66BD00000000000000000030417B003C51 + 9C007792EF006283F2006C8BF3007592F4007592F4007592F400294190002941 + 9000294190007592F4007592F4007592F4006B8AF3006183F2007693F400E6EC + FD00465FB700000000000000000000000000124B98FF1A4FA9FF1D55AFFF1F59 + B3FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215C + B6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215C + B6FF215CB6FF6EA7E8FF0B4489FF0000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005A7BE9006987EA006E8A + EA00728EEA00738EEB00738EEB00748EEB007994EB00849EF5007B97F4007B97 + F4007B97F4007B97F4007C97F4008CA5F600748EEB00738EEB00738EEB00728E + EA00718DEA006E8AEA005E7EE9004D67BE00000000000000000031427C003D53 + 9C007C96F0006A8AF3007491F4007E99F5007E99F5007E99F5007E99F5007E99 + F5007E99F5007E99F5007E99F5007E99F5007491F4006888F3007C97F400E6EC + FD004761B800000000000000000000000000124C99FF1A50AAFF1D56B0FF1F59 + B3FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215D + B7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215D + B7FF215DB7FF70A9EAFF0B4489FF000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF004E68BF007391F40087A1F50087A1 + F50087A1F50087A1F5008BA4F600829DF5004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF00546FCB00000000000000000032437D003E53 + 9E007F99F000708EF4007B97F400849EF500849EF500849EF500849EF500849E + F500849EF500849EF500849EF500849EF5007A96F4006F8DF300819BF500E6EC + FD004862B900000000000000000000000000134C99FF2661B5FF3071C2FF3479 + C9FF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377D + CDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377C + CDFF387ECEFF2360B9FF0B448AFF000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA004863C0004D68 + C1004D68C2004D68C2004D68C2004D68C2004D68C2004C66C1004964C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000506AC1007290F400A2B6F800A3B6 + F800A3B6F800A3B6F8009FB3F700859FF5000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034447F004056 + A00088A0F1007B97F40086A0F50091A8F60094ABF60095ACF70095ACF70095AC + F70095ACF70095ACF70094ABF60091A8F600849EF5007A96F40089A2F600E6EC + FD004A64BB00000000000000000000000000134C9AFF2D6ABCFF377ACBFF3B81 + CFFF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84 + D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84 + D2FF3D84D2FF74ABEBFF0B448AFF0000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00607EE4005D7C + E2005E7DE3005E7DE3005E7DE3005E7DE3005E7DE3005D7CE2006B87E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000516BC2007693F400B0C0F900B1C1 + F900B1C1F900B1C1F900ABBDF8008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034457F004156 + A1008DA4F2007F9AF50088A2F60094ABF60097ADF70098AEF7009AAFF7009AAF + F70099AFF70098AEF70097ADF70094ABF60087A1F5007E99F5008DA5F600E6EC + FD004C65BC00000000000000000000000000134D9BFF1E57B1FF6AA0E3FF70A6 + E7FF225FB9FF74ABEBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225FB9FF74AB + EBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225F + B9FF74ABEBFF74ABEBFF0C458AFF00000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00728DEA0094A9 + ED0096AAEC0096AAEC0096AAEC0096AAEC0096AAEC0093A8ED007B95EB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000526CC3007A96F400BDCBFA00BDCB + FA00BDCBFA00BDCBFA00B5C5F9008FA7F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000354681004157 + A2008FA6F100819BF50089A2F60093AAF60096ACF70097ADF70098AEF70098AE + F70098AEF70097ADF70095ACF70093AAF60087A1F5007F9AF5008FA7F600E6EC + FD004D66BD000000000000000000000000001A529AFF7FB5F2FF337ECFFF3481 + D1FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786 + D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786 + D5FF3786D5FF7FB5F2FF0C458BFF0000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC5007C97F400CBD6FB00CDD8 + FB00CDD8FB00CDD8FB00C0CEFA0093AAF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000364882004156 + 9D006984E30097ADF7009AAFF7009DB2F7009EB3F7009FB3F7009FB3F7009FB3 + F7009FB3F7009EB3F7009EB3F7009DB2F70099AFF7009CB0F3007B8FD500E6EC + FD004F69C0000000000000000000000000000D468BFF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF0C458BFF010D1C3800000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000546EC5007995F400C7D3FB00CCD7 + FB00CDD8FB00CAD5FB00B7C7F9008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004459A7003D4F + 91005366A900506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC1006E82CB00E6EC + FD005069C000000000000000000000000000031C3B730D468BFF0D468BFF0D46 + 8BFF0D468BFF0D468BFF0D468CFF0D468CFF0D468CFF0D468CFF0D478CFF0D46 + 8CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D46 + 8CFF0D468CFF0D468CFF00000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000556FC6006F8DF300B2C2F900BECC + FA00C0CEFA00B6C6F900A2B6F800829CF5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F2003B4F + 950097A0C200C9D0E900E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00CCD3 + F000506AC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005A76D2005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000110000001C0000002E0000002E0000002E0000002E0000002E0000 + 002E0000002E0000002E0000002E0000002E0000002E0000002E0000001C0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000101020000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000005000000090000000C0000 + 000F00000016000000190000001D00000024000000260000002A0000002A0000 + 002A0000002A0000002A0000002A0000002A00000024000000200000001D0000 + 0016000000130000000F00000009000000060000000000000000000000000000 + 00000000000000000000339F70FF339F70FF339F70FF339F70FF339F70FF339F + 70FF339F70FF339F70FF339F70FF339F70FF339F70FF339F70FF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000003B2A9C75FF2A9C75FF2A9C75FF0000003E0000 + 003B000000330000002800000017000000140000000E0000000B000000080000 + 000300000002000000000000000000000000000000060000000D000000120000 + 001800000024A5A5A5E6CECECEFFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7 + E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFCCCCCCFF2525 + 254D0000001D000000180000000D000000090000000000000000000000000000 + 0000000000000000000032A072FF12BC8EFF12BC8EFF12BC8EFF12BC8EFF12BC + 8EFF12BC8DFF12BC8EFF12BC8DFF12BC8EFF3CD7A7FF32A172FF000E0B120000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000320000001E0000000000000000000000000000 + 000000000000040F0B190000000035CD98FF15B081FF38D19BFF0D34276F0000 + 0024000000200000001800000014000000100000000900000006000000040000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000F0F0F17B3B3B3EFCECECEFFE4E4E4FFE4E4E4FFE4E4E4FFE3E3E3FFE3E3 + E3FFE3E3E3FFF2F2F2FFD4DDD9FFE2E2E2FFE1E1E1FFEFEFEFFFCCCCCCFF5B5B + 5B76000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000031A172FF12BD8EFF12BC8EFF12BD8EFF12BC8EFF12BD + 8EFF12BC8EFF12BD8EFF12BD8EFF12BD8EFF3CD7A7FF31A172FF000E0B120000 + 0000000000000000000000000000000000000000001E131313EF121212EF1111 + 11EF111111EF111111EF111111EF111111EF111111EF111111EF111111EF1111 + 11FD111111FD111111EF111111EF111111EF111111EF111111EF121212EF1212 + 12EF131313EF141414EF111111B6000000000000000000000000000000000000 + 00000209060F000000002A9C75FF13B082FF13B082FF17B687FF259771F1030C + 0914000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000033333349C2C2C2FCD5D5D5FFE4E4E4FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3 + F3FFE3E3E3FF5DB591FFBFD7CDFFF3F3F3FFF2F2F2FFEDEDEDFFD5D5D5FF8383 + 83AE000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000030A273FF11C090FF0DCB95FF0CCA94FF0DCB94FF0CCB + 95FF0CCB94FF0CCB95FF0CCA95FF0CCB95FF3CD7A7FF30A273FF000E0B120000 + 000000000000000000000000000000000000000000003B3B3BFF3C3C3CFF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D + 3DFF3D3D3DFF3D3D3DFF1B1B1BF6000000000000000000000000000000000000 + 00002A9C75FF32D59FFF14B183FF10CF9EFF10CF9DFF12C191FF31D39DFF23A0 + 78F60D3225520000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008C8C8CC1CFCFCFFFE8E8E8FF6CC0A0FF38B284FF39B083FF3BB083FF3AAE + 82FF78C0A4FF3EAC80FF3BAC81FF3DAB7FFF3DAA7DFFD1DFD8FFE9E9E9FFACAC + ACE6000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002DA575FF11C291FF0CCD97FF0DCD97FF0CCC96FF0CCC + 96FF0CCC97FF0DCC96FF0DCC96FF0DCC97FF3BD7A7FF2EA574FF000E0B120000 + 000000000000000000000000000000000000000000002A2A2AFF2E2E2EFF3939 + 39FF393939FF393939FF393939FF393939FF393939FF393939FF3A3A3AFF3A3A + 3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A + 3AFF3B3B3BFF323232FF1F1F1FC6000000000000000000000000000000000223 + 1A2C2BD19CFF14B284FF13B284FF16D2A1FF11D09EFF10D09EFF16B687FF27CB + 99FF259670F00000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9D9DD6D0D0D0FFEFEFEFFF39B285FF39B184FF5DBC98FF64BC9BFF58B8 + 94FFDEE3E1FF3CAB80FF92CAB3FF84C4AAFF3EAA7EFF96C9B3FFEEEEEEFFB9B9 + B9F5020202040000000000000000000000000000000000000000000000000000 + 000000000000000000002CA676FF11C392FF0DCE98FF0DCE98FF0DCD97FF0DCE + 97FF0DCD98FF0DCE98FF0DCD97FF0CCE97FF3BD7A7FF2CA676FF011C14220000 + 00000000000000000000000000000000000000000000323232FE343434FF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3D3D3DFF3D3D + 3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D + 3DFF3E3E3EFF383838FF1212127100000000000000000000000001150F1A2AA0 + 75FF15B384FF13B283FF0FCE9BFF80EFD0FF6EE5BFFF0FD19EFF13B788FF24C9 + 96FF1FB78AFC0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000ACACACE8D0D0D0FFF1F1F1FF44B98EFF38B285FF41B288FFCFDFD9FFE6E6 + E6FFE6E6E6FF58B691FFA5D0BEFFB9D7CCFF3BAA7DFFAED1C2FFF0F0F0FFC4C4 + C4FE252525340000000000000000000000000000000000000000000000000000 + 000000000000000000002BA776FF10C492FF0DCE98FF0DCF99FF0DCF99FF0DCE + 98FF0DCF99FF0DCE99FF0DCE99FF0DCF99FF3AD7A6FF2BA877FF000E0B120000 + 00000000000000000000000000000000000000000000272727F04E4E4EFF4040 + 40FF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF404040FF4040 + 40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040 + 40FF424242FF4B4B4BFF0505052200000000000000002AA078FF1BD09DFF1DD2 + 9FFF0FD09EFF16D4A3FF5DE7BFFF40AC89FF33A37EF255DCB3FF0FD29FFF11C0 + 90FF1ACC99FF259871EF02090710000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CACACAFEDADADAFFF2F2F2FFE0E7E4FF45B98FFF35B486FF8DCDB5FFE8E8 + E8FFE8E8E8FFE6E6E6FF6FC0A1FF3BAE82FFD7E1DCFFE5E5E5FFEEEEEEFFCDCD + CDFF838383B20000000000000000000000000000000000000000000000000000 + 0000000000000000000028AA79FF10C794FF0DD19BFF0DD19BFF0ED19BFF0DD1 + 9BFF0ED19BFF0DD19BFF0ED19BFF0DD19AFF38D7A6FF28AA79FF000E0B120000 + 0000000000000000000000000000000000000000000000000000121212612C2C + 2CE7686868FF616161FF555555FF464646FF464646FF464646FF464646FF4646 + 46FF464646FF464646FF464646FF474747FF494949FF535353FF5E5E5EFF4A4A + 4AFD303030F01313136500000000000000000001010218CF9CFF1CD4A0FF10D3 + A0FF16D5A3FF5CE8C0FF46CFA8E600000000071E162F269F77F147E4B9FF0FD3 + A0FF0FD3A0FF1DB78AFB1B7255B2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D0D0D0FFE5E5E5FFEFEFEFFF59C09CFF39B88BFF35B587FFE7E9E8FFE6E8 + E7FFE8E8E8FFE8E8E8FFE5E6E6FF80C7ACFFE6E6E6FFE6E6E6FFEBEBEBFFCFCF + CFFF9A9A9ACF0000000000000000000000000000000000000000000000000000 + 0000000000000000000027AC7AFF10C795FF0DD29CFF0ED29CFF0ED29CFF0ED2 + 9CFF0ED29CFF0DD29DFF0DD29DFF0DD29CFF37D6A6FF26AB7AFF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000202 + 020B2F2F2FE83C3C3CEE525252FD6A6A6AFF4F4F4FFF494949FF4A4A4AFF4A4A + 4AFF4A4A4AFF4A4A4AFF4A4A4AFF515151FF6D6D6DFF585858FF434343F81C1C + 1C850202020B0000000000000000000000002AA379FF1AD5A1FF10D4A1FF0FD4 + A1FF5BEAC1FF4CD7B1EE2CAA7FFF0000000000000000071E162F51DCB3FF44E4 + B8FF0FD3A1FF1DD3A1FF23A178F40C2F234B0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D2D2D2FFEDEDEDFFEDEDEDFFEAEAEAFFEAEAEAFFDCE6E2FF3EB88CFF81CB + AFFFE5E8E7FF48B78EFF37AF82FF7FC5AAFFE7E7E7FFE6E6E6FFE8E8E8FFCFCF + CFFFA8A8A8E10000000000000000000000000000000000000000000000000000 + 0000000000000000000025AD7BFF11C996FF0ED39DFF0DD39DFF0ED39EFF0DD3 + 9EFF0ED39DFF0DD39EFF0ED39DFF0DD49DFF36D6A6FF25AD7BFF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000202020A0F0F0F481E1E1E8E3A3A3AF4656565FF585858FF4D4D4DFF4D4D + 4DFF4D4D4DFF4D4D4DFF606060FF6A6A6AFF333333E1202020950F0F0F480000 + 00000000000000000000000000000000000006140F1D3BCDA1FD3EE2B6FF56E9 + C0FF2EAF83FF00020103000000000000000000000000000000000820183127A4 + 7AF14DDCB2FF0FD5A1FF15D5A1FF1CB88BF90000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000B0B + 0B10D3D3D3FFF4F4F4FFEBEBEBFFEBEBEBFFEBEBEBFFEBEBEBFF31B686FF35B5 + 87FF94D1BAFF36B385FF3DB388FF2EAE80FFE9E9E9FFE8E8E8FFE8E8E8FFD0D0 + D0FFC6C6C6FC2C2C2C3F00000000000000000000000000000000000000000000 + 0000000000000000000022B17EFF10CB98FF0ED6A0FF0ED69FFF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF33D7A6FF22B07DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000001010105313131C3545454FF5454 + 54FF545454FF464646F9262626A0010101050000000000000000000000000000 + 00000000000000000000000000000000000000000000259E76E587EBCDFFFFFF + FFFF010504080000000000000000000000000000000000000000000000000821 + 183127A67AF136E0B3FF10D5A2FF13D4A1FF0C2E234800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002C2C + 2C40D6D6D6FFF5F5F5FFECECECFFEBEBEBFFEBEBEBFFEBEBEBFF7CCCAFFF34B6 + 88FF35B587FF38B587FFCEE2DAFF96D0B8FFE9E9E9FFE9E9E9FFE9E9E9FFD6D6 + D6FFCDCDCDFF5C5C5C80000000000000000020B27FFF21B27FFF21B27FFF21B2 + 7FFF20B27FFF21B27FFF21B27FFF10CC99FF0ED7A2FF0ED7A1FF0FD7A1FF0ED7 + A1FF0ED8A1FF0ED7A1FF0ED7A1FF0ED7A1FF31D7A6FF21B27FFF20B27FFF21B2 + 7FFF20B27FFF20B27FFF21B27FFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028282899595959FF5959 + 59FF595959FF444444F41B1B1B75000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000004100C1828A179E528A2 + 7AE3000000000000000000000000000000000000000000000000000000000000 + 00000822193249DCB1FF33E0B2FF0FD6A3FF259C74EC0209060E000000000000 + 0000000000000000000000000000000000000000000000000000000000005B5B + 5B8FD1D1D1FFE4E4E4FFDDDDDDFFDCDCDCFFDCDCDCFFDCDCDCFFD9DBDAFF30AB + 80FF30AA7FFF2AA77BFFDADBDAFFDBDBDBFFDADADAFFD9D9D9FFD9D9D9FFD1D1 + D1FFC2C2C2FF797979B8000000000000000005291D3842E6B8FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF3EDCB0FF11CE9BFF0ED9A3FF0ED8A2FF0ED8A3FF0ED8 + A3FF0ED8A2FF0ED8A2FF0ED8A3FF0FD9A2FF3EDCB0FF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF38E3B4FF05291D38000000000000000000000000000000000000 + 000000000000000000000000000000000000040404113F3F3FF85D5D5DFF5D5D + 5DFF5D5D5DFF5A5A5AFF3B3B3BEE0303030E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000008231A3427A77EF146DDB1FF10D6A3FF26A97EF30C2E22450000 + 0000000000000000000000000000000000000000000000000000000000007171 + 71DEA4A4A4FF949494FF929292FF929292FF929292FF929292FF929292FF9191 + 91FF919191FF909090FF909090FF909090FF909090FF909090FF909090FFA3A3 + A3FF8B8B8BFF767676E500000000000000000000000005291D381CB783FF52EB + C0FF0FDAA5FF0EDBA5FF0EDAA4FF0FDBA5FF0EDBA5FF0FDAA5FF0EDBA5FF0FDB + A5FF0FDBA5FF0EDBA5FF0FDBA5FF0FDBA5FF0FDBA4FF0EDBA5FF0EDBA5FF49E9 + BCFF1CB783FF05291D3800000000000000000000000000000000000000000000 + 000000000000000000000000000000000000434343DD5F5F5FFF636363FF6363 + 63FF636363FF636363FF606060FF333333B30000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000009241B3428AA7FF12BDFAFFF14D09EFF27A177EB0000 + 000000000000000000000000000000000000000000000E7C5AAA21B17FFF21B1 + 7FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B1 + 7FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B1 + 7FFF21B17FFF21B17FFF0E7C5AAA00000000000000000000000005291D381AB8 + 84FF0FDCA6FF0FDCA6FF0FDCA6FF0EDCA7FF0EDCA6FF0FDCA6FF0FDCA6FF0FDC + A6FF0EDCA6FF0FDCA6FF0EDDA6FF0FDCA6FF0FDCA6FF0FDCA6FF0FDCA6FF1AB8 + 84FF05291D380000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000020202064E4E4EFC656565FF666666FF6666 + 66FF666666FF666666FF666666FF414141DD0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000009241B3444DDB1FF28DFAFFF1DBC8EF80000 + 0000000000000000000000000000000000000000000021B17FFF1AC995FF1AC9 + 95FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC9 + 95FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC9 + 95FF1AC995FF1AC995FF21B17FFF000000000000000000000000000000000529 + 1D3860F0C7FF0FDDA7FF0EDDA7FF0FDDA7FF0FDDA7FF0EDDA7FF0FDEA7FF0FDD + A7FF0FDDA7FF0EDDA8FF0FDEA7FF0FDDA7FF0FDDA7FF0EDDA8FF5AEEC4FF0529 + 1D38000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001313132F515151FF686868FF696969FF6969 + 69FF696969FF696969FF696969FF4A4A4AED0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A261C372AAC7FF140DCB0FF29A4 + 7AEA0208060C0000000000000000000000000000000021B17FFF12C28EFF12C2 + 8EFF13C28DFF13C38EFF12C28EFF12C28EFF12C28DFF13C28EFF12C28EFF12C2 + 8EFF12C38DFF13C28EFF12C38EFF12C38EFF12C38EFF12C28EFF13C28EFF13C2 + 8EFF12C38EFF13C38EFF21B17FFF000000000000000000000000000000000000 + 000005291D3817BD87FF6FF3CDFF0FE0AAFF0FDFAAFF0FE0AAFF0FDFA9FF10DF + AAFF0FDFAAFF0FDFA9FF0FE0A9FF0FE0A9FF6AF2CBFF17BD88FF05291D380000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002222224F5B5B5BFF6F6F6FFF707070FF7070 + 70FF707070FF707070FF707070FF585858F60000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000A271D372BAC80F126C1 + 94F81B7256A20000000000000000000000000000000021B17FFF12C490FF11C4 + 8FFF12C48FFF12C48FFF11C48FFF11C48FFF11C48FFF12C48FFF12C48FFF12C4 + 8FFF11C48FFF12C48FFF12C48FFF12C48FFF11C48FFF11C38FFF12C48FFF12C4 + 8FFF11C48FFF11C48FFF21B17FFF000000000000000000000000000000000000 + 00000000000005291D3815BE88FF10E0AAFF0FE0AAFF0FE1ABFF0FE0AAFF0FE1 + ABFF0FE0AAFF10E1ABFF0FE1AAFF0FE1ABFF15BE88FF05291D38000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001D1D1D3F5A5A5AFF727272FF737373FF7373 + 73FF737373FF737373FF737373FF555555F00000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000A271D373ADB + ADFF2BB285F40B2C213F00000000000000000000000021B17FFF11C590FF11C5 + 90FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C5 + 90FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C5 + 90FF11C590FF11C590FF21B17FFF000000000000000000000000000000000000 + 0000000000000000000005291D387BF6D2FF0FE1ACFF10E1ABFF0FE1ACFF0FE1 + ABFF0FE2ABFF0FE1ABFF0FE2ACFF78F5D1FF05291D3800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000D0D0D1B5E5E5EFF757575FF767676FF7676 + 76FF767676FF767676FF767676FF565656E90000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000A29 + 1E392CAF84F232C093FC00000000000000000000000016BD88FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF16BD88FF010604070000000000000000000000000000 + 000000000000000000000000000005291D3813C28BFF86F8D6FF10E4ADFF0FE3 + ADFF0FE4AEFF84F7D5FF12C18BFF05291D380000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003939398E696969FF7C7C7CFF7C7C + 7CFF7C7C7CFF818181FF676767FC191919500000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000B291F3A2CB185F413392C4B00000000000000000E382C4216BD88FF17E8 + B4FF299065FF289266FF25A171FF25A171FF25A171FF25A171FF25A171FF25A1 + 71FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF0CBE + 89FF46E7B5FF17E8B4FF0E372A40000000000000000000000000000000000000 + 00000000000000000000000000000000000005291D3812C38CFF10E4AEFF10E4 + AEFF10E4AEFF11C38CFF05291D38000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000002020207494949D58F8F8FFF8A8A + 8AFF898989FF707070FE444444CA020202070000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000B2B203C2FAE84EF0208060B00000000000000010F3C2E4616BD + 88FF48E6B5FF299065FF25A171FF25A171FF25A171FF25A171FF25A171FF25A1 + 71FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF4DEC + BAFF17E8B4FF16BD88FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000005291D388DF9D8FF10E4 + AFFF8DF9D8FF05291D3800000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000007070718525252EB5D5D + 5DF85D5D5DF8353535A307070718000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000B2B203C2EAE83F40000000000000000000000000001 + 010217DCA7FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF10D1 + 97FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF16CE + 99FF0F3A2D440001010200000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000005291D380FC5 + 8EFF05291D380000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000001000000020000000300000006000000090000000C000000100000 + 001100000014000000100000000D0000000C0000000600000005000000030000 + 0001000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000032000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000200000004000000070000000C000000120000001C000000240000 + 0027339F70FF0000002E00000029000000210000000D0000000A000000060000 + 0002000000000000000000000000000000000000001E00000040000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000270000001E0000001E319F70FF32A071FF319F + 70FF31A070FF319F71FF32A071FF32A070FF31A071FF32A070FFD58F6AFFD58F + 6AFFD58F6AFFD58F6AFFD58F6AFFD58F6AFFD58F6AFF000000001560BCFF1560 + BDFF1560BDFF1660BDFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000FED6AEFFFED6AEFFFED6AEFFFED7B0FFFED7 + B0FFFED8B1FFFED9B4FFFEDAB6FFFEDAB6FFFEDCB9FFFEDCB9FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032A071FF32A071FF0F342452000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000252422FF262624FF2625 + 23FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86 + F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86 + F2FF262524FF262524FF0000000000000000000000000DC992FF13B98CFF13B9 + 8CFF13B98CFF13B98CFF13B98CFF13B98CFF0EC992FF2FA171FFD58F6AFFEBA5 + 7DFFE19D79FFE19D79FFE19D79FFE19D79FFD58F6AFF000000001661BEFF076E + E6FF076EE6FF0578EAFF00000000000000000000000E00000013000000140000 + 0016000000191111113114141431FED4AAFFFED4AAFFFED4AAFFFED5ACFFFED5 + AEFFFED6AFFFFED8B2FFFED8B2FFFED9B4FFFEDAB7FFFFDBB9FF111111310000 + 00180000001600000014000000100000000E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031A172FF3BD7A7FF30A271FF0F3424520000000000000000000000000000 + 00000000000000000000000000000000000000000000262523FF282724FF2727 + 24FF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF272625FF000000000000000000000000000000000DCA93FF13B98CFF0DCA + 93FF0DCA93FF0DCA94FF0DCA93FF13B98CFF0DCA93FF2FA272FFD58F6AFFECA5 + 7DFFE29E79FFECA57DFFECA57CFFE29E79FFD58F6BFF000000001662C0FF057A + EBFF0388F0FF057BEAFF000000000000000000000017000000343F3F3F7FACAC + ACFFACACACFFACACACFF636262FFFFCD9DFFFFCD9DFFFFCE9FFFFFD0A3FFFFD2 + A6FFFFD4AAFFFFD7AFFFFFD8B1FFFFD9B5FFFFDDBCFFFFDDBCFF636363FFACAC + ACFFACACACFF4B4B4B8C00000030000000170000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030A373FF10BF8EFF39D6A6FF30A373FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000272624FF292826FF2929 + 26FF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF2A2927FF292826FF0000000000000000000000000DCB95FF13BA8DFF0DCB + 95FF0DCC94FF0DCB94FF0DCB94FF13B98CFF0ECB94FF2EA273FFD68F6AFFECA5 + 7EFFE39E7AFFECA67DFFECA67DFFE39E7AFFD5906BFF000000001764C3FF057C + EBFF0389F0FF057CEBFF000000000000000000000000ACACACFFD1D1D1FFD1D1 + D1FFD1D1D1FFD1D1D1FF323232FFC49F7BFFC4A07EFFC4A17FFFC4A383FFC4A5 + 87FFC4A688FFC4A78BFFC4A88EFFC4A991FFC4AC96FFC4AC96FF323232FFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000003020400040306000403060004 + 030600040306000403060009060C000403060004030600040306000403060000 + 00002DA575FF10BF8EFF10BF8EFF10BF8EFF2DA575FF0F342452000000000000 + 00000000000000000000000000000000000000000000292927FF2E2D2AFF2E2D + 2AFFFBE7D0FFFBE6D0FFFBE7CFFFFCE6CFFFFBE7D0FFFBE7D0FFFBE6D0FFFCE7 + D0FFFBE6CFFFFBE6CFFFFBE7D0FFFCE7CFFFFBE6D0FFFBE6CFFFFBE7CFFFFBE6 + CFFF2D2C2AFF2D2C2AFF0000000000000000000000000DCD97FF13BD8FFF0ECE + 97FF0ECE97FF0DCE97FF0ECE98FF13BC8EFF0ECD97FF2CA575FFD6906BFFEDA7 + 7FFFE5A17BFFECA77EFFECA77EFFE6A17BFFD6906BFF000000001A66C7FF0581 + EDFF038DF1FF0581EDFF000000000000000000000000ACACACFFD4D4D4FFD4D4 + D4FFD4D4D4FFD4D4D4FF333131FF9E8373FF9E8373FF9E8373FF9E8474FF9E84 + 74FF9E8475FF9E8576FF9E8576FF9E8577FF9E8577FF9E8577FF333131FFC8CC + CAFFCECECEFFCECECEFF00000000000000002CA676FF2CA776FF2CA676FF2CA6 + 75FF2CA675FF2BA676FF2BA675FF2CA675FF2BA676FF2CA676FF2CA676FF2CA6 + 76FF2BA776FF10BF8EFF0DCA94FF10C08EFF31D4A3FF2CA675FF0F3424520000 + 000000000000000000000000000000000000000000002B2927FF302E2CFF302E + 2DFFFBE7D0FFFCE7D0FFFCE7D0FFFBE7D1FFFBE7D1FFFCE7D0FFFBE7D1FFFBE7 + D1FFFBE7D0FFFBE7D1FFFBE7D0FFFBE7D0FFFCE7D1FFFBE7D1FFFCE7D0FFFBE7 + D0FF302E2CFF302F2CFF0000000000000000000000000ECF99FF12C090FF0ECF + 98FF0ECF99FF0ECF99FF0ECF99FF12BF8FFF0ECF99FF2BA675FFD6906CFFEDA8 + 7FFFE7A27CFFECA87FFFECA87FFFE7A27CFFD6906BFF000000001A68CBFF0482 + EDFF038EF1FF0483EEFF000000000000000000000000ACACACFFD7D7D7FFD7D7 + D7FFD7D7D7FFD7D7D7FFD6D6D6FFD6D6D6FFD5D5D5FFD5D5D5FFD5D5D5FFD4D4 + D4FFD4D4D4FFD4D4D4FFD3D3D3FFD3D3D3FFD3D3D3FFD2D2D2FFD2D2D2FF39A4 + 76FFC4CDCAFFD1D1D1FF00000000000000002AA777FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF10BF8EFF0DCB95FF0DCC95FF0FC18FFF2ED4A2FF2BA777FF0000 + 000000000000000000000000000000000000000000002C2A29FF33312EFF3231 + 2FFFC4D1D7FFC4D0D7FFC4D0D7FFC4D0D7FFC4D0D8FFC4D0D7FFC4D1D7FFC4D1 + D8FFC4D1D7FFC4D1D7FFC4D1D8FFC4D0D8FFC4D0D8FFC4D1D7FFC4D0D8FFC4D0 + D7FF33302FFF33302FFF0000000000000000000000000ED09AFF11C392FF0ED0 + 9AFF0ED09AFF0ED09AFF0ED09AFF11C191FF0FD09AFF2AA677FFD7906CFFEDA9 + 80FFE8A47DFFEDA980FFEDA980FFE8A47DFFD7906BFF000000001B6ACDFF0486 + EFFF038FF2FF0486EEFF000000000000000000000000ACACACFFDCDCDCFFEDED + EDFF269B6AFF279B6AFF279B6AFF279B69FF279A69FF289A69FF289A68FF289A + 68FF289A68FF289968FF289968FF289968FF289968FF289968FF289968FFCBE8 + DCFFEAEAEAFFD7D7D7FF000000000000000028AA7AFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF0FC793FF0ECE98FF0DCE98FF0DCE98FF0DCE98FF0FC492FF27AA + 7AFF0F342452000604080000000000000000000000002F2E2BFF373534FF3735 + 34FFFBE8D4FFFBE9D3FFFCE9D4FFFBE8D4FFFCE9D3FFFCE8D4FFFBE8D3FFFCE9 + D4FFFBE9D4FFFBE8D3FFFBE9D3FFFBE8D3FFFCE9D3FFFBE9D4FFFCE8D4FFFCE8 + D4FF383634FF373633FF00000000000000000000000013D59FFF10CB97FF0ED3 + 9CFF0FD39DFF0ED39DFF0ED39DFF10C996FF14D5A0FF27AA78FFD7916DFFEDAB + 81FFEBA880FFEDAA82FFEEAA82FFECA880FFD8926CFF000000001E6ED2FF048C + F1FF0391F3FF048BF1FF000000000000000000000000A3A3A3ECE0E0E0FFF9FC + FBFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC + 9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF2899 + 68FFFFFFFFFFDADADAFF000000000000000026AB7BFF0FC390FF10C18FFF0EC9 + 95FF0ECF99FF0DD099FF0DD09AFF0DD099FF0DCF9AFF0DD09AFF0DD099FF0DD0 + 99FF0ED099FF0DCF9AFF0ED09AFF0ED099FF0ED09AFF0ECF9AFF0DCF99FF19C9 + 97FF26AC7BFF0F342452000000000000000000000000302E2CFF3A3836FF3A38 + 36FFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D3DAFFC4D2DAFFC4D2DAFFC4D2 + DAFFC4D2DAFFC4D3DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2 + DAFF3A3836FF3A3836FF00000000000000000000000016D7A2FF10CE9AFF0FD4 + 9EFF0ED59EFF0FD59EFF0ED49EFF10CC99FF17D7A2FF26AA79FFD8926DFFEDAB + 83FFEDAC82FFEEAC82FFEEAB83FFEEAC82FFD8926DFF000000001F6FD4FF038E + F1FF0393F2FF038EF1FF000000000000000000000000A1A1A1E6EAEAEAFFF4FA + F7FF47CA9DFF23A674FF23A674FF24A472FF24A472FF24A472FF24A472FF24A4 + 72FF24A472FF24A472FF24A472FF24A472FF24A472FF24A472FF23A674FF279B + 6BFFFFFFFFFFE5E5E5FF000000000000000024AD7CFF0FC492FF0ECA96FF0DD1 + 9BFF0DD29BFF0ED29BFF0DD19BFF0ED19AFF0DD19BFF0DD19BFF0ED29BFF0ED1 + 9BFF0DD29BFF0ED19BFF0DD19AFF0DD19BFF0DD19BFF0ED19BFF0ED19BFF0FC9 + 95FF19CB99FF24AD7CFF000403060000000000000000312F2EFF3D3B38FF3C3A + 39FFFCE9D5FFFCEAD5FFFCE9D5FFFBEAD6FFFCEAD5FFFCE9D5FFFCE9D6FFFCEA + D5FFFCEAD6FFFCEAD5FFFCEAD5FFFCEAD6FFFBEAD6FFFCE9D5FFFCEAD6FFFBE9 + D5FF3D3B39FF3D3B39FF0000000000000000000000001AD9A5FF0FD29DFF0ED5 + A0FF0FD5A0FF0FD6A0FF0FD69FFF10D19CFF1BD9A6FF25AC7AFFD9936DFFEEAE + 84FFEDAC83FFEEAC83FFEEAC83FFEEAC83FFD9926DFF000000002071D7FF0393 + F3FF0393F3FF0393F3FF000000000000000000000000A7A7A7E3FFFFFFFFEEFA + F5FF5AE0B6FF26C18FFF26C895FF26C895FF26C895FF26C895FF26C895FF26C8 + 95FF26C895FF26C895FF26C895FF26C895FF26C895FF26C895FF26C08EFF23A2 + 70FFFFFFFFFFFFFFFFFF000000000000000021B17FFF0FC995FF0ED49EFF0ED4 + 9EFF0DD49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED49EFF0ED4 + 9DFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED49EFF0ED5 + 9EFF0ED49EFF0FCF9AFF22B07FFF0F34245200000000353331FF43403EFF4240 + 3EFFC4D3DCFFC4D4DCFFC4D4DCFFC4D4DCFFC4D4DBFFC4D3DCFFC4D4DCFFC4D4 + DCFFC4D4DCFFC4D3DCFFC4D3DCFFC4D4DCFFC4D4DCFFC4D4DCFFC4D3DBFFC4D3 + DCFF42403EFF43403EFF00000000000000000000000022DDABFF0ED9A3FF0FD9 + A3FF0FD9A3FF0ED8A3FF0ED9A2FF0FD8A3FF25DFACFF22B07EFFD9946EFFF0B2 + 8AFFEFAE85FFEEAE85FFEFAE84FFEFAE84FFD9946EFF000000001584EAFF5DC7 + FBFF5DC7FBFF5DC7FBFF000000000000000000000000A8A8A8E0FFFFFFFFE6F8 + F2FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEE + C8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF21A7 + 74FFFFFFFFFFFFFFFFFF000000000000000020B280FF0FCC98FF0ED5A0FF0ED6 + A0FF0ED69FFF0ED5A0FF0ED59FFF0ED6A0FF0ED69FFF0ED59FFF0ED5A0FF0ED6 + 9FFF0ED5A0FF0ED69FFF0ED69FFF0ED69FFF0ED69FFF0ED59FFF0ED6A0FF0ED5 + A0FF0ED69FFF0ED5A0FF2ADEACFF20B27FFF00000000363432FF454341FF4643 + 40FFFBEAD7FFFCEBD8FFFCEBD8FFFCEBD7FFFCEBD8FFFCEBD8FFFCEBD7FFFCEB + D7FFFCEBD7FFFCEBD7FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEAD8FFFCEB + D8FF454341FF454341FF00000000000000000000000027E0AEFF0EDAA4FF0EDA + A5FF0FDBA4FF0FDAA4FF0FDAA5FF0FDAA4FF29E0AEFF22B17FFFD9946EFFEFB4 + 8CFFEFAF86FFEEAF85FFEFAF85FFEFAF86FFDA936EFF00000000000000001584 + EAFF1584EAFF1584EAFF000000000000000000000000A0A0A0D5FFFFFFFFDDF7 + EFFF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEE + C8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF1EAB + 78FFFFFFFFFFFFFFFFFF00000000000000001FB381FF0FCF9AFF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A2FF0ED7A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0FD7A1FF1EB381FF063C2C5200000000383634FF484643FF4846 + 43FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEB + D8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFB2A6 + 9AFF484543FF484543FF0000000000000000000000002CE2B1FF0FDBA6FF0FDC + A5FF0FDBA6FF0FDBA6FF0FDCA6FF0FDCA6FF2EE3B1FF21B381FFDA946EFFF0B7 + 8FFFEFAF86FFEFB086FFEFB086FFEFB086FFDA946FFF00000000000000000000 + 000000000000000000000000000000000000000000007B7B7BA8EFEFEFFFF6FC + FAFF5CE7BDFF23C08DFFECBD96FFECBE97FFECBE97FFECBE97FFECBE97FFECBE + 97FFECBE97FFECBE97FFECBE97FFECBE97FFECBE97FFECBE97FF24BD8BFF19B3 + 7FFFFFFFFFFFF3F3F3FF00000000000000001BB783FF0FD5A1FF0FDAA4FF0EDA + A4FF0EDAA4FF0FDAA4FF0FDAA4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA4FF0FDA + A4FF0EDAA4FF0FD9A4FF0ED9A4FF0EDAA5FF0FDAA4FF0EDAA4FF0FDAA4FF0EDA + A4FF46E7BAFF1BB684FF0000000000000000000000003B3836FF4E4B49FF4E4A + 49FF4E4B49FF4E4B49FF4E4B48FF3D3A39FF3C3A39FF3C3A39FF3C3A38FF3D3A + 39FF3C3A39FF3D3A38FF3C3A39FF3C3A39FF3D3A38FF3D3A39FF3C3A39FF4E4B + 49FF4E4A48FF4D4A49FF00000000000000000000000037E6B5FF0FDEA9FF0FDE + A8FF0FDEA9FF0FDEA9FF10DEA9FF0FDEA9FF39E6B6FF20B885FFDB956FFFF1BD + 94FFF0B188FFEFB188FFEFB187FFEFB187FFDB956FFF00000000000000000000 + 000000000000000000000000000000000000000000000D0D0D13959595C6C3CE + CAFD54BF9EFF48B48FFEF1C9A0FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CC + A3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CBA2FF46B28CFE18B7 + 83FFBDBDBDE99B9B9BCE000000000000000019B884FF0ED8A3FF0EDBA6FF0FDB + A6FF0EDBA6FF0FDBA6FF0EDBA5FF0FDCA6FF0EDCA6FF0EDBA5FF0FDBA5FF0FDC + A5FF0EDBA6FF0EDBA6FF0FDCA6FF0FDCA5FF0FDBA6FF0FDBA6FF0FDBA6FF4FEA + BFFF1AB885FF063C2C520000000000000000000000003C3938FF504D4BFF504E + 4BFF6D6B6AFF5F5B58FF5F5B58FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8 + C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FF3E3C3AFF504D + 4BFF504D4BFF504D4BFF0000000000000000000000003DE8B8FF0FE0A9FF0FDF + AAFF0FDFAAFF10E0A9FF0FE0AAFF0FDFA9FF3EE8B9FF1FB986FFDB9570FFF2C0 + 97FFF0B188FFF0B187FFEFB288FFF0B188FFDB956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002222 + 22321616162000000000F5D1ABFFF9D8B2FFF8D8B2FFF9D8B2FFF8D8B1FFF9D8 + B2FFF9D8B2FFF8D8B1FFF9D8B1FFF9D8B2FFF9D8B1FFF7D5AFFF161817231616 + 16201010101800000000000000000000000018B985FF0FDCA6FF0FDDA7FF0EDD + A7FF0FDDA7FF0EDDA7FF0FDCA7FF0FDDA7FF0EDDA7FF0FDDA7FF0FDCA7FF0FDD + A7FF0EDDA7FF0FDDA7FF0FDCA7FF0FDDA7FF0FDCA7FF0FDDA7FF0FDCA7FF18BA + 85FF063C2C52000000000000000000000000000000003D3A39FF534F4DFF5350 + 4DFF5F5B58FF4A4645FF4A4645FFE9E8C4FFE9E9C4FFE9E9C4FFE9E9C5FFE8E9 + C4FFE8E9C4FFE9E8C4FF2F2E2CFF474341FFE9E9C5FFE9E9C5FF413D3CFF534F + 4DFF53504DFF53504EFF00000000000000000000000041E9BAFF0FE1ABFF0FE1 + ACFF0FE0ABFF10E0ABFF10E1ABFF0FE1ABFF43EABBFF1EBB88FFDC956FFFF2C2 + 99FFF0B288FFEFB389FFEFB288FFF0B288FFDC956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F3CEA9FFFADBB7FFFADBB7FFF9DAB7FFFADBB7FFF9DB + B7FFF9DBB7FFF9DBB7FFF9DAB7FFFADBB7FFF9DBB7FFF5D2AEFF000000000000 + 00000000000000000000000000000000000013C08AFF13C08AFF13C08AFF13C0 + 8AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C0 + 8AFF16BC89FF0FE0AAFF0FDFAAFF0FE0AAFF0FE0A9FF6BF2CCFF16BC88FF0000 + 00000000000000000000000000000000000000000000403E3CFF575452FF5754 + 52FF5F5B58FF4A4645FF575452FFEBEBCDFFEBEBCCFFEBEBCCFFEBEBCCFFEBEC + CCFFEBEBCCFFEBEBCCFF2F2E2CFF474341FFEBEBCCFFEBEBCCFF444140FF5754 + 52FF575452FF575452FF0000000000000000000000004CECBEFF10E3AEFF0FE3 + ADFF10E2AEFF0FE2ADFF0FE3AEFF10E3ADFF4EECBFFF1DBE8BFFDC9670FFF5F9 + F7FFF7E1BAFFF7E1BAFFF7E1BAFFF7E1BAFFDC9670FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F2CCA8FFFADDBAFFFADCBAFFFADCBAFFFADDBAFFF9DC + BAFFFADDBAFFFADCBAFFF9DCBAFFFADCBAFFFADCB9FFF4D0ADFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000014BD89FF0FE1ABFF10E0ABFF10E1ABFF73F4CFFF14BD89FF063C2C520000 + 00000000000000000000000000000000000000000000413E3DFF5A5654FF5A56 + 54FF5F5B58FF4A4645FF5A5654FFEDECD0FFEDEDD1FFEDEDD0FFEDEDD1FFECEC + D0FFEDEDD0FFECEDD0FF2F2E2CFF474341FFECEDD0FFECECD1FF464341FF5A56 + 54FF5A5654FF595554FF00000000000000000000000051EDC0FF0FE3AFFF10E4 + AFFF10E4AEFF10E4AFFF10E3AFFF10E4AEFF53EDC1FF1DC18DFF54392B58D796 + 70E3F2AF85FFF3AE85FFF2AE85FFF2AE85FF35261D3800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F1CBA6FFFADEBCFFFADEBDFFFADDBCFFFADDBCFFFADE + BDFFFADEBDFFFADDBDFFFADEBCFFFADEBDFFFADDBDFFF3CFACFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000013BE8BFF0FE2ACFF10E1ADFF0FE2ACFF13BF8AFF063C2C52000000000000 + 0000000000000000000000000000000000000000000042403EFF5B5855FF5B57 + 56FF5F5B58FF4A4645FF5C5855FFEEEED5FFEEEED5FFEEEED5FFEEEED5FFEEEE + D5FFEEEED5FFEEEED5FF2F2E2CFF474341FFEEEED5FFEEEED5FF484442FF5B57 + 56FF5C5856FF5B5856FF00000000000000000000000056EEC2FF10E5AFFF0FE5 + B0FF10E5B0FF10E4AFFF10E5B0FF10E5B0FF58EEC2FF1CC28FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC8A4FFFAE0C1FFFBE0C2FFFAE0C1FFFBE0C2FFFAE0 + C2FFFAE0C2FFFAE0C2FFFAE0C1FFFBE0C1FFFAE0C2FFF1CBA8FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000012C18CFF10E3AFFF89F8D7FF11C18CFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000444140FF5F5A58FF5F5B + 58FF5F5B58FF4A4645FF5E5B59FFF0F1DEFFF1F1DDFFF1F1DEFFF1F1DEFFF0F1 + DEFFF1F1DEFFF0F1DEFF2F2E2CFF2F2E2CFFF1F1DDFFF0F1DEFF494645FF5F5A + 59FF5F5B59FF6D6B6AFF0000000000000000000000005FEFC4FF10E7B1FF10E7 + B1FF10E6B1FF10E7B1FF10E6B1FF10E6B1FF61EFC5FF1CC591FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EEC7A4FFFBE2C3FFFAE1C4FFFBE1C3FFFAE2C3FFFBE1 + C4FFFAE1C4FFFBE1C4FFFBE1C3FFFBE1C3FFFBE1C4FFEFC8A6FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000011C28DFF8EF9D8FF10C28DFF063C2C520000000000000000000000000000 + 00000000000000000000000000000000000000000000454241FF8D8C8BFF6D6B + 6AFF5F5B58FF4A4645FF6D6B6AFFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFB + F5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FF555353FF6D6B + 6AFF8D8C8BFF454240FF00000000000000000000000063F0C5FF10E7B2FF10E7 + B2FF10E7B2FF10E7B2FF10E7B2FF10E7B2FF65F0C5FF1CC792FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7 + A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A5FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000010C28DFF0FC28DFF063C2C52000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A37369B454241FF4542 + 40FF5F5B58FF4A4645FF454241FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3 + B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFF4F3E4FF363333FF4542 + 41FF454240FF1F1D1D5A00000000000000000000000068F0C7FF10E7B2FF10E7 + B2FF10E7B2FF10E7B2FF10E7B2FF10E7B2FF68F0C7FF1DC894FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000EC48FFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000001BCB97F420CA97F421CB + 98F421CB98F421CB98F421CB98F41FCB97F418C390EC00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000020202220A0A0938000000380000003800000038000000380000 + 0038000000380000003800000038000000380A0A093C02020222000000000000 + 0000000000000000000000000000000000000000000000000002000000040000 + 0002000000000000000B000000180000002A0000002900000029000000290000 + 00290000002900000028000000260000001A0000000900000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008E8F82FF8E8F82FF8E8F82FF8E8F82FF8E8F + 82FF8E8F82FF8E8F82FF8E8F82FF8E8F82FF1313122002020205000000000000 + 0000000000000000000000000000000000000000000000000004000000060000 + 00090000000C0000001000000025349E6FFF349E6FFF349E6FFF349E6FFF349E + 6FFF349E6FFF349E6FFF349E6FFF349E6FFF0000002400000021000000150000 + 000B000000090000000900000003000000020000001E00000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000520000003200000000BD8B6BFBD39E7AFFD39E + 7BFFD39E7AFFD39E7AFFD39E7AFFD49E7AFFD49E7AFFD49E7AFFD49E7AFFD49E + 7AFFD49E7AFFD49F7AFFD49F7AFFD49F7AFFD49F7AFFD59F7AFFD59F7AFFD59F + 7AFFD59F7AFFD59F7AFF73513D9F000000000000000000000000000000000000 + 0000000000000000000000000000A5A69BFFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFA5A69BFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000033A070FF3CD7A7FF13B98CFF13B98CFF13B9 + 8CFF13B98CFF13B98CFF3CD7A7FF329F70FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CC8865FFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFF1361DFFF1361 + DFFF1361DFFF1361DFFF0F3EB0FFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFCC8865FF0000000000000000C29372FFF5C49CFFF3BD + 94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD + 94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD + 94FFF3BD94FFF5C49CFFD09775FF020101030000000000000000000000000000 + 0000000000000000000000000000C2C3B4FFF0F0ECFFF0F0ECFFF0F0ECFFF0F0 + ECFFF0F0ECFFF0F0ECFFF0F0ECFFC2C3B4FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031A171FF39D7A6FF0CC78FFF0CC78FFF0CC7 + 8FFF0CC78FFF0CC78FFF39D7A6FF32A171FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CC8865FFEEA97AFFE59E + 75FFDF9772FFDF9772FFDF9772FFDF9772FFDF9772FFDC936FFF0353DCFF0353 + DCFF0352DBFF0353DBFF0F3FB1FFDD946FFFDF9772FFDF9772FFDF9772FFDF97 + 72FFDF9772FFE59E75FFCC8865FF0000000000000000DDAB86FFC59674FFF5C9 + A3FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B6 + 90FFE8B690FFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B6 + 8FFFF5C9A3FFCF9D7AFFD09775FF020201040000000000000000000000000000 + 000000000000000000000000000000000000A5A69BFFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFA5A69BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000030A272FF34D5A4FF0CC790FF0CC790FF0CC7 + 90FF0CC790FF0CC790FF34D6A5FF31A272FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CD8965FFEEA97AFFDF97 + 72FFDF9772FFDF9772FFDF9772FFDF9772FFDF9772FFDB916EFF0455DCFF0455 + DCFF0454DCFF0454DCFF0E40B3FFDC926EFFDF9772FFDF9772FFDF9772FFDF97 + 72FFDF9772FFDF9772FFCD8965FF0000000000000000F4C49BFFF0C198FFE7B8 + 91FFF7D3B4FFEBBD96FFF5C89FFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C7 + 9EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFEBBC96FFD8A6 + 82FFECB890FFF2BD94FFD09775FF020201040000000000000000000000000000 + 000000000000000000000000000000000000818277FF818277FF818277FF8182 + 77FF818277FF818277FF818277FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002DA474FF29D3A1FF0DCA92FF0DCA92FF0DCA + 92FF0DCA92FF0DCA92FF29D3A1FF2EA473FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CE8A66FFEEA97BFFE19A + 74FFECA77FFFECA77EFFECA77EFFECA87FFFECA87EFFE09873FF0657DEFF0657 + DEFF0657DFFF0657DFFF0E42B7FFE29974FFECA77FFFECA77FFFECA77FFFECA7 + 7FFFECA87FFFE19974FFCE8A66FF0000000000000000F5C89EFFF5C89EFFF4C7 + 9DFFD3A582FFF8D9BCFFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CA + A1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF8D9BCFFF1BE + 96FFF4C198FFF4C198FFD09775FF02020104A5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000002CA675FF23D29FFF0DCB93FF0DCB93FF0DCB + 93FF0DCB93FF0DCB93FF23D19FFF2DA574FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CF8A67FFEEA97CFFE39C + 76FFEDA981FFECA980FFECA980FFECA980FFECA980FFDE9671FF0759E0FF0759 + E0FF0759DFFF0759E0FF0D44BAFFE09772FFECA880FFEDA980FFECA980FFEDA9 + 80FFEDA980FFE39C76FFCF8B67FF0000000000000000F5C89EFFF5C89EFFF5C8 + 9EFFF3C59CFFDBAD88FFF9DFC5FFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF2C5 + 9DFFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF9DFC7FFE2B38DFFF4C4 + 9BFFF4C49BFFF4C49BFFD09775FF03020104A5A69BFFC3C4B5FFC2C3B5FFC2C4 + B5FFC3C4B4FFC2C4B5FFC3C4B5FFC3C3B5FFC2C4B5FFC3C4B5FFC3C3B4FFC3C3 + B5FFC3C3B5FFC3C4B5FFC3C3B5FFC2C4B5FFC3C4B5FFC3C3B4FFC3C4B4FFC3C4 + B5FFC3C3B4FFC2C4B5FFC3C3B5FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000002BA676FF1DD09DFF0DCC94FF0DCC94FF0DCC + 94FF0DCC94FF0DCC94FF1DD19CFF2BA676FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000D08B68FFEEA97DFFE49F + 78FFEEAA81FFEEAB82FFEDAA82FFEDAB82FFEDAA82FFDC936FFF095AE1FF095A + E1FF085AE1FF095AE1FF0D45BDFFDD9470FFEEAB81FFEDAA82FFEEAA81FFEDAB + 82FFEEAA81FFE49F78FFCF8B67FF0000000000000000F6CDA4FFF6CDA4FFF6CD + A4FFF5CCA3FFF5CCA3FFF5CCA3FFFBE8D4FFE9B790FFE9B790FFE9B790FFE9B7 + 90FFE9B790FFE9B790FFE9B790FFE9B790FFECBF97FFF5C89FFFF5C89FFFF5C8 + 9EFFF5C89EFFF5C89EFFD09775FF03020104A5A69BFFE4E3DBFFE4E3DBFFE5E6 + DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6 + DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6 + DFFFE5E6DFFFE5E6DFFFC7C7B8FFA5A69BFF28AA7AFF28AA7AFF27AA79FF28AA + 79FF28AA79FF28AA79FF28AA79FF27AA79FF14CE99FF0DCF98FF0DCF98FF0DCF + 98FF0DCF98FF0DCF98FF13CF99FF28A979FF29A978FF28A979FF28A978FF29A9 + 78FF28A978FF29A978FF29A978FF0000000000000000D28E69FFEFAE82FFECA9 + 81FFF0B086FFF0B086FFF0B086FFF0AF86FFF0AF86FFD68A68FF0D60E4FF0D60 + E4FF0D60E4FF0D60E5FF0E4DC8FFD78B69FFF0B086FFF0B086FFF0B086FFF0AF + 86FFF0AF86FFECAA81FFD28D69FF0000000000000000F6D0A7FFF6D0A7FFF6D0 + A7FFF6CFA6FFF6CFA6FFF6CFA6FFFDF2E6FFFDF4EAFFFBEBD9FFFBEBD9FFFBEB + D9FFFBEBD9FFFBEBD9FFFDF4EAFFFDF4EAFFF5CBA2FFF5CBA2FFF5CBA2FFF5CA + A1FFF5CAA1FFF5CAA1FFD09775FF03020104A5A69BFFD69773FFD79774FFD797 + 74FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD797 + 74FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD797 + 74FFD79774FFD79774FFC7C9B9FFA5A69BFF26AC7BFF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF3EDCB0FF3EDCB0FF11CE98FF0DD099FF0DD099FF0DD0 + 99FF0DD099FF0DD099FF11CE98FF3EDCB0FF3EDCB0FF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF27AA79FF0000000000000000D38E69FFEAA77DFFE8A5 + 7EFFEBA880FFEBA880FFEBA880FFEBA880FFEBA880FFD38564FF0E62E6FF0E62 + E6FF0E61E5FF0E62E6FF0E50CCFFD38665FFEBA881FFEAA981FFEBA880FFEBA8 + 80FFEBA880FFE8A57DFFD38E6AFF0000000000000000F7D3AAFFF7D3AAFFF7D3 + AAFFF6D2A9FFF6D2A9FFF6D3AAFF3786A9FF0685C4FF0685C5FF0299E8FF0299 + ECFF0299EFFF038FE3FF038FE3FF4FA4D4FFF6D0A8FFF6CEA5FFF6CEA5FFF6CD + A4FFF6CDA4FFF6CDA4FFD09775FF03020104A5A69BFFE6A47EFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFC9CABBFFA5A69BFF24AE7CFF11C996FF11C996FF11C9 + 96FF11C996FF11C996FF11C996FF11C996FF11C996FF0DD29BFF0DD29BFF0DD2 + 9BFF0DD29BFF0DD29BFF0DD29BFF11C996FF11C996FF11C996FF11C996FF11C9 + 96FF11C996FF11C996FF26AC7BFF0000000000000000D48F6AFFDB926EFFDA90 + 6EFFDB926EFFDB926EFFDB926EFFDB926EFFDB926EFFCE7F5FFF1064E7FF1064 + E7FF1064E7FF1064E7FF1054D0FFCE8060FFDB916EFFDB926EFFDB926EFFDB92 + 6EFFDB916EFFDB926EFFD48F6BFF0000000000000000F7D5ADFFF7D5ADFFF7D5 + ADFFF7D7B1FFF9E2CAFF0C8ABAFF069AD6FF04AFF2FF03AFF5FF03ACF6FF02AA + F6FF02A8F6FF02A3F6FF01A2F7FF01A0F7FF019DF7FFF9E2CAFFF2D7B6FFF7D3 + AAFFF7D3AAFFF7D3AAFFD09775FF03020104A5A69BFFE6A37DFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFCCCDBEFFA5A69BFF21B17FFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF22AF7DFF0000000000000000D6916CFFCC7C5DFFCC7C + 5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFF1368E9FF1368 + E9FF1367EAFF1367EAFF125BD9FFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C + 5DFFCC7C5DFFCC7C5DFFD6906CFF0000000000000000F7D5ADFFF7D5ADFFF7D5 + ADFFF8DFC3FF0997CAFF0999CEFF05B5F4FF05B5F5FF04B4F5FF04B1F5FF03AE + F5FF03ACF6FF02A8F6FF02A7F6FF02A5F6FF01A0F7FF019FF7FFF8DFC3FFF7D8 + B2FFF7D5ADFFF7D5ADFFD09775FF03020104A5A69BFFE5A37DFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFCCCEBFFFA5A69BFF1FB280FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF20B17FFF0000000000000000F4B78DFFF5B88DFFF4B8 + 8DFFF4B78DFFF4B78DFFF4B88DFFF4B88DFFF4B88DFFF0AF86FF1469EBFF1469 + EBFF166BEBFF1369EBFF135EDDFFF2B289FFF4B78DFFF4B78DFFF4B88DFFF4B8 + 8DFFF4B88DFFF5B78DFFF5BC93FFD7916CFF00000000F7D5ADFFF7D5ADFFEED2 + B0FB0B9BCAFF0AA5D6FF09AFE4FF06B9F5FF06B8F5FF05B6F5FF05B5F5FF04B2 + F5FF04B1F5FF03ACF5FF02ABF6FF02AAF6FF02A5F6FF02A3F6FF01A2F7FFF5D7 + B5FFF4D6B4FCF7D5ADFFD09775FF03020104A5A69BFFE5A37EFFE9A680FFE8A6 + 80FFE9A680FFE8A680FFE8A680FFE9A680FFE9A680FFE9A680FFE8A680FFE8A6 + 80FFE8A780FFE8A680FFE8A780FFE9A680FFE9A780FFE9A680FFE9A681FFE8A6 + 80FFE8A780FFE8A680FFCECFC0FFA5A69BFF1EB482FF10D8A1FF10D8A1FF10D8 + A1FF10D8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0ED8A1FF0ED8 + A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8 + A1FF0ED8A1FF0ED8A1FF20B280FF0000000000000000F5B98FFFEFB087FFEFB0 + 87FFEFB087FFEFB087FFEFB087FFEFAF87FFEFB087FFE8A57EFF146BECFF146B + ECFF2073EEFF156AECFF1462E0FFEAA780FFEFB087FFEFB087FFEFB087FFEFB0 + 87FFEFB087FFEFB087FFF5BD94FFD8926DFF00000000F1D3B3FBF5D8B7FFC9A5 + 8AFF35C4E7FF0BC3F4FF0BC3F4FF0AC1F4FF09C0F4FF08BEF4FF07BCF5FF06B9 + F5FF06B8F5FF05B5F5FF04B4F5FF04B2F5FF36AAD7FFA89D90FFC3A289FFE1B5 + 93FFF5D8B7FFF5D8B7FFDFB090FF03020104A5A69BFFE6A681FFEAAA84FFEAA9 + 84FFEBA983FFEBA983FFEBA984FFEAAA83FFEAAA83FFEBA983FFEAAA83FFEBAA + 83FFEAAA84FFEAAA83FFEBA983FFEAA983FFEAAA84FFEBAA83FFEBA983FFEAAA + 83FFEAAA84FFEAAA83FFD1D2C3FFA5A69BFF1AB784FF16DBA6FF16DBA6FF16DB + A6FF16DBA6FF15DBA6FF15DBA6FF15DBA6FF14DBA6FF14DBA6FF14DBA6FF14DB + A6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DB + A5FF13DBA5FF12DBA5FF1CB683FF0000000000000000F7C79FFFF2B58CFFF6BB + 90FFF6BC90FFF6BB90FFF6BB91FFF6BB90FFF6BB90FFEAA780FF176DEEFF176D + EEFF5196F4FF176EEDFF1568E7FFEAA780FFF6BB90FFF7BB91FFF6BB91FFF6BB + 91FFF6BB90FFF6BB90FFF7C7A0FFD9936EFF00000000E8C2A2FDE6BA96FFE0B2 + 90FF9EA598FF55D2EAFF0CC5F3FF0BC3F4FF0BC3F4FF0AC2F4FF09C0F4FF08BD + F4FF07BCF5FF06B8F5FF05B6F5FF0AB6F3FFBE9F88FFCDA88CFFDEB593FFE8BB + 97FFE8BC97FFE8BC97FFC39071EA00000000A5A69BFFE6A881FFECAB85FFECAC + 86FFEBAC85FFEBAB85FFEBAB85FFECAB85FFEBAC85FFECAC85FFEBAC85FFEBAC + 85FFECAB85FFEBAC85FFEBAC85FFECAC85FFEBAB85FFECAC85FFECAB85FFECAC + 85FFECAC85FFEBAC85FFD3D4C5FFA5A69BFF18B885FF90F9D9FF90F9D9FF90F9 + D9FF90F9D9FF90F9D9FF90F9D9FFF5F9F7FF1FDDA9FF19DCA7FF19DCA7FF19DC + A7FF18DCA7FF18DCA7FF1DDDA9FFF5F9F7FF90F9D9FF90F9D9FF90F9D9FF90F9 + D9FF90F9D9FF90F9D9FF1AB784FF0000000000000000F8CCA6FFF3B78DFFF6BC + 91FFF7BC91FFF7BC91FFF7BC91FFF6BC91FFF6BD91FFEAA881FF176EEEFF1970 + EEFF69A8F7FF176FEEFF166BEAFFE6A27CFFF7BC91FFF7BD91FFF7BC91FFF6BC + 91FFF6BC92FFF6BC91FFF8CCA6FFDA946EFF00000000DAA886FFECCAACFEE7BB + 98FFD7AE90FFB3A793FF74D9EAFF0CC5F3FF0BC3F3FF0BC3F4FF0BC3F4FF0AC1 + F4FF09C0F4FF07BCF4FF21B7E6FF97A49DFFD8B292FFE4B996FFE9BD99FFE9BE + 99FFE9BE9AFFEECFB1FD5642356500000000A5A69BFFE8A983FFECAE87FFECAE + 87FFEDAE87FFEDAE87FFECAE87FFECAD87FFECAE87FFEDAE87FFEDAE88FFEDAE + 87FFECAE88FFEDAE87FFEDAE87FFECAD87FFEDAE87FFECAE87FFECAE87FFECAE + 87FFECAE88FFECAE87FFD4D5C8FFA5A69BFF17BA87FF17BB87FF17BA86FF17BA + 86FF18BA87FF17B986FF17BA87FF17BA86FF2AE0ADFF1DDDA9FF1DDDA9FF1DDD + A9FF1CDDA9FF1CDDA9FF28E0ADFF18B986FF18B986FF18B986FF18B986FF18B9 + 86FF18B986FF19B985FF19B985FF0000000000000000F9DFC7FFF7BE93FFF7BE + 93FFF7BE93FFF7BE93FFF7BE93FFF7BE93FFF7BE93FFE7A47EFF186FEFFF277A + F1FF7AB4F9FF186FEFFF186EEEFFE7A47EFFF7BE93FFF7BE93FFF7BE93FFF7BE + 93FFF7BE93FFF7BE93FFFAE8D8FFDA946FFF000000000000000055413464DAA8 + 86FFEAC09BFFE9BE99FFE5BB98FF9CE8F3FF11CDF2FF0FCAF3FF0DC8F3FF0CC5 + F3FF0EC9F4FFC1A78FFFDAB595FFE8BF9CFFECC29DFFECC29DFFECC39DFFF2D6 + B9FDDEAE8DFF564235650000000000000000A5A69BFFE8AC86FFEFB38CFFEFB3 + 8CFFEFB28CFFEFB28CFFEFB28CFFEFB38CFFEFB28CFFEFB38BFFEFB28CFFEFB3 + 8CFFEFB28BFFEFB28CFFEFB28CFFEFB28CFFEFB38CFFEFB38BFFEFB28CFFEFB3 + 8BFFEFB38BFFEFB28CFFD7D7CBFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000014BC88FF3FE4B3FF26DEABFF25DEABFF25DE + ABFF25DEABFF24DEABFF3CE3B2FF15BC88FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000DA9570FFAE8989FF3648 + 99FF1E3592FF454C91FF615178FFB67E62FFBF8260FF95654AC7146BECFF146B + ECFF146BECFF146BECFFBF8260FF95654AC7B67E63FF8C6B70FF7F708EFF203E + 9AFF1A3B9BFF374E9DFFDA9570FF8D654A8F0000000000000000000000005541 + 3464F2D8BDFDECC19EFFEBC19CFFCBB99EFFAFEEF8FF12CEF2FF10CCF3FF13CE + F3FF5CBFC8FFE3BD9AFFECC39EFFEEC59FFFEEC59FFFEEC59FFFEEC5A0FFDFB0 + 8EFF57433566000000000000000000000000A5A69BFFE9AD87FFF1B58EFFF1B5 + 8EFFF1B58EFFF0B58EFFF0B58DFFF0B58EFFF0B58EFFF1B58EFFF1B58EFFF0B5 + 8EFFF1B58EFFF1B58DFFF1B58EFFF1B58EFFF0B58DFFF1B58DFFF0B58DFFF0B5 + 8DFFF0B58EFFF1B58EFFD7D8CCFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000013BE8AFF46E5B5FF2ADEABFF29DEABFF29DE + ABFF29DEABFF29DEABFF45E5B5FF14BE89FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000017234F7C0E33A0FF1F5D + CEFF0D46BBFF0B4ECBFF0A44BBFF0C2890FF1C3796FF5B5684FF062E9EFF062E + 9EFF062E9EFF062E9EFF947272FF5C5984FF0F379EFF0D3FADFF0C4CC4FF0E48 + BEFF1662DFFF2063D4FF615A75C6000000010000000000000000000000000000 + 0000DCAA88FFF5DBC1FEEDC59FFFECC39DFFCDC2A6FFBFF1FAFF15D3F2FF5AC7 + CEFFDCB998FFEEC7A1FFEEC7A1FFEFC8A2FFEFC8A2FFEFC8A2FFF4DBC0FD5844 + 366800000000000000000000000000000000A5A69BFFEAAF89FFF1B78FFFF1B7 + 90FFF1B890FFF1B790FFF2B790FFF2B890FFF1B790FFF1B790FFF1B890FFF1B8 + 90FFF2B890FFF2B890FFF2B790FFF1B790FFF2B790FFF2B890FFF2B78FFFF2B7 + 8FFFF2B790FFF1B790FFD8DACEFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000013BF8BFF4CE6B7FF2EDEABFF2EDEABFF2DDE + ABFF2DDEABFF2DDEACFF4BE6B7FF13BF8BFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000C317FB61653C5FF3880 + EDFF0E50CCFF0C5FE3FF0448CEFF0E35A5FF0E34A4FF0D35A6FF103CADFF4990 + F1FF4990F1FF103CADFF1345B2FF0E36A3FF0E35A5FF0E35A5FF0D40B5FF0E50 + CCFF387BECFF3880EDFF0C317FB6000000000000000000000000000000000000 + 00000000000058443668DDAD8BFFF0CAA3FFF1CBA4FFF1CBA4FFF0CBA4FFF1CC + A4FFF2CCA5FFF2CDA5FFF2CDA5FFF3CEA6FFF5DDC3FDE1B593FF5B46376B0000 + 000000000000000000000000000000000000A5A69BFFEBB18BFFF4BB93FFF3BB + 94FFF3BB94FFF3BB94FFF4BB93FFF4BB94FFF4BB93FFF4BB94FFF3BB94FFF3BB + 94FFF3BC94FFF4BB94FFF3BB94FFF3BB93FFF4BC93FFF3BB94FFF4BB93FFF4BB + 94FFF4BB94FFF4BB94FFDBDBD0FFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000011C28CFF53E8B9FF35DDABFF34DDABFF34DD + ABFF34DEABFF34DEABFF53E8B9FF11C18CFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000B317FB7215BCAFF5195 + F8FF0C5BDDFF0C5FE3FF0E60E3FF2672E6FF2A6CDDFF124FCBFF123AA3F4173F + A5EF1241AEFF1241ABF80E45B6FD0D4CCBFF206CE4FF2270E7FF0E60E3FF0C5B + DDFF5091F6FF5195F8FF0B317FB7000000000000000000000000000000000000 + 000000000000000000005A45376AF7DFC6FEF7DEC2FFF7DEC2FFF7DEC2FFF7DE + C2FFF7DFC2FFF7DFC3FFF7DFC3FFF8DFC3FFE2B695FF5D47386D000000000000 + 000000000000000000000000000000000000A5A69BFFEBB28CFFF4BD94FFF4BC + 95FFF4BC95FFF4BC95FFF5BD95FFF4BD95FFF4BC95FFF4BD95FFF4BD95FFF5BD + 95FFF4BC95FFF4BD95FFF4BD95FFF5BD95FFF5BD95FFF4BD95FFF4BD95FFF4BD + 95FFF4BD94FFF5BD94FFDBDCD0FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000000FC38DFF54E9BAFF37DDABFF37DDABFF37DD + ABFF37DDABFF37DDABFF54E9BAFF10C28DFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000928699A2158C7FF579B + FDFF1C6CE6FF3781ECFF478AEBFF0D48C8FF0D40B8FE0D34A0F2000001030000 + 00000000000000000203061B486C0F3EA5F20D49C8FF2464D8FF478AEBFF1C6C + E6FF5698FCFF579BFDFF0928699A000000000000000000000000000000000000 + 0000000000000000000000000000B28B6FCDE8BC98FFE8BC98FFE8BC98FFE8BD + 98FFE8BD99FFE8BE99FFE8BE99FFE9BE99FF5E48386E00000000000000000000 + 000000000000000000000000000000000000A5A69BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFDCDDD1FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000000EC38EFF79EDC8FF3ADCABFF39DCABFF39DC + ABFF39DCABFF39DDABFF79EDC8FF0FC38EFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000061C4A6F1B50BEFF599C + FDFF97C3FAFF1859D4FF0D47C7FF0D36A4F70820629500030B11000000000000 + 000000000000000000000000000001040B110F40A9F70E46BCFF0D48C7FF97C3 + FAFF9BC8FDFF599CFDFF061C4A6F000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FF0000000000000000000000000000 + 00000000000000000000000000000EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC4 + 8FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000092963791143 + B8FF0C3296DC071C578501030C13000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000001040C130C3A + 9ADC0E42B0FB1249BBFF00000203000000000000000000000000000000000000 + 000000000001000000020000000300000006000000090000000C000000100000 + 001100000014000000100000000D0000000C0000000600000005000000030000 + 0001000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00010000000300000005000000060000000C0000000E00000010000000140000 + 0011000000100000000C00000009000000060000000300000002000000010000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000200000004000000070000000C000000120000001C0E33246A339F + 70FF0E33247F0000002E00000029000000210000000D0000000A000000060000 + 0002000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000001E000000320000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000003200000000000000000000000000000000000000000000 + 0002000000070000000A0000000C0000001C00000021000000240F34247F339F + 70FF0000002E00000021000000110000000D0000000600000003000000020000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424523AD6A6FF13BA + 8CFF3AD6A6FF0F34245200000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4FF3569DCFF3569DCFF3569DCFF3569DCFF173BB6FF063384FF093889FF0938 + 89FF093889FF0C3C8FFF063384FF173BB6FF3568DCFF3568DCFF3568DCFF3568 + DCFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424523CD7A7FF32A0 + 71FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34245232A171FF13BA8CFF13BA + 8CFF13BA8CFF31A071FF0F342452000402050000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4FF366DDDFF366DDDFF366DDDFF366CDDFF173BB6FF063384FF13469DFF1346 + 9DFF13469DFF0E3E92FF063384FF173BB6FF366CDDFF366CDDFF366CDDFF366C + DDFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34245230A271FF17CA95FF31A1 + 72FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34245230A172FF35D5A5FF11BE8EFF12BD + 8EFF13BB8DFF35D5A5FF30A172FF0F3424520000000000000000000000000000 + 0000000000000000000000000000000000000000001800000021000000210000 + 00250000002A0000002A0000002A0000002A0000002A0000002A0000002A0000 + 002A0000002A0000002A0000002A0000002A0000002A0000002A000000280000 + 0021000000210000001B00000000000000000000000000000000000000002E54 + D4FF5799EBFF5799EBFF5799EBFF72B7FFFF173BB6FF063384FF1548A0FF1448 + A0FF14489FFF114297FF063384FF173BB6FF5799EBFF5799EBFF5799EBFF5799 + EBFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34245230A373FF39D6A6FF1FCE9AFF30A3 + 73FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34245230D4A3FF12BD8EFF12BD8EFF0DCB95FF0DCB + 96FF0DCB95FF12BD8EFF12BD8EFF30D4A3FF0F34245200040205000000000000 + 00000000000000000000000000000000000000000010BD8462F1E8A97FFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFD595 + 70FF140E0B4A0000002700000000000000000000000000000000000000000000 + 0000D4D4D4FFBFBFBFFFBFBFBFFFBFBFBFFF9C9C9CFF063384FF194FA7FF184E + A7FF184EA7FF184EA5FF063384FF9C9C9CFFBFBFBFFFBFBFBFFFC3C3C3FFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34245234D5A4FF10BF8EFF10BF8EFF30D4A2FF2DA5 + 75FF00000000000403060004030600040306000403060009060C000403060004 + 0306000403060004030600040306000302040000000000000000000000000000 + 0000000000000F3424522DA575FF12BE8FFF12BE8FFF0ECC97FF0ECC96FF0DCC + 96FF0ECC96FF0ECD97FF12BE8EFF12BF8FFF2DA575FF0F342452000000000000 + 00000000000000000000000000000000000000000000B57D5BEFF6BB91FFE09B + 73FFD5916AFFD6926BFFD8946CFFD8956DFFD9956DFFDA966FFFDB976FFFDB97 + 6FFFDB976FFFDD9971FFDE9971FFDE9971FFE09A72FFE09A72FFE09B73FFE09C + 74FFB07C5ECD0000000000000000000000000000000000000000000000000000 + 0000D4D5D5FFBFBFBFFFCBCBCBFFCDCDCDFF9C9C9CFF063384FF093889FF0938 + 89FF093889FF1951AAFF063384FF9C9C9CFFCBCBCBFFCBCBCBFFBFBFBFFFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 00000008050A0F3424522CA675FF10C08FFF10C08EFF0DCA94FF37D6A5FF2BA7 + 76FF2CA676FF2CA676FF2CA676FF2BA676FF2BA676FF2BA675FF2BA676FF2CA6 + 76FF2CA675FF2CA676FF2BA675FF2CA676FF0000000000000000000000000000 + 00000F3424522CA676FF2AD3A2FF11C090FF0ECD98FF0ECD98FF0ECE97FF0ECD + 98FF0DCE97FF0ECE98FF0ECD98FF11C190FF2AD4A1FF2CA676FF0F3424520000 + 00000000000000000000000000000000000000000000B67E5CEEFDEFE2FFEDAC + 83FFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A3 + 7AFFE9A47AFFE9A47AFFE9A47BFFE9A47BFFE9A47BFFE9A47BFFE9A47BFFE19C + 74FFD3946FFB0000000000000000000000000000000000000000000000000000 + 0000D6D6D6FFC3C3C3FFD3D3D3FFD6D6D6FF9C9C9CFF063384FF1D58B0FF1D57 + B0FF1D57AFFF114498FF063384FF9C9C9CFFD6D6D6FFD3D3D3FFBFBFBFFFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 00000F3424522BA777FF2ED4A2FF10C18FFF0DCC95FF0DCB95FF0DCB95FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF2AA777FF0000000000000000000000000F34 + 245224D4A1FF10C995FF10C995FF0ED09BFF0ED09AFF0ED09AFF0ED09BFF0ED0 + 9AFF0ED09AFF0ED09AFF0ED09AFF0ED09AFF10C996FF10C995FF24D4A1FF0F34 + 24520000000000000000000000000000000000000000B67E5DECF4C196FFEDB1 + 87FFE19C74FFEAA57CFFEAA57CFFEAA67DFFEAA67DFFEAA67DFFEAA67DFFEAA6 + 7DFFEAA67DFFEBA77DFFEBA77EFFEBA77EFFEBA87EFFEBA87EFFEBA87EFFEAA7 + 7EFFE6A57BFFC88D6BEE00000000000000000000000000000000000000000000 + 0000D9D9D9FFD0CFCFFFD8D8D9FFD8D9D9FF9C9C9CFF063384FF215EB8FF205D + B7FF205EB7FF1952A9FF063384FF9C9C9CFFD9D8D8FFD9D8D8FFC4C4C4FFB3B3 + B3FF000000000000000000000000000000000000000000000000000604080F34 + 245219C895FF0FC492FF0DCE98FF0DCF98FF0DCE98FF0ECE98FF10C18FFF10C1 + 8FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF10C18FFF19D29FFF28AA7AFF00000000000000000F34245227AB + 7AFF0FCC98FF0FCC97FF0ED19CFF0ED19CFF0ED19CFF0ED19BFF0FD19CFF0ED2 + 9CFF0ED19CFF0ED29BFF0ED19CFF0ED29CFF0ED19BFF0FCB97FF0FCC98FF27AA + 7AFF0F34245200000000000000000000000000000000B7805EEBF3C297FFCC8F + 69FFE19E76FFEAA67DFFEBA87EFFEBA87EFFEBA87EFFEBA87FFFECA97FFFECA9 + 7FFFECA97FFFECA97FFFECAA80FFECAA80FFECAA80FFECAA80FFEDAA80FFEDAB + 81FFE9A77EFFDB9C76FE00000000000000000000000000000000000000000000 + 0000DADADAFFD6D6D6FFDADADAFFDADADBFF9C9C9CFF063384FF3786D5FF3786 + D5FF3786D5FF1E5AB2FF063384FF9C9C9CFFDADADAFFDADADAFFCCCCCCFFB3B3 + B3FF0000000000000000000000000000000000000000000000000F34245226AC + 7BFF0FC793FF0DCF99FF0ECF9AFF0DD099FF0ED099FF0ED09AFF0DD099FF0ED0 + 99FF0DD099FF0ED099FF0DD09AFF0DCF9AFF0DCF9AFF0DD09AFF0DD099FF0DD0 + 9AFF0EC995FF10C18FFF20D6A2FF26AB7BFF000000000F34245226AC7BFF1ED4 + A1FF0FCF9AFF0ED39DFF0ED39DFF0ED29DFF0ED39DFF0ED29DFF0FD39DFF0ED3 + 9DFF0ED29DFF0ED39DFF0ED39DFF0ED39DFF0FD29DFF0ED39CFF10CE99FF1ED4 + A1FF26AC7AFF0F342452000000000000000000000000B77F5EE9F3C397FFC286 + 61FFE8AB82FFE5A47AFFECAA80FFEDAA80FFEDAB81FFEDAB81FFEDAB81FFEDAB + 81FFEDAC82FFEDAC82FFEDAC82FFEEAC83FFEEAD83FFEEAD83FFEEAD84FFEEAD + 84FFEDAD83FFE9AA80FF00000000000000000000000000000000000000000606 + 060BDCDBDBFFDCDCDBFFDBDCDBFFDBDBDCFF9C9C9CFF063384FF2260BAFF2260 + BAFF2260BAFF2260BAFF063384FF9C9C9CFFDBDBDBFFDBDBDCFFD3D3D3FFADAD + ADFF2C2C2C4B000000000000000000000000000000000F34245224AD7CFF19CB + 99FF0DD19BFF0ED19BFF0ED19BFF0ED19BFF0DD19BFF0DD19AFF0DD19BFF0DD2 + 9BFF0ED19BFF0ED19BFF0DD19BFF0DD19BFF0DD29BFF0DD19BFF0ED29BFF0ED1 + 9BFF0DD19BFF0ECA96FF27D9A6FF24AD7CFF0F342452D0F5EBFF57E7BEFF57E7 + BEFF56E9BFFF57EABFFFCEF5EBFF0ED59FFF0ED5A0FF0ED5A0FF0ED5A0FF0ED6 + A0FF0ED5A0FF0FD6A0FF0ED59FFF0ED59FFF23DBA9FFCEF5EBFF56EABFFF57E7 + BEFF57E7BEFFD0F5EBFF0F3424520000000000000000B78060E7F2C499FFCC90 + 6AFFEEC499FFEBAC83FFEDAD84FFF0B086FFF0B187FFF0B187FFF1B188FFF1B1 + 88FFF1B288FFF1B388FFF1B389FFF1B389FFF1B489FFF1B489FFF2B48AFFF2B4 + 8BFFF2B48BFFF3B58BFF936A50AD000000000000000000000000000000001935 + BFFF9F9F9FFFD4D4D5FFDEDFDEFFDFDEDEFF9C9C9CFF3786D5FF3786D5FF3786 + D5FF3786D5FF3786D5FF3786D5FF9C9C9CFFDEDEDFFFDEDEDFFFD1D0D0FFA3A3 + A3FE1226ADFF0000000000000000000000000F34245217D09CFF0FCF9AFF0ED4 + 9EFF0DD49EFF0ED49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0ED4 + 9EFF0ED49DFF0ED49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED4 + 9EFF0ED49EFF0ED49EFF34DFB0FF21B17FFF21B17EFF21B17FFF21B17FFF20B1 + 7FFF21B17FFF21B17FFF19B885FF0FD7A2FF0ED7A1FF0ED7A1FF0FD7A1FF0FD6 + A1FF0FD7A2FF0FD6A1FF0FD7A1FF0ED7A1FF27DEACFF18B985FF21B07EFF21B1 + 7FFF21B17EFF21B17EFF21B17FFF0000000000000000B88160E5F2C79AFFD195 + 6EFFE5B287FFEFC094FFECAF85FFF2B48AFFF2B48AFFF2B48BFFF3B58BFFF3B6 + 8BFFF3B68BFFF3B68BFFF3B68CFFF3B68CFFF4B78DFFF4B78DFFF4B78DFFF4B8 + 8EFFF4B88EFFF4B88EFFCA926FEE000000000000000000000000000000001935 + BFFFA1A1A1FF9F9F9FFFD5D5D5FFE0DFDFFFDFE0E0FFE0DFE0FF2A8F60FF0CC7 + 90FF2A8F60FFE0E0E0FFE0DFE0FFE0E0DFFFDFE0E0FFD2D2D2FF9C9C9CFF4275 + DBFF1226ADFF00000000000000000000000020B27FFF0ED6A0FF0ED5A0FF0ED6 + 9FFF0ED69FFF0ED6A0FF0ED59FFF0ED69FFF0ED69FFF0ED69FFF0ED5A0FF0ED5 + A0FF0ED69FFF0ED59FFF0ED59FFF0ED69FFF0ED5A0FF0ED59FFF0ED5A0FF0ED6 + 9FFF0ED6A0FF0ED5A0FF3CE2B4FF20B280FF0000000000000000000000000000 + 0000000000000000000017BB87FF0FD8A3FF0FD8A3FF0FD8A3FF0FD8A2FF0FD9 + A3FF0FD8A2FF0FD8A2FF0ED9A3FF0ED8A3FF2CE0AEFF17BA87FF000000000000 + 00000000000000000000000000000000000000000000B88261E4F1C89BFFD69A + 72FFD79B73FFF0C99CFFF2B58BFFF4B78DFFF4B88DFFF4B88EFFF4B88EFFF4B9 + 8EFFF4B98EFFF5B98FFFF5B98FFFF5BA8FFFF6BA90FFF6BB90FFF6BB90FFF6BB + 90FFF6BB90FFF6BB90FFE8AD85FF624836730000000000000000000000001935 + BFFF4275DBFFA2A2A2FF9F9F9FFFE1E1E1FFE1E1E1FFE1E1E1FF0CC790FF2A8F + 60FF2E54D4FF2A8F60FFE1E1E1FFE1E1E1FFD2D2D2FF9D9D9DFFA4A5A5FF4A8D + EBFF1226ADFF000000000000000000000000063C2C5233E1B1FF0FD7A1FF0ED7 + A1FF0FD7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A2FF0ED7A1FF0ED7A1FF0ED7A1FF0FD6 + A1FF0ED7A1FF0ED7A1FF42E5B7FF1FB381FF0000000000000000000000000000 + 0000000000000000000014BD8AFF0FDBA5FF0FDBA6FF0FDBA6FF0FDBA6FF0FDA + A5FF0FDBA6FF0FDBA5FF0FDAA6FF0FDBA5FF35E4B4FF14BD8AFF000000000000 + 00000000000000000000000000000000000000000000B88362E1EFC99CFFDFA3 + 7BFFDFA37BFFE2A77FFFFFFAF1FFFDF1DFFFFDEFDBFFFDEDD9FFFCEAD2FFFBE9 + CFFFFAE7CCFFF9E2C4FFF9E1C1FFF8DFBEFFF8DDBAFFF7DCB8FFF7DCB8FFF6DB + B7FFF6DAB6FFF6DAB6FFF5D9B5FFD7A481FA0000000000000000000000001935 + BFFF3562DAFF5092EFFF4275DBFFA0A0A0FFD8D9D9FFE4E3E3FF154BA3FFF1B1 + 87FFF1B187FFE4E4E3FFE3E3E3FFD5D5D5FFA4A4A5FF4275DBFF4B8EECFF1934 + BFFF1226ADFF00000000000000000000000000000000063C2C521BB684FF46E7 + BAFF0FDAA4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA5FF0ED9A4FF0FDAA4FF0EDA + A4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA4FF0FDAA4FF0FDAA4FF0FDAA4FF0FDA + A4FF0EDAA4FF0FDAA4FF4EE9BEFF1BB783FF0000000000000000000000000000 + 0000000000000000000013BF8BFF0FDCA7FF0FDCA7FF0FDCA7FF0FDCA7FF0FDC + A6FF0FDCA6FF10DCA7FF0FDCA6FF0FDCA7FF39E6B7FF13BF8BFF000000000000 + 00000000000000000000000000000000000000000000B98363E0EFCA9CFFE3A8 + 7FFFE3A87FFFE3A87FFFE7AE87FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF + 85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFDBA0 + 79FF91674EB18A624AA7886149A43D2C21490000000000000000000000000C17 + 3A462E54D4FF3563DAFF5699F1FFA1A1A3FFA0A0A0FFDADAD9FF154BA3FFF1B1 + 87FFF1B187FFE5E5E5FFD5D5D6FF9D9D9DFF4275DBFF4B8EECFF2447CAFF1226 + ADFF060E34460000000000000000000000000000000000000000063C2C521AB8 + 85FF0EDBA5FF0FDBA6FF0FDBA6FF0FDBA5FF0FDCA5FF0FDCA6FF0EDBA5FF0EDB + A6FF0FDCA5FF0FDBA6FF0EDBA5FF0EDCA6FF0FDCA6FF0EDBA5FF0FDBA6FF0FDB + A6FF0FDBA6FF0EDBA6FF53EBC1FF19B884FF0000000000000000000000000000 + 0000000000000000000012C08CFF0FDDA8FF0FDDA8FF10DDA8FF0FDDA8FF0FDD + A8FF0FDDA8FF0FDEA8FF0FDEA8FF0FDDA8FF3DE7BAFF12C08CFF000000000000 + 00000000000000000000000000000000000000000000B88463DEEFCA9DFFE8AD + 84FFEFB58AFFEFB58BFFEFB58BFFEFB48AFFEEB48AFFEEB48AFFEDB389FFEDB3 + 89FFEDB389FFECB288FFECB188FFECB187FFEBB086FFEAB086FFEAAF86FFDCA0 + 79FF17100B1E0000000000000000000000000000000000000000000000000000 + 00001935BFFF2E54D4FF3664DAFF4275DBFFA1A1A3FFA0A0A0FF063384FF0633 + 84FF063384FFD6D6D6FF9D9D9DFFA4A5A5FF5093EFFF244ACBFF1934BFFF060E + 334500000000000000000000000000000000000000000000000000000000063C + 2C5258EDC3FF0FDCA7FF0FDDA7FF0FDDA7FF0FDDA7FF0FDCA7FF0EDCA7FF0EDD + A7FF0FDDA7FF0EDDA7FF0FDDA7FF0EDDA7FF0FDCA7FF0FDCA7FF0EDDA7FF0FDD + A7FF0EDDA7FF0FDDA7FF56EDC2FF18B985FF0000000000000000000000000000 + 0000000000000000000010C28DFF10E0ABFF10E0ABFF0FE0ABFF0FE0AAFF10E0 + AAFF10E0AAFF0FDFAAFF0FE0ABFF0FDFAAFF45EBBDFF10C28DFF000000000000 + 00000000000000000000000000000000000000000000BA8665DCEECC9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFE2A7 + 7FFF140E0A1A0000000000000000000000000000000000000000000000000000 + 0000000000000B1535401935BFFF3664DBFF579BF2FF4275DBFFA0A0A0FFDBDC + DBFFD8D7D8FFA3A4A7FF4275DBFF579AF1FF878CA6FF1226ADFF060D2F400000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000063C2C5216BC88FF6BF2CCFF0FDFA9FF0FE0AAFF0FDFAAFF21E3B1FF16BC + 89FF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C0 + 8AFF13C08AFF13C08AFF13C08AFF13C08AFF0000000000000000000000000000 + 000000000000000000000FC38EFF0FE1ACFF0FE1ABFF0FE1ACFF10E1ACFF0FE1 + ACFF0FE1ACFF0FE1ABFF10E1ABFF0FE1ACFF4AECC0FF0FC38EFF000000000000 + 00000000000000000000000000000000000000000000BC8867DCEDCC9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFFADDB8FFFADD + B8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFD198 + 73F4050302070000000000000000000000000000000000000000000000000000 + 000000000000000000000B14323D2E54D4FF3664DBFF589BF2FFA0A1A4FFA0A0 + A0FF9D9D9DFF4275DBFF579BF2FF061D94FFABABABFF050C2D3D000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000063C2C5214BD89FF10E0ABFF10E1ABFF10E0ABFF2DE6B6FF14BD + 89FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000FC38EFF0FE2ADFF10E2ADFF0FE2ADFF0FE2ADFF0FE2 + ADFF10E2ADFF10E2ADFF10E2ADFF10E2ADFF4DEDC1FF0FC38EFF000000000000 + 00000000000000000000000000000000000000000000BF8A69E0EDCD9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF3D2AEFFDDAC8EFFDDAC + 8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFF3B2B + 2045000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001935BFFF2E54D4FF3664DBFF4275DBFF9FA1 + A5FF9D9FA7FF589CF2FF061D94FFA0A5BFFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000063C2C527CF5D2FF0FE2ACFF10E1ADFF3AEABBFF13BE + 8BFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF10E4AFFF10E4AFFF10E4AFFF10E4AFFF10E4 + AEFF10E4AFFF10E4AFFF10E4AFFF0FE4AFFF53EFC5FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000087634C99D9A686FAD89D + 78FAD69C77F8D69B77F7D69B77F7D49A75F5C18B69E4271C1531000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A122E381935BFFF3563DAFF72B7 + FFFF72B7FFFF1934BFFFABABABFFCCCCCCFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000063C2C5211C18CFF89F8D7FF50EEC4FF12C1 + 8CFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF10E5B0FF10E5B0FF10E5B0FF10E5B0FF10E5 + B0FF10E5B0FF10E5B0FF0FE5B0FF0FE4B0FF55F0C5FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000009112C352E54D4FF3F82 + E6FF3F82E6FF1226ADFFABABABFFCCCCCCFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000063C2C5210C28DFF57F0C7FF11C2 + 8DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF0FE5B1FF10E6B0FF10E6B0FF10E5B0FF0FE5 + B1FF10E6B1FF10E5B0FF10E6B1FF10E6B1FF57F0C8FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001935BFFF3F82 + E6FF3F82E6FF050A2634ABABABFFE4EBEBFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000063C2C52F5F9F7FF10C2 + 8DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC4 + 8FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000509 + 181E0206161E0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000EC4 + 8FFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000003200000040000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000032000000320000000000000017000000270000 + 0032000000400000004000000040000000400000004100000047000000400000 + 0040000000400000004500000047000000400000004000000040000000400000 + 0040000000250000001A00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000343433FF232323FF2222 + 22FF222222FF212121FF212121FF202020FF202020FF1F1F1FFF1F1F1FFF1E1E + 1EFF1E1E1EFF1D1D1DFF1D1D1DFF1D1D1DFF1C1C1CFF1C1C1CFF1B1B1BFF1B1B + 1BFF1B1B1BFF1A1A1AFF343433FF000000000000000000000000000000000534 + 6AFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF1258 + 9FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF1258 + 9FFF05346AFF000000000000000000000000000000179D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF00000017000000000000000000000000000000150000 + 001BE2B798FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B6 + 96FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B6 + 96FFE1B696FFE1B696FF000000110000000000000000363635FFF4E0BDFFF7E2 + BFFFF7E2BEFFF7E2BEFFF7E1BDFFF7E1BCFFF7E1BCFFF7E0BBFFF7E0BBFFF7E0 + BAFFF7E0BAFFF7E0BAFFF7E0BAFFF7E0BAFFFAEFCCFFF9EED0FFF7EBCFFFF5E5 + C9FFF2DFC0FFF2DAB6FF343433FF000000000000000000000000000000000534 + 6AFF0F5094FF073B75FF073A74FF073973FF073972FF073871FF063770FF0637 + 6FFF06376FFF06366EFF06356DFF05356DFF05356CFF05346BFF05346BFF0E50 + 94FF05346AFF00000000000000000000000000000000CCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5 + C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5 + C4FFF9E5C4FFE2B797FF000000000000000000000000393937FFF7E3C1FFF7E3 + C1FFF7E2C0FFF7E2BFFFF7E2BEFFF7E2BEFFF7E2BEFFF7E1BDFFF7E1BCFFF7E0 + BBFFF7E0BBFFF7E0BAFFF7E0BAFFF7E0BAFFF8E3BCFFFCF3CEFFFDF7D8FFFEF9 + E4FFFEF9E7FFF3DEBBFF343433FF000000000000000000000000000000000534 + 6AFF0F5195FFF6DDB6FFF6DDB5FFF6DDB4FFF6DDB4FFF6DCB3FFF6DCB3FFF6DC + B3FFF6DCB2FFF6DCB2FFF6DCB2FFF9E9C1FFFAEDD2FFF9E9CDFFF7E1BDFF0F51 + 95FF05346AFF00000000000000000000000000000000CCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F8E2BBFFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6 + B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6 + B1FFF8E0BAFFE2B898FF0000000000000000000000003E3D3BFFF8E4C4FFF8E4 + C4FFF7E4C3FFF7E4C3FFF7E3C2FFF7E3C1FFD8C7A9FF8C8171FFF7E2BFFFF7E2 + BEFFF7E2BEFFB4A48CFF756C5DFF736A5CFFF5DEBAFFF7E0BBFFF7E0BBFFFCF5 + D3FFFDF7DBFFF8EBD0FF343433FF000000000000000000000000000000000534 + 6AFF115499FFF6DFB9FFF6DFB8FFF6DEB7FFF6DEB7FFF6DDB5FFF6DDB4FFF6DD + B4FFF6DDB4FFF6DDB4FFF6DDB4FFF6DDB4FFF8E5BBFFFCF5D3FFFDF6DDFF1154 + 99FF05346AFF00000000000000000000000000000000CDCDCDFFCCCCCCFFDF98 + 71FFEBA279FFEBA279FFEAA279FFEAA279FFEAA279FFEAA279FFEAA279FFFCC8 + A5FFEAA279FFEAA279FFEBA279FFEAA279FFEAA279FFEAA279FFEAA279FFDF98 + 71FFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F8E1BEFFF3D6B1FFF5DAB5FFF8E1BBFFF8E0BBFFF8E1BBFFF8E1BBFFF8E1 + BBFFF8E1BBFFF8E1BCFFF8E1BBFFF8E1BBFFF9E1BCFFF8E1BBFFF8E1BBFFF4D7 + B2FFF8E1BBFFE3B99AFF00000000000000000000000040403CFFF8E5C7FFF8E5 + C7FFF8E4C5FFF8E4C4FFF7E4C3FFF7E4C3FFB7AA94FF262626FFF7E3C1FFF7E2 + C0FFF7E2C0FF1D1D1DFF1C1C1CFF1F1F1EFF615A4EFFF5DFBBFFF7E1BCFFF7E1 + BCFFFBEFCCFFFAF1D2FF343433FF000000000000000000000000000000000535 + 6BFF11559BFFF6E0BBFFF6DFB9FFF6DFB8FFF6DEB8FFF6DEB7FFF6DDB6FFF6DD + B6FFF6DDB5FFF6DDB4FFF6DDB4FFF6DDB4FFF6DDB4FFF7DFB7FFFBF1CCFF1155 + 9AFF05356BFF00000000000000000000000000000000CECECEFFCDCDCDFFDE97 + 71FFEBA37AFFEBA27AFFEAA37AFFE9A178FFEAA179FFEBA37AFFEAA27AFFFCC8 + A5FFEAA27AFFEAA279FFEBA379FFEBA27AFFEAA37AFFEBA37AFFEBA27AFFDF98 + 71FFCDCDCDFFCDCDCDFF00000000000000000000000000000000000000000000 + 0000F8E2BFFFF3D7B2FFF8E2BCFFF8E1BCFFF8E1BCFFF8E1BCFFF8E2BCFFF8E1 + BCFFF8E1BCFFF8E1BCFFF8E2BCFFF8E1BCFFF8E1BCFFF9E1BCFFF8E1BCFFF5DA + B5FFF8E1BCFFE3BA9BFF00000000000000000000000042423EFFF8E6C9FFF8E6 + C9FFF8E5C8FFF8E5C7FFF8E4C5FFF8E4C4FFB9AB95FF292929FFF7E4C3FFF7E3 + C2FFE2D0B2FF252524FFC9B79DFFEDD9B7FF1B1B1BFFAA9C85FFF7E2BEFFF7E1 + BDFFF7E1BCFFF9E9C3FF343433FF000000000000000000000000000000000535 + 6CFF12569DFFF6E0BCFFF6E0BBFFF6E0BAFFF6E0BAFFF6DFB9FFF6DEB7FFF6DE + B7FFF6DEB7FFF6DDB6FFF6DDB5FFF6DDB5FFF6DDB5FFF6DDB5FFF6DEB5FF1256 + 9DFF06356CFF00000000000000000000000000000000CFCFCFFFCECECEFFDB94 + 6EFFEBA37AFFEAA37AFFE8A178FFDC9770FFE09971FFE8A079FFEAA37AFFFCC8 + A5FFEBA47AFFEBA37AFFEBA37BFFEBA37AFFEBA37AFFEBA37AFFEAA47BFFDF98 + 71FFCECECEFFCECECEFF00000000000000000000000000000000000000000000 + 0000F8E3BFFFF4D8B3FFF8E2BDFFF8E2BDFFF8E2BDFFF8E1BDFFF9E2BCFFF8E2 + BDFFF8E2BDFFF8E2BDFFF8E2BDFFF8E2BCFFF8E1BDFFF8E1BCFFF8E2BDFFF5DB + B6FFF8E1BDFFE3BC9CFF000000000000000000000000474742FFF8E7CCFFF8E7 + CCFFF8E7CBFFF8E7CBFFF8E6CAFFF8E6C9FFBBAF9AFF303030FFF8E5C7FFF8E4 + C5FFF8E4C5FFF7E4C3FFF7E4C3FFF7E4C3FF222222FF766E61FFF7E3C1FFF7E2 + C0FFF7E2BFFFF7E2BFFF343433FF000000000000000000000000000000000637 + 6FFF1359A0FFF7E2C0FFF7E2BFFFF7E2BEFFF7E2BEFFF6E0BDFFF6E0BBFFF6E0 + BBFFF6E0BBFFF6DFBAFFF6DFB9FFF6DFB9FFF6DFB9FFF6DEB8FFF6DEB8FF1359 + A1FF06366FFF00000000000000000000000000000000D1D1D1FFD0D0D0FFCC87 + 63FFD18C68FFCF8965FFCA8562FFCE9B81FFC7825FFFD18C68FFEBA47BFFFCC8 + A5FFECA57CFFECA57CFFE8A37BFFE9A27AFFEBA57CFFEBA57CFFECA57CFFDF9A + 73FFD0D0D0FFD0D0D0FF00000000000000000000000000000000000000000000 + 0000F9E4C3FFF4DAB5FFF8E2BFFFF8E3BFFFF8E3BFFFF9E3BFFFF8E2BEFFF8E3 + BEFFF9E3BFFFF8E2BFFFF8E2BFFFF8E3BFFFF8E2BFFFF8E2BEFFF8E3BEFFF5DC + B8FFF8E2BFFFE5BE9FFF0000000000000000000000004A4944FFF8E8CEFFF8E8 + CEFFF8E7CDFFF8E7CCFFF8E7CBFFF8E7CBFFBCB09DFF333333FFF8E6C9FFF8E5 + C8FFF6E3C5FF56524CFFBDAF99FFC9B9A1FF262626FFAB9F8BFFF7E4C3FFF7E3 + C2FFF7E3C1FFF7E3C1FF343433FF000000000000000000000000000000000737 + 70FF135AA3FFF7E3C1FFF7E2C0FFF7E2C0FFF7E2C0FFF7E2BFFFF7E1BEFFF7DF + BCFFF7E0BAFFF7E1BBFFF7E0BAFFF7E0BAFFF7E0BBFFF7E0BAFFF7E0BAFF135B + A3FF073771FF00000000000000000000000000000000D2D2D2FFD1D1D1FFD7A7 + 8EFFC78360FFCD8E6FFFDBBCACFFE4E2E1FFD49E81FFC98461FFE59F78FFFBC7 + A4FFEBA67DFFE6A279FFDE9A73FFDC9770FFEAA57DFFECA67DFFECA67DFFDF9A + 73FFD1D1D1FFD1D1D1FF00000000000000000000000000000000000000000000 + 0000F8E4C5FFF6DEBAFFF9E3BFFFF8E2BFFFF8E3C0FFF8E3C0FFF8E3C0FFF9E3 + C0FFF8E2C0FFF8E3C0FFF8E3BFFFF8E3C0FFF9E3C0FFF7E2BEFFF9E1BEFFF6DD + B9FFF7E1BDFFE5BFA0FF0000000000000000000000004C4C46FFF9E9CFFFF9E9 + CFFFF8E8CEFFF8E8CEFFF8E7CDFFF6E5CAFFBDB19FFF373737FFF8E7CBFFF8E6 + CAFFF8E6CAFF2E2E2EFF2D2D2DFF2C2C2CFF6E685EFFF7E3C3FFF8E4C4FFF7E4 + C3FFF7E4C3FFF7E4C3FF343433FF000000000000000000000000000000000738 + 72FF145BA4FFF8E3C3FFF7E3C2FFF7E3C1FFF7E3C1FFF7E2C0FFF7E2BFFFF7E1 + BDFFF6DFBAFFF7DFBAFFF7E1BBFFF7E1BCFFF7E1BCFFF7E0BBFFF7E0BBFF145C + A5FF073872FF00000000000000000000000000000000D3D3D3FFD2D2D2FFE6E4 + E3FFDFC4B5FFE6E4E3FFE6D6CCFFE8BBA1FFE5DED9FFCE906FFFDA956FFFF5BF + 9DFFEAA57DFFD9946DFFCB8763FFCA8663FFE8A37AFFEBA77EFFECA77EFFE09B + 74FFD2D2D2FFD2D2D2FF00000000000000000000000000000000000000000000 + 0000F9E5C5FFF7DFBDFFF8E3C0FFF9E3C0FFF9E3C1FFF8E3C0FFF8E3C0FFF9E3 + C0FFF9E3C0FFF8E2C0FFF9E3C1FFF9E4C1FFF7E2C0FFF8E3BFFFF7E2BFFFF5DD + BAFFF7E0BEFFE6C0A3FF000000000000000000000000515149FFF9EAD2FFF9EA + D2FFF9E9D1FFF9E9D1FFF9E9D0FF464544FF3E3E3EFF3D3D3DFFF8E8CEFFF8E7 + CDFFF8E7CDFF353535FF9E9485FFE2D3B9FFE2D2B8FFF3E2C4FFF8E6C9FFF8E5 + C8FFF8E5C7FFF8E5C7FF363634FF00000000000000000000000000000000073A + 76FF155EA9FFF8E5C4FFF8E4C3FFF8E4C3FFF8E4C3FFF8E4C3FFF7E3C2FFF7E2 + C1FFF6E1BEFFF5DAB4FFF5DCB3FFF6DEB9FFF7E3C0FFF7E2BFFFF7E2BEFF155F + A9FF083A76FF00000000000000000000000000000000D5D5D5FFD4D4D4FFE19C + 75FFECA980FFECA980FFEDA980FFEDA980FFECAA82FFE9DAD1FFCA8662FFCE8D + 6BFFCB8764FFE4D5CEFFE9E5E3FFDFBFAEFFD08D68FFE29F77FFECA87FFFE09C + 75FFD4D4D4FFD4D4D4FF00000000000000000000000000000000000000000000 + 0000F9E6C9FFF7E1BFFFF9E4C2FFF8E4C3FFF8E4C2FFF9E4C2FFF8E4C2FFF9E4 + C2FFF7E3C2FFF7E1BFFFF5DEBDFFF5DFBDFFF5DFBEFFF5DEBEFFF5DEBDFFF3DC + BAFFF3DCBCFFE8C3A5FF00000000000000000000000053534BFFF9EBD4FFF9EB + D4FFF9EAD3FFF9EAD2FFF9E9D1FFE1D3BDFF5D5B57FF414141FFF9E9CFFFF8E8 + CEFFF8E8CEFF393939FF383838FF363636FF333333FFCBBDA7FFF8E7CBFFF8E6 + CAFFF8E6C9FFF8E6C9FF363635FF00000000000000000000000000000000083B + 78FF1660ABFFF8E5C7FFF8E5C5FFF8E5C4FFF8E5C4FFF8E4C3FFF8E4C3FFF8E4 + C3FFF8E3C2FFF5DFB7FFF5DBB2FFF5DCB4FFF7E1BEFFF7E3C0FFF7E3C0FF1660 + ABFF083C78FF00000000000000000000000000000000D7D7D7FFD6D6D6FFEBB1 + 8FFFFCC9A6FFFCC9A6FFFCC9A6FFFCC9A6FFFCC9A6FFF9CAABFFDEB49DFFC887 + 65FFD6A991FFEBCDBAFFF4C4A6FFECE7E4FFCC8B69FFDCA07EFFF3BD9BFFEBB1 + 8FFFD5D5D5FFD5D5D5FF00000000000000000000000000000000000000000000 + 0000F9E7CAFFF7E2C0FFF9E5C4FFF8E4C3FFF9E5C4FFF8E5C4FFF9E5C3FFF9E4 + C4FFF8E3C1FFF4DEBEFFF2DCBCFFF3DDBDFFF4DDBEFFF5DEBEFFF4DEBDFFF4DD + BAFFF4DEBDFFE8C5A7FF00000000000000000000000053534BFFF9ECD5FFF9EC + D5FFF9EBD4FFF9EBD4FFF9EAD3FFF9EAD2FFDACEB9FF504F4DFFF9E9D1FFF9E9 + D0FFF9E9D0FF6B6760FF6A6660FF69655FFF67635CFFD7C9B1FFF8E7CCFFF8E7 + CBFFF8E7CBFFF8E7CBFF383836FF00000000000000000000000000000000093C + 7AFF1662ADFFF8E6C9FFF8E5C8FFF8E5C7FFF8E5C7FFF8E5C5FFF8E4C4FFF8E4 + C3FFF8E4C3FFF8E1BFFFF5DFB8FFF4DAB0FFF5DFBAFFF7E1BFFFF7E3C2FF1661 + ADFF093D7AFF00000000000000000000000000000000D8D8D8FFD7D7D7FFE19E + 77FFEDAB82FFEEAB82FFEEAB82FFEDAB82FFEDAB82FFEDAB82FFEEE9E7FFE7D1 + C3FFECE3DEFFEBA981FFEDAB82FFEBB99AFFD29B7EFFCA8663FFDB9772FFE19E + 77FFD7D7D7FFD7D7D7FF00000000000000000000000000000000000000000000 + 0000F9E8CCFFF8E5C4FFF9E5C5FFF9E5C5FFF9E5C5FFF9E5C4FFF8E5C4FFF8E4 + C4FFF8E3C2FFF2DCBDFFF3DCBDFFF2DBBAFFF2DBBBFFF2DCBCFFF3DCBCFFF3DD + BCFFF3DCBDFFE9C7A9FF00000000000000000000000058584FFF0C5DDDFF0B5C + DCFF0A5ADAFF0959D9FF0958D8FF0855D6FF0754D5FF0653D4FF0551D2FF0550 + D1FF044FD1FF034DCFFF034DCEFF024CCEFF024BCDFF024BCDFF024BCDFF024B + CDFF024BCDFF024BCDFF3A3A38FF000000000000000000000000000000000A3F + 7EFF1864B2FFF8E7CBFFF8E7CAFFF8E7CAFFF8E7CAFFF8E6C9FFF8E5C8FFF8E5 + C8FFF8E5C8FFF8E5C5FFF8E4C4FFF8E2C1FFF6DBB4FFF5DBB3FFF7E0BDFF1864 + B1FF0A3F7EFF00000000000000000000000000000000DADADAFFD9D9D9FFE19F + 78FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFFCC8 + A5FFEEAD85FFEEAD84FFEEAD84FFEEAD84FFEFD7C8FFECD9CFFFCA8663FFDA98 + 72FFD9D9D9FFD9D9D9FF00000000000000000000000000000000000000000000 + 0000F9E8CDFFF8E6C7FFF9E6C8FFF9E5C8FFF8E6C8FFF9E5C7FFF9E6C8FFF7E4 + C5FFF6E1C3FFEDD5B7FFEACFB1FFE8CCAFFFE7CBACFFE6CBADFFE7CBACFFE8CC + AFFFDEBEA3FFE7C3A8FF0101010200000000000000005A5A50FF0C5EDEFF0C5D + DEFF0B5BDCFF0A5ADBFF0A59DAFF0957D8FF0856D7FF0755D6FF0653D4FF0652 + D3FF0551D2FF044FD0FF044ED0FF034DCFFF024CCEFF024BCDFF024BCDFF024B + CDFF024BCDFF024BCDFF3C3C39FF000000000000000000000000000000000A41 + 81FF1965B3FFF8E8CCFFF8E7CBFFF8E7CBFFF8E7CBFFF8E7CAFFF8E6C9FFF8E6 + C9FFF8E6C9FFF8E5C8FFF8E5C7FFF8E5C7FFF6E0BBFFF5DAB3FFF6DCB6FF1865 + B3FF0A4081FF00000000000000000000000000000000DBDBDBFFDADADAFFE2A0 + 79FFEFAE85FFEEAE85FFEFAE85FFEEAE85FFEFAE85FFEFAE85FFEEAE85FFFCC9 + A6FFEEAE85FFEFAE85FFEEAE85FFEFAE85FFECAE87FFF2E4DCFFE5C7B5FFD28E + 6AFFDADADAFFDADADAFF00000000000000000000000000000000000000000000 + 0000F9E9CFFFF8E6C8FFF9E7C8FFF9E6C8FFF9E6C8FFF8E6C9FFF9E7C9FFF8E5 + C7FFF5E1C3FFEACFB3FFE4C5AAFFE2C0A5FFDBB89CFFDBB89CFFD9B69BFFD9B7 + 9BFFE8CDAEFFE7C3A8FF0000000000000000000000005D5C52FF0D5FE0FF0D5F + DFFF0C5DDDFF0B5CDDFF0B5BDCFF0A59DAFF0958D9FF0857D8FF0754D6FF0753 + D5FF0652D4FF0550D2FF044FD1FF044ED0FF034DCEFF034CCEFF024BCDFF024B + CDFF024BCDFF024BCDFF3E3E3BFF000000000000000000000000000000000B41 + 82FF1966B5FFF8E8CEFFF8E8CDFFF8E8CCFFF8E8CCFFF8E7CBFFF8E7CAFFF8E7 + CAFFF8E7CAFFF8E6C9FFF8E5C8FFF8E5C8FFF8E2C3FFF6E0BCFFF5DDB5FF1967 + B5FF0B4282FF00000000000000000000000000000000DCDCDCFFDBDBDBFFE2A1 + 79FFEFAF86FFEEAF86FFEEAE85FFEFAF86FFEFAF86FFEFAF86FFEFAF86FFFCC9 + A6FFEEAE86FFEEAF86FFEFAF86FFEFAF86FFEFAF86FFECB58FFFF5EFEBFFCC88 + 64FFDBDBDBFFDBDBDBFF00000000000000000000000000000000000000000000 + 0000F9E9CFFFF8E7C9FFF8E7C9FFF9E7C9FFF8E6C9FFF9E7CAFFF9E6C9FFF8E5 + C8FFF4E0C1FFE8CBAFFFE2C2A7FFE4C7AEFFDFBFA6FFE1C3A8FFEAD2B6FFF5DF + BCFFE8C5AAFF483B3252000000000000000000000000626156FF0E61E1FF0E61 + E1FF0D60E0FF2A70E4FF3D79E6FF3270E0FF0B5BDCFF0A5ADBFF0958D9FF0857 + D8FF0856D7FF0753D5FF0652D4FF2769DFFF3B77E5FF306CDDFF044ECFFF034C + CEFF024BCDFF024BCDFF43433FFF000000000000000000000000000000000C44 + 87FF1B69B9FFF9E9D0FFF8E9CFFF9B9280FF9B9280FF9B927FFF9B927FFF9B92 + 7FFF9B927EFF9B917EFF9B917DFF9B917DFF9B917DFFBFB299FFF8E5C7FF1B69 + B8FF0C4487FF00000000000000000000000000000000DEDEDEFFDDDDDDFFE3A1 + 7AFFEFB187FFEFB188FFEFB087FFEFB088FFEFB187FFEFB187FFEFB188FFFCCA + A7FFEFB187FFEFB187FFEFB188FFF0B188FFEFB188FFEFB088FFEFB088FFF5EA + E3FFDDDDDDFFDDDDDDFF00000000000000000000000000000000000000000000 + 0000F9EAD1FFF9E7CBFFF9E8CBFFF9E8CBFFF9E7CCFFF9E8CBFFF9E8CBFFF6E6 + C9FFF1DDC0FFFCF9F7FFF8F2ECFFFDF7EEFFFAECD5FFF8E3C3FFF7E0BBFF483D + 33520000000000000000000000000000000000000000646458FF0E61E1FF0E61 + E1FF1F6BE4FF2E65D0FF133896FF133896FF2A5CBFFF0B5CDCFF0A5ADAFF0959 + D9FF0957D8FF0855D6FF1B62DCFF2D63CEFF173271FF133896FF2A5EC5FF034D + CFFF034CCEFF024CCEFF454540FF000000000000000000000000000000000D45 + 8AFF1B6AB9FFF9EAD1FFF9E9D0FF565544FF575545FF575544FF575644FF5755 + 44FF565544FF575545FF575544FF575644FF86806CFF9B917DFFF8E7CAFF1B69 + BAFF0D4589FF00000000000000000000000000000000DFDFDFFFDEDEDEFFE3A3 + 7BFFEFB288FFF0B188FFEFB288FFF0B188FFEFB188FFEFB188FFF0B288FFFCCA + A7FFEFB288FFF0B188FFEFB288FFEFB289FFF0B188FFEFB188FFF0B188FFEFD1 + BDFFDEDEDEFFDEDEDEFF00000000000000000000000000000000000000000000 + 0000F9EBD2FFF9E8CCFFF8E7CCFFF9E8CCFFF9E7CCFFF9E8CCFFF8E7CBFFF7E4 + C8FFF2DDC0FFFEFAF5FFFCF6ECFFFBF0DDFFF8E3C2FFF7DFBAFFEDD0B4FF0000 + 0000000000000000000000000000000000000000000067665AFF0E61E1FF0E61 + E1FF1565E2FF133CA0FF526D97FF506C97FF163A8BFF0C59D5FF0B5BDCFF0A5A + DBFF0A59DAFF0957D8FF115BD9FF123BA0FF4774C5FF506C97FF1742A4FF044E + D0FF034ECFFF034DCFFF484842FF000000000000000000000000000000000D47 + 8CFF1C6BBBFFF9EAD2FFF9EAD1FF908974FF908974FF908974FF908974FF9089 + 74FF908974FF908974FF908974FF908974FF5A5A48FF9B917EFFF8E7CBFF1C6A + BBFF0D468CFF00000000000000000000000000000000E1E1E1FFE0E0E0FFE2A3 + 7BFFEFB289FFF0B289FFF0B289FFF0B289FFF0B288FFF0B289FFEFB289FFFCCA + A7FFF0B289FFEFB289FFEFB289FFEFB289FFEFB289FFEFB289FFF0B289FFE9B7 + 98FFDFDFDFFFDFDFDFFF00000000000000000000000000000000000000000000 + 0000F9EBD2FFF9E8CDFFF9E8CDFFF9E8CCFFF9E8CDFFF8E8CDFFF9E7CBFFF6E4 + C9FFF1DCBFFFFCF4E7FFFBEFDCFFF9E8CEFFF7DFB9FFEFD3B7FF493E35520000 + 000000000000000000000000000000000000000000006B6B5DFF579BF0FF579B + F0FF579BF0FF579BF0FF46453DFF48473FFF345E98FF4C89D6FF579BF0FF579B + F0FF579BF0FF579BF0FF579BF0FF579BF0FF3D3C36FF48473FFF345E98FF579B + F0FF579BF0FF579BF0FF4B4B45FF000000000000000000000000000000000E49 + 90FF3786D5FF3786D5FF3786D5FFF5F6EFFFE3E5D2FFD3D6B6FFD3D6B6FFD3D6 + B6FFD3D6B6FFD3D6B6FFD3D6B6FFDDDFC7FF64634FFF2F5B83FF3786D5FF3786 + D5FF0E4990FF00000000000000000000000000000000E3E3E3FFE2E2E2FFE3A3 + 7CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFEBB2 + 90FFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A3 + 7CFFE2E2E2FFE2E2E2FF00000000000000000000000000000000000000000000 + 0000F9EBD4FFF9E8CEFFF9E8CEFFF9E8CEFFF9E9CEFFF9E9CEFFF7E6CDFFF5E1 + C8FFF0DABEFFF7E2C0FFF7E1BEFFF7DFB9FF51463C5900000000000000000000 + 000000000000000000000000000000000000000000006E6D5FFF4078AFFF2380 + E4FF2380E4FF2380E4FF3D3C36FF3D3C36FF164883FF1F6EC5FF2380E4FF2380 + E4FF2380E4FF2380E4FF2380E4FF2380E4FF3D3C36FF3D3C36FF164883FF2380 + E4FF2380E4FF3770A9FF4F4E47FF000000000000000000000000000000000B39 + 71C70E4A93FF0E4B92FF0F4A92FF686754FF686754FF686754FF72725EFF7272 + 5EFF72725EFF72725EFF686854FF686754FF455C6DFF183A5EFF0E4B92FF0F4A + 92FF0B3971C700000000000000000000000000000000E4E4E4FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FF00000000000000000000000000000000000000000000 + 0000FAECD4FFF9E8CEFFF9E9CFFFF9E9CEFFF9E9CFFFF9E8CDFFF7E5CCFFF4E2 + C7FFF0DABFFFF7DFB9FFF7DFB9FFF1D8BCFF0000000000000000000000000000 + 000000000000000000000000000000000000000000006E6D5FFF6C6C5EFF6B6B + 5DFF6A695CFF69685BFFA9A98AFFB8B998FF32363FFF52544FFF636257FF6261 + 56FF626156FF5F5F54FF5E5E53FF5E5D53FFD4D4ABFFB8B998FF2C313BFF5858 + 4FFF58584FFF57564EFF79786DFF000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006C6B57FF646351FF6463 + 51FF646351FF646351FF6D6C58FF000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000 + 0000FAECD5FFF9E9CFFFF9E9CFFFF9E9CFFFF9E9CFFFF9E9CEFFF7E6CCFFF6E3 + C9FFF1DDC2FFF4DCB8FFF1D8BCFF6A5E50720000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000515044C7515044C70000000000000000000000000000 + 000000000000000000000000000000000000686758FF515044C7000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004545389B73725DFF7372 + 5DFF73725DFF73725DFF4545389B000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000F1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8 + BCFFF1D8BCFF7266587900000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000060000000A00500000100010000000000804300000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000FFFFFF8007FFE00007000000FFFFFF80FFFFC00007000000010101807FFF + E00007000000010101803FFFE00007800001010101801FFFE000078000030101 + 01800FFFE00007C000030101018007FFE00007E00007010101E003FFE00007E0 + 0007010101F001FFF0000FF0000FEFEFEFF000FFF8001FF0001FEFEFEFFC007F + FE00FFF0001FE0000FFE0007FF00FFF8001FFFEFFFFE0003FE00FFFC003FFE00 + FFFF8001FE007FFE007FFE00FFFFC000FE007FFE007FFE00FFFFC000FE007FFE + 00FFFE00FFFFF020FE007FFF00FFFE00FFFFF070FE007FFF00FFFE00FFFFF038 + FE00FFFFC1FFFE00FFFFF01CFE00FFFFC3FFFE00FFFFF81FFF00FFFFC7FFFE00 + FFFFF80FFFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFE00FF800001FFFFFF00003FFE00FF000000FFFFFF8000FFFE00FF + 000000FFFFFF8000FFFE00FF0000008007F98000FFFE00FF0000008007F18000 + FFFE00FF0000008007F18000FFFE00FF000000801FE18000FFFE00FF00000080 + 3FC38000FFFE00FF000000801F038000FFFE00FF0000008000038000F8FE00FF + 0000008000038000F8FE00FF0000008000078000F8FE00FF00000080000FFFE3 + F8E0000300000080000FFFE3F8E0000700000080001FFFE3F8F0000F000000FC + 003FFFE1F0F8001F000000FE00FFFFE1F0FC003F000000FF01FFFFE0E0FE007F + 800003FFFFFFFFF001FF00FFFFFFFFFFFFFFFFF803FF81FFFFFFFFFFFFFFFFFC + 07FFC3FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFC00007FE003FFFFFFFC0000FE0001FFE003F000000C0000FE0001F + FFC0FF800003C0000FE0001FFFC1FF800003C0000FE0001FFFC1FF800003C000 + 0FE0001FFFC1FF800003C0000FE0001FFFC1FF800003C0FC0FE0001FFFC1FF80 + 0003C0FC0FE0001FFFC1FF800003C0FC0FE0001FFFC1FF800001C0FC0FE0001F + FFC1FF800001C0FC0FE0001FFFC1FF800001C0FC0FE0001FFFC1FF800001C0C0 + 00E0001FFFC1FF800001C0C000E0001FFFC1FF800001C0C000E0001FF3C1E3FE + 007FC0F003E0001FF1C1E3FE007FC0F803800007F1C1C3FE007FC0F807800007 + F00003FFFFFFC0FE1F800007F00003FFFFFFE1FF1F800007F00003FFFFFFFFFF + 1FC0000FFFFFFFFFFFFFFFFFFFFF87FFF0000FFFFFFFFFFFFFFFFFFFF8001FFF + FFFFFFFFFFFF801FF0000FFFFFFFC00001FFE0FFE00007FFFFFFC00001FFC07F + C00003FFFFFFC00001FFC03F800001FFFFFFC00001FF001F000000FFFFFFC000 + 01FE000F000000FFFFFFC00001FE0007000000FFFFFFC00001F8000300000080 + 0003C00001F00001000000800003C00001F00000000000800003C00001C00001 + 000000E00007C00001800003000000E00007C00001800003000000F0000FC000 + 0180000F000000F0000FC0000180001F000000F0000FC0000180001F000000F0 + 000FC0000182007F800001F0001FC000018200FF800003F8001FC000018000FF + E00007FFFFFFFFFFFFC003FFF0000FFFFFFFFFFFFFE007FFF0001FFFFFFFFFFF + FFF007FFFC003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000FF01C07FC0FFFFF87FFFFFC3FF07F0FF007FFFF87FFFFF83FF83E1F + F003FFFF87FFFFF83FF8181FC000FFF8007FFFE03FFC001FC0C0FFF8007FFFC0 + 3FFC001F81E0FFF8007FFC003FFC001F83F0FFFF03FFF0001FFE003F87F8FFFE + 00FFF0001FFE001F87F8FFFC00FFF0000FF8001F83F0FFF0003FF0000FE00003 + 81E0FFF0303FF0000FC00003C0C0C7F0781FF0000F800000E00047F0FC1FF000 + 1F800000F00007F1FE1FF0001FFF80FFF00007F1FE1FF0003FFF80FFFFF807F0 + FC1FFFC03FFFC1FFFFF807F0781FFFE03FFFC1FFFFE007F0303FFFF03FFFC3FF + FFE007F8007FFFF83FFFC3FFFFE007FC00FFFFFC3FFFE7FFFFFFFFFE00FFFFFE + 3FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFF03E0FC0 + 000FE00007FF81FFF07F0780001FF8003FFE00FFF07F0780001FF8003FFE007F + F03E0780001FF8003FFE007FF03C2780001FF8003FF8001FF01847F0001FF800 + 3FF0001FF00807F0001FF8003FF0001FF0000FF0001FF8003FF0000FF8001FF0 + 001FF8003FE00007FE003FF0001FF8003FE00007FF80FFF0001FF8003FC00003 + FF80FFF0001FF8003FC00003FF00FFF0001FF8003FC00003FE087FF0001FF800 + 3FC00003FE183FF0001FF8003FC00003FE183FF0001FF8003FC00003FC3E1FF0 + 0003F8003FC00003F87F1FF00003F8003FC00003F07F0FF00003F8003FC00003 + F1FF8FF00003F8003FFF81FFF1FFCFF00003F8003FFFC3FFF3FFEFF80003F800 + 3FFFC7FFFFFFFFFFFFFFF8003FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFE00003E0 + 0003FFFFFFFFFFFFFC001FFC001FC00003E00003F0000FF0000F800003C00003 + F00007F00007800003800003E00003E00003800003800003C00003C000038000 + 03800003C00003C0000380000380000380000180000180000380000380000180 + 0001800003800003800001800001800003800003800001800001800003800003 + 8000018000018000038000038000018000018000038000038000018000018000 + 03800003800001800001800003800003C00003C00003800003800003E00003E0 + 0003800003800003F00007F00007800003800003F00007F00007800003800003 + FC001FFC001F800003800003FE003FFE003FC00003800003FF00FFFF00FFE000 + 07800003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00003E0 + 0003E00003FFFFFFFC001FFC001FFC001FFC007FF0000FF0000FF0000FF8003F + F00007F00007F00007F0001FE00003E00003E00003E0000FC00003C00003C000 + 03C00007C00003C00003C0000380000380000180000180000180000380000180 + 0001800001800003800001800001800001800003800001800001800001800003 + 8000018000018000018000038000018000018000018000038000018000018000 + 01800003800001800001800001800003C00003C00003C00003800003E00003E0 + 0003E00003800003F00007F00007F00007C00007F00007F00007F00007E0000F + FC001FFC001FFC001FF0001FFE003FFE003FFE003FF8003FFF00FFFF00FFFF00 + FFFC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFC3FFFFF8FFFC007FFFFFFFFF80E3FFF8FFF8003F + FFFFFFFF00C3FFF87FF0001FFFFFFFFE0001FFF81FE0000FFFFFFFFC0001FFF8 + 1FC00007FFFFFFF8000180000F800003800001F00003800003800003800001E0 + 0003800003800003800001E00003800001800003800001800001800001800003 + 8000018000018000018000038000018000018000038000038000018000018000 + 0780000380000180000180000F800003800001800001FFF81F800003FFFFFF80 + 0001FFF83F800003FFFFFF800001FFF87FC00007FFFFFF800001FFF8FFE0000F + FFFFFF801803FFFFFFF0001FFFFFFFC03803FFFFFFF8003FFFFFFFF03E07FFFF + FFFC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003F80 + 07FFFFFFFFFFFFFFFC003F83FFFF80007FFFFFFFF0001FC1FFFF80007FFFFFFF + F0000FE0FFFF80007FFFFFFF800003F03E7F8000639FFFFF800003F03C7F8000 + 439FE001800003F0187F8000418FE001800003FC007FC200018FF001800003FE + 007FE3000187F801800003FE007FFF000183F801800003FF803FC20001806001 + 800003FF001F800001C00001800003FE001F800001C00001C00003FC00078000 + 63E00001E00007FC000380007FF00001F0001FFC000080007FF00001F0001FFF + F80080007FF80019F0001FFFF801FE07FFFC003FF0001FFFFC03FC03FFFE007F + FC003FFFFF07F801FFFFFFFFFC003FFFFF0FF801FFFFFFFFFC003FFFFF1FF801 + FFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFF800001FFFFFFFFFFFFFFFFFFF0 + 0007800001FFFFFFFE0003F00007C00003F07FFFFC0003F00007C00003E03FFF + F80003F00007C00003C01FFFF00003F00007C000038007FFE00003F00007C000 + 038007FFE00003F00007C000038003FFE00003F00007C000038000FFE00003F0 + 0007C000038000FFE00003F00007C00003C0007FE00003F00007C00003E0001F + E00003F00007C00003F0001FE00003F00007C00003F0000FE00003F00007C000 + 03FC0007E00003F00007C00003FE0003E00003F00007C00003FE0003E00003F0 + 0007C00003FF8003E00003F00007C00003FFC003E00003F00007C00003FFC003 + E00003F00007C00003FFF007FFFFFFF00007C00003FFF80FFFFFFFFE493FC000 + 03FFFC1FFFFFFFFE493FFFFFFFFFFFFFC00FFFFFFFFFFFFFFFFFFFFFC07FFFFF + FFFFFFFFFFFE001F807FFFFFFFFF800003FFF8FF807FFFFFFFFF800003FFF0FF + 807E1FFC003F800003FFE0FF807807000000800003FFC0FFC078070000008000 + 03FF80C7E07807000000800003F00083F87807000000800003C00003F87807FC + 003F800003C00003F87C07FF00FF800003C00003F87F07FF00FF800003C00007 + F87F87FF00FF800003C00007F87F87FF00FFFC0003C00003F87F87FFC3FFFC00 + 03C00003F80F87FFC3FFFC0003C00003F80187FFC3FFFC0003E00003F80007FF + C3FFFC0003FF80C7F80007FFC3FFFC0003FFC0FFF80007FFC3FFFC0003FFC0FF + FC0007FFC3FFFC0003FFF0FFFF0007FFFFFFFFFFFFFFF8FFFFE007FFFFFFFFFF + FFFFF8FFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003FF00007FF + FFFFFFFFFFFFC3FFFC001FF0001FFFFFFFFF00FFFC001FFC003FFFFFFFFE00FF + FC001FFC003FF8000FFE007FFC001FFF00FFFF181FFE007FFC001F000000FF18 + 1FFF81FFFC001F000000FE101FF381CFFC001F000000FE007FE381C3FC001F00 + 0000FE00FFC00003FC001F000000FC00FF800001FC001F000000F8007F000000 + FC001F000000F8003F000000FC001F000000F0003F000000FC001F000000F000 + FF800003FC001F000000F003FFC381C3FC001F000000F007FFE381C7FC001F00 + 0000E03FFFFF81FFFC001F000000C0FFFFFE007FFC001F000000C3FFFFFE007F + FC001F000000FFFFFFFE00FFFC001F000000FFFFFFFF00FFFC001F000000FFFF + FFFF81FFFFFFFFFFFFFFFFFFFFFFC7FFC0000FFFFFFFFFFFFFFFFFFFE07FFFFF + FFFFFFFFFFFFFFFF803FFF80000383FFFFFFFFFF801FFFE0000F81FFFFFFFFFF + 860FFFE0000F81FFFFFFFFFF8F07FFE0000FC07FFF8000018707FFE0000FE03F + FF8000018207FFE0000FF03FFF800001C007FFE0000FF80FFF800001E007FFE0 + 000FFC07FF800001F003FFE0000FFE07FF800001F8001FE0000FFF00CF800001 + FC000FE0000FFF8007800001FFC007F0001FFFC007800001FFE003F8FE3FFFE0 + 03800001FFE001F8FE3FFFE001800001FFE061F8FE3FFFE001800001FFF0F0F8 + 7C3FFFF803800001FFF070F87C3FFFF803800001FFF820F8383FFFF003800001 + FFFC01FC007FFFF003800001FFFE03FE00FFFFFE1FFFFFFFFFFF03FF01FFFFFF + 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + E003FFFFFFFFFFFFFF3FFFFFFF01FFFFFFFFFFFFFE3FFFFFFF01800000800001 + FE3FFFFFFE01800000800003F83FFFFFF801900081800003F03FFFFFF8039000 + 81800003F00001FFF003900081800003C00001FFE00F900081800003800001F0 + 001F900081800003800001E0001F90008180000380000180007F9000FF800003 + 8000018000FF9000FF8000038000018001FF9000FF800003E000010001FF9000 + FF800003F000010001FF9FC0FF800003F03FFF0001FF9FC0FF800003FC3FFF00 + 01FF9FC0FF800003FE3FFF0001FF9FC0FF800003FE3FFF0001FF9FC0FF800003 + FFFFFF8003FF9FC0FFFFFFFFFFFFFF8007FF9FC0FFFFFFFFFFFFFFC007FF9FFF + FFFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 + 3FFFFFFFFFFFFFFF80007FC01FFFFFFFFF80000383FFFF800FFFFFFFFF800003 + 83FFFF8207FFFFFFFF80000381FFFF8F87FFFFFFFF800003807FFF8FC7FF8000 + 01800003C03FFF8FC7FF800001800003F00FFF8F07FF800001800003F000FF82 + 07FF800001800003F8003F8003FF800001800003FE001FE000FF800001800003 + FE0007F000FF800001800003FF0003FFC07F800001800003FF0003FFF01F8000 + 01800003FF0003FFF81F800001800003FF0203FFF80FEFFFFF800003FF8703FF + FE03E00003800003FF8707FFFF03FFFFFF800003FFC20FFFFF01FFFFFF800003 + FFE01FFFFF00FFFFFFFFFFFFFFE03FFFFF00FFFFFFFFFFFFFFF07FFFFF00FFFF + FFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFF00007FFFFFF800003FF + FFFFF0000FFFFFFFE00007FC007FF0000FF8001FE00007F8003FF0000FF8001F + E00007F0001FF0000FF8001FE00007E0000FF0000FF8001FE00007C00007F000 + 0FF8001FE00007800003F0000FF8001FE00007800003F0000FF8001FE0000780 + 0003F0000FF8001F800001800003F0000FF8001F800001800003F0000FF8001F + 800001800003F0000FF8001F800001800003F0000FF8001FC00003800003F000 + 0FF8001FE00007800003F0000FF8001FF0000F800003F0000FF8001FF8000F80 + 0003F0000FF8001FFC0007C00007F0000FF8001FFE0007E0000FF0000FF8001F + FF00FFF0001FF0000FF8001FFF81FFF8003FF0000FF8001FFFC3FFFC007FF000 + 0FF8001FFFFFFFFFFFFFF8001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFF + FFFFFC003FFE00FFF8001FFFFFFFFF81FFF6004FF0001FFFFFFFFF00FFE80003 + F0000FFFFFFFFE00FFC0001BC00003000000FC003FA00005C00003000000F800 + 1FE00005800003000000F0001FC00001800001000000E0000F803C0180000100 + 0000E00007807E01800001000000C0000380FF0180000100000080000380FF01 + 80000100000080000380FF0180000100000080000180FF018000010000008000 + 01807E01800001800001800001803C01800003800003800001C00001C00003E0 + 0007800001E00007C00003F0000F800001E00007E00007FFFFFF800001B0000F + F0001FFFFFFFC03803D80013F8001FFFFFFFF03E07CE0067FE007FFFFFFFFFFF + FFF300CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000FFFF + BFFFFFFFFFF0001FF1FFFFFF8FFF000000F8001FF1FFFFFF8FFF800001F8001F + F1FFFFFF87FF800001F8001FF1FFFFFF87FF800001C00003F1FFFFFF83FF8000 + 01800003F1FFFFFFC3FF800001800003F1FFFFFFC0FF800001C03C03F1FFFFFF + C0FF800001C07E03F1FFFFFFC0FF80000180FF03F00003FE007F80000181FF01 + F00003FE003F80000181FF01F00003FE003F80000180FF01F00003FE001F8000 + 01C07E03F00003FE001F800001C03C03F00003FE01FF800001801803F00003FE + 00FF800001800003F00003FE00FF800001C00003F00003FE00FF803FFFF8001F + F00003FE007F807FFFF8001FF001F3FE003F80FFFFF8001FF0FFFFFE003FFFFF + FFFCC33FF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0003800001FF9FFF807E03E00007CC0033FF87FF807E03E00007CC0033FF87FF + 80FF03E00007C00003FF83FF807E03E00007C00003FF81FF803C03E00007CC00 + 33FF81FF803803E00007CC0033FF81FF880013E00007C00003FF81FFFC003FE0 + 0007C00003FF81FFFE007FE00007CC0033FF81FFFF00FFE00007C00003FF00FF + FF00FFE00007C00003FE007FFE00FFE00007C00003FE003FFC003FE00007CC00 + 33F8001F880013E00007C00003F0000F801803E00007C00003F00007803C03E0 + 0007CC0033C00003807E03E00007CC003380000180FF03E00007C00003800001 + 807E03E00007C00003800001807E03E0000FCC0033800001807E03E0001FCC00 + 33800001FFFFFFE0003FC00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFC00003800001C1FFFFFC007F800003800001C0FFFFF8003F + 800003800001E03FFFF0001F800003800001F00FFFE0000F800003800001F007 + FFC00007800003800001F007FF800003800003800001F001FF80000380000380 + 0001F800FF800003800003800001F800FF800003800003800001FE003F800003 + 800003800001FE001F800003800003800001FF001F800003800003800001FFC0 + 07800003800003800001FFC003800003800003800001FFE00380000380000380 + 0001FFF801800003800003803FFFFFF801C00007800003803FFFFFFC01E0000F + 80000380FFFFFFFF01F0001FC00003FFFFFFFFFF83F8003FE00007FFFFFFFFFF + C3FC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000FFFF7FFF03E0780 + 0001F0001FFFC7FFE07E07E00007F0001FFF81FFC03C03E00007F0001FFF00FF + 803803E00007F0001FFE00FF800001E00007F0001FFC003F800001E00007F000 + 1FF8001F800001E00007F0001FF0001FC00003E00007F0001FE00007E00007E0 + 0007F0001FE00003F0000FE00007F0001FE00007F8001FE00007F0001FFE00FF + F8001FE00007F0001FFE00FFF0001FE00007F0001FFE00FFE00007E00007F000 + 1FFE00FFC00003E00007F0001FFE00FF800003E00007F0001FFE00FF800001E0 + 0007F0001FFE00FF800001E00007F0001FFE00FF801801E00007F0001FFE00FF + C03C03E00007F0001FFE00FFE07E07E0000FF0001FFE00FFF0FF0FE0001FF000 + 1FFE00FFFFFFFFE0003FF0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + F0E3FF00FFFFFFFFFFF1FFFFF003FC001FE0000FFFE1FFFFF003F0000FE0000F + FFE1FFFFF003F00007E0000FFFC1FFFE001FE00003E0000FC00003FE001FC000 + 03E0000F800003FE001FC00003E0000F800001C0021F800001E0000F800001C0 + 021F800001E0000F800001C0021F800001E0000F800001C0021F800001E0000F + 800001C0021F800001E0000F800001C0021F800001E0000F800001C0021F8000 + 01E0000F800001C0021F800001E0000F800001C0021FC00003E0000F800001C0 + 021FE00003E0000F800001C0021FF00007E0000F800001C0021FF00007E0000F + 800001FE001FFC001FE0000F800001FE001FFE003FE0000F800003FE001FFF00 + FFF0001FFFFFFFFFFFFFFFFFFFFFFFFFF8001FFFFFFFFFFFFFFF00FFFC003FFF + FFFF800001FE003FF0000FFC03FFE00007F0000FE00007F803FFE00007F00007 + C00003F003FFE00007E00003800003E001FFE00007C00003800001C001FFE000 + 07800001800001C001FFE00007800001000000E000FFE00007800000000000F0 + 40FFE00007800000000800F0C0FFE00007800000003800FFE07FE00007800000 + 003C00FFE03FE00007800000003800FFF03FE00007800000000000FFF81FE000 + 07800000000000FFF81FE00007800000000000FFFC0FE00007800001800001FF + FF03E00007C00003800003FFFF03E00007C00003800003FFFF83E00007E00003 + E00007FFFFE1E00007F0000FF0000FFFFFFFF0000FF8001FF0001FFFFFFFFE00 + FFFE003FFE00FFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8001FFF + FFFFFFFFFFFFFFFFF8001FFFFFFF800003C1F0FFF0000F840023800003C0007F + F00007840021800003C000FFE00003840021800003E3F8FFC01E038E00618000 + 03FFFC7FC00F03840021800003FFFC7F80078180000180000380003F8003C180 + 000180000380003F8001C180000180000380003F8100C180000180000380001F + 81804180000180000380001F81C00180000180000380001F81E0018000018000 + 0380001F81F001800001E0000780000FC0F803800001E0000780000FE0000380 + 0001E00007C00007E00007800001FFFFFFFFE007F00007800001FFFFFFFFFFC1 + F8001FFFFFFFFFFFFFFFFFE1FE003FFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80001FFFFFFFFFFFFFFFFFFFC00003FF + FFFF800003FFFFFFC0000780001FC00007FFFFFFC0000780000FC00007800003 + C00007800007C00007800001C00007800003C00007800001C00007800003C000 + 07800001C00007800003C00007800001C00007800003C00007800001C0000780 + 0003C00007800001C00007800003C00007800001C00007800003C00007800001 + C00007800003C00007800001C00007800003C00007800001C00007800003C000 + 07800001C00007800003C00007800001C00007800003C00007800003C0001F80 + 0003C00007E00007C0001F800003C00007F8001FC001FF800003C00007FFC01F + C001FF800003C00007FFFFFFC001FF800003C00007FFFFFFC001FFFFFFFFC000 + 07FFFFFFF007FFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFFFFFFFFFFFFFFFFFFFFF9 + F3FFFFFFFFFFFFFFE00007F8E3FF000000FFFFFFC00003F843FF000000800003 + C00003F803FF000000800003C00003F803FF000000800003C00003F803FF0000 + 00800003C00003F803FF000000800003C00003F803FF000000800003C00003F8 + 03FF000000800003C00003F803FF000000800003800001F803FF000000800003 + 800001F803FF000000800003800001F8001F000000800003800001F8001F0000 + 00800003FFC7FFF8001F000000800003FFC7FFF8001F000000800003FFC7FFF8 + 001F000000800003FFC7FFF8001F800001800003FFC7FFF8001FFE3CFF800003 + FFC7FFF8001FFE00FFFFFFFFFFC7FFF8001FFE00FFFFFFFFFFC7FFF8001FFE00 + FFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFE0000FFF + C1FFFFFFFFF8001FE0000FFE003FFE7E7FFE00FFE0000FFC001FF83C1FFE18FF + E0000FF8000FF03C1FFE38FFC00007F00003F0181FFE3CFFC00007C0C181F818 + 1FFC38FF800003C1C1C1F8001FFC38FF800003C1C1C1FE007FFC38FF800003C1 + C1E1FE007FFC38FF800003C3E3E1FE00FFFC38FF800003CFE3F9800001FC38FF + 800003CFE3FD800001FC38FF800003FF80FF800001FC38FF800003FF80FF8000 + 01FC38FF800003FFE3FFFE00FFFC30FF800003FFC1FFFE007FFC30FF800003FF + 80FFFC003FFC00FF800003FF80FFFC001FFC84FF800003FF88FFF8181FFCFCFF + 800003FF80FFF0381FFC38FFC06C07FF80FFF03C1FFC00FFF0C60FFFC0FFF83C + 1FFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + E003FC001FC0001F000000FFFF01FF00FFC00007000001FFFF01FF00FFC00007 + 000001FFFE01FF00FFC00007000001FFF801FF00FFC00007000001FFF803FF00 + FFC00007000001FFF003FF00FFC00007000001FFE00F800000C00007000001F0 + 001F800000C00007000000E0001F800000C0000700000080007F800000C00007 + 0000008000FF800000C000070000008001FF800000C000070000000001FF8000 + 00C000070000010001FF800000C000070000010001FF800000C0000700000100 + 001FFF00FFC0000700000100001FFF00FFC0000700000100001FFF00FFC00007 + 0000018003FFFF00FFC000070000018007FFFF00FFC00007000001C007FFFF00 + FFC00007FFFFFFF03FFFFF00FFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFE000F00 + 0000FC001FFFFFFFFC0007000000FC001F000000FA000FF0000FFC001F000001 + F00FFFF0000FFC001F800001F007FFF0000FFC001F800001E003FFF00007FC00 + 1F8000018003FFF00007FC001F8000018001FFF00007FC001FC000030001FFF0 + 0007FC001FE0000701807FF00003FC001FF0000F03C07FE00003FC003FFF00FF + 87E07FE00003000001FF81FF87F03FE00003000001FF00FFFFF81FE000018000 + 03FF00FFFFFC0F800001C00007FE00FFFFFE0F800001E0000FFE00FFFFFF0780 + 0001F0001FFE00FFFFFF87800001F8003FFE00FFFFFFC1800001FC007FFE00FF + FFFFE1800000FE00FFFF00FFFFFFF1800001FF01FFFF00FFFFFFF8800001FF83 + FFFF81FFFFFFFCE00003FFC7FFFFFFFFFFFFFFF0000FFFFFFF000001F8000FF0 + 000F000000000041FE003FFFF1FF800001800041000000FFF0FF800005800041 + 000000FFF07F80000180004180000100103F80000180004180000100000F8000 + 0180004180000100000780000180004180000100000380000180004180000100 + 0003800001800041800001000000800001800041800001000000800001800041 + 80000100000080000180006380000100000080000180007F8000010000018000 + 0180007F80000100000380000180007FE4000700000780000180007FFC003F00 + 000F80000180007FFC003FFFF01F80000180007FFC003FFFF03F800001803FFF + FC003FFFF07F800001803FFFFC003FFFF0FF800001803FFFFC003FFFF1FF8000 + 01803FFFFFFFFFFFF7FFFFFFFF807FFFFFFFFFF8003F88007FFFFFFF000000FE + 003F800000000000800001FE00FFFE00FF800001800000FE00FFFE00FF800001 + 800000FF01FFFE00FF800001800000FF01FFFE00FF800001800000000000FE00 + FF800001800000000000FE00FF80000180000000000000000180000180000000 + 0000000001800001800000000000000001800001800000000000000001800001 + 8000000000000000018000008000000000000000018000008000000000000000 + 01800000800001000000000001800000800001000000000001800000C0000300 + 0000FE00FF800000E00007000000FE00FF800000F0000F000000FE00FF800001 + F8001F000000FE00FF800001FC003F000000FE00FF801801FE007F000000FE00 + FF803E01FFFFFF000000FE00FFC1FFC1F0000FFFFFFFFFFFFFE0001FF0000FFF + FFFF800001E0001FFF83FFFFFFFFE00007FF8FFFFF00FFFFFFFFE00007FF0FFF + FE007F000001E00007FE0FFFFC003F000001F0000FFC0800F8003F800007F000 + 0FF00000F0000F800003F0000FE00000E0000F800003F0000FC00000C0000780 + 0001F0000FC00000800001800001E00007000000000001800001E00007000000 + 000001800001E00007000000FC003F800000E00007000000FC003F800000E000 + 07800000FC003F800000E00007C00000FC003F800007F0000FE00000FC003F80 + 0007F8001FF00000FC003F800007FC003FF80FFFFC003F80000FFE007FFC0FFF + FC003F803FFFFF007FFE0FFFFC003FFFFFFFFF807FFF0FFFFC003FFFFFFFFFC0 + 7FFF8FFFFC003FFFFFFFFFE7FFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFF00000080 + 0001000001E00001800001E00007000001C00001800001E00007800001F00003 + 800001E00007800001F00003800001E00007800001F00003800001E000078000 + 01F00003800001E00007800001F00003800001E00007800001F00003800001E0 + 0007800001F00003800001E00007800001F00003800001E00007800001F00003 + 800001E00007800001F00003800001E00007800001F00001800001E000078000 + 01F00001800001E00007800001F00001800001E00007800001F00003800001E0 + 0007800001F0000F800001E00007800001F0000F800001E00007800001F0001F + 800001E00007800001F0007F800001E00007800001F0007F800001FF81FF8000 + 01F000FFFCFF3FFF81FFFFFFFFF003FF00000000000000000000000000000000 + 000000000000} + end + object ThreeLookAndFeelCol: TcxLookAndFeelController + Kind = lfStandard + NativeStyle = False + Left = 253 + Top = 12 + end + object ThreeColorBase: TcxStyleRepository + Left = 139 + Top = 80 + PixelsPerInch = 96 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle1: TcxStyle + AssignedValues = [svColor] + Color = clLime + end + object SHuangSeCuLan: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end +end diff --git a/盛纺贸易管理/U_DataLink.pas b/盛纺贸易管理/U_DataLink.pas new file mode 100644 index 0000000..aecc1c2 --- /dev/null +++ b/盛纺贸易管理/U_DataLink.pas @@ -0,0 +1,89 @@ +unit U_DataLink; + +interface + +uses + SysUtils, Classes, DB, ADODB, ImgList, Controls, cxStyles, cxLookAndFeels, + Windows,Messages,forms,OleCtnrs,DateUtils, cxClasses, dxSkinsCore, + dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, + dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; +var + DConString:String; {ȫַ} + server, dtbase, user, pswd: String; {ݿӲ} + DCurHandle:hwnd; //ǰ + DName:string ; //#û#// + DCode:string ; //#û#// + Ddatabase:string; //#ݿ#// + DTitCaption:string; //##// + PicSvr:string; + DParameters1,DParameters2,DParameters3,DParameters4,DParameters5:string;// ⲿ + DParameters6,DParameters7,DParameters8,DParameters9,DParameters10:string;//ⲿ + OldDllApp:Tapplication; //ԭо + NewDllApp: Tapplication;//ǰ + MainApplication: Tapplication ; + DFormCode:integer; //ǰں + IsDelphiLanguage:integer; + DServerDate:TdateTime; //ʱ + DCompany:string; //˾ + IpCall:Integer; + IpWLDZStr:string; +type + TDataLink_TradeManage = class(TDataModule) + AdoDataLink: TADOQuery; + ADOLink: TADOConnection; + ThreeImgList: TImageList; + ThreeLookAndFeelCol: TcxLookAndFeelController; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + cxStyle1: TcxStyle; + SHuangSeCuLan: TcxStyle; + procedure DataModuleDestroy(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + TMakebar = procedure(ucData:pchar;nDataLen:integer;nErrLevel:integer;nMask:integer;nBarEdition:integer;szBmpFileName:pchar;nScale:integer);stdcall; + TMixtext = procedure( szSrcBmpFileName:PChar;szDstBmpFileName:PChar;sztext:PChar;fontsize,txtheight,hmargin,vmargin,txtcntoneline:integer);stdcall; + +var + DataLink_TradeManage: TDataLink_TradeManage; + +implementation +{$R *.dfm} + + +procedure TDataLink_TradeManage.DataModuleDestroy(Sender: TObject); +begin + DataLink_TradeManage:=nil; +end; + +end. + + + + diff --git a/盛纺贸易管理/U_FZCInPut.dfm b/盛纺贸易管理/U_FZCInPut.dfm new file mode 100644 index 0000000..f2bbcb3 --- /dev/null +++ b/盛纺贸易管理/U_FZCInPut.dfm @@ -0,0 +1,318 @@ +object frmFHXXInPut: TfrmFHXXInPut + Left = 188 + Top = 127 + Width = 1165 + Height = 591 + Caption = #21457#36135#25351#31034#21333#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1149 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object ToolButton1: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1149 + Height = 524 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object cxGrid1: TcxGrid + Left = 0 + Top = 0 + Width = 1147 + Height = 522 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1CustomerNo: TcxGridDBColumn + Caption = #23458#25143#32534#21495 + DataBinding.FieldName = 'CustomerNo' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1CustomerJC: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'CustomerJC' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1FHLXR: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'FHLXR' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1ConNoPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle2 + Width = 70 + end + object v1KHConNO: TcxGridDBColumn + Caption = 'PO #' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1styleno: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1PrtCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PrtCode' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1PrtCodePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1PrtCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1PRTspec: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'PRTspec' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1PRTspecPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 70 + end + object v1FHPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'FHPrice' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle2 + Width = 70 + end + object v1BZType: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + '' + #65509 + '$') + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle1 + Width = 72 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 640 + Top = 65533 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 584 + Top = 65533 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 608 + Top = 65533 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 240 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 368 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + TextColor = clBlue + end + end +end diff --git a/盛纺贸易管理/U_FZCInPut.pas b/盛纺贸易管理/U_FZCInPut.pas new file mode 100644 index 0000000..004ae7f --- /dev/null +++ b/盛纺贸易管理/U_FZCInPut.pas @@ -0,0 +1,312 @@ +unit U_FZCInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit,jpeg, + IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC, + cxGridCustomPopupMenu, cxGridPopupMenu, FTComboBox; + +type + TfrmFHXXInPut = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + TBSave: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + v1CustomerNoName: TcxGridDBColumn; + v1CustomerNo: TcxGridDBColumn; + v1FHLXR: TcxGridDBColumn; + v1CustomerJC: TcxGridDBColumn; + v1FHPrice: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1KHConNO: TcxGridDBColumn; + v1styleno: TcxGridDBColumn; + v1PrtCode: TcxGridDBColumn; + v1PrtCodeName: TcxGridDBColumn; + v1PRTspec: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + v1BZType: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1PrtCodePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTspecPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1ConNoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + procedure InitData(); + function SaveData():Boolean; + { Private declarations } + public + canshu1:String; + PState,CopyInt:Integer; + FMainId:String; + { Public declarations } + end; + +var + frmFHXXInPut: TfrmFHXXInPut; +implementation +uses + U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_GYSList, U_ZdyAttachment,U_ContractList_CS; + +{$R *.dfm} + +procedure TfrmFHXXInPut.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmFHXXInPut.InitData(); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderFH_Main where Mainid='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); +end; + +procedure TfrmFHXXInPut.FormShow(Sender: TObject); +begin + InitData(); +end; + +function TfrmFHXXInPut.SaveData():Boolean; +var + maxno,maxsubno:String; +begin + Result:=False; + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('Mainid').AsString)='' then + begin + if GetLSNo(ADOCmd,maxsubno,'FH','JYOrderFH_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxsubno:=Trim(Order_Sub.fieldbyname('Mainid').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderFH_Main where Mainid='''+Trim(maxsubno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('Mainid').AsString)='' then + begin + Append; + fieldbyname('filltime').Value:=SGetServerDate10(ADOQuery1); + end + else + Edit; + FieldByName('Mainid').Value:=Trim(maxsubno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrderFH_Main',0); + fieldbyname('PRTOrderQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').AsFloat; + fieldbyname('OrdDefStr1').Value:=Order_Sub.fieldbyname('OrdDefStr1').AsString; + fieldbyname('OrdDefStr2').Value:=Order_Sub.fieldbyname('OrdDefStr2').AsString; + fieldbyname('DlyPlace').Value:=trim(order_Sub.fieldbyname('DlyPlace').AsString); + FieldByName('FHLXR').Value:=trim(order_Sub.fieldbyname('FHLXR').AsString); + fieldbyname('OrdDate').Value:=SGetServerDate10(ADOQuery1); + fieldbyname('filler').Value:=trim(DName); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('Mainid').Value:=Trim(maxsubno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmFHXXInPut.TBSaveClick(Sender: TObject); +begin + ToolBar1.SetFocus; + if Order_Sub.IsEmpty then exit; + if order_Sub.Locate('ConNo','',[])=true then + begin + application.MessageBox('ͬŲΪ','ʾ'); + exit; + end; + if order_Sub.Locate('ConNo',null,[])=true then + begin + application.MessageBox('ͬŲΪ','ʾ'); + exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + Modalresult:=1; + end; +end; + +procedure TfrmFHXXInPut.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('MainId').AsString)<>'' then + begin + + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderFH_Main where MainId='''+Trim(Order_Sub.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmFHXXInPut.v1PrtCodePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PrtCode'; + flagname:='Ʒ'; + fnote:=True; + V1Note.Caption:='Ʒ'; + if ShowModal=1 then + begin + with order_Sub do + begin + edit; + fieldbyname('PrtCode').AsString:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + fieldbyname('PrtCodeName').AsString:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmFHXXInPut.v1PRTspecPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PRTspec'; + flagname:='ɷ'; + if ShowModal=1 then + begin + with order_Sub do + begin + edit; + fieldbyname('PRTspec').AsString:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmFHXXInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PRTColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + with order_Sub do + begin + edit; + fieldbyname('PRTColor').AsString:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmFHXXInPut.v1ConNoPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + frmConTractList_CS:=TfrmConTractList_CS.Create(self); + with frmConTractList_CS do + begin + if showmodal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('ConNo').AsString:=Order_Main.fieldbyname('ConNO').AsString; + fieldbyname('StyleNo').AsString:=Order_Main.fieldbyname('StyleNo').AsString; + fieldbyname('CustomerNoName').AsString:=Order_Main.fieldbyname('CustomerNoName').AsString; + fieldbyname('KHConNo').AsString:=Order_Main.fieldbyname('KHConNo').AsString; + fieldbyname('PrtCodeName').AsString:=Order_Main.fieldbyname('PrtCodeName').AsString; + fieldbyname('PRTspec').AsString:=Order_Main.fieldbyname('PRTspec').AsString; + fieldbyname('PRTColor').AsString:=Order_Main.fieldbyname('PRTColor').AsString; + fieldbyname('OrdDefStr1').AsString:=Order_Main.fieldbyname('Subid').AsString; + fieldbyname('OrdDefStr2').AsString:=Order_Main.fieldbyname('Mainid').AsString; + fieldbyname('PrtCode').AsString:=Order_Main.fieldbyname('PrtCode').AsString; + fieldbyname('PRTOrderQty').Value:=Order_Main.fieldbyname('PRTOrderQty').AsFloat; + fieldbyname('OrderUnit').AsString:=Order_Main.fieldbyname('OrderUnit').AsString; + //post; + end; + end; + free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_FZCMain.dfm b/盛纺贸易管理/U_FZCMain.dfm new file mode 100644 index 0000000..685075e --- /dev/null +++ b/盛纺贸易管理/U_FZCMain.dfm @@ -0,0 +1,531 @@ +object frmFZCMain: TfrmFZCMain + Left = 200 + Top = 122 + Width = 1144 + Height = 593 + Caption = #21457#36135#25351#31034#21333#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1128 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object Tadd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TaddClick + end + object Tedit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TeditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TSel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = TSelClick + end + object ToolButton1: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1128 + Height = 56 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 362 + Top = 11 + Width = 52 + Height = 12 + Caption = #23458#25143#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 194 + Top = 11 + Width = 52 + Height = 12 + Caption = #23458#25143#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 522 + Top = 11 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 36 + Top = 11 + Width = 52 + Height = 12 + Caption = #26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 72 + Top = 33 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 362 + Top = 33 + Width = 54 + Height = 12 + Caption = #27454' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 206 + Top = 33 + Width = 35 + Height = 12 + Caption = 'PO #' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 670 + Top = 11 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 670 + Top = 33 + Width = 52 + Height = 12 + Caption = #35268#26684#25104#20221 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 522 + Top = 35 + Width = 40 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CustomerNoName: TEdit + Tag = 2 + Left = 414 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + end + object CustomerNo: TEdit + Tag = 2 + Left = 246 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object ConNo: TEdit + Tag = 2 + Left = 565 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object BegDate: TDateTimePicker + Left = 89 + Top = 7 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 89 + Top = 29 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + object styleno: TEdit + Tag = 2 + Left = 414 + Top = 29 + Width = 89 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + end + object KHConNO: TEdit + Tag = 2 + Left = 246 + Top = 29 + Width = 89 + Height = 20 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object PrtCodeName: TEdit + Tag = 2 + Left = 721 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + object PRTspec: TEdit + Tag = 2 + Left = 721 + Top = 29 + Width = 89 + Height = 20 + TabOrder = 8 + OnChange = CustomerNoNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 565 + Top = 31 + Width = 89 + Height = 20 + TabOrder = 9 + OnChange = CustomerNoNameChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 87 + Width = 1128 + Height = 468 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DS_HZ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1CustomerNo: TcxGridDBColumn + Caption = #23458#25143#32534#21495 + DataBinding.FieldName = 'CustomerNo' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CustomerJC: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'CustomerJC' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1KHConNO: TcxGridDBColumn + Caption = 'PO #' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1styleno: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PrtCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTspec: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1FHPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'FHPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1BZType: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + '' + #65509 + '$') + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/盛纺贸易管理/U_FZCMain.pas b/盛纺贸易管理/U_FZCMain.pas new file mode 100644 index 0000000..dc3b731 --- /dev/null +++ b/盛纺贸易管理/U_FZCMain.pas @@ -0,0 +1,281 @@ +unit U_FZCMain; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit, cxDropDownEdit; + +type + TfrmFZCMain = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + CustomerNoName: TEdit; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + Tadd: TToolButton; + Label1: TLabel; + CustomerNo: TEdit; + Tedit: TToolButton; + Label2: TLabel; + ConNo: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1CustomerNo: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1CustomerJC: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1KHConNO: TcxGridDBColumn; + v1styleno: TcxGridDBColumn; + v1PrtCodeName: TcxGridDBColumn; + v1PRTspec: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1FHPrice: TcxGridDBColumn; + v1BZType: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Label4: TLabel; + Label5: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label6: TLabel; + Label7: TLabel; + styleno: TEdit; + KHConNO: TEdit; + Label9: TLabel; + PrtCodeName: TEdit; + Label10: TLabel; + PRTspec: TEdit; + Label11: TLabel; + PRTColor: TEdit; + TSel: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TaddClick(Sender: TObject); + procedure TeditClick(Sender: TObject); + procedure TSelClick(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormCreate(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + procedure setStatus(); + public + fkhType,canShu1:string; + end; + +var + frmFZCMain: TfrmFZCMain; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp,U_FZCInput; + +{$R *.dfm} + +procedure TfrmFZCMain.setStatus(); +begin + Tadd.Visible:=False; + Tedit.Visible:=False; + TBDel.Visible:=False; + if trim(canShu1)<>'ѯ' then + begin + Tadd.Visible:=true; + Tedit.Visible:=true; + TBDel.Visible:=true; + end; +end; + +procedure TfrmFZCMain.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from JYOrderFH_Main where '); + sql.add(' OrdDate>='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''''); + sql.add(' and ordDate<'''+trim(formatdatetime('yyyy-MM-dd',enddate.DateTime+1))+''''); + if Trim(canshu1)='' then + begin + SQL.Add(' and (RTrim(YWY)='''+Trim(DName)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmFZCMain.FormDestroy(Sender: TObject); +begin + frmFZCMain:=nil; +end; + +procedure TfrmFZCMain.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmFZCMain.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ָʾ',Tv1,'ͻԶ'); + Close; +end; +procedure TfrmFZCMain.TBDelClick(Sender: TObject); +begin + if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('Mainid').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete JYOrderFH_Main where Mainid='''+Trim(CDS_HZ.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete; +end; + +procedure TfrmFZCMain.FormShow(Sender: TObject); +begin + ReadCxGrid('ָʾ',Tv1,'ͻԶ'); + begDate.DateTime:=SGetServerDate10(ADOQueryCmd)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryCmd); + setStatus(); + InitGrid(); +end; + +procedure TfrmFZCMain.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmFZCMain.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmFZCMain.CustomerNoNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmFZCMain.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾ'); +end; + +procedure TfrmFZCMain.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_HZ.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmFZCMain.TaddClick(Sender: TObject); +begin + frmFHXXInPut:=TfrmFHXXInPut.create(self); + with frmFHXXInPut do + begin + FMainId:=''; + if showmodal=1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmFZCMain.TeditClick(Sender: TObject); +begin + frmFHXXInPut:=TfrmFHXXInPut.create(self); + with frmFHXXInPut do + begin + FMainId:=trim(CDS_HZ.fieldbyname('Mainid').AsString); + if showmodal=1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmFZCMain.TSelClick(Sender: TObject); +begin + frmFHXXInPut:=TfrmFHXXInPut.create(self); + with frmFHXXInPut do + begin + FMainId:=trim(CDS_HZ.fieldbyname('Mainid').AsString); + ToolBar1.Visible:=False; + if showmodal=1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmFZCMain.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Tsel.Click; +end; + +procedure TfrmFZCMain.FormCreate(Sender: TObject); +begin + canShu1:=trim(DParameters1); +end; + +end. + + diff --git a/盛纺贸易管理/U_FZCMain_cx.dfm b/盛纺贸易管理/U_FZCMain_cx.dfm new file mode 100644 index 0000000..1c8ec13 --- /dev/null +++ b/盛纺贸易管理/U_FZCMain_cx.dfm @@ -0,0 +1,542 @@ +object frmFZCMain_cx: TfrmFZCMain_cx + Left = 190 + Top = 218 + Width = 1134 + Height = 583 + Caption = #21457#36135#25351#31034#21333#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1118 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TSSEl: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + OnClick = TSSElClick + end + object TBRafresh: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = ToolButton4Click + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object TSel: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + Visible = False + OnClick = TSelClick + end + object ToolButton1: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1118 + Height = 56 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 362 + Top = 11 + Width = 52 + Height = 12 + Caption = #23458#25143#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 194 + Top = 11 + Width = 52 + Height = 12 + Caption = #23458#25143#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 522 + Top = 11 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 36 + Top = 11 + Width = 52 + Height = 12 + Caption = #26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 72 + Top = 33 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 362 + Top = 33 + Width = 54 + Height = 12 + Caption = #27454' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 206 + Top = 33 + Width = 35 + Height = 12 + Caption = 'PO #' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 670 + Top = 11 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 670 + Top = 33 + Width = 52 + Height = 12 + Caption = #35268#26684#25104#20221 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 522 + Top = 35 + Width = 40 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CustomerNoName: TEdit + Tag = 2 + Left = 414 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + end + object CustomerNo: TEdit + Tag = 2 + Left = 246 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object ConNo: TEdit + Tag = 2 + Left = 565 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object BegDate: TDateTimePicker + Left = 89 + Top = 7 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 89 + Top = 29 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + object styleno: TEdit + Tag = 2 + Left = 414 + Top = 29 + Width = 89 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + end + object KHConNO: TEdit + Tag = 2 + Left = 246 + Top = 29 + Width = 89 + Height = 20 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object PrtCodeName: TEdit + Tag = 2 + Left = 721 + Top = 7 + Width = 89 + Height = 20 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + object PRTspec: TEdit + Tag = 2 + Left = 721 + Top = 29 + Width = 89 + Height = 20 + TabOrder = 8 + OnChange = CustomerNoNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 565 + Top = 31 + Width = 89 + Height = 20 + TabOrder = 9 + OnChange = CustomerNoNameChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 87 + Width = 1118 + Height = 458 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DS_HZ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1CustomerNo: TcxGridDBColumn + Caption = #23458#25143#32534#21495 + DataBinding.FieldName = 'CustomerNo' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CustomerJC: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'CustomerJC' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1KHConNO: TcxGridDBColumn + Caption = 'PO #' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1styleno: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleno' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PrtCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTspec: TcxGridDBColumn + Caption = #35268#26684#25104#20998 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1FHPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'FHPrice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1BZType: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + '' + #65509 + '$') + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/盛纺贸易管理/U_FZCMain_cx.pas b/盛纺贸易管理/U_FZCMain_cx.pas new file mode 100644 index 0000000..a020881 --- /dev/null +++ b/盛纺贸易管理/U_FZCMain_cx.pas @@ -0,0 +1,265 @@ +unit U_FZCMain_cx; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit, cxDropDownEdit; + +type + TfrmFZCMain_cx = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + CustomerNoName: TEdit; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + ToolButton3: TToolButton; + Label1: TLabel; + CustomerNo: TEdit; + ToolButton4: TToolButton; + Label2: TLabel; + ConNo: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1CustomerNo: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1CustomerJC: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1KHConNO: TcxGridDBColumn; + v1styleno: TcxGridDBColumn; + v1PrtCodeName: TcxGridDBColumn; + v1PRTspec: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1FHPrice: TcxGridDBColumn; + v1BZType: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Label4: TLabel; + Label5: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label6: TLabel; + Label7: TLabel; + styleno: TEdit; + KHConNO: TEdit; + Label9: TLabel; + PrtCodeName: TEdit; + Label10: TLabel; + PRTspec: TEdit; + Label11: TLabel; + PRTColor: TEdit; + TSel: TToolButton; + TSSEl: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure TSelClick(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TSSElClick(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + + public + fkhType:string; + end; + +var + frmFZCMain_cx: TfrmFZCMain_cx; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp,U_FZCInput; + +{$R *.dfm} + +procedure TfrmFZCMain_cx.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from JYOrderFH_Main '); + sql.add(' where OrdDate>='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''''); + sql.add(' and ordDate<'''+trim(formatdatetime('yyyy-MM-dd',enddate.DateTime+1))+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmFZCMain_cx.FormDestroy(Sender: TObject); +begin + frmFZCMain_cx:=nil; +end; + +procedure TfrmFZCMain_cx.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmFZCMain_cx.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ָʾ',Tv1,'ͻԶ'); + Close; +end; +procedure TfrmFZCMain_cx.TBDelClick(Sender: TObject); +begin + if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('Mainid').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete JYOrderFH_Main where Mainid='''+Trim(CDS_HZ.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete; +end; + +procedure TfrmFZCMain_cx.FormShow(Sender: TObject); +begin + ReadCxGrid('ָʾ',Tv1,'ͻԶ'); + begDate.DateTime:=SGetServerDate10(ADOQueryCmd)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryCmd); + InitGrid(); +end; + +procedure TfrmFZCMain_cx.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmFZCMain_cx.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmFZCMain_cx.CustomerNoNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmFZCMain_cx.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾ'); +end; + +procedure TfrmFZCMain_cx.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_HZ.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmFZCMain_cx.ToolButton3Click(Sender: TObject); +begin + frmFHXXInPut:=TfrmFHXXInPut.create(self); + with frmFHXXInPut do + begin + FMainId:=''; + if showmodal=1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmFZCMain_cx.ToolButton4Click(Sender: TObject); +begin + frmFHXXInPut:=TfrmFHXXInPut.create(self); + with frmFHXXInPut do + begin + FMainId:=trim(CDS_HZ.fieldbyname('Mainid').AsString); + if showmodal=1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmFZCMain_cx.TSelClick(Sender: TObject); +begin + frmFHXXInPut:=TfrmFHXXInPut.create(self); + with frmFHXXInPut do + begin + FMainId:=trim(CDS_HZ.fieldbyname('Mainid').AsString); + ToolBar1.Visible:=False; + if showmodal=1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmFZCMain_cx.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + TSsel.Click; +end; + +procedure TfrmFZCMain_cx.TSSElClick(Sender: TObject); +begin + if CDS_HZ.isempty then exit; + modalResult:=1; +end; + +end. + + diff --git a/盛纺贸易管理/U_FanYangList.dfm b/盛纺贸易管理/U_FanYangList.dfm new file mode 100644 index 0000000..b389c08 --- /dev/null +++ b/盛纺贸易管理/U_FanYangList.dfm @@ -0,0 +1,899 @@ +object FrmFanYangList: TFrmFanYangList + Left = 120 + Top = 98 + Width = 1152 + Height = 620 + Caption = #25918#26679#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1136 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton1: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object ToolButton2: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object TBPrint: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1136 + Height = 64 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 33 + Top = 14 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 195 + Top = 14 + Width = 52 + Height = 12 + Caption = #25918#26679#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 353 + Top = 14 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 508 + Top = 14 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 195 + Top = 38 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 508 + Top = 38 + Width = 54 + Height = 12 + Caption = 'PO#& '#27454#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 353 + Top = 38 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 667 + Top = 38 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 667 + Top = 14 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 801 + Top = 14 + Width = 39 + Height = 12 + Caption = #19994#21153#32452 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 86 + Top = 10 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 85 + Top = 34 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 249 + Top = 10 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + object CustomerNoName: TEdit + Tag = 2 + Left = 406 + Top = 10 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 562 + Top = 10 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 249 + Top = 34 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object MPRTKuanNO: TEdit + Tag = 2 + Left = 562 + Top = 34 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 406 + Top = 34 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 696 + Top = 34 + Width = 82 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 696 + Top = 10 + Width = 82 + Height = 20 + TabOrder = 9 + OnChange = OrderNoChange + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 842 + Top = 10 + Width = 76 + Height = 20 + TabOrder = 10 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 116 + Width = 1136 + Height = 225 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNO: TcxGridDBColumn + Caption = #25918#26679#21333#21495 + DataBinding.FieldName = 'OrderNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 92 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1DlyDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1MPRTCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 86 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1Column1: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'CustomerNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 94 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #19994#21153#32452 + DataBinding.FieldName = 'OrdDefStr1' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1OrdDefStr2: TcxGridDBColumn + Caption = #29983#20135#32452 + DataBinding.FieldName = 'OrdDefStr2' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 59 + end + object v1OrdQty1: TcxGridDBColumn + Caption = #21046#32593#36153 + DataBinding.FieldName = 'OrdQty1' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1OrdQty3: TcxGridDBColumn + Caption = #25968#30721#21943#21360#36153 + DataBinding.FieldName = 'OrdQty3' + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1OrdQty5: TcxGridDBColumn + Caption = #21305#26679#36153 + DataBinding.FieldName = 'OrdQty5' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1orddefstr7: TcxGridDBColumn + Caption = #32467#31639#26041#24335 + DataBinding.FieldName = 'orddefstr7' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1RanFactory: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'RanFactory' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 139 + end + object v1CPCFBi: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'CPCFBi' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PBFactory: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'PBFactory' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column2: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 357 + Width = 1136 + Height = 225 + Align = alBottom + TabOrder = 3 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DSSUB + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn21 + end + item + Kind = skSum + Column = cxGridDBColumn19 + end + item + Kind = skSum + Column = cxGridDBColumn20 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn7: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 108 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = 'PO#_'#27454#21495 + DataBinding.FieldName = 'MPRTKuanNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 75 + end + object cxGridDBColumn10: TcxGridDBColumn + Caption = #19994#21153#32452 + DataBinding.FieldName = 'OrdDefStr1' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn11: TcxGridDBColumn + Caption = #29983#20135#32452 + DataBinding.FieldName = 'OrdDefStr2' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn21: TcxGridDBColumn + Caption = #21305#26679#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 71 + end + object cxGridDBColumn22: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object V2Column1: TcxGridDBColumn + Caption = #38754#26009#21333#20215 + DataBinding.FieldName = 'PRTPRice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn19: TcxGridDBColumn + Caption = #23454#38469#20986#36135 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object cxGridDBColumn20: TcxGridDBColumn + Caption = #25104#21697#23492#20986 + DataBinding.FieldName = 'SOrdQty2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn18: TcxGridDBColumn + Caption = #24037#21378#32534#21495 + DataBinding.FieldName = 'SOrddefstr3' + HeaderAlignmentHorz = taCenter + Width = 113 + end + object cxGridDBColumn23: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 174 + end + object cxGridDBColumn24: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'CPCFBi' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn25: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'PBFactory' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn26: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'RanFactory' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object Panel4: TPanel + Left = 411 + Top = 136 + Width = 231 + Height = 216 + Locked = True + TabOrder = 4 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 229 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + object Image2: TImage + Left = 206 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 83 + Top = 176 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 48 + Top = 28 + Width = 149 + Height = 145 + ItemIndex = 0 + Items.Strings = ( + #25918#26679#25351#31034#21333 + #25918#26679#25351#31034#21333'('#26080#20215#26684')' + #25918#26679#25351#31034#21333#21457#31080) + TabOrder = 2 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 96 + Width = 1136 + Height = 20 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 5 + Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 20 + ClientRectRight = 1136 + ClientRectTop = 19 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 352 + Top = 270 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 520 + Top = 269 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 488 + Top = 270 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 419 + Top = 273 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 590 + Top = 270 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 385 + Top = 273 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 453 + Top = 274 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 554 + Top = 269 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 633 + Top = 269 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 240 + Top = 416 + end + object DSSUB: TDataSource + DataSet = ADOQuerySub + Left = 312 + Top = 420 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 740 + Top = 248 + end +end diff --git a/盛纺贸易管理/U_FanYangList.pas b/盛纺贸易管理/U_FanYangList.pas new file mode 100644 index 0000000..cb9329d --- /dev/null +++ b/盛纺贸易管理/U_FanYangList.pas @@ -0,0 +1,447 @@ +unit U_FanYangList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, Menus, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, DBClient, + ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxSplitter, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxPC; + +type + TFrmFanYangList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + ToolButton1: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label4: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNo: TEdit; + CustomerNoName: TEdit; + MPRTCodeName: TEdit; + ConNo: TEdit; + MPRTKuanNO: TEdit; + MPRTCode: TEdit; + MPRTKZ: TEdit; + MPRTMF: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNO: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1MPRTCode: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DlyDate: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + v1OrdDefStr1: TcxGridDBColumn; + v1OrdDefStr2: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + v1CPCFBi: TcxGridDBColumn; + v1PBFactory: TcxGridDBColumn; + v1RanFactory: TcxGridDBColumn; + v1OrdQty1: TcxGridDBColumn; + v1OrdQty3: TcxGridDBColumn; + v1OrdQty5: TcxGridDBColumn; + OrdDefStr1: TEdit; + Label2: TLabel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn18: TcxGridDBColumn; + cxGridDBColumn19: TcxGridDBColumn; + cxGridDBColumn20: TcxGridDBColumn; + cxGridDBColumn21: TcxGridDBColumn; + cxGridDBColumn22: TcxGridDBColumn; + cxGridDBColumn23: TcxGridDBColumn; + cxGridDBColumn24: TcxGridDBColumn; + cxGridDBColumn25: TcxGridDBColumn; + cxGridDBColumn26: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOQuerySub: TADOQuery; + DSSUB: TDataSource; + v1orddefstr7: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + cxTabControl1: TcxTabControl; + v1Column1: TcxGridDBColumn; + RMXLSExport1: TRMXLSExport; + ToolButton2: TToolButton; + v1Column2: TcxGridDBColumn; + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBPrintClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Image2Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + private + procedure initGrid(); + procedure initsub(); + procedure SetStatus(); + { Private declarations } + public + { Public declarations } + end; + +var + FrmFanYangList: TFrmFanYangList; + +implementation + +uses U_DataLink,U_FanYangList_Sub,U_Fun; + +{$R *.dfm} +procedure TFrmFanYangList.SetStatus(); +begin + tbedit.Visible:=false; + tbdel.Visible:=false; + + case cxTabControl1.TabIndex of + 0:begin + // tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + // tnochk.Visible:=true; + end; + 2:begin + end; + end; +end; +procedure TFrmFanYangList.initsub(); +begin + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select A.*,B.* from JYOrderFy_Main A '); + sql.add('inner join JYOrderFy_Sub B on B.Mainid=A.Mainid '); + sql.Add('where A.MainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + + open; + end; +end; + +procedure TFrmFanYangList.initGrid(); +begin + with ADOQueryTmp do + begin + close; + sql.Clear; + sql.Add('select A.* from JYOrderFy_Main A '); + // sql.add('inner join JYOrderFy_Sub B on B.Mainid=A.Mainid '); + sql.Add('where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''' '); + sql.add('and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)+''' '); + //sql.add('and status=''0'''); + if trim(DParameters1)<>'Ȩ' then + begin + sql.add('and filler='''+trim(DName)+''' '); + end; + if cxTabControl1.TabIndex<2 then + sql.add(' and status ='''+inttostr(cxTabControl1.TabIndex)+''' '); + open; + end; + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); + TBFind.Click; +end; + +procedure TFrmFanYangList.FormShow(Sender: TObject); +begin + ReadCxGrid(self.Caption+Tv1.Name,Tv1,'ָʾ¼'); + ReadCxGrid(self.Caption+Tv2.Name,Tv2,'ָʾ¼'); + BegDate.DateTime:=SGetServerDate10(ADOQuerycmd)-30; + EndDate.DateTime:=SGetServerDate10(ADOQuerycmd); + SetStatus(); + initGrid(); +end; + +procedure TFrmFanYangList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TFrmFanYangList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TFrmFanYangList.FormDestroy(Sender: TObject); +begin + FrmFanYangList:=nil; +end; + +procedure TFrmFanYangList.TBAddClick(Sender: TObject); +begin + try + FrmFanYangListSub:=TFrmFanYangListSub.Create(Application); + with FrmFanYangListSub do + begin + FMainid:=''; + // v1SOrdQty1.Options.Editing:=False; + if ShowModal=1 then + begin + initGrid(); + end; + end; + finally + FrmFanYangListSub.Free; + end; +end; + +procedure TFrmFanYangList.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TFrmFanYangList.TBFindClick(Sender: TObject); +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); +end; + +procedure TFrmFanYangList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + IF trim(order_Main.fieldbyname('Status').AsString)='1' then + begin + application.MessageBox('˲޸','ʾ'); + exit; + end; +{ if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } + try + FrmFanYangListSub:=TFrmFanYangListSub.Create(Application); + with FrmFanYangListSub do + begin + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + // CustomerNo.Enabled:=False; + // CustomerNoName.Enabled:=False; + OrdDefStr1.Enabled:=False; + if ShowModal=1 then + begin + initGrid(); + end; + end; + finally + FrmFanYangListSub.Free; + end; +end; + +procedure TFrmFanYangList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + FrmFanYangListSub:=TFrmFanYangListSub.Create(Application); + with FrmFanYangListSub do + begin + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Panel1.Enabled:=False; + if ShowModal=1 then + begin + initGrid(); + end; + end; + finally + FrmFanYangListSub.Free; + end; +end; + +procedure TFrmFanYangList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + IF trim(order_Main.fieldbyname('Status').AsString)='1' then + begin + application.MessageBox('˲ɾ','ʾ'); + exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + close; + sql.clear; + sql.Add('delete from JYOrderFy_Main where Mainid='''+trim(order_Main.fieldbyname('Mainid').AsString)+''' '); + sql.Add('delete from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + execsql; + end; + initGrid(); +end; + +procedure TFrmFanYangList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+Tv1.Name,Tv1,'ָʾ¼'); + WriteCxGrid(self.Caption+Tv2.Name,Tv2,'ָʾ¼'); +end; + +procedure TFrmFanYangList.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ToolButton1.Click; +end; + +procedure TFrmFanYangList.TBPrintClick(Sender: TObject); +begin + Panel4.Visible:=true; + +end; + +procedure TFrmFanYangList.OrderNoChange(Sender: TObject); +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); +end; + +procedure TFrmFanYangList.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + initsub(); +end; + +procedure TFrmFanYangList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TFrmFanYangList.Button1Click(Sender: TObject); +var + fPrintFile:string; +begin + if order_Main.IsEmpty then exit; + with ADOQueryPrint do + begin + close; + sql.clear; + sql.add('select A.*,B.*, '); + sql.add('ColorGS=(select count(AA.PRTColor) from '); + sql.add('(select distinct C.PRTColor From JYOrderFY_Sub C where C.Mainid=A.Mainid) AA),'); + sql.Add('PYZJ=(select Sum(C.PRTOrderQty) from JYOrderFY_Sub C where C.Mainid=A.Mainid),'); + sql.Add('m_SOrdQty1=(select Sum(C.SOrdQty1) from JYOrderFY_Sub C where C.Mainid=A.Mainid),'); + sql.Add('m_SOrdQty2=(select Sum(C.SOrdQty2) from JYOrderFY_Sub C where C.Mainid=A.Mainid),'); + sql.Add('MLMoney=(select Sum(C.PRTOrderQty*PrtPrice) from JYOrderFY_Sub C where C.Mainid=A.Mainid)'); + sql.add('from JYOrderFY_Main A '); + sql.add('inner join JYOrderFY_Sub B on B.Mainid=A.Mainid '); + sql.Add('where A.Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' '); + open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + IF RadioGroup1.ItemIndex=2 then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ָʾƱ.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf' ; + if FileExists(fPrintFile) then + begin + RMVariables['FS'] :=RadioGroup1.ItemIndex; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; +end; + +procedure TFrmFanYangList.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + initgrid(); +end; + +procedure TFrmFanYangList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + + try + FrmFanYangListSub:=TFrmFanYangListSub.Create(Application); + with FrmFanYangListSub do + begin + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + CopyInt:=99; + // CustomerNo.Enabled:=False; + // CustomerNoName.Enabled:=False; + // OrdDefStr1.Enabled:=False; + if ShowModal=1 then + begin + initGrid(); + end; + end; + finally + FrmFanYangListSub.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_FanYangListHZ.dfm b/盛纺贸易管理/U_FanYangListHZ.dfm new file mode 100644 index 0000000..e437c2a --- /dev/null +++ b/盛纺贸易管理/U_FanYangListHZ.dfm @@ -0,0 +1,920 @@ +object FrmFanYangListHZ: TFrmFanYangListHZ + Left = 39 + Top = 162 + Width = 1184 + Height = 584 + Caption = #25918#26679#25351#31034#21333#32479#35745 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1168 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 89 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TChk: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = TChkClick + end + object TNoChk: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Visible = False + OnClick = TNoChkClick + end + object ToolButton2: TToolButton + Left = 402 + Top = 0 + Caption = #23548#20986'Excel' + ImageIndex = 57 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 491 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1168 + Height = 64 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 33 + Top = 14 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 195 + Top = 14 + Width = 52 + Height = 12 + Caption = #25918#26679#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 353 + Top = 14 + Width = 52 + Height = 12 + Caption = #23458#25143#31616#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 508 + Top = 14 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 195 + Top = 38 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 508 + Top = 38 + Width = 54 + Height = 12 + Caption = 'PO#& '#27454#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 353 + Top = 38 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 667 + Top = 38 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 667 + Top = 14 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 801 + Top = 14 + Width = 39 + Height = 12 + Caption = #19994#21153#32452 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 86 + Top = 10 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 85 + Top = 34 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 249 + Top = 10 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + end + object CustomerNo: TEdit + Tag = 2 + Left = 406 + Top = 10 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 562 + Top = 10 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object ConNo: TEdit + Tag = 2 + Left = 249 + Top = 34 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + end + object MPRTKuanNO: TEdit + Tag = 2 + Left = 562 + Top = 34 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoMChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 406 + Top = 34 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoMChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 696 + Top = 34 + Width = 82 + Height = 20 + TabOrder = 8 + OnChange = OrderNoMChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 696 + Top = 10 + Width = 82 + Height = 20 + TabOrder = 9 + OnChange = OrderNoMChange + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 842 + Top = 10 + Width = 76 + Height = 20 + TabOrder = 10 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 116 + Width = 1168 + Height = 364 + Align = alTop + TabOrder = 2 + object TV1: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V1PRTOrderQty + end + item + Kind = skSum + Column = V1SOrdQty1 + end + item + Kind = skSum + Column = V1MLF + end + item + Kind = skSum + Column = V1SMPYF + end + item + Kind = skSum + Column = V1SOrdQty2 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.BandMoving = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + Styles.BandHeader = DataLink_TradeManage.Default + Bands = < + item + Options.Moving = False + Width = 1000 + end + item + Caption = #21046#32593#36153 + Options.Moving = False + Width = 165 + end + item + Caption = #25968#30721#36153 + Options.Moving = False + Width = 113 + end + item + Options.Moving = False + Styles.Background = DataLink_TradeManage.FoneRed + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 389 + end + item + Caption = #25910#27454#20449#24687 + Width = 311 + end> + object VOrdDate: TcxGridDBBandedColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 79 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V1OrdDefStr1: TcxGridDBBandedColumn + Caption = #19994#21153#32452 + DataBinding.FieldName = 'OrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 47 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V1Mainid: TcxGridDBBandedColumn + Caption = #25918#26679#21333#32534#21495 + DataBinding.FieldName = 'OrderNoM' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 71 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object V1MPRTCodeName: TcxGridDBBandedColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 112 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object V1MPRTCode: TcxGridDBBandedColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 69 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object V1PRTOrderQty: TcxGridDBBandedColumn + Caption = #21305#26679#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Width = 64 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object V1OrderUnit: TcxGridDBBandedColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object V1PRTColor: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 56 + OnCompareRowValuesForCellMerging = V1PRTColorCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object V1OrdQty4: TcxGridDBBandedColumn + Caption = #38754#26009#21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object V1SOrdQty1: TcxGridDBBandedColumn + Caption = #23454#38469#20986#36135 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object V1SOrdQty2: TcxGridDBBandedColumn + Caption = #25104#21697#23492#20986 + DataBinding.FieldName = 'SOrdQty2' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object V1MLF: TcxGridDBBandedColumn + Caption = #38754#26009#36153 + DataBinding.FieldName = 'MLF' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object V1OrdQty5: TcxGridDBBandedColumn + Caption = #21305#26679#36153 + DataBinding.FieldName = 'OrdQty5' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 75 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object V1OrdQty2: TcxGridDBBandedColumn + Caption = #32593#25968 + DataBinding.FieldName = 'OrdQty2' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 49 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 1 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V1OrdQty1: TcxGridDBBandedColumn + Caption = #21333#20215 + DataBinding.FieldName = 'OrdQty1' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 55 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 1 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V1ZWF: TcxGridDBBandedColumn + Caption = #21512#35745 + DataBinding.FieldName = 'ZWF' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 62 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 1 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V1OrdQty3: TcxGridDBBandedColumn + Caption = #21333#20215 + DataBinding.FieldName = 'OrdQty3' + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 2 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V1SMPYF: TcxGridDBBandedColumn + Caption = #21512#35745 + DataBinding.FieldName = 'SMPYF' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 62 + Position.BandIndex = 2 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V1ZJ: TcxGridDBBandedColumn + Caption = #24635#35745 + DataBinding.FieldName = 'ZJ' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 65 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 3 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object V1OrdQty6: TcxGridDBBandedColumn + Caption = #24555#36882#36153 + DataBinding.FieldName = 'OrdQty6' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 50 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 3 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V1Note: TcxGridDBBandedColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 127 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 3 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object V1OrdDefStr6: TcxGridDBBandedColumn + Caption = #24065#31181 + DataBinding.FieldName = 'OrdDefStr6' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 37 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 3 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V1CustomerNoName: TcxGridDBBandedColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'CustomerNo' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 85 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object V1OrdQty7: TcxGridDBBandedColumn + Caption = #25187#27454 + DataBinding.FieldName = 'OrdQty7' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 41 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 3 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V1Orddefdate1: TcxGridDBBandedColumn + Caption = #25910#27454#26085#26399 + DataBinding.FieldName = 'Orddefdate1' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 81 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 4 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V1OrdQty9: TcxGridDBBandedColumn + Caption = #25910#27454#37329#39069 + DataBinding.FieldName = 'OrdQty9' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 63 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 4 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V1OrddefNote1: TcxGridDBBandedColumn + Caption = #25910#27454#22791#27880 + DataBinding.FieldName = 'OrddefNote1' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 147 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 4 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V1conNo: TcxGridDBBandedColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 70 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V1orddefstr7: TcxGridDBBandedColumn + Caption = #32467#31639#26041#24335 + DataBinding.FieldName = 'orddefstr7' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 69 + OnCompareRowValuesForCellMerging = VOrdDateCompareRowValuesForCellMerging + Position.BandIndex = 3 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 96 + Width = 1168 + Height = 20 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 20 + ClientRectRight = 1168 + ClientRectTop = 19 + end + object PanelSh: TPanel + Left = 428 + Top = 156 + Width = 401 + Height = 173 + BevelInner = bvLowered + BevelOuter = bvSpace + TabOrder = 4 + Visible = False + object Label5: TLabel + Left = 28 + Top = 32 + Width = 52 + Height = 12 + Caption = #25910#27454#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 204 + Top = 32 + Width = 52 + Height = 12 + Caption = #25910#27454#37329#39069 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 28 + Top = 56 + Width = 52 + Height = 12 + Caption = #25910#27454#22791#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Orddefdate1: TDateTimePicker + Left = 84 + Top = 28 + Width = 90 + Height = 20 + Date = 42066.617078726850000000 + Format = 'yyyy-MM-dd' + Time = 42066.617078726850000000 + TabOrder = 0 + end + object ordQty9: TcxCurrencyEdit + Left = 260 + Top = 28 + Properties.DisplayFormat = '0.00;-,0.00' + TabOrder = 1 + Width = 90 + end + object OrddefNote1: TMemo + Left = 83 + Top = 56 + Width = 270 + Height = 53 + TabOrder = 2 + end + object Button1: TButton + Left = 80 + Top = 124 + Width = 75 + Height = 25 + Caption = #23457#26680#36890#36807 + TabOrder = 3 + OnClick = Button1Click + end + object Button2: TButton + Left = 232 + Top = 124 + Width = 75 + Height = 25 + Caption = #21462#28040#23457#26680 + TabOrder = 4 + OnClick = Button2Click + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 304 + Top = 205 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 274 + Top = 288 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 309 + Top = 268 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 254 + Top = 353 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 362 + Top = 198 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 226 + Top = 247 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 150 + Top = 271 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 279 + Top = 185 + end +end diff --git a/盛纺贸易管理/U_FanYangListHZ.pas b/盛纺贸易管理/U_FanYangListHZ.pas new file mode 100644 index 0000000..2f53ad0 --- /dev/null +++ b/盛纺贸易管理/U_FanYangListHZ.pas @@ -0,0 +1,399 @@ +unit U_FanYangListHZ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, RM_Dataset, RM_System, + RM_Common, RM_Class, RM_GridReport, DBClient, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxPC, cxGridBandedTableView, cxGridDBBandedTableView, + cxCustomPivotGrid, cxDBPivotGrid, cxContainer, cxTextEdit, cxCurrencyEdit; + +type + TFrmFanYangListHZ = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + ToolButton1: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label4: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNoM: TEdit; + CustomerNo: TEdit; + MPRTCodeName: TEdit; + ConNo: TEdit; + MPRTKuanNO: TEdit; + MPRTCode: TEdit; + MPRTKZ: TEdit; + MPRTMF: TEdit; + cxGrid1: TcxGrid; + cxGrid1Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + TChk: TToolButton; + TNoChk: TToolButton; + cxTabControl1: TcxTabControl; + TV1: TcxGridDBBandedTableView; + VOrdDate: TcxGridDBBandedColumn; + V1OrdDefStr1: TcxGridDBBandedColumn; + V1Mainid: TcxGridDBBandedColumn; + V1MPRTCodeName: TcxGridDBBandedColumn; + V1MPRTCode: TcxGridDBBandedColumn; + V1PRTColor: TcxGridDBBandedColumn; + V1PRTOrderQty: TcxGridDBBandedColumn; + V1OrdQty4: TcxGridDBBandedColumn; + V1SOrdQty1: TcxGridDBBandedColumn; + V1MLF: TcxGridDBBandedColumn; + V1OrdQty5: TcxGridDBBandedColumn; + V1OrdQty2: TcxGridDBBandedColumn; + V1OrdQty1: TcxGridDBBandedColumn; + V1ZWF: TcxGridDBBandedColumn; + V1OrdQty3: TcxGridDBBandedColumn; + V1SMPYF: TcxGridDBBandedColumn; + V1ZJ: TcxGridDBBandedColumn; + V1Note: TcxGridDBBandedColumn; + V1OrderUnit: TcxGridDBBandedColumn; + V1OrdQty6: TcxGridDBBandedColumn; + V1SOrdQty2: TcxGridDBBandedColumn; + V1OrdDefStr6: TcxGridDBBandedColumn; + OrdDefStr1: TEdit; + Label2: TLabel; + V1CustomerNoName: TcxGridDBBandedColumn; + V1OrdQty7: TcxGridDBBandedColumn; + PanelSh: TPanel; + Label5: TLabel; + Orddefdate1: TDateTimePicker; + Label6: TLabel; + ordQty9: TcxCurrencyEdit; + Label7: TLabel; + OrddefNote1: TMemo; + Button1: TButton; + Button2: TButton; + V1Orddefdate1: TcxGridDBBandedColumn; + V1OrdQty9: TcxGridDBBandedColumn; + V1OrddefNote1: TcxGridDBBandedColumn; + ToolButton2: TToolButton; + V1conNo: TcxGridDBBandedColumn; + V1orddefstr7: TcxGridDBBandedColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure TChkClick(Sender: TObject); + procedure TNoChkClick(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBPrintClick(Sender: TObject); + procedure VOrdDateCompareRowValuesForCellMerging(Sender: TcxGridColumn; + ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; + const AValue1: Variant; ARow2: TcxGridDataRow; + AProperties2: TcxCustomEditProperties; const AValue2: Variant; + var AAreEqual: Boolean); + procedure V1PRTColorCompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + private + procedure initGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + FrmFanYangListHZ: TFrmFanYangListHZ; + +implementation + +uses U_DataLink,U_FanYangList_Sub,U_Fun; + +{$R *.dfm} + +procedure TFrmFanYangListHZ.initGrid(); +begin + with ADOQueryTmp do + begin + Filtered:=False; + close; + sql.Clear; + sql.add('exec P_Get_FYList '); + sql.add('@begdate='''+formatdatetime('yyyy-MM-dd',begdate.DateTime)+''' '); + sql.Add(',@endDate='''+formatdatetime('yyyy-MM-dd',endDate.DateTime+1)+''' '); + open; + end; + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); + TBFind.Click; +end; + +procedure TFrmFanYangListHZ.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TFrmFanYangListHZ.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TFrmFanYangListHZ.FormDestroy(Sender: TObject); +begin + FrmFanYangListHZ:=nil; +end; + +procedure TFrmFanYangListHZ.FormShow(Sender: TObject); +begin + ReadCxBandedGrid(self.Caption+Tv1.Name+'5',Tv1,'ָʾͳ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryPrint)-15; + EndDate.DateTime:=SGetServerDate10(ADOQueryPrint); + initGrid(); +end; + +procedure TFrmFanYangListHZ.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TFrmFanYangListHZ.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxBandedGrid(self.Caption+Tv1.Name+'5',Tv1,'ָʾͳ'); +end; + +procedure TFrmFanYangListHZ.TBFindClick(Sender: TObject); +var strwhere: string; +begin + if ADOQueryTmp.Active=False then Exit; + strwhere:=SGetFilters(Panel1,1,2); + IF strwhere='' then + begin + if cxTabControl1.TabIndex<2 then + strwhere:=' status ='''+inttostr(cxTabControl1.TabIndex)+''''; + end + else + begin + if cxTabControl1.TabIndex<2 then + strwhere:=strwhere+' and status ='''+inttostr(cxTabControl1.TabIndex)+''''; + end; + SDofilter(ADOQueryTmp,strwhere); + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); +end; + +procedure TFrmFanYangListHZ.OrderNoMChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TFrmFanYangListHZ.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + FrmFanYangListSub:=TFrmFanYangListSub.Create(Application); + with FrmFanYangListSub do + begin + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Panel1.Enabled:=False; + if ShowModal=1 then + begin + initGrid(); + end; + end; + finally + FrmFanYangListSub.Free; + end; +end; + +procedure TFrmFanYangListHZ.cxTabControl1Change(Sender: TObject); +begin + Tchk.Visible:=False; + TNochk.Visible:=False; + if CxTabControl1.TabIndex=0 then + begin + Tchk.Visible:=True; + end; + if CxTabControl1.TabIndex=1 then + begin + TNochk.Visible:=true; + end; + initGrid(); +end; + +procedure TFrmFanYangListHZ.TChkClick(Sender: TObject); +begin + if order_Main.IsEmpty then exit; + + PanelSh.Left:=(Width-PanelSh.Width) div 2; + PanelSh.top:=(Height-PanelSh.Height-100) div 2; + Orddefdate1.DateTime:=date(); + ordQty9.Text:=''; + OrddefNote1.Text:=''; + PanelSh.Visible:=true; + +end; + +procedure TFrmFanYangListHZ.TNoChkClick(Sender: TObject); +begin + if order_Main.IsEmpty then exit; + try + with ADOQueryTmp do + begin + close; + sql.Clear; + sql.add('update jYorderFY_Main set Chker='''',Chktime=Null,status=''0'' '); + sql.Add(',Orddefdate1=null,ordQty9=0,OrddefNote1='''' '); + sql.add('where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' '); + execsql; + end; + application.MessageBox('ɹ','ʾϢ'); + initGrid(); + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TFrmFanYangListHZ.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ToolButton1.Click; +end; + +procedure TFrmFanYangListHZ.TBPrintClick(Sender: TObject); +var + fPrintFile:string; +begin + if order_Main.IsEmpty then exit; + {with ADOQueryPrint do + begin + close; + sql.clear; + sql.Add('select A.*,B.*,'); + //Sql.add('CLRGS=(select count(AA.PRTColor) from (select distinct D.PRTColor from JYOrderFy_Sub D where D.Mainid=A.Mainid ) AA),'); + //sql.add('SumOrdQty1=(select Sum(D.SOrdQty1) from JYOrderFY_Sub D where D.Mainid=A.Mainid ),'); + //sql.add('ZJ=(select C.OrdQty5*Count(D.PRTColor)+C.OrdQty1*C.OrdQty2+C.OrdQty3*Sum(D.SOrdQty1)+C.OrdQty4*Sum(D.SOrdQty1)'); + //sql.add(' from JYOrderFy_Main C inner join JYOrderFy_Sub D on D.Mainid=C.Mainid where C.Mainid=A.Mainid '); + //sql.add('group by C.OrdQty5,C.OrdQty1,C.OrdQty2,C.OrdQty3,C.OrdQty4 ),'); + sql.add('ZJ=(select (AA.OrdQty5*Count(AA.PRTColor)+AA.OrdQty1*AA.OrdQty2+AA.OrdQty3*Sum(SL)+AA.OrdQty4*Sum(SL)) from '); + sql.add('(select E.PRTColor,F.OrdQty5,F.OrdQty1,F.OrdQty2,F.OrdQty3,F.OrdQty4,Sum(E.SOrdQty1) SL From JYOrderFy_Sub E inner join '); + sql.add('JYOrderFy_Main F on F.Mainid=E.Mainid where F.Mainid=A.Mainid group by E.PRTColor,F.OrdQty5,F.OrdQty1,F.OrdQty2,F.OrdQty3,F.OrdQty4 ) AA '); + sql.add('group by AA.OrdQty5,AA.OrdQty1,AA.OrdQty2,AA.OrdQty3,AA.OrdQty4) ,'); + + sql.add('MLF=SOrdQty1*OrdQty4,ZWF=OrdQty2*OrdQty1,SMPYF=OrdQty3*SOrdQty1 '); + sql.add('from JYOrderFy_Main A '); + sql.add('inner join JYOrderFy_Sub B on B.Mainid=A.Mainid '); + sql.Add('where A.Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' '); + open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print);} + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ָʾͳ.rmf' ; + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾͳ.rmf'),'ʾ',0); + end; +end; + +procedure TFrmFanYangListHZ.VOrdDateCompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); +begin + if ARow1.Values[V1Mainid.Index]=ARow2.Values[V1Mainid.Index] then + AAreEqual:=True + else + AAreEqual:=False; +end; + +procedure TFrmFanYangListHZ.V1PRTColorCompareRowValuesForCellMerging( + Sender: TcxGridColumn; ARow1: TcxGridDataRow; + AProperties1: TcxCustomEditProperties; const AValue1: Variant; + ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; + const AValue2: Variant; var AAreEqual: Boolean); +begin + if (ARow1.Values[V1Mainid.Index]=ARow2.Values[V1Mainid.Index]) and + (ARow1.Values[V1PRTColor.Index]=ARow2.Values[V1PRTColor.Index]) then + begin + AAreEqual:=true + end + else + AAreEqual:=False; +end; + +procedure TFrmFanYangListHZ.Button1Click(Sender: TObject); +begin + try + with ADOQueryTmp do + begin + close; + sql.Clear; + sql.add(' update jYorderFY_Main set Chker='''+Trim(DName)+''',Chktime=getdate(),status=''1'' '); + IF strTofloatdef(trim(OrdQty9.Text),0)<>0 then + begin + sql.Add(',Orddefdate1='''+formatdateTime('yyyy-MM-dd',Orddefdate1.DateTime)+''' '); + sql.Add(',OrdQty9='''+floattostr(strTofloatdef(trim(OrdQty9.Text),0))+''' '); + sql.Add(',OrddefNote1='''+trim(OrddefNote1.Text)+''' '); + end; + sql.add(' where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' '); + execsql; + end; + PanelSh.Visible:=false; + application.MessageBox('˳ɹ','ʾϢ'); + initGrid(); + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TFrmFanYangListHZ.Button2Click(Sender: TObject); +begin + PanelSh.Visible:=false; +end; + +procedure TFrmFanYangListHZ.ToolButton2Click(Sender: TObject); +begin + IF Order_Main.IsEmpty then exit; + TcxGridToExcel(self.Caption,CXGrid1); +end; + +end. diff --git a/盛纺贸易管理/U_FanYangList_Sub.dfm b/盛纺贸易管理/U_FanYangList_Sub.dfm new file mode 100644 index 0000000..8777f08 --- /dev/null +++ b/盛纺贸易管理/U_FanYangList_Sub.dfm @@ -0,0 +1,1119 @@ +object FrmFanYangListSub: TFrmFanYangListSub + Left = 191 + Top = 0 + Width = 1162 + Height = 712 + Caption = #25918#26679#25351#31034#21333#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 393 + Width = 1146 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 422 + Width = 1146 + Height = 247 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1SOrdQty1 + end + item + Kind = skSum + Column = v1SOrdQty2 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1SOrddefstr1: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 92 + end + object v1SOrddefstr4: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1PRTHX: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #21305#26679#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 82 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1OrderUnitPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 77 + end + object v1Column1: TcxGridDBColumn + Caption = #38754#26009#21333#20215 + DataBinding.FieldName = 'PRTPRice' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1SOrdQty1: TcxGridDBColumn + Caption = #23454#38469#20986#36135 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1SOrdQty2: TcxGridDBColumn + Caption = #25104#21697#23492#20986 + DataBinding.FieldName = 'SOrdQty2' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object v1SOrddefstr3: TcxGridDBColumn + Caption = #24037#21378#32534#21495 + DataBinding.FieldName = 'SOrddefstr3' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v1SOrddefstr5: TcxGridDBColumn + Caption = #36873#39033 + DataBinding.FieldName = 'SOrddefstr5' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v1SOrdDefNote1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 169 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 1146 + Height = 364 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Label1: TLabel + Left = 37 + Top = 17 + Width = 65 + Height = 12 + Caption = #25918#26679#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 213 + Top = 88 + Width = 67 + Height = 12 + Caption = #26579' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 213 + Top = 17 + Width = 65 + Height = 12 + Caption = #21512#21516#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 571 + Top = 17 + Width = 65 + Height = 12 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 571 + Top = 41 + Width = 66 + Height = 12 + Caption = #19994' '#21153' '#32452#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 37 + Top = 65 + Width = 67 + Height = 12 + Caption = #38376' '#24133#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 213 + Top = 65 + Width = 67 + Height = 12 + Caption = #20811' '#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 389 + Top = 41 + Width = 65 + Height = 12 + Caption = #20135#21697#21517#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 571 + Top = 65 + Width = 66 + Height = 12 + Caption = #29983' '#20135' '#32452#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 37 + Top = 88 + Width = 66 + Height = 12 + Caption = #22383' '#24067' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 213 + Top = 188 + Width = 66 + Height = 12 + Caption = #21305' '#26679' '#36153#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 389 + Top = 188 + Width = 66 + Height = 12 + Caption = #24555' '#36882' '#36153#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 37 + Top = 41 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 213 + Top = 41 + Width = 65 + Height = 12 + Caption = #20135#21697#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 571 + Top = 88 + Width = 62 + Height = 13 + Caption = 'SEASON'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 389 + Top = 17 + Width = 67 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 389 + Top = 65 + Width = 67 + Height = 12 + Caption = 'PO#& '#27454#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 37 + Top = 188 + Width = 78 + Height = 12 + Caption = #25968#30721#21943#21360#36153#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label43: TLabel + Left = 37 + Top = 164 + Width = 67 + Height = 12 + Caption = #27801' '#23376#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label45: TLabel + Left = 389 + Top = 88 + Width = 67 + Height = 12 + Caption = #25104' '#20221#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label48: TLabel + Left = 389 + Top = 164 + Width = 66 + Height = 12 + Caption = #21046' '#32593' '#36153#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 37 + Top = 291 + Width = 67 + Height = 12 + Caption = #22791' '#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 571 + Top = 164 + Width = 67 + Height = 12 + Caption = #32593' '#25968#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 571 + Top = 188 + Width = 67 + Height = 12 + Caption = #24065' '#31181#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 37 + Top = 232 + Width = 65 + Height = 12 + Caption = #27880#24847#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 213 + Top = 113 + Width = 66 + Height = 12 + Caption = #32553' '#27700' '#29575#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 389 + Top = 113 + Width = 67 + Height = 12 + Caption = #25197' '#21147#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 571 + Top = 113 + Width = 68 + Height = 12 + Caption = 'PH '#20540#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 37 + Top = 112 + Width = 65 + Height = 12 + Caption = #27979#35797#26631#20934#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 37 + Top = 138 + Width = 65 + Height = 12 + Caption = #27838#33394#29282#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 213 + Top = 138 + Width = 65 + Height = 12 + Caption = #27700#27927#29282#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 389 + Top = 138 + Width = 67 + Height = 12 + Caption = #24178' '#30952#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 571 + Top = 138 + Width = 67 + Height = 12 + Caption = #28287' '#30952#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 213 + Top = 164 + Width = 91 + Height = 12 + Caption = #38750#27695#28418#33394#29282#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 37 + Top = 212 + Width = 67 + Height = 12 + Caption = #25187' '#27454#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 213 + Top = 212 + Width = 65 + Height = 12 + Caption = #32467#31639#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Left = 101 + Top = 14 + Width = 98 + Height = 20 + Enabled = False + TabOrder = 0 + Text = #33258#21160#20135#29983 + end + object ConNo: TEdit + Tag = 2 + Left = 278 + Top = 14 + Width = 98 + Height = 20 + TabOrder = 1 + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 634 + Top = 13 + Width = 98 + Height = 20 + BevelInner = bvNone + Date = 0.670856296288548100 + Format = 'yyyy-MM-dd' + Time = 0.670856296288548100 + ShowCheckbox = True + TabOrder = 2 + end + object DLYDate: TDateTimePicker + Tag = 2 + Left = 101 + Top = 37 + Width = 98 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 3 + end + object CPCFBi: TEdit + Tag = 2 + Left = 456 + Top = 85 + Width = 98 + Height = 20 + TabOrder = 4 + end + object OrdDefStr2: TBtnEditA + Tag = 2 + Left = 634 + Top = 61 + Width = 98 + Height = 20 + TabOrder = 5 + OnBtnClick = OrdDefStr2BtnClick + end + object OrdDefStr3: TBtnEditA + Tag = 2 + Left = 634 + Top = 84 + Width = 98 + Height = 20 + TabOrder = 6 + OnBtnClick = OrdDefStr3BtnClick + end + object MPRTKuanNO: TEdit + Tag = 2 + Left = 456 + Top = 62 + Width = 98 + Height = 20 + TabOrder = 7 + end + object MPRTCodeName: TBtnEditA + Tag = 2 + Left = 456 + Top = 37 + Width = 98 + Height = 20 + TabOrder = 8 + OnBtnClick = MPRTCodeNameBtnClick + end + object OrdDefStr1: TBtnEditA + Tag = 2 + Left = 634 + Top = 37 + Width = 98 + Height = 20 + TabOrder = 9 + OnBtnClick = OrdDefStr1BtnClick + end + object CustomerNoName: TBtnEditA + Tag = 2 + Left = 493 + Top = 13 + Width = 61 + Height = 20 + TabOrder = 10 + OnBtnClick = CustomerNoNameBtnClick + end + object RanFactory: TBtnEditA + Tag = 2 + Left = 278 + Top = 85 + Width = 98 + Height = 20 + TabOrder = 11 + OnBtnClick = RanFactoryBtnClick + end + object PBFactory: TBtnEditA + Tag = 2 + Left = 101 + Top = 84 + Width = 98 + Height = 20 + TabOrder = 12 + OnBtnClick = PBFactoryBtnClick + end + object MPRTKZ: TBtnEditA + Tag = 2 + Left = 278 + Top = 61 + Width = 98 + Height = 20 + TabOrder = 13 + OnBtnClick = MPRTKZBtnClick + end + object MPRTMF: TBtnEditA + Tag = 2 + Left = 101 + Top = 61 + Width = 98 + Height = 20 + TabOrder = 14 + OnBtnClick = MPRTMFBtnClick + end + object MPRTCode: TBtnEditA + Tag = 2 + Left = 278 + Top = 37 + Width = 98 + Height = 20 + TabOrder = 15 + OnBtnClick = MPRTCodeBtnClick + end + object OrdDefStr4: TBtnEditA + Tag = 2 + Left = 101 + Top = 160 + Width = 98 + Height = 20 + TabOrder = 16 + OnBtnClick = OrdDefStr4BtnClick + end + object OrdQty1: TcxCurrencyEdit + Tag = 2 + Left = 456 + Top = 160 + Properties.AssignedValues.DisplayFormat = True + TabOrder = 17 + Width = 98 + end + object OrdQty5: TcxCurrencyEdit + Tag = 2 + Left = 278 + Top = 184 + Properties.AssignedValues.DisplayFormat = True + TabOrder = 18 + Width = 98 + end + object OrdQty3: TcxCurrencyEdit + Tag = 2 + Left = 113 + Top = 184 + Properties.AssignedValues.DisplayFormat = True + TabOrder = 19 + Width = 84 + end + object OrdQty6: TcxCurrencyEdit + Tag = 2 + Left = 456 + Top = 184 + Properties.AssignedValues.DisplayFormat = True + TabOrder = 20 + Width = 98 + end + object Note: TMemo + Tag = 2 + Left = 101 + Top = 293 + Width = 631 + Height = 62 + Lines.Strings = ( + '') + ScrollBars = ssVertical + TabOrder = 21 + end + object OrdFlag1: TCheckBox + Tag = 2 + Left = 751 + Top = 14 + Width = 97 + Height = 17 + Caption = #26159#21542#35745#31639#36153#29992 + Checked = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + State = cbChecked + TabOrder = 22 + Visible = False + end + object OrdQty2: TcxCurrencyEdit + Tag = 2 + Left = 634 + Top = 160 + Properties.AssignedValues.DisplayFormat = True + TabOrder = 23 + Width = 98 + end + object OrdDefStr6: TBtnEditA + Tag = 2 + Left = 634 + Top = 184 + Width = 98 + Height = 20 + TabOrder = 24 + OnBtnClick = OrdDefStr6BtnClick + end + object MPRTTeBieNote: TMemo + Tag = 2 + Left = 101 + Top = 230 + Width = 631 + Height = 62 + Lines.Strings = ( + '') + ScrollBars = ssVertical + TabOrder = 25 + OnDblClick = MPRTTeBieNoteDblClick + end + object MPRTPH: TBtnEditA + Tag = 2 + Left = 634 + Top = 109 + Width = 98 + Height = 20 + TabOrder = 26 + OnBtnClick = MPRTPHBtnClick + end + object MPRTNiuDu: TBtnEditA + Tag = 2 + Left = 456 + Top = 109 + Width = 98 + Height = 20 + TabOrder = 27 + OnBtnClick = MPRTNiuDuBtnClick + end + object MPRTSL: TBtnEditA + Tag = 2 + Left = 278 + Top = 109 + Width = 98 + Height = 20 + TabOrder = 28 + OnBtnClick = MPRTSLBtnClick + end + object OrdDefStr5: TBtnEditA + Tag = 2 + Left = 101 + Top = 109 + Width = 98 + Height = 20 + TabOrder = 29 + OnBtnClick = OrdDefStr5BtnClick + end + object MPRTColorLaoDu4: TBtnEditA + Tag = 2 + Left = 278 + Top = 134 + Width = 98 + Height = 20 + TabOrder = 30 + OnBtnClick = MPRTColorLaoDu4BtnClick + end + object MPRTColorLaoDu3: TBtnEditA + Tag = 2 + Left = 101 + Top = 134 + Width = 98 + Height = 20 + TabOrder = 31 + OnBtnClick = MPRTColorLaoDu3BtnClick + end + object MPRTDingPoLv: TBtnEditA + Tag = 2 + Left = 300 + Top = 160 + Width = 77 + Height = 20 + TabOrder = 32 + OnBtnClick = MPRTDingPoLvBtnClick + end + object MPRTColorLaoDu1: TBtnEditA + Tag = 2 + Left = 456 + Top = 134 + Width = 98 + Height = 20 + TabOrder = 33 + OnBtnClick = MPRTColorLaoDu1BtnClick + end + object MPRTColorLaoDu2: TBtnEditA + Tag = 2 + Left = 634 + Top = 134 + Width = 98 + Height = 20 + TabOrder = 34 + OnBtnClick = MPRTColorLaoDu2BtnClick + end + object CustomerNo: TEdit + Tag = 2 + Left = 456 + Top = 13 + Width = 37 + Height = 20 + TabOrder = 35 + end + object OrdQty7: TcxCurrencyEdit + Tag = 2 + Left = 100 + Top = 208 + Properties.AssignedValues.DisplayFormat = True + TabOrder = 36 + Width = 98 + end + object orddefstr7: TComboBox + Tag = 2 + Left = 279 + Top = 208 + Width = 98 + Height = 20 + ItemHeight = 12 + TabOrder = 37 + Items.Strings = ( + '' + #20813#36153 + #22823#36135#35797#26679) + end + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 369 + Top = 490 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 336 + Top = 490 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 300 + Top = 491 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 261 + Top = 491 + end +end diff --git a/盛纺贸易管理/U_FanYangList_Sub.pas b/盛纺贸易管理/U_FanYangList_Sub.pas new file mode 100644 index 0000000..18ce479 --- /dev/null +++ b/盛纺贸易管理/U_FanYangList_Sub.pas @@ -0,0 +1,887 @@ +unit U_FanYangList_Sub; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, ExtCtrls, + StdCtrls, BtnEdit, cxContainer, cxTextEdit, cxCurrencyEdit, ADODB, + DBClient,strutils; + +type + TFrmFanYangListSub = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + v1SOrddefstr1: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTHX: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1SOrdDefNote1: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Panel1: TPanel; + Label1: TLabel; + Label7: TLabel; + Label10: TLabel; + Label3: TLabel; + Label14: TLabel; + Label12: TLabel; + Label13: TLabel; + Label2: TLabel; + Label6: TLabel; + Label16: TLabel; + Label19: TLabel; + Label24: TLabel; + Label25: TLabel; + Label26: TLabel; + Label28: TLabel; + Label29: TLabel; + Label35: TLabel; + Label42: TLabel; + Label43: TLabel; + Label45: TLabel; + Label48: TLabel; + OrderNo: TEdit; + ConNo: TEdit; + OrdDate: TDateTimePicker; + DLYDate: TDateTimePicker; + CPCFBi: TEdit; + OrdDefStr2: TBtnEditA; + OrdDefStr3: TBtnEditA; + MPRTKuanNO: TEdit; + MPRTCodeName: TBtnEditA; + OrdDefStr1: TBtnEditA; + CustomerNoName: TBtnEditA; + RanFactory: TBtnEditA; + PBFactory: TBtnEditA; + MPRTKZ: TBtnEditA; + MPRTMF: TBtnEditA; + MPRTCode: TBtnEditA; + OrdDefStr4: TBtnEditA; + OrdQty1: TcxCurrencyEdit; + OrdQty5: TcxCurrencyEdit; + OrdQty3: TcxCurrencyEdit; + OrdQty6: TcxCurrencyEdit; + Label4: TLabel; + Note: TMemo; + OrdFlag1: TCheckBox; + Label5: TLabel; + OrdQty2: TcxCurrencyEdit; + Label8: TLabel; + OrdDefStr6: TBtnEditA; + v1SOrddefstr4: TcxGridDBColumn; + v1SOrdQty1: TcxGridDBColumn; + v1SOrddefstr3: TcxGridDBColumn; + v1SOrddefstr5: TcxGridDBColumn; + Label9: TLabel; + MPRTTeBieNote: TMemo; + Label11: TLabel; + Label15: TLabel; + Label17: TLabel; + MPRTPH: TBtnEditA; + MPRTNiuDu: TBtnEditA; + MPRTSL: TBtnEditA; + Label18: TLabel; + OrdDefStr5: TBtnEditA; + Label30: TLabel; + Label31: TLabel; + MPRTColorLaoDu4: TBtnEditA; + MPRTColorLaoDu3: TBtnEditA; + Label20: TLabel; + Label21: TLabel; + Label33: TLabel; + MPRTDingPoLv: TBtnEditA; + MPRTColorLaoDu1: TBtnEditA; + MPRTColorLaoDu2: TBtnEditA; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + CustomerNo: TEdit; + v1Column1: TcxGridDBColumn; + v1SOrdQty2: TcxGridDBColumn; + Label22: TLabel; + OrdQty7: TcxCurrencyEdit; + Label23: TLabel; + orddefstr7: TComboBox; + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure MPRTCodeBtnClick(Sender: TObject); + procedure MPRTTeBieNoteDblClick(Sender: TObject); + procedure CustomerNoNameBtnClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure MPRTCodeNameBtnClick(Sender: TObject); + procedure OrdDefStr1BtnClick(Sender: TObject); + procedure OrdDefStr2BtnClick(Sender: TObject); + procedure MPRTMFBtnClick(Sender: TObject); + procedure MPRTKZBtnClick(Sender: TObject); + procedure PBFactoryBtnClick(Sender: TObject); + procedure RanFactoryBtnClick(Sender: TObject); + procedure OrdDefStr3BtnClick(Sender: TObject); + procedure OrdDefStr5BtnClick(Sender: TObject); + procedure MPRTSLBtnClick(Sender: TObject); + procedure MPRTNiuDuBtnClick(Sender: TObject); + procedure MPRTPHBtnClick(Sender: TObject); + procedure MPRTColorLaoDu3BtnClick(Sender: TObject); + procedure MPRTColorLaoDu4BtnClick(Sender: TObject); + procedure MPRTColorLaoDu1BtnClick(Sender: TObject); + procedure MPRTColorLaoDu2BtnClick(Sender: TObject); + procedure OrdDefStr4BtnClick(Sender: TObject); + procedure MPRTDingPoLvBtnClick(Sender: TObject); + procedure OrdDefStr6BtnClick(Sender: TObject); + private + procedure initGrid(); + procedure SaveData(); + { Private declarations } + public + FMainid: string; + CopyInt: integer; + { Public declarations } + end; + +var + FrmFanYangListSub: TFrmFanYangListSub; + +implementation + +uses U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ZdyAttachment; + +{$R *.dfm} + +procedure TFrmFanYangListSub.SaveData(); +var MaxNo,ForederNo: string; +begin + try + ADOQueryCmd.Connection.BeginTrans; + if Trim(FMainId)='' then + begin + if GetLSNo(ADOQueryCmd,FMainId,'FY','JYOrderFY_Main',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOQueryTmp do + begin + close; + sql.Clear; + sql.Add('exec P_Get_MaxFYNo '); + sql.Add(' @MPRTType='+quotedstr(trim(OrdDefStr1.Text))); + open; + end; + IF trim(ADOQueryTmp.FieldByName('maxStr').AsString)='XXX' then + begin + if GetLSNo(ADOQueryCmd,ForederNo,trim(OrdDefStr1.text)+formatdateTime('yy',SGetServerDate10(ADOQueryTmp)),'JYOrderFY_Main',3,0)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + ForederNo:=Trim(RightBStr(ForederNo,Length(ForederNo)-1)); + end + else + ForederNo:=trim(ADOQueryTmp.FieldByName('maxStr').AsString); + ForederNo:='P'+trim(OrdDefStr1.Text)+ForederNo+trim(CustomerNo.Text); + orderNo.Text:= ForederNo; + end; + // ForederNo:=trim(orderNo.Text); + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrderFy_Main where MainId='''+Trim(FMainId)+''''); + Open; + if isempty then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('Filltime').Value:=SGetServerDateTime(ADOQueryTmp); + end + else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTmp); + end; + FieldByName('OrderNo').Value:=Trim(orderNo.text); + FieldByName('MainId').Value:=Trim(FMainid); + FieldByName('Status').Value:='0'; + SSetsaveSqlNew(ADOQueryCmd,'JYOrderFy_Main',Panel1,2); + Post; + end; + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,MaxNo,'FY','JYOrderfy_Sub',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + MaxNo:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderFY_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + if isempty then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOQueryCmd,Tv1,Order_Sub,'JYOrderFY_Sub',0); + fieldbyname('PRTOrderQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').AsFloat; + fieldbyname('PrtPrice').Value:=Order_Sub.fieldbyname('PrtPrice').AsFloat; + fieldbyname('SOrdQty1').Value:=Order_Sub.fieldbyname('SOrdQty1').AsFloat; + fieldbyname('SOrdQty2').Value:=Order_Sub.fieldbyname('SOrdQty2').AsFloat; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.messagebox('ɹ','ʾ'); + ModalResult:=1; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ'); + end; +end; + +procedure TFrmFanYangListSub.initGrid(); +begin + with AdoqueryCmd do + begin + close; + sql.clear; + sql.add('select * from JYOrderFy_Main where Mainid='''+trim(FMainid)+''' '); + open; + if not isempty then + begin + SCSHDataNew(AdoqueryCmd,Panel1,2); + OrderNO.Text:=Trim(fieldbyname('ORDERno').AsString); + orddefstr7.Text:=Trim(fieldbyname('orddefstr7').AsString); + end; + end; + with ADOQueryCmd do + begin + close; + sql.clear; + sql.add('select * from JYOrderFy_Sub where Mainid='''+trim(FMainid)+''' '); + open; + end; + SCreateCDS20(ADOQueryCmd,Order_Sub); + SInitCDSData20(ADOQueryCmd,Order_Sub); + + + IF CopyInt=99 then + begin + FMainid:=''; + OrderNo.Text:='Զ'; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + first; + end; + end; +end; + +procedure TFrmFanYangListSub.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TFrmFanYangListSub.FormShow(Sender: TObject); +begin + ReadCxGrid(self.Caption+Tv1.Name,Tv1,'ָʾ¼'); + ordDate.datetime:=SGetServerDateTime(ADOQueryTmp); + DLYDate.DateTime:=SGetServerDateTime(ADOQueryTmp); +{ if trim(DParameters1)<>'Ȩ' then + begin + OrdFlag1.Visible:=False; + end; } + initGrid(); +end; + +procedure TFrmFanYangListSub.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+Tv1.Name,Tv1,'ָʾ¼'); +end; + +procedure TFrmFanYangListSub.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + close; + sql.clear; + sql.Add('delete from JYOrderfy_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + execsql; + end; + Order_Sub.Delete; +end; + +procedure TFrmFanYangListSub.ToolButton1Click(Sender: TObject); +var j: integer; +begin + j:=Order_Sub.RecordCount; + j:=j+1; + CopyAddRow(Tv1,Order_Sub); + with order_Sub do + begin + edit; + fieldbyname('XHNo').AsString:=Inttostr(j); + post; + end; +end; + +procedure TFrmFanYangListSub.TBSaveClick(Sender: TObject); +begin + if trim(OrderNo.Text)='' then + begin + application.MessageBox('ŲΪ','ʾ'); + exit; + end; + if trim(CustomerNo.Text)='' then + begin + application.MessageBox('ͻƲΪ','ʾ'); + exit; + end; + if trim(CustomerNoName.Text)='' then + begin + application.MessageBox('ͻΪ','ʾ'); + exit; + end; + if trim(OrdDefStr1.Text)='' then + begin + application.MessageBox('ҵ鲻Ϊ','ʾ'); + exit; + end; + if order_Sub.IsEmpty then + begin + application.MessageBox('ϸΪ','ʾ'); + exit; + end; + if order_Sub.Locate('PRTColor',null,[])=true then + begin + application.MessageBox('ɫΪ','ʾ'); + exit; + end; + SaveData(); +end; + +procedure TFrmFanYangListSub.MPRTCodeBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCode'; + flagname:='Ʒ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTTeBieNoteDblClick(Sender: TObject); +var i: integer; +begin + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='MPRTTeBieNote'; + flagname:='ע'; + if ShowModal=1 then + begin + MPRTTeBieNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTTeBieNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TFrmFanYangListSub.CustomerNoNameBtnClick(Sender: TObject); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomerNoName'; + flagname:='ͻ'; + fnote:=True; + V1Note.Caption:='ͻ'; + V1Name.Caption:='ͻ'; + if trim(DParameters1)<>'Ȩ' then ViewFlag:=true; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomerNo.text:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + // CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + CustomerNo.Text:=Trim(CDS_HZ.fieldbyname('ZDYNameZ').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TFrmFanYangListSub.v1PRTColorPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.v1OrderUnitPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTCodeNameBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCodeName'; + flagname:='Ʒ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.OrdDefStr1BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='YEWUZU'; + flagname:='ҵ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.OrdDefStr2BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SHENGCHANZU'; + flagname:='';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTMFBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTMF'; + flagname:='ŷ'; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTKZBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTKZ'; + flagname:=''; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.PBFactoryBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.RanFactoryBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.OrdDefStr3BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SEASON'; + flagname:='SEASON';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.OrdDefStr5BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CESHIBZ'; + flagname:='Ա׼';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTSLBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTSL'; + flagname:='ˮ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTNiuDuBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTNiuDu'; + flagname:='Ť';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTPHBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTPH'; + flagname:='PHֵ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTColorLaoDu3BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTColorLaoDu3'; + flagname:='մɫζ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTColorLaoDu4BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTColorLaoDu4'; + flagname:='ˮϴζ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTColorLaoDu1BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTColorLaoDu1'; + flagname:='ĥ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTColorLaoDu2BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTColorLaoDu2'; + flagname:='ʪĥ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.OrdDefStr4BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SHAZI'; + flagname:='ɳ';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.MPRTDingPoLvBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTDingPoLv'; + flagname:='';; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmFanYangListSub.OrdDefStr6BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CYTP'; + flagname:=''; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_FileUp.dfm b/盛纺贸易管理/U_FileUp.dfm new file mode 100644 index 0000000..d38971a --- /dev/null +++ b/盛纺贸易管理/U_FileUp.dfm @@ -0,0 +1,188 @@ +object frmFileUp: TfrmFileUp + Left = 247 + Top = 162 + Width = 660 + Height = 441 + Caption = #19978#20256#25991#20214 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid7: TcxGrid + Left = 0 + Top = 41 + Width = 581 + Height = 362 + Align = alClient + TabOrder = 0 + object TV7: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object FileName: TcxGridDBColumn + Tag = 1 + Caption = #25991#20214#21517#31216 + DataBinding.FieldName = 'FileName' + FooterAlignmentHorz = taCenter + HeaderAlignmentHorz = taCenter + Width = 121 + end + object FileDate: TcxGridDBColumn + Tag = 1 + Caption = #19978#20256#26085#26399 + DataBinding.FieldName = 'FileDate' + FooterAlignmentHorz = taCenter + HeaderAlignmentHorz = taCenter + Width = 104 + end + end + object cxGridLevel6: TcxGridLevel + GridView = TV7 + end + end + object Panel16: TPanel + Left = 190 + Top = 126 + Width = 138 + Height = 30 + BevelInner = bvRaised + Caption = #27491#22312#19978#20256#12290#12290#12290 + Color = clSkyBlue + TabOrder = 1 + Visible = False + end + object ToolBar6: TToolBar + Left = 581 + Top = 41 + Width = 63 + Height = 362 + Align = alRight + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Flat = True + Images = DataLink_YPGL.ThreeImgList + List = True + ShowCaptions = True + TabOrder = 2 + object FileUp: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #19978#20256 + ImageIndex = 109 + Wrap = True + OnClick = FileUpClick + end + object FileDel: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Wrap = True + OnClick = FileDelClick + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 644 + Height = 41 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Label1: TLabel + Left = 8 + Top = 14 + Width = 68 + Height = 16 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Image2: TImage + Left = 445 + Top = 9 + Width = 60 + Height = 28 + end + object Code: TEdit + Left = 78 + Top = 9 + Width = 211 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + end + end + object ODPat: TOpenDialog + Options = [ofReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing] + Left = 404 + Top = 197 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 405 + Top = 236 + end + object SaveDialog1: TSaveDialog + Left = 409 + Top = 285 + end + object ADOQueryFile: TADOQuery + Connection = DataLink_YPGL.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 488 + Top = 144 + end + object DataSource1: TDataSource + DataSet = ADOQueryFile + Left = 392 + Top = 168 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_YPGL.ADOLink + Parameters = <> + Left = 496 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_YPGL.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 504 + Top = 264 + end +end diff --git a/盛纺贸易管理/U_FileUp.pas b/盛纺贸易管理/U_FileUp.pas new file mode 100644 index 0000000..6813dcc --- /dev/null +++ b/盛纺贸易管理/U_FileUp.pas @@ -0,0 +1,344 @@ +unit U_FileUp; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ComCtrls, ToolWin, ExtCtrls, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, IdBaseComponent, + IdComponent, IdTCPConnection, IdTCPClient, IdFTP, StdCtrls, ADODB,jpeg, + BtnEdit,IniFiles,strutils; + +type + TfrmFileUp = class(TForm) + cxGrid7: TcxGrid; + TV7: TcxGridDBTableView; + FileName: TcxGridDBColumn; + FileDate: TcxGridDBColumn; + cxGridLevel6: TcxGridLevel; + Panel16: TPanel; + ToolBar6: TToolBar; + FileUp: TToolButton; + FileDel: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Code: TEdit; + ODPat: TOpenDialog; + IdFTP1: TIdFTP; + SaveDialog1: TSaveDialog; + ADOQueryFile: TADOQuery; + DataSource1: TDataSource; + ADOQueryCmd: TADOQuery; + ADOQueryTemp: TADOQuery; + Image2: TImage; + procedure FileUpClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FileDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + private + lstPat: TStringList; + AJpeg: TJPEGImage; + procedure CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer); + procedure SaveImageOther(FTFID:string); + procedure ReadINIFile10(); + { Private declarations } + public + CYID:String; + { Public declarations } + end; + +var + frmFileUp: TfrmFileUp; + +implementation +uses + U_DataLink,U_Fun; + +{$R *.dfm} + +procedure TfrmFileUp.ReadINIFile10(); +var + programIni:Tinifile; //ļ + FileName:string; +begin + FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; + programIni:=Tinifile.create(FileName); + server:=programIni.ReadString('SERVER','ַ','127.0.0.1'); + programIni.Free; +end; +procedure TfrmFileUp.FileUpClick(Sender: TObject); +var + i,j: Integer; + PatFile: String; + FTPPath,FConNo,MaxNo:string; + AJpeg: TJPEGImage; + myStream: TADOBlobStream; +begin + if Trim(Code.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + lstPat.Clear; + if ODPat.Execute then + begin + lstPat.AddStrings(ODPat.Files); + end; + if lstPat.Count > 0 then + begin + try + IdFTP1.Host :=PicSvr;//PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + IdFTP1.Quit; + Application.MessageBox('޷ӵļ飡', 'ʾ', MB_ICONWARNING); + Exit; + end; + end; + Panel16.Visible:=True; + Panel16.Refresh; + + try + AJpeg:=TJpegImage.Create(); + ADOQueryCmd.Connection.BeginTrans; + + for i:=0 to lstPat.Count - 1 do + begin + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(max(abs(cast(right(left(FileName,charindex(''.'',FileName)-1),2) as int))),0)+1 as BH from XD_File'); + sql.Add('where CYID='''+trim(CYID)+''' '); + open; + end; + // PatFile:=Copy(ExtractFileName(lstPat[i]),(Pos('.',ExtractFileName(lstPat[i]))+1),(Length(ExtractFileName(lstPat[i]))-Pos('.',ExtractFileName(lstPat[i]))) ) ; + PatFile:=trim(Code.Text)+'-'+inttostr(ADOQueryTemp.fieldbyname('BH').AsInteger)+'.'+Copy(ExtractFileName(lstPat[i]),(Pos('.',ExtractFileName(lstPat[i]))+1),(Length(ExtractFileName(lstPat[i]))-Pos('.',ExtractFileName(lstPat[i]))) ) ; + + AJpeg.LoadFromFile(ExtractFileName(lstPat[i])); + CreThumb(AJpeg,Image2,160, 120); + + if IdFTP1.Connected then + begin + try + IdFTP1.Put(lstPat[i], Trim('\YP')+'\'+Trim(PatFile)); + + if GetLSNo(ADOQueryCmd,MaxNo,'YP','XD_File',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡͼƬʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('XFID').Value:=Trim(MaxNo); + FieldByName('CYID').Value:=Trim(CYID); + FieldByName('CYNO').Value:=Trim(Code.Text); + FieldByName('filename').Value:=Trim(PatFile); + FieldByName('FileDate').Value:=SGetServerDate(ADOQueryTemp); + fieldbyname('FileType').value:=Trim('YP'); + Post; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add(' select * from TP_File where TFID='''+Trim(MaxNo)+''''); + open; + end; + with ADOQueryCmd do + begin + if ADOQueryCmd.IsEmpty then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end + else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end; + FieldByName('TFID').Value:=Trim(MaxNo); + FieldByName('WBID').Value:=Trim(CYID); + FieldByName('TFType').Value:='Ʒ'; + myStream := TADOBlobStream.Create(TBlobField(ADOQueryCmd.FieldByName('FilesOther')), bmWrite); + AJpeg.Assign(Image2.Picture.Graphic); + AJpeg.SaveToStream(myStream); + myStream.Free; + Post; + end; + except + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CP_YDang Set TPFlag=1 where CYID='''+Trim(CYID)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + AJpeg.Free; + except + AJpeg.Free; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ͼƬϴʧܣ','ʾ',0); + end; + if IdFTP1.Connected then IdFTP1.Quit; + with ADOQueryFile do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + open; + end; + Panel16.Visible:=False; + if i>0 then + Application.MessageBox(PChar(inttostr(i)+'ļϴɹ'),'ʾ',0); + ModalResult:=1; +end; +procedure TfrmFileUp.CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer); +var + Bitmap: TBitmap; + Ratio: Double; + ARect: TRect; + AHeight, AHeightOffset: Integer; + AWidth, AWidthOffset: Integer; +begin + Bitmap := TBitmap.Create; + try + Ratio := AJPeg.Width /AJPeg.Height; + if Ratio > 1.333 then + begin + AHeight := Round(Width / Ratio); + AHeightOffset := (Height - AHeight) div 2; + AWidth := Width; + AWidthOffset := 0; + end + else + begin + AWidth := Round(Height * Ratio); + AWidthOffset := (Width - AWidth) div 2; + AHeight := Height; + AHeightOffset := 0; + end; + Bitmap.Width := Width; + Bitmap.Height := Height; + Bitmap.Canvas.Brush.Color := clBtnFace; + Bitmap.Canvas.FillRect(Rect(0, 0, Width, Height)); + ARect := Rect(AWidthOffset, AHeightOffset, AWidth + AWidthOffset, AHeight + AHeightOffset); + Bitmap.Canvas.StretchDraw(ARect, AJPeg); + Image1.Picture.Assign(BitMap); + finally + Bitmap.Free; + end; +end; +procedure TfrmFileUp.SaveImageOther(FTFID:string); +var + AJpeg: TJPEGImage; + myStream: TADOBlobStream; + ImgMaxNo:String; + i,j: Integer; + PatFile: String; + FConNo,MaxNo:string; +begin + if Image2.Picture=nil then Exit; + AJpeg:=TJpegImage.Create(); + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add(' select * from TP_File where TFID='''+Trim(FTFID)+''''); + open; + end; + with ADOQueryCmd do + begin + if Trim(FTFID)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end + else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end; + FieldByName('TFID').Value:=Trim(FTFID); + FieldByName('WBID').Value:=Trim(CYID); + FieldByName('TFType').Value:='Ʒ'; + AJpeg.Assign(Image2.Picture.Graphic); + myStream := TADOBlobStream.Create(TBlobField(ADOQueryCmd.FieldByName('FilesOther')), bmWrite); + AJpeg.Assign(Image2.Picture.Graphic); + AJpeg.SaveToStream(myStream); + myStream.Free; + Post; + end; +end; + +procedure TfrmFileUp.FormCreate(Sender: TObject); +begin + lstPat := TStringList.Create; + +end; + +procedure TfrmFileUp.FileDelClick(Sender: TObject); +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add(' Delete XD_File where XFID='''+Trim(ADOQueryFile.fieldbyname('XFID').AsString)+''''); + SQL.Add(' Delete TP_File where TFID='''+Trim(ADOQueryFile.fieldbyname('XFID').AsString)+''''); + ExecSQL; + end; + with ADOQueryFile do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + SQL.Add(' and FileType=''YP'''); + open; + end; + if ADOQueryFile.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CP_YDang Set TPFlag=0 where CYID='''+Trim(CYID)+''''); + ExecSQL; + end; + end; +end; + +procedure TfrmFileUp.FormShow(Sender: TObject); +begin + with ADOQueryFile do + begin + Close; + SQL.Clear; + SQL.Add('select * from XD_File where CYID='''+Trim(CYID)+''''); + SQL.Add(' and FileType=''YP'''); + Open; + end; +end; + +end. diff --git a/盛纺贸易管理/U_FjList_RZ.dfm b/盛纺贸易管理/U_FjList_RZ.dfm new file mode 100644 index 0000000..0203ca3 --- /dev/null +++ b/盛纺贸易管理/U_FjList_RZ.dfm @@ -0,0 +1,183 @@ +object frmFjList_RZ: TfrmFjList_RZ + Left = 192 + Top = 134 + Width = 796 + Height = 502 + BorderIcons = [biSystemMenu, biMinimize] + Caption = #38468#20214#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ListView1: TListView + Left = 40 + Top = 20 + Width = 429 + Height = 77 + Columns = <> + TabOrder = 0 + OnDblClick = ListView1DblClick + end + object Panel1: TPanel + Left = 629 + Top = 0 + Width = 151 + Height = 464 + Align = alRight + TabOrder = 1 + object FileName: TcxButton + Left = 30 + Top = 60 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #28155#21152 + TabOrder = 0 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 30 + Top = 96 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #21024#38500 + TabOrder = 1 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton2: TcxButton + Left = 30 + Top = 132 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #19979#36733 + TabOrder = 2 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton3: TcxButton + Left = 30 + Top = 172 + Width = 75 + Height = 25 + Hint = 'Filesother' + Caption = #20851#38381 + TabOrder = 3 + Visible = False + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + end + object Panel2: TPanel + Left = 176 + Top = 140 + Width = 193 + Height = 41 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel2' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnDblClick = Panel2DblClick + end + object cxGrid1: TcxGrid + Left = 4 + Top = 20 + Width = 621 + Height = 361 + TabOrder = 3 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object v1Column1: TcxGridDBColumn + Caption = #25991#20214#21517#31216 + DataBinding.FieldName = 'FileName' + HeaderAlignmentHorz = taCenter + Width = 146 + end + object v1Column4: TcxGridDBColumn + Caption = #25991#20214#20462#25913#26102#38388 + DataBinding.FieldName = 'TFdate' + HeaderAlignmentHorz = taCenter + Width = 140 + end + object v1Column2: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 83 + end + object v1Column3: TcxGridDBColumn + Caption = #19978#20256#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 140 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryTmp: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 520 + Top = 28 + end + object ADOQueryCmd: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 568 + Top = 32 + end + object ImageList1: TImageList + Left = 536 + Top = 228 + end + object IdFTP1: TIdFTP + MaxLineAction = maException + ReadTimeout = 0 + ProxySettings.ProxyType = fpcmNone + ProxySettings.Port = 0 + Left = 500 + Top = 198 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 532 + Top = 240 + end + object DataSource1: TDataSource + DataSet = ADOQueryTmp + Left = 548 + Top = 140 + end +end diff --git a/盛纺贸易管理/U_FjList_RZ.pas b/盛纺贸易管理/U_FjList_RZ.pas new file mode 100644 index 0000000..b443468 --- /dev/null +++ b/盛纺贸易管理/U_FjList_RZ.pas @@ -0,0 +1,380 @@ +unit U_FjList_RZ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, ComCtrls, Menus, cxLookAndFeelPainters, StdCtrls, + cxButtons, DB, ADODB, ImgList,shellapi, IdBaseComponent, IdComponent, + IdTCPConnection, IdTCPClient, IdFTP, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGrid; + +type + TfrmFjList_RZ = class(TForm) + ListView1: TListView; + Panel1: TPanel; + FileName: TcxButton; + cxButton1: TcxButton; + cxButton2: TcxButton; + cxButton3: TcxButton; + ADOQueryTmp: TADOQuery; + ADOQueryCmd: TADOQuery; + ImageList1: TImageList; + Panel2: TPanel; + IdFTP1: TIdFTP; + ADOConnection1: TADOConnection; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + DataSource1: TDataSource; + v1Column4: TcxGridDBColumn; + procedure cxButton3Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ListView1DblClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure Panel2DblClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + private + procedure InitData(); + { Private declarations } + public + fkeyNO:string; + fType:string; + fId:integer; + fstatus:integer; + // fmanage:string; + + { Public declarations } + end; + +var +frmFjList_RZ: TfrmFjList_RZ; + +implementation + uses + U_DataLink,U_Fun10,U_CompressionFun; +{$R *.dfm} +procedure TfrmFjList_RZ.InitData(); +var + ListItem: TListItem; + Flag: Cardinal; + info: SHFILEINFOA; + Icon: TIcon; +begin + ListView1.Items.Clear; + try + + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + sql.Add('and TFType='+quotedstr(trim(fType))); + open; + end; + except + end; +end; + +procedure TfrmFjList_RZ.cxButton3Click(Sender: TObject); +begin + ADOQueryTmp.Close; + ADOQuerycmd.Close; + ListView1.Items.Free; + ModalResult:=-1; +end; + +procedure TfrmFjList_RZ.FormDestroy(Sender: TObject); +begin + frmFjList_RZ:=nil; +end; + +procedure TfrmFjList_RZ.FileNameClick(Sender: TObject); +var + OpenDiaLog: TOpenDialog; + fFileName:string; + fFilePath:string; + maxNo:string; +// myStream: TADOBlobStream; + FJStream : TMemoryStream; + mfileSize:integer; + mCreationTime:TdateTime; + mWriteTime:TdateTime; +begin + + try + adoqueryCmd.Connection.BeginTrans; + OpenDiaLog := TOpenDialog.Create(Self); + if OpenDiaLog.Execute then + begin + fFilePath:=OpenDiaLog.FileName; + fFileName:=ExtractFileName(OpenDiaLog.FileName); + Panel2.Caption:='ϴݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + + if GetLSNo(ADOQueryCmd,maxNo,'FJ','TP_File',4,1)=False then + begin + adoqueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + //ȡļϢ + GetFileInfo(fFilePath,mfileSize,mCreationTime,mWriteTime); + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where TFID='+quotedstr(trim(maxNO))); + execsql; + end; + try + FJStream:=TMemoryStream.Create; + with adoqueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from TP_File '); + sql.Add('where TFID='+quotedstr(trim(maxNO))); + // sql.Add('where WBID='+quotedstr(trim(fkeyNO))); + // sql.Add('and TFType='+quotedstr(trim(fType))); + // sql.Add('and FileName='+quotedstr(trim(fFileName))); + open; + append; + fieldbyname('TFID').Value:=trim(maxNO); + fieldbyname('WBID').Value:=trim(fkeyNO); + fieldbyname('TFType').Value:=trim(fType); + fieldbyname('Filler').Value:=trim(DName); + fieldbyname('FileName').Value:=trim(fFileName); + fieldbyname('TFDate').Value:=mWriteTime; + FJStream.LoadFromFile(fFilePath); + CompressionStream(FJStream); + tblobfield(FieldByName('Filesother')).LoadFromStream(FJStream); + post; + end; + Panel2.Visible:=false; + initdata(); + finally + FJStream.Free; + end; + + end; + adoqueryCmd.Connection.CommitTrans; + except + adoqueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmFjList_RZ.FormCreate(Sender: TObject); +begin + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + //ConnectionString:=''; + Connected:=true; + end; + cxGrid1.Align:=alclient; + fstatus:=0; +end; + +procedure TfrmFjList_RZ.FormShow(Sender: TObject); +begin + IF fstatus=0 then Panel1.Visible:=true + else Panel1.Visible:=false; + initdata(); +end; + +procedure TfrmFjList_RZ.ListView1DblClick(Sender: TObject); +var + sFieldName:string; + fileName:string; +begin + if ListView1.Items.Count<1 THEN EXIT; + + if listView1.SelCount<1 then exit; + sFieldName:='D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName),nil); + + fileName:=ListView1.Selected.Caption; + + sFieldName:=sFieldName+'\'+trim(fileName); + + try + IdFTP1.Host := PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + ; + end; + + if IdFTP1.Connected then + begin + + Panel2.Caption:='ݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + try + IdFTP1.Get('FJ\'+ Trim(fileName), sFieldName,false, true); + except + Panel2.Visible:=false; + Application.MessageBox('ͻͼļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + end + else + begin + Panel2.Visible:=false; + Application.MessageBox('޷ļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + Panel2.Visible:=false; + if IdFTP1.Connected then IdFTP1.Quit; + ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + +end; + +procedure TfrmFjList_RZ.cxButton1Click(Sender: TObject); +var + fFileName:string; + fFilePath:string; +begin + // if listView1.SelCount<1 then exit; + + IF ADOQueryTmp.IsEmpty then exit; + + try + // fFileName:=ListView1.Selected.Caption; + // ADOQueryTmp.Locate('fileName',fFileName,[]); + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from TP_File '); + sql.Add('where TFID='+quotedstr(trim(ADOQueryTmp.fieldbyname('TFID').AsString))); + // sql.Add('and TFType='+quotedstr(trim(fType))); + // sql.Add('and FileName='+quotedstr(trim(fFileName))); + execsql; + end; + + initData(); + + except + end; + +end; + +procedure TfrmFjList_RZ.cxButton2Click(Sender: TObject); +var + SaveDialog: TSaveDialog; + fFileName:string; + fFilePath:string; + ff: TADOBlobStream; + FJStream : TMemoryStream; +begin + if adoqueryTmp.IsEmpty then exit; + + try + + fFileName:=adoqueryTmp.fieldbyname('FileName').AsString; + + SaveDialog := TSaveDialog.Create(Self); + + SaveDialog.FileName:=fFileName; + if SaveDialog.Execute then + begin + Panel2.Caption:='ڱݣԵ...'; + Panel2.Visible:=true; + application.ProcessMessages; + fFilePath:=SaveDialog.FileName; + + try + ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead); + + fjStream:= TMemoryStream.Create ; + ff.SaveToStream(fjStream); + UnCompressionStream(fjStream); + fjStream.SaveToFile(fFilePath); + // ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + finally + fjStream.free; + ff.Free; + end; + + + Panel2.Visible:=false; + // if IdFTP1.Connected then IdFTP1.Quit; + end; + except + Panel2.Visible:=false; + end; +end; + +procedure TfrmFjList_RZ.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if fId=10 then Action:=cafree + else + Action:=cahide; +end; + +procedure TfrmFjList_RZ.Panel2DblClick(Sender: TObject); +begin + Panel2.Visible:=false; +end; + +procedure TfrmFjList_RZ.Tv1DblClick(Sender: TObject); +var + sFieldName:string; + fileName:string; + ff: TADOBlobStream; + FJStream : TMemoryStream; +begin + + IF adoqueryTmp.IsEmpty then exit; + + sFieldName:='D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName),nil); + + fileName:=adoqueryTmp.fieldbyname('FileName').AsString; + + sFieldName:=sFieldName+'\'+trim(fileName); + + try + ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead); + + fjStream:= TMemoryStream.Create ; + ff.SaveToStream(fjStream); + UnCompressionStream(fjStream); + fjStream.SaveToFile(sFieldName); + ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); + finally + fjStream.free; + ff.Free; + end; + + + +end; + +end. diff --git a/盛纺贸易管理/U_FrmProduct_CX.dfm b/盛纺贸易管理/U_FrmProduct_CX.dfm new file mode 100644 index 0000000..3b707b0 --- /dev/null +++ b/盛纺贸易管理/U_FrmProduct_CX.dfm @@ -0,0 +1,539 @@ +object FrmProduct: TFrmProduct + Left = 191 + Top = 125 + Width = 1113 + Height = 608 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1097 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TINIT: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TINITClick + end + object Tglv: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TglvClick + end + object Tchoose: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + OnClick = TchooseClick + end + object TSel: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = TSelClick + end + object Tclose: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TcloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 1097 + Height = 473 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object v1Ssel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 46 + end + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 89 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#32534#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object v1OrdPerson2: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 69 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 68 + end + object v1DlyDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 66 + end + object v1CustomerNo: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'CustomerNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 68 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'ZSQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1orddefnote1: TcxGridDBColumn + Caption = #20462#25913#22791#27880 + DataBinding.FieldName = 'orddefnote1' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object v1MPRTTangJin: TcxGridDBColumn + Caption = #28907#37329 + DataBinding.FieldName = 'MPRTTangJin' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object v1MPRTKQiQiu: TcxGridDBColumn + Caption = #28907#23553 + DataBinding.FieldName = 'MPRTKQiQiu' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object v1MPRTChuanY: TcxGridDBColumn + Caption = #33337#26679 + DataBinding.FieldName = 'MPRTChuanY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 73 + end + object v1MPRTDingPoLv: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'MPRTDingPoLv' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 108 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1097 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label1: TLabel + Left = 37 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 193 + Top = 15 + Width = 39 + Height = 12 + Caption = #25351#31034#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 332 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 490 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 193 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 490 + Top = 39 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 332 + Top = 39 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 640 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 640 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 90 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 90 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 234 + Top = 11 + Width = 77 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 2 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 385 + Top = 11 + Width = 76 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 3 + OnChange = OrderNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 547 + Top = 11 + Width = 76 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = OrderNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 234 + Top = 35 + Width = 77 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 5 + OnChange = OrderNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 548 + Top = 35 + Width = 76 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = OrderNoChange + end + object OrdPerson2: TEdit + Tag = 2 + Left = 385 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 669 + Top = 35 + Width = 85 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 8 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 669 + Top = 11 + Width = 85 + Height = 20 + ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861 + TabOrder = 9 + OnChange = OrderNoChange + end + object Qsel: TCheckBox + Left = 788 + Top = 41 + Width = 97 + Height = 17 + Caption = #20840#36873 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = QselClick + end + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 240 + Top = 148 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 340 + Top = 148 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 388 + Top = 148 + end + object ADOQuerymain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 292 + Top = 148 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 444 + Top = 148 + end +end diff --git a/盛纺贸易管理/U_FrmProduct_CX.pas b/盛纺贸易管理/U_FrmProduct_CX.pas new file mode 100644 index 0000000..1e273e6 --- /dev/null +++ b/盛纺贸易管理/U_FrmProduct_CX.pas @@ -0,0 +1,272 @@ +unit U_FrmProduct_CX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, DBClient, + StdCtrls, ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, cxButtonEdit, cxSplitter, + cxCheckBox; + +type + TFrmProduct = class(TForm) + ToolBar2: TToolBar; + TINIT: TToolButton; + Tglv: TToolButton; + TSel: TToolButton; + Tclose: TToolButton; + ADOQueryTmp: TADOQuery; + cxGridPopupMenu1: TcxGridPopupMenu; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1OrdPerson2: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DlyDate: TcxGridDBColumn; + v1CustomerNo: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1orddefnote1: TcxGridDBColumn; + v1MPRTTangJin: TcxGridDBColumn; + v1MPRTKQiQiu: TcxGridDBColumn; + v1MPRTChuanY: TcxGridDBColumn; + v1MPRTDingPoLv: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label4: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNo: TEdit; + CustomerNoName: TEdit; + MPRTCodeName: TEdit; + ConNo: TEdit; + MPRTSpec: TEdit; + OrdPerson2: TEdit; + MPRTKZ: TEdit; + MPRTMF: TEdit; + Order_Main: TClientDataSet; + Tchoose: TToolButton; + ADOQuerymain: TADOQuery; + DataSource1: TDataSource; + v1PRTOrderQty: TcxGridDBColumn; + v1Ssel: TcxGridDBColumn; + Qsel: TCheckBox; + v1ConNo: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + procedure FormCreate(Sender: TObject); + procedure TcloseClick(Sender: TObject); + procedure TINITClick(Sender: TObject); + procedure TSelClick(Sender: TObject); + procedure TglvClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TchooseClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure QselClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + private + procedure initdata(); + { Private declarations } + public + { Public declarations } + end; + +var + FrmProduct: TFrmProduct; + +implementation + +uses U_OrderInPut,U_DataLink,U_fun; + +{$R *.dfm} + +procedure TFrmProduct.initdata(); +begin + try + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('select B.Mainid,B.OrderNo,B.OrdPerSon2,B.OrdDate,B.DlyDate,B.CustomerNoname,b.ConNo,B.MPRTCodeName, '); + sql.Add('B.MPRTSpec,B.MPRTKZ,B.MPRTMF,B.OrddefNote1,B.MPRTTangJin,B.MPRTKQIQIU,B.MPRTChuanY,B.MPRTDingPoLv,'); + sql.add('A.OrderUnit,ZSQty=sum(A.PRTOrderQty) '); + sql.add('from JYOrder_sub A'); + sql.add('inner join JYorder_main B on B.mainID=A.mainID'); + sql.add('where b.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); + sql.add('and b.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); + sql.add('group by B.Mainid,B.OrderNo,B.OrdPerSon2,B.OrdDate,B.DlyDate,B.CustomerNoname,b.ConNo,B.MPRTCodeName, '); + sql.Add('B.MPRTSpec,B.MPRTKZ,B.MPRTMF,B.OrddefNote1,B.MPRTTangJin,B.MPRTKQIQIU,B.MPRTChuanY,B.MPRTDingPoLv,'); + sql.add('A.OrderUnit'); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TFrmProduct.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TFrmProduct.TcloseClick(Sender: TObject); +begin + close; + WriteCxGrid(self.Caption+tv1.Name,Tv1); +end; + +procedure TFrmProduct.TINITClick(Sender: TObject); +begin + with order_Main do + begin + first; + while not Eof do + begin + edit; + fieldbyname('Ssel').AsBoolean:=False; + next; + end; + end; + initdata(); + Qsel.Checked:=False; +end; + +procedure TFrmProduct.TSelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + initdata(); + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TFrmProduct.TglvClick(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TFrmProduct.FormShow(Sender: TObject); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1); + BegDate.DateTime:=SGetServerDate10(ADOQueryTmp)-15; + EndDate.DateTime:=SGetServerDate10(ADOQueryTmp); + initdata(); +end; + +procedure TFrmProduct.TchooseClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + ModalResult:=1; +end; + +procedure TFrmProduct.OrderNoChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TFrmProduct.TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Tchoose.Click; +end; + +procedure TFrmProduct.QselClick(Sender: TObject); +begin + with order_Main do + begin + DisableControls; + first; + while not Eof do + begin + edit; + fieldbyname('Ssel').AsBoolean:=Qsel.Checked; + post; + next; + end; + first; + EnableControls; + end; +end; + +procedure TFrmProduct.FormClose(Sender: TObject; var Action: TCloseAction); +begin + action:=cafree; +end; + +procedure TFrmProduct.FormDestroy(Sender: TObject); +begin + FrmProduct:=nil; +end; + +procedure TFrmProduct.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Tsel.Click; +end; + +procedure TFrmProduct.OrderNoKeyPress(Sender: TObject; var Key: Char); +begin + + if Key=#13 then + begin + IF trim(OrderNo.Text)='' then exit; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select B.*,A.*,B.orderNo '); + sql.add('from JYOrder_sub A'); + sql.add('inner join jyorder_main B on B.mainID=A.mainID '); + sql.Add('where B.OrderNo like '+quotedstr('%'+trim(OrderNo.Text)+'%')); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + end; +end; + +end. diff --git a/盛纺贸易管理/U_GYSList.dfm b/盛纺贸易管理/U_GYSList.dfm new file mode 100644 index 0000000..c6fc7ca --- /dev/null +++ b/盛纺贸易管理/U_GYSList.dfm @@ -0,0 +1,347 @@ +object frmGYSList: TfrmGYSList + Left = 180 + Top = 50 + Width = 1066 + Height = 618 + Caption = #20379#24212#21830#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1050 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1050 + Height = 39 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 203 + Top = 13 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#21517#31216 + end + object Label1: TLabel + Left = 22 + Top = 13 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#32534#21495 + end + object Label2: TLabel + Left = 395 + Top = 13 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object Label4: TLabel + Left = 534 + Top = 13 + Width = 24 + Height = 12 + Caption = #22320#21306 + end + object ZdyName: TEdit + Tag = 2 + Left = 267 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = ZdyNameChange + end + object ZdyCode: TEdit + Tag = 2 + Left = 83 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = ZdyNameChange + end + object DEFstr5: TComboBox + Tag = 1 + Left = 424 + Top = 8 + Width = 81 + Height = 20 + ItemHeight = 12 + TabOrder = 2 + OnChange = ZdyNameChange + Items.Strings = ( + '' + #22383#24067#21378 + #32433#32447#21378 + #21360#26579#21378 + #21152#24037#21378 + #37197#26009#21378) + end + object DEFStr7: TEdit + Tag = 2 + Left = 564 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 3 + OnChange = ZdyNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 70 + Width = 1050 + Height = 510 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + OnDblClick = Tv2DblClick + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + DataController.DataSource = DS_HZ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.handBlack + object v2Column2: TcxGridDBColumn + Caption = #20379#24212#21830#32534#21495 + DataBinding.FieldName = 'ZdyCode' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v2Column6: TcxGridDBColumn + Caption = #20379#24212#21830#21517#31216 + DataBinding.FieldName = 'ZdyName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 124 + end + object v2Column14: TcxGridDBColumn + Caption = #32479#35745#21333#20301#21517#31216 + DataBinding.FieldName = 'ZDYNameTj' + HeaderAlignmentHorz = taCenter + Width = 147 + end + object v2Column8: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'DEFstr5' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v2Column10: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'DEFStr6' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column11: TcxGridDBColumn + Caption = #22320#21306 + DataBinding.FieldName = 'DEFStr7' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column3: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'DEFstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v2Column4: TcxGridDBColumn + Caption = #25163#26426 + DataBinding.FieldName = 'DEFstr2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'DEFstr3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2Column7: TcxGridDBColumn + Caption = #20844#21496#22320#22336 + DataBinding.FieldName = 'DEFNote1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v2Column9: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'DEFstr4' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 114 + end + object v2Column12: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column13: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/盛纺贸易管理/U_GYSList.pas b/盛纺贸易管理/U_GYSList.pas new file mode 100644 index 0000000..7a9986c --- /dev/null +++ b/盛纺贸易管理/U_GYSList.pas @@ -0,0 +1,159 @@ +unit U_GYSList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit; + +type + TfrmGYSList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + ZdyName: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + v2Column6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + Label1: TLabel; + ZdyCode: TEdit; + v2Column8: TcxGridDBColumn; + Label2: TLabel; + DEFstr5: TComboBox; + v2Column10: TcxGridDBColumn; + v2Column11: TcxGridDBColumn; + v2Column12: TcxGridDBColumn; + v2Column13: TcxGridDBColumn; + DEFStr7: TEdit; + Label4: TLabel; + v2Column14: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ZdyNameChange(Sender: TObject); + procedure Tv2DblClick(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + + public + fDEFstr5:string; + end; + +var + frmGYSList: TfrmGYSList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + + + +procedure TfrmGYSList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from KH_Zdy_Attachment where Type=''GYS'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; + ToolButton2.Click; +end; + + +procedure TfrmGYSList.FormDestroy(Sender: TObject); +begin + frmGYSList:=nil; +end; + +procedure TfrmGYSList.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmGYSList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('Ӧ',Tv2,'ͻԶ'); + Close; +end; +procedure TfrmGYSList.FormShow(Sender: TObject); +begin + ReadCxGrid('Ӧ',Tv2,'ͻԶ'); + {IF trim(fDEFstr5)<>'' then + begin + DEFstr5.Text:=trim(fDEFstr5); + DEFstr5.Enabled:=false; + end; } + InitGrid(); +end; + +procedure TfrmGYSList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSList.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmGYSList.ZdyNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmGYSList.Tv2DblClick(Sender: TObject); +begin + ModalResult:=1; +end; + +end. + + diff --git a/盛纺贸易管理/U_GYSOrderCX.dfm b/盛纺贸易管理/U_GYSOrderCX.dfm new file mode 100644 index 0000000..1009bc6 --- /dev/null +++ b/盛纺贸易管理/U_GYSOrderCX.dfm @@ -0,0 +1,512 @@ +object frmGYSOrderCX: TfrmGYSOrderCX + Left = 190 + Top = 136 + Width = 1399 + Height = 657 + Caption = #21152#24037#21378#25439#32791#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1383 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 119 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object JGCRK: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21152#24037#21378#20837#24211#26597#35810 + ImageIndex = 18 + OnClick = JGCRKClick + end + object ToolButton1: TToolButton + Left = 249 + Top = 0 + AutoSize = True + Caption = #21152#24037#21378#20986#24211#26597#35810 + ImageIndex = 4 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 372 + Top = 0 + AutoSize = True + Caption = #23436#25104#20837#24211#26597#35810 + ImageIndex = 58 + OnClick = ToolButton2Click + end + object TBExport: TToolButton + Left = 483 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 546 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1383 + Height = 73 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 42 + Top = 17 + Width = 56 + Height = 13 + BiDiMode = bdLeftToRight + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentBiDiMode = False + ParentFont = False + end + object Label3: TLabel + Left = 229 + Top = 17 + Width = 56 + Height = 13 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 403 + Top = 17 + Width = 56 + Height = 13 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 403 + Top = 43 + Width = 60 + Height = 26 + Caption = #35268' '#26684#13' ' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 229 + Top = 43 + Width = 58 + Height = 13 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 581 + Top = 17 + Width = 42 + Height = 13 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 100 + Top = 13 + Width = 92 + Height = 21 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 100 + Top = 39 + Width = 93 + Height = 21 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNO: TEdit + Tag = 2 + Left = 287 + Top = 13 + Width = 88 + Height = 21 + TabOrder = 2 + OnChange = OrderNOChange + OnKeyPress = OrderNOKeyPress + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 460 + Top = 13 + Width = 90 + Height = 21 + TabOrder = 3 + OnChange = OrderNOChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 460 + Top = 39 + Width = 90 + Height = 21 + TabOrder = 4 + OnChange = OrderNOChange + end + object ConNoHZ: TEdit + Tag = 2 + Left = 287 + Top = 39 + Width = 88 + Height = 21 + TabOrder = 5 + OnChange = OrderNOChange + end + object ToFactoryName: TEdit + Tag = 2 + Left = 626 + Top = 13 + Width = 90 + Height = 21 + TabOrder = 6 + OnChange = OrderNOChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 105 + Width = 1383 + Height = 512 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1SumQty + end + item + Kind = skCount + end + item + Kind = skSum + Column = v1SumPS + end + item + Kind = skSum + Column = v1JGCKPS + end + item + Kind = skSum + Column = v1JGCKQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.FonePurple + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1ConNOHZ: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNOHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1ToFactoryName: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'ToFactoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1SumPS: TcxGridDBColumn + Caption = #20837#24211#21305#25968 + DataBinding.FieldName = 'SumPS' + HeaderAlignmentHorz = taCenter + Hidden = True + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1SumQty: TcxGridDBColumn + Caption = #20837#24211#25968#37327 + DataBinding.FieldName = 'SumQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1JGCKPS: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'JGCKPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1JGCKQty: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'JGCKQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1KCPS: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KCPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1KCQty: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1JGWCPS: TcxGridDBColumn + Caption = #23436#25104#21305#25968 + DataBinding.FieldName = 'JGWCPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1JGWCQty: TcxGridDBColumn + Caption = #23436#25104#25968#37327 + DataBinding.FieldName = 'JGWCQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1SHQty: TcxGridDBColumn + Caption = #25439#32791#25968#37327 + DataBinding.FieldName = 'SHQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1SHLv: TcxGridDBColumn + Caption = #25439#32791'%' + DataBinding.FieldName = 'SHLv' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1128 + Top = 5 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 448 + Top = 196 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + Top = 5 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 308 + Top = 196 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 492 + Top = 200 + end +end diff --git a/盛纺贸易管理/U_GYSOrderCX.pas b/盛纺贸易管理/U_GYSOrderCX.pas new file mode 100644 index 0000000..00fef19 --- /dev/null +++ b/盛纺贸易管理/U_GYSOrderCX.pas @@ -0,0 +1,304 @@ +unit U_GYSOrderCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxPC; + +type + TfrmGYSOrderCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNO: TEdit; + Label5: TLabel; + MPRTCodeName: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + MPRTSpec: TEdit; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + CDS_PRT: TClientDataSet; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1ToFactoryName: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1SumPS: TcxGridDBColumn; + v1SumQty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1OrdDate: TcxGridDBColumn; + v1JGCKQty: TcxGridDBColumn; + v1JGCKPS: TcxGridDBColumn; + Label2: TLabel; + ConNoHZ: TEdit; + v1ConNOHZ: TcxGridDBColumn; + Label6: TLabel; + ToFactoryName: TEdit; + v1JGWCPS: TcxGridDBColumn; + v1JGWCQty: TcxGridDBColumn; + v1KCPS: TcxGridDBColumn; + v1KCQty: TcxGridDBColumn; + v1SHQty: TcxGridDBColumn; + v1SHLv: TcxGridDBColumn; + JGCRK: TToolButton; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNOChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxPageControl1Change(Sender: TObject); + procedure OrderNOKeyPress(Sender: TObject; var Key: Char); + procedure JGCRKClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + private + FInt,PFInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmGYSOrderCX: TfrmGYSOrderCX; + +implementation +uses + U_DataLink,U_ClothContractInPutSX,U_Fun,U_ProductOrderList,U_ZDYHelp,U_ClothContractInPutSXMX + ,U_ClothContractInPutHZ,U_ClothContractInPutPB,U_SXCKNewList_CX,U_SXCKOutList_CX,U_DJBRKList_CX; + +{$R *.dfm} + +procedure TfrmGYSOrderCX.FormDestroy(Sender: TObject); +begin + frmGYSOrderCX:=nil; +end; + +procedure TfrmGYSOrderCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmGYSOrderCX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('Ӧ̻',Tv1,'ָʾ'); +end; + +procedure TfrmGYSOrderCX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('exec P_Get_GYSSH :begdate,:enddate,:FOrderNO'); + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Parameters.ParamByName('FOrderNo').Value:=Trim(Self.OrderNO.Text); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally; + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmGYSOrderCX.InitForm(); +begin + ReadCxGrid('Ӧ̻',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmGYSOrderCX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmGYSOrderCX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmGYSOrderCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ͬб',cxGrid1); +end; + +procedure TfrmGYSOrderCX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSOrderCX.OrderNOChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmGYSOrderCX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmGYSOrderCX.cxPageControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGYSOrderCX.OrderNOKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('exec P_Get_GYSSH :begdate,:enddate,:FOrderNO'); + Parameters.ParamByName('begdate').Value:='2010-01-01'; + Parameters.ParamByName('enddate').Value:='2010-01-01'; + Parameters.ParamByName('FOrderNo').Value:=Trim(Self.OrderNO.Text); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally; + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmGYSOrderCX.JGCRKClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + frmSXCKNewListCX:=TfrmSXCKNewListCX.create(self); + with frmSXCKNewListCX do + begin + FToFactoryName:=Trim(Order_Main.fieldbyname('ToFactoryName').AsString); + FOrderNo:=Trim(Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + free; + end; +end; + +procedure TfrmGYSOrderCX.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + frmSXCKOutListCX:=TfrmSXCKOutListCX.create(self); + with frmSXCKOutListCX do + begin + FToFactoryName:=Trim(Order_Main.fieldbyname('ToFactoryName').AsString); + FOrderNo:=Trim(Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + free; + end; +end; + +procedure TfrmGYSOrderCX.ToolButton2Click(Sender: TObject); +begin + frmDJBRKList_CX:=TfrmDJBRKList_CX.create(self); + with frmDJBRKList_CX do + begin + FFactoryName:=trim(Order_Main.fieldbyname('ToFactoryName').AsString); + FOrderNo:=Trim(Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_GetDllForm.pas b/盛纺贸易管理/U_GetDllForm.pas new file mode 100644 index 0000000..b05262b --- /dev/null +++ b/盛纺贸易管理/U_GetDllForm.pas @@ -0,0 +1,683 @@ + +unit U_GetDllForm; + + +interface +uses + Windows, Messages, forms, OleCtnrs, DateUtils, SysUtils, ADODB,IniFiles, dxcore,activeX; + +function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;export;stdcall; +function ConnData():Boolean; +Function GetsysParam(muserId:pchar;fparam1:pchar):Boolean; + +implementation +uses + U_DataLink,U_Fun,U_iniParam,U_MJManageNewFDNew,U_ProductOrderList,U_ProductOrderAnPai,U_SetBanZu + ,U_BangAdd,U_MJEdit,U_JYOrderCDOne,U_JYOrderCDMore,U_CpCkSaoMNewSel,U_CKProductBCPInList,U_ProductOrderLBNameSet11 + ,U_CKProductBCPOutList,U_BanCpHCSaoM,U_CKProductBCPHCList,U_CKProductBCPKCList,U_FZCMain, + U_CKProductBCPKCHZList,U_CpRkSaoMNew,U_ClothContractList,U_ClothContractListDH,U_ClothContractListLL, + U_ClothContractKCList,U_ContractList,U_ProductOrderNewList,U_ClothContractListWJG,U_ClothPDInfoList, + U_OrderJDList,U_ProductOrderAnPaiGQX,U_ClothHCList,U_ContractListNX,U_ClothContractListSX,U_ClothContractListDHSX + ,U_ClothContractListLLSX,U_ClothContractListHZ,U_ProductOrderLBNameSet,U_ClothContractListDHSXQJG,U_ProductOrderNewList_JD, + U_ProductOrderNewList_CY,U_HCList,U_OrderInPut_HYWT,U_ModulePromptList,U_ProductOrderNewList_FB,U_FanYangList,U_FanYangListHZ, + U_CKProductRKHZList,U_CKProductCKHZList,U_CKJYList,U_ProductOrderLBNameSetFZ,U_Contract_Main,U_KHDYList,U_HuiruhuikuanCX,U_HuiruhGPIjiluCX, + U_JYOrderCDOne_HZCX,U_ContractList_NX,U_XHList,U_XHList_ceshi1,U_GYSOrderCX,U_JYOrderCDOne_GDYJCX,U_KHTopList,U_CpRkSaoMNewCS; + + ///////////////////////////////////////////////////////////////// + // ˵:ȡDllеô // + // ˵App>>Ӧó // + // FormH>>ôھ // + // FormID>>ں; // + // Language>>; // + // WinStyle>>ͣ // +///////////////////////////////////////////////////////////////// +function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar; + DataBaseStr:PChar):hwnd; + +var + mnewHandle: hwnd; + mstyle: TFormStyle; // 0:Ӵ; 1ͨ + mstate: TWindowState; + mborderstyle: TFormBorderStyle; +begin + mNewHandle:=0; + DName:=GName; + DCode:=GCode; + DdataBase:=DataBase; + DTitCaption:=Title; + DParameters1:=Parameters1; + DParameters2:=Parameters2; + DParameters3:=Parameters3; + DParameters4:=Parameters4; + DParameters5:=Parameters5; + DParameters6:=Parameters6; + DParameters7:=Parameters7; + DParameters8:=Parameters8; + DParameters9:=Parameters9; + DParameters10:=Parameters10; + + + MainApplication:=App; + DCurHandle:=FormH; + IsDelphiLanguage:= Language; + + Application:=TApplication(App); + DCurHandle:=0; + + + //ֵַ + SetLength(server, 255); + SetLength(dtbase, 255); + SetLength(user, 255); + SetLength(pswd, 255); + + server:='101.132.146.12,7781'; + //server:='.'; + dtbase:='shengfangData'; + user:='shengfangsa'; + pswd:='rightsoft@4400'; + DConString := 'Provider=SQLOLEDB.1;Password='+pswd+';Persist Security Info=True;User ID=' + +user+';Initial Catalog='+dtbase+';Data Source='+server; + + IF trim(DataBaseStr)<>''then + DConString := DataBaseStr; + +// DParameters1:='Ȩ'; + //DCode:='002'; + //DName:=''; +// DParameters2:=''; + //DParameters2:='Ʒ'; + //database:='Ȩ'; + if not ConnData() then + begin + result:=0; + exit; + end; + if IsINIFile() then + ReadINIFile() + else + WriteINIFile ; + GetsysParam('',''); + // 崰 ״̬ + if WinStyle=0 then + begin + mstyle := fsMDIChild ; + mstate := wsMaximized ; + mborderstyle := bsSizeable; + end + else + begin + mstyle := fsNormal ; + mstate := wsNormal ; + mborderstyle := bsSizeable; + end; + //////////////////// + //ģ鴰 + case FormId of + 0: //ͬ() + begin + if frmContractList=nil then + begin + frmContractList:= TfrmContractList.Create(application.MainForm); + with frmContractList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmContractList.BringToFront; + // + mNewHandle:=frmContractList.Handle; + + end ; + 1: //ͬ() + begin + if frmContractListNX=nil then + begin + frmContractListNX:= TfrmContractListNX.Create(application.MainForm); + with frmContractListNX do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmContractListNX.BringToFront; + // + mNewHandle:=frmContractListNX.Handle; + end ; + + 201: //ָʾ + begin + if frmProductOrderNewList=nil then + begin + frmProductOrderNewList:= TfrmProductOrderNewList.Create(application.MainForm); + with frmProductOrderNewList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmProductOrderNewList.BringToFront; + // + mNewHandle:=frmProductOrderNewList.Handle; + + end; + 202: //ɫ/SO + begin + if frmKHDYList=nil then + begin + frmKHDYList:= TfrmKHDYList.Create(application.MainForm); + with frmKHDYList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmKHDYList.BringToFront; + // + mNewHandle:=frmKHDYList.Handle; + + end; + 11: //ǩƤϵ + begin + if frmProductOrderLBNameSet=nil then + begin + frmProductOrderLBNameSet:= TfrmProductOrderLBNameSet.Create(application.MainForm); + with frmProductOrderLBNameSet do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmProductOrderLBNameSet.BringToFront; + // + mNewHandle:=frmProductOrderLBNameSet.Handle; + + end ; + 2: // Ʒ + begin + if frmMJManageNewFDNewSF=nil then + begin + frmMJManageNewFDNewSF:= TfrmMJManageNewFDNewSF.Create(application.MainForm); + with frmMJManageNewFDNewSF do + begin + fmanage:=Trim(database); + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmMJManageNewFDNewSF.BringToFront; + // + mNewHandle:=frmMJManageNewFDNewSF.Handle; + end ; + 12: //ƥ + begin + if frmMJEdit=nil then + begin + frmMJEdit:= TfrmMJEdit.Create(application.MainForm); + with frmMJEdit do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmMJEdit.BringToFront; + // + mNewHandle:=frmMJEdit.Handle; + + end ; + 19: //鱨 + begin + if frmJYOrderCDOne=nil then + begin + frmJYOrderCDOne:= TfrmJYOrderCDOne.Create(application.MainForm); + with frmJYOrderCDOne do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmJYOrderCDOne.BringToFront; + // + mNewHandle:=frmJYOrderCDOne.Handle; + + end ; + + 190: //ܲѯ + begin + if frmJYOrderCDOne_HZCX=nil then + begin + frmJYOrderCDOne_HZCX:= TfrmJYOrderCDOne_HZCX.Create(application.MainForm); + with frmJYOrderCDOne_HZCX do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmJYOrderCDOne_HZCX.BringToFront; + // + mNewHandle:=frmJYOrderCDOne_HZCX.Handle; + + end ; + 13: //ɨ + begin + if frmCpRkSaoMNew=nil then + begin + frmCpRkSaoMNew:= TfrmCpRkSaoMNew.Create(application.MainForm); + with frmCpRkSaoMNew do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCpRkSaoMNew.BringToFront; + // + mNewHandle:=frmCpRkSaoMNew.Handle; + + end ; + 14: //ɨ + begin + if frmCpCkSaoMNewSel=nil then + begin + frmCpCkSaoMNewSel:= TfrmCpCkSaoMNewSel.Create(application.MainForm); + with frmCpCkSaoMNewSel do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCpCkSaoMNewSel.BringToFront; + // + mNewHandle:=frmCpCkSaoMNewSel.Handle; + + end ; + 15: //Ʒб + begin + if frmCKProductBCPInList=nil then + begin + frmCKProductBCPInList:= TfrmCKProductBCPInList.Create(application.MainForm); + with frmCKProductBCPInList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKProductBCPInList.BringToFront; + // + mNewHandle:=frmCKProductBCPInList.Handle; + + end ; + 16: //Ʒб + begin + if frmCKProductBCPOutList=nil then + begin + frmCKProductBCPOutList:= TfrmCKProductBCPOutList.Create(application.MainForm); + with frmCKProductBCPOutList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKProductBCPOutList.BringToFront; + // + mNewHandle:=frmCKProductBCPOutList.Handle; + + end ; + 17: //б + begin + if frmCKProductBCPKCList=nil then + begin + frmCKProductBCPKCList:= TfrmCKProductBCPKCList.Create(application.MainForm); + with frmCKProductBCPKCList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKProductBCPKCList.BringToFront; + // + mNewHandle:=frmCKProductBCPKCList.Handle; + + end ; + 30: // + begin + if frmCKProductRKHZList=nil then + begin + frmCKProductRKHZList:= TfrmCKProductRKHZList.Create(application.MainForm); + with frmCKProductRKHZList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKProductRKHZList.BringToFront; + // + mNewHandle:=frmCKProductRKHZList.Handle; + end ; + 31: // + begin + if frmCKProductCKHZList=nil then + begin + frmCKProductCKHZList:= TfrmCKProductCKHZList.Create(application.MainForm); + with frmCKProductCKHZList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKProductCKHZList.BringToFront; + // + mNewHandle:=frmCKProductCKHZList.Handle; + end ; + 32: // + begin + if frmCKJYList=nil then + begin + frmCKJYList:= TfrmCKJYList.Create(application.MainForm); + with frmCKJYList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKJYList.BringToFront; + // + mNewHandle:=frmCKJYList.Handle; + end; + + 18: //б + begin + if frmCKProductBCPKCHZList=nil then + begin + frmCKProductBCPKCHZList:= TfrmCKProductBCPKCHZList.Create(application.MainForm); + with frmCKProductBCPKCHZList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCKProductBCPKCHZList.BringToFront; + // + mNewHandle:=frmCKProductBCPKCHZList.Handle; + + end ; + 23: //ָʾȲѯ + begin + if frmProductOrderNewList_JD=nil then + begin + frmProductOrderNewList_JD:= TfrmProductOrderNewList_JD.Create(application.MainForm); + with frmProductOrderNewList_JD do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmProductOrderNewList_JD.BringToFront; + // + mNewHandle:=frmProductOrderNewList_JD.Handle; + + end ; + 204: //ӦIJѯ + begin + if frmGYSOrderCX=nil then + begin + frmGYSOrderCX:= TfrmGYSOrderCX.Create(application.MainForm); + with frmGYSOrderCX do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmGYSOrderCX.BringToFront; + // + mNewHandle:=frmGYSOrderCX.Handle; + + end; + 901: //¼ѯ + begin + if frmHuiruhuikuanCX=nil then + begin + frmHuiruhuikuanCX:= TfrmHuiruhuikuanCX.Create(application.MainForm); + with frmHuiruhuikuanCX do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmHuiruhuikuanCX.BringToFront; + // + mNewHandle:=frmHuiruhuikuanCX.Handle; + + end; + 902: //GPI¼ѯ + begin + if frmHuiruhGPIjiluCX=nil then + begin + frmHuiruhGPIjiluCX:= TfrmHuiruhGPIjiluCX.Create(application.MainForm); + with frmHuiruhGPIjiluCX do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmHuiruhGPIjiluCX.BringToFront; + // + mNewHandle:=frmHuiruhGPIjiluCX.Handle; + + end; + 191: //ҵѯ + begin + if frmJYOrderCDOne_GDYJCX=nil then + begin + frmJYOrderCDOne_GDYJCX:= TfrmJYOrderCDOne_GDYJCX.Create(application.MainForm); + with frmJYOrderCDOne_GDYJCX do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmJYOrderCDOne_GDYJCX.BringToFront; + // + mNewHandle:=frmJYOrderCDOne_GDYJCX.Handle; + + end ; + + 33: //а + begin + if frmKHTopList=nil then + begin + frmKHTopList:= TfrmKHTopList.Create(application.MainForm); + with frmKHTopList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmKHTopList.BringToFront; + // + mNewHandle:=frmKHTopList.Handle; + + end ; + + 61: //ʾ + begin + if frmModulePromptList=nil then + begin + frmModulePromptList:= TfrmModulePromptList.Create(application.MainForm); + with frmModulePromptList do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmModulePromptList.BringToFront; + // + mNewHandle:=frmModulePromptList.Handle; + end ; + end ; // end case + + Result:= mnewHandle; +// NewDllApp:=Application ; +end; +Function GetsysParam(muserId:pchar;fparam1:pchar):Boolean; +begin + result:=true; + ////////////////////////////// + shortDateFormat:='yyyy-MM-dd'; + // + with DataLink_TradeManage.AdoDataLink do + begin + close; + sql.Clear; + sql.Add('select getDate()as dt'); + open; + DServerDate:=fieldByName('dt').AsDatetime; + end; + result:=true; +end; +//=========================================================== + //ݿӳ +//=========================================================== +function ConnData():Boolean; +begin + if not Assigned(DataLink_TradeManage) then + DataLink_TradeManage:=TDataLink_TradeManage.Create(Application); + Try + with DataLink_TradeManage.ADOLink do + begin + //if not Connected then + begin + Connected:=false; + ConnectionString:=DConString; + LoginPrompt:=false; + Connected:=true; + end; + end; + Result:=true; + Except + Result:=false; + application.MessageBox('ݿʧܣ','',mb_Ok+ MB_ICONERROR); + end; + +end; +initialization + CoInitialize(nil); + dxUnitsLoader.Initialize; + +finalization + + DataLink_TradeManage.Free; + application:=NewDllApp; + dxUnitsLoader.Finalize; +end. + diff --git a/盛纺贸易管理/U_GetPGJBInList.dfm b/盛纺贸易管理/U_GetPGJBInList.dfm new file mode 100644 index 0000000..b91fa9a --- /dev/null +++ b/盛纺贸易管理/U_GetPGJBInList.dfm @@ -0,0 +1,400 @@ +object frmGetPGJBInList: TfrmGetPGJBInList + Left = 67 + Top = 20 + Width = 765 + Height = 623 + Caption = #24211#23384#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 757 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton1: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 41 + OnClick = ToolButton1Click + end + object TBFind: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 757 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 40 + Top = 15 + Width = 48 + Height = 12 + Caption = #29289#26009#21517#31216 + end + object Label4: TLabel + Left = 216 + Top = 15 + Width = 36 + Height = 12 + Caption = #35268' '#26684 + end + object Label7: TLabel + Left = 376 + Top = 15 + Width = 48 + Height = 12 + Caption = #20379' '#24212' '#21830 + end + object YCLName: TEdit + Tag = 2 + Left = 89 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = YCLNameChange + end + object YCLSpec: TEdit + Tag = 2 + Left = 254 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 1 + OnChange = YCLNameChange + end + object GYSName: TEdit + Tag = 2 + Left = 425 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = YCLNameChange + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 313 + Width = 757 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid3 + end + object cxGrid1: TcxGrid + Left = 24 + Top = 80 + Width = 697 + Height = 217 + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'DefStr1' + end + item + Format = 'DefStr2' + Column = v1ShortName + end + item + Format = 'RollUnit' + Column = v1UnitName + end + item + Format = 'YCLCode' + Column = v1P_ChnName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Quantity + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object v1P_ChnName: TcxGridDBColumn + Tag = 2 + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 98 + end + object v1Column2: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1ShortName: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1Quantity: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v1UnitName: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 73 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 321 + Width = 757 + Height = 265 + Align = alBottom + TabOrder = 4 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'DefStr1' + end + item + Format = 'DefStr2' + Column = cxGridDBColumn15 + end + item + Format = 'RollUnit' + Column = cxGridDBColumn17 + end + item + Format = 'YCLCode' + Column = cxGridDBColumn13 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn16 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 190 + end + object cxGridDBColumn14: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Width = 171 + end + object cxGridDBColumn15: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 144 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Width = 101 + end + object cxGridDBColumn17: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 68 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 256 + Top = 232 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 360 + Top = 232 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 400 + Top = 232 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 432 + Top = 232 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 288 + Top = 232 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 680 + Top = 512 + end + object ADOQuery2: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 712 + Top = 512 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 232 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 744 + Top = 512 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 512 + Top = 584 + end +end diff --git a/盛纺贸易管理/U_GetPGJBInList.pas b/盛纺贸易管理/U_GetPGJBInList.pas new file mode 100644 index 0000000..82f8843 --- /dev/null +++ b/盛纺贸易管理/U_GetPGJBInList.pas @@ -0,0 +1,268 @@ +unit U_GetPGJBInList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, cxCalendar, cxButtonEdit, cxDropDownEdit, + DBClient, cxSplitter; + +type + TfrmGetPGJBInList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Panel1: TPanel; + ToolButton1: TToolButton; + cxSplitter1: TcxSplitter; + DataSource2: TDataSource; + ADOQuery2: TADOQuery; + ClientDataSet1: TClientDataSet; + ClientDataSet2: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + Label7: TLabel; + YCLName: TEdit; + YCLSpec: TEdit; + GYSName: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_ChnName: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1ShortName: TcxGridDBColumn; + v1Quantity: TcxGridDBColumn; + v1UnitName: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGrid3: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure PlanNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure P_ChnNameChange(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure YCLNameChange(Sender: TObject); + private + procedure InitGrid(); + procedure InitGrid10(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmGetPGJBInList: TfrmGetPGJBInList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmGetPGJBInList.FormDestroy(Sender: TObject); +begin + frmGetPGJBInList:=nil; +end; + +procedure TfrmGetPGJBInList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmGetPGJBInList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmGetPGJBInList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('б',Tv1,'ԭϲֿ'); + WriteCxGrid('бѡ',Tv2,'ԭϲֿ'); +end; + +procedure TfrmGetPGJBInList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select YCLName=(select ZdyName from KH_Zdy KK where KK.ZdyNo=A.YCLCode), '); + sql.Add(' A.*,GYSName=(select ZdyName from KH_ZDY B where A.GYS=B.ZdyNo) '); + sql.Add(' from CK_YCL_KC A where A.KCQty>0'); + sql.Add(' and A.CKName=''ԭϲֿ'' '); + Open; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + end; + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmGetPGJBInList.InitGrid10(); +begin + try + ADOQuery2.DisableControls; + with ADOQuery2 do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select YCLName=(select ZdyName from KH_Zdy KK where KK.ZdyNo=A.YCLCode), '); + sql.Add(' A.*,GYSName=(select ZdyName from KH_ZDY B where A.GYS=B.ZdyNo) '); + sql.Add('from CK_YCL_KC A where 1<>1'); + Open; + SCreateCDS20(ADOQuery2,ClientDataSet2); + SInitCDSData20(ADOQuery2,ClientDataSet2); + end; + finally + ADOQuery2.EnableControls; + end; +end; + +procedure TfrmGetPGJBInList.InitForm(); +begin + ReadCxGrid('б',Tv1,'ԭϲֿ'); + ReadCxGrid('бѡ',Tv2,'ԭϲֿ'); + InitGrid(); + InitGrid10(); +end; + +procedure TfrmGetPGJBInList.TBFindClick(Sender: TObject); +begin + if not ADOQueryMain.Active then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); +end; + +function TfrmGetPGJBInList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmGetPGJBInList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmGetPGJBInList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGetPGJBInList.PlanNoChange(Sender: TObject); +begin + if ADOQueryMain.Active then + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); +end; + +procedure TfrmGetPGJBInList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmGetPGJBInList.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + ModalResult:=-1 + else + ModalResult:=1; +end; + +procedure TfrmGetPGJBInList.P_ChnNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmGetPGJBInList.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + i:Integer; +begin + if ClientDataSet1.IsEmpty then exit; + ClientDataSet2.Append; + for i:=0 to ClientDataSet2.FieldCount-1 do + begin + ClientDataSet2.Fields[i].Value:=ClientDataSet1.Fields[i].Value; + end; + ClientDataSet2.Post; + ClientDataSet1.Delete; +end; + +procedure TfrmGetPGJBInList.TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + i:Integer; +begin + if ClientDataSet2.IsEmpty then exit; + ClientDataSet1.Append; + for i:=0 to ClientDataSet1.FieldCount-1 do + begin + ClientDataSet1.Fields[i].Value:=ClientDataSet2.Fields[i].Value; + end; + ClientDataSet1.Post; + ClientDataSet2.Delete; +end; + +procedure TfrmGetPGJBInList.YCLNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_GetPGJBOneTwoInList.dfm b/盛纺贸易管理/U_GetPGJBOneTwoInList.dfm new file mode 100644 index 0000000..c62958a --- /dev/null +++ b/盛纺贸易管理/U_GetPGJBOneTwoInList.dfm @@ -0,0 +1,412 @@ +object frmGetPGJBOneTwoInList: TfrmGetPGJBOneTwoInList + Left = 238 + Top = 101 + Width = 765 + Height = 623 + Caption = #24211#23384#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 757 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton1: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 41 + OnClick = ToolButton1Click + end + object TBFind: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 757 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 40 + Top = 15 + Width = 48 + Height = 12 + Caption = #29289#26009#21517#31216 + end + object Label4: TLabel + Left = 216 + Top = 15 + Width = 36 + Height = 12 + Caption = #35268' '#26684 + end + object Label7: TLabel + Left = 376 + Top = 15 + Width = 48 + Height = 12 + Caption = #20379' '#24212' '#21830 + end + object YCLName: TEdit + Tag = 2 + Left = 89 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = YCLNameChange + end + object YCLSpec: TEdit + Tag = 2 + Left = 254 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 1 + OnChange = YCLNameChange + end + object GYSName: TEdit + Tag = 2 + Left = 425 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = YCLNameChange + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 313 + Width = 757 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid3 + end + object cxGrid1: TcxGrid + Left = 8 + Top = 80 + Width = 713 + Height = 217 + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'DefStr1' + end + item + Format = 'DefStr2' + Column = v1ShortName + end + item + Format = 'RollUnit' + Column = v1UnitName + end + item + Format = 'YCLCode' + Column = v1P_ChnName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Quantity + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object v1Column1: TcxGridDBColumn + Caption = #20179#24211 + DataBinding.FieldName = 'CKName' + HeaderAlignmentHorz = taCenter + Width = 82 + end + object v1P_ChnName: TcxGridDBColumn + Tag = 2 + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 112 + end + object v1Column2: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1ShortName: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1Quantity: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v1UnitName: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 73 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 321 + Width = 757 + Height = 265 + Align = alBottom + TabOrder = 4 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'DefStr1' + end + item + Format = 'DefStr2' + Column = cxGridDBColumn15 + end + item + Format = 'RollUnit' + Column = cxGridDBColumn17 + end + item + Format = 'YCLCode' + Column = cxGridDBColumn13 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn16 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object V2Column1: TcxGridDBColumn + Caption = #20179#24211 + DataBinding.FieldName = 'CKName' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object cxGridDBColumn13: TcxGridDBColumn + Tag = 2 + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 190 + end + object cxGridDBColumn14: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Width = 171 + end + object cxGridDBColumn15: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 144 + end + object cxGridDBColumn16: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Width = 101 + end + object cxGridDBColumn17: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 68 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 256 + Top = 232 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 360 + Top = 232 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 400 + Top = 232 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 432 + Top = 232 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 288 + Top = 232 + end + object DataSource2: TDataSource + DataSet = ClientDataSet2 + Left = 680 + Top = 512 + end + object ADOQuery2: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 712 + Top = 512 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 320 + Top = 232 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 744 + Top = 512 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 512 + Top = 584 + end +end diff --git a/盛纺贸易管理/U_GetPGJBOneTwoInList.pas b/盛纺贸易管理/U_GetPGJBOneTwoInList.pas new file mode 100644 index 0000000..2031df2 --- /dev/null +++ b/盛纺贸易管理/U_GetPGJBOneTwoInList.pas @@ -0,0 +1,270 @@ +unit U_GetPGJBOneTwoInList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, cxCalendar, cxButtonEdit, cxDropDownEdit, + DBClient, cxSplitter; + +type + TfrmGetPGJBOneTwoInList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Panel1: TPanel; + ToolButton1: TToolButton; + cxSplitter1: TcxSplitter; + DataSource2: TDataSource; + ADOQuery2: TADOQuery; + ClientDataSet1: TClientDataSet; + ClientDataSet2: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + Label7: TLabel; + YCLName: TEdit; + YCLSpec: TEdit; + GYSName: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_ChnName: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1ShortName: TcxGridDBColumn; + v1Quantity: TcxGridDBColumn; + v1UnitName: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGrid3: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn14: TcxGridDBColumn; + cxGridDBColumn15: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + v1Column1: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure PlanNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure P_ChnNameChange(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure YCLNameChange(Sender: TObject); + private + procedure InitGrid(); + procedure InitGrid10(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmGetPGJBOneTwoInList: TfrmGetPGJBOneTwoInList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmGetPGJBOneTwoInList.FormDestroy(Sender: TObject); +begin + frmGetPGJBOneTwoInList:=nil; +end; + +procedure TfrmGetPGJBOneTwoInList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmGetPGJBOneTwoInList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmGetPGJBOneTwoInList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('б',Tv1,'ԭϲֿ'); + WriteCxGrid('бѡ',Tv2,'ԭϲֿ'); +end; + +procedure TfrmGetPGJBOneTwoInList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select YCLName=(select ZdyName from KH_Zdy KK where KK.ZdyNo=A.YCLCode), '); + sql.Add(' A.*,GYSName=(select ZdyName from KH_ZDY B where A.GYS=B.ZdyNo) '); + sql.Add(' from CK_YCL_KC A where A.KCQty>0'); + sql.Add(' and A.CKName in(''ԭϲֿ'',''ԭ϶'') '); + Open; + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); + end; + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmGetPGJBOneTwoInList.InitGrid10(); +begin + try + ADOQuery2.DisableControls; + with ADOQuery2 do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select YCLName=(select ZdyName from KH_Zdy KK where KK.ZdyNo=A.YCLCode), '); + sql.Add(' A.*,GYSName=(select ZdyName from KH_ZDY B where A.GYS=B.ZdyNo) '); + sql.Add('from CK_YCL_KC A where 1<>1'); + Open; + SCreateCDS20(ADOQuery2,ClientDataSet2); + SInitCDSData20(ADOQuery2,ClientDataSet2); + end; + finally + ADOQuery2.EnableControls; + end; +end; + +procedure TfrmGetPGJBOneTwoInList.InitForm(); +begin + ReadCxGrid('б',Tv1,'ԭϲֿ'); + ReadCxGrid('бѡ',Tv2,'ԭϲֿ'); + InitGrid(); + InitGrid10(); +end; + +procedure TfrmGetPGJBOneTwoInList.TBFindClick(Sender: TObject); +begin + if not ADOQueryMain.Active then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,ClientDataSet1); + SInitCDSData20(ADOQueryMain,ClientDataSet1); +end; + +function TfrmGetPGJBOneTwoInList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmGetPGJBOneTwoInList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmGetPGJBOneTwoInList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmGetPGJBOneTwoInList.PlanNoChange(Sender: TObject); +begin + if ADOQueryMain.Active then + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); +end; + +procedure TfrmGetPGJBOneTwoInList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmGetPGJBOneTwoInList.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + ModalResult:=-1 + else + ModalResult:=1; +end; + +procedure TfrmGetPGJBOneTwoInList.P_ChnNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmGetPGJBOneTwoInList.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + i:Integer; +begin + if ClientDataSet1.IsEmpty then exit; + ClientDataSet2.Append; + for i:=0 to ClientDataSet2.FieldCount-1 do + begin + ClientDataSet2.Fields[i].Value:=ClientDataSet1.Fields[i].Value; + end; + ClientDataSet2.Post; + ClientDataSet1.Delete; +end; + +procedure TfrmGetPGJBOneTwoInList.TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + i:Integer; +begin + if ClientDataSet2.IsEmpty then exit; + ClientDataSet1.Append; + for i:=0 to ClientDataSet1.FieldCount-1 do + begin + ClientDataSet1.Fields[i].Value:=ClientDataSet2.Fields[i].Value; + end; + ClientDataSet1.Post; + ClientDataSet2.Delete; +end; + +procedure TfrmGetPGJBOneTwoInList.YCLNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_HCList.dfm b/盛纺贸易管理/U_HCList.dfm new file mode 100644 index 0000000..d1242ae --- /dev/null +++ b/盛纺贸易管理/U_HCList.dfm @@ -0,0 +1,724 @@ +object frmHCList: TfrmHCList + Left = 95 + Top = 128 + Width = 1140 + Height = 555 + Caption = #25104#21697#24211#23384#27719#24635#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1124 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object Tprint: TToolButton + Left = 189 + Top = 0 + Caption = #25171#21360#32568#26631#31614 + ImageIndex = 96 + Visible = False + end + object TBClose: TToolButton + Left = 284 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1124 + Height = 64 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 259 + Top = 16 + Width = 48 + Height = 12 + Caption = #20135#21697#21517#31216 + end + object Label4: TLabel + Left = 260 + Top = 40 + Width = 48 + Height = 12 + Caption = #39068' '#33394 + end + object Label1: TLabel + Left = 48 + Top = 16 + Width = 48 + Height = 12 + Caption = #22238#20179#26102#38388 + end + object Label2: TLabel + Left = 84 + Top = 36 + Width = 12 + Height = 12 + Caption = #33267 + end + object Label5: TLabel + Left = 472 + Top = 16 + Width = 48 + Height = 12 + Caption = #20219#21153#21333#21495 + end + object Label6: TLabel + Left = 36 + Top = 76 + Width = 48 + Height = 12 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 195 + Top = 92 + Width = 48 + Height = 12 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 428 + Top = 92 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 510 + Top = 68 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object Label10: TLabel + Left = 472 + Top = 40 + Width = 48 + Height = 12 + Caption = #32568' '#21495 + end + object Label11: TLabel + Left = 668 + Top = 16 + Width = 36 + Height = 12 + Caption = #21152#24037#21378 + end + object C_CodeName: TEdit + Tag = 2 + Left = 312 + Top = 13 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = C_CodeNameChange + end + object C_Color: TEdit + Tag = 2 + Left = 312 + Top = 37 + Width = 100 + Height = 20 + TabOrder = 1 + OnChange = C_CodeNameChange + end + object BegDate: TDateTimePicker + Left = 97 + Top = 13 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Format = 'yyyy-MM-dd' + Time = 40768.458268587970000000 + TabOrder = 2 + end + object EndDate: TDateTimePicker + Left = 97 + Top = 37 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Format = 'yyyy-MM-dd' + Time = 40768.458268587970000000 + TabOrder = 3 + end + object conNO: TEdit + Tag = 2 + Left = 522 + Top = 13 + Width = 100 + Height = 20 + TabOrder = 4 + OnChange = C_CodeNameChange + end + object MJID: TEdit + Tag = 2 + Left = 86 + Top = 73 + Width = 109 + Height = 20 + TabOrder = 5 + OnChange = C_CodeNameChange + end + object KZ: TEdit + Tag = 2 + Left = 240 + Top = 89 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = C_CodeNameChange + end + object MF: TEdit + Tag = 2 + Left = 452 + Top = 88 + Width = 100 + Height = 20 + TabOrder = 7 + OnChange = C_CodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 536 + Top = 64 + Width = 68 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 8 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #30041#26679 + '') + end + object AOrddefstr1: TEdit + Tag = 2 + Left = 522 + Top = 37 + Width = 100 + Height = 20 + TabOrder = 9 + OnChange = C_CodeNameChange + end + object AOrddefstr4: TEdit + Tag = 2 + Left = 714 + Top = 13 + Width = 100 + Height = 20 + TabOrder = 10 + OnChange = C_CodeNameChange + end + object CheckBox1: TCheckBox + Left = 716 + Top = 40 + Width = 97 + Height = 17 + Caption = #20840#36873 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + OnClick = CheckBox1Click + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 97 + Width = 1124 + Height = 396 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = Tv1CustomDrawCell + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column16 + end + item + Kind = skSum + Column = v1Column15 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + OptionsView.IndicatorWidth = 20 + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + OnCustomDrawIndicatorCell = Tv1CustomDrawIndicatorCell + object v1Column17: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.Alignment = taCenter + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'ADefDate1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 100 + end + object v1Column2: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'AOrddefstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column13: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column3: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'AOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column5: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 100 + end + object v1Column6: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'C_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column7: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'HC_ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'AOrdQty1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 66 + end + object v1Column18: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'Aorddefstr2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #26816#39564#21305#25968 + DataBinding.FieldName = 'JY_ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclFuchsia + Styles.Footer = cxStyle_fontclFuchsia + Styles.Header = cxStyle_fontclFuchsia + Width = 80 + end + object v1Column10: TcxGridDBColumn + Caption = #26816#39564#25968#37327'(KG)' + DataBinding.FieldName = 'JY_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclFuchsia + Styles.Footer = cxStyle_fontclFuchsia + Styles.Header = cxStyle_fontclFuchsia + Width = 87 + end + object v1Column16: TcxGridDBColumn + Caption = #20837#24211#21305#25968 + DataBinding.FieldName = 'RK_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 80 + end + object v1Column15: TcxGridDBColumn + Caption = #20837#24211#25968#37327'(KG)' + DataBinding.FieldName = 'RK_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 85 + end + object v1Column11: TcxGridDBColumn + Caption = #21046#21333#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column12: TcxGridDBColumn + Caption = #21046#21333#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 99 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object MovePanel2: TMovePanel + Left = 408 + Top = 188 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 856 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end + object cxStyleRepository1: TcxStyleRepository + Left = 69 + Top = 130 + object cxStyle1: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaption + end + object cxStyle2: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 4707838 + TextColor = clBtnText + end + object cxStyle_gridRow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16311512 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_gridFoot: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridHead: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridGroupBox: TcxStyle + AssignedValues = [svColor, svFont] + Color = clMoneyGreen + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_yellow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + end + object cxStyle_fontBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontclFuchsia: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clFuchsia + end + object cxStyle_fontclPurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object cxStyle_fontclGreen: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clGreen + end + object cxStyle_fontclBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle_fontclTeal: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + TextColor = clTeal + end + object cxStyle_fontclOlive: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + TextColor = clOlive + end + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 208 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 448 + Top = 200 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 752 + Top = 192 + end +end diff --git a/盛纺贸易管理/U_HCList.pas b/盛纺贸易管理/U_HCList.pas new file mode 100644 index 0000000..ea8c0ab --- /dev/null +++ b/盛纺贸易管理/U_HCList.pas @@ -0,0 +1,279 @@ +unit U_HCList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxCheckBox, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport; + +type + TfrmHCList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + Label4: TLabel; + C_CodeName: TEdit; + C_Color: TEdit; + Label1: TLabel; + Label2: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + CDS_Main: TClientDataSet; + Tv1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + Label5: TLabel; + conNO: TEdit; + Label6: TLabel; + MJID: TEdit; + Label8: TLabel; + KZ: TEdit; + Label9: TLabel; + MF: TEdit; + Label7: TLabel; + CPType: TComboBox; + MovePanel2: TMovePanel; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + Label10: TLabel; + AOrddefstr1: TEdit; + Label11: TLabel; + AOrddefstr4: TEdit; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle_gridRow: TcxStyle; + cxStyle_gridFoot: TcxStyle; + cxStyle_gridHead: TcxStyle; + cxStyle_gridGroupBox: TcxStyle; + cxStyle_yellow: TcxStyle; + cxStyle_Red: TcxStyle; + cxStyle_fontBlack: TcxStyle; + cxStyle_fontclFuchsia: TcxStyle; + cxStyle_fontclPurple: TcxStyle; + cxStyle_fontclGreen: TcxStyle; + cxStyle_fontclBlue: TcxStyle; + cxStyle_fontclTeal: TcxStyle; + cxStyle_fontclOlive: TcxStyle; + v1Column17: TcxGridDBColumn; + Tprint: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + CheckBox1: TCheckBox; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure C_CodeNameChange(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; + var ADone: Boolean); + procedure CheckBox1Click(Sender: TObject); + private + procedure InitGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + frmHCList: TfrmHCList; + +implementation +uses + U_DataLink,U_Fun; + +{$R *.dfm} + +procedure TfrmHCList.FormDestroy(Sender: TObject); +begin + frmHCList:=nil; +end; + +procedure TfrmHCList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmHCList.FormCreate(Sender: TObject); +begin + cxGrid2.Align:=alClient; + BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) +end; + +procedure TfrmHCList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + + Close; + sql.Clear; + Filtered:=False; + sql.Add('select A.*,hC_ps=A.AordQty2,JY_ps=(select count(MainID) from WFB_MJJY X where X.APID=A.APID),'); + sql.Add('JY_Qty=(select sum(MJMaoZ) from WFB_MJJY X where X.APID=A.APID), '); + sql.Add('RK_RollNum=(select count(MainID) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''''),'); + sql.Add('RK_Qty=(select sum(KGQty) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''''), '); + sql.Add('KHCOnNO=(select KHCOnNo from JYOrdercon_Main X where X.conNO=B.conNO), '); + sql.Add('B.OrderNo,B.ConNO,C.PRTColor,B.MPrtCodeName,B.Mprtspec '); + sql.Add('from JYOrder_sub_anPai A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID ') ; + sql.Add('inner join JYOrder_Sub C on C.subID=A.subID ') ; + SQL.Add('WHERE ADefDate1>='''+formatdateTime('yyyy-MM-dd',BegDate.DateTime)+''' '); + SQL.Add('AND ADefDate1<'''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + TBFind.Click; + end; +end; + +procedure TfrmHCList.TBRafreshClick(Sender: TObject); +begin + //BegDate.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmHCList.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmHCList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption,Tv1,'Ʒֿ'); + Close; +end; + +procedure TfrmHCList.FormShow(Sender: TObject); +begin + + ReadCxGrid(self.Caption,Tv1,'Ʒֿ'); + + //InitGrid(); +end; + +procedure TfrmHCList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel(self.Caption,cxGrid2); +end; + +procedure TfrmHCList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmHCList.C_CodeNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmHCList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); +begin + IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('HC_PS').Index]<>AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('JY_ps').Index] then + begin + ACanvas.Brush.Color:=clSkyBlue; + end; +end; + +procedure TfrmHCList.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; + var ADone: Boolean); +var + FValue: string; + FBounds: TRect; + begin + FBounds := AViewInfo.Bounds; + if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then + begin + ACanvas.FillRect(FBounds); + ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); + FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1); + InflateRect(FBounds, -1, -1) ; + ACanvas.Font.Color := clBlack; + ACanvas.Brush.Style := bsClear; + ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); + ADone := True; + end; + end; + + +procedure TfrmHCList.CheckBox1Click(Sender: TObject); +begin + IF CDS_Main.IsEmpty then exit; + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + edit; + fieldbyname('ssel').Value:=checkbox1.Checked; + post; + next; + end; + First; + EnableControls; + end; +end; + +end. diff --git a/盛纺贸易管理/U_HuiruhGPIjiluCX.dfm b/盛纺贸易管理/U_HuiruhGPIjiluCX.dfm new file mode 100644 index 0000000..9638c07 --- /dev/null +++ b/盛纺贸易管理/U_HuiruhGPIjiluCX.dfm @@ -0,0 +1,464 @@ +object frmHuiruhGPIjiluCX: TfrmHuiruhGPIjiluCX + Left = 477 + Top = 125 + Width = 1399 + Height = 856 + Caption = #27719#20837'GPI'#35760#24405#26597#35810#25509#21475 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1383 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1383 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 39 + Top = 16 + Width = 52 + Height = 12 + BiDiMode = bdLeftToRight + Caption = #20132#26131#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentBiDiMode = False + ParentFont = False + end + object Label3: TLabel + Left = 525 + Top = 20 + Width = 36 + Height = 12 + Caption = 'Label3' + Visible = False + end + object Label11: TLabel + Left = 420 + Top = 17 + Width = 36 + Height = 12 + Caption = #24635#26465#25968 + end + object Label2: TLabel + Left = 419 + Top = 41 + Width = 36 + Height = 12 + Caption = #24635#39029#25968 + end + object Label4: TLabel + Left = 517 + Top = 40 + Width = 36 + Height = 12 + Caption = 'Label4' + Visible = False + end + object Label5: TLabel + Left = 211 + Top = 16 + Width = 65 + Height = 12 + Caption = #27719#27454#20154#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 211 + Top = 40 + Width = 61 + Height = 12 + Caption = #29366' '#24577 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 92 + Top = 12 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 92 + Top = 36 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object payName: TEdit + Tag = 2 + Left = 294 + Top = 12 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = payNameChange + end + object status: TComboBox + Tag = 2 + Left = 296 + Top = 38 + Width = 78 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 3 + OnChange = statusChange + Items.Strings = ( + '' + #27719#27454#34892#24050#27719#20986 + #20013#36716#34892#24050#20013#36716 + #20013#36716#34892#22788#29702#20013 + #20013#36716#34892#24050#36864#22238 + #25910#27454#34892#24050#20837#36134) + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 131 + Width = 1383 + Height = 686 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + end + item + Kind = skCount + end + item + end + item + end + item + end + item + Kind = skCount + Column = TV1status + end> + DataController.Summary.SummaryGroups = <> + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.FonePurple + object v1Date: TcxGridDBColumn + Caption = #20132#26131#26085#26399 + DataBinding.FieldName = 'transDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1amt: TcxGridDBColumn + Caption = #27719#27454#37329#39069 + DataBinding.FieldName = 'amt' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object V1remitCurCode: TcxGridDBColumn + Caption = #27719#27454#24065#31181 + DataBinding.FieldName = 'remitCurCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 88 + end + object v1payAccpayName: TcxGridDBColumn + Caption = #27719#27454#20154#21517#31216 + DataBinding.FieldName = 'payName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 107 + end + object TV1status: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'status' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 122 + end + object Tv1Column1: TcxGridDBColumn + Caption = 'GPI '#36319#36394#21495 + DataBinding.FieldName = 'uetr' + HeaderAlignmentHorz = taCenter + Width = 109 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel8: TPanel + Left = 0 + Top = 99 + Width = 1383 + Height = 32 + Align = alTop + TabOrder = 3 + DesignSize = ( + 1383 + 32) + object LBCPAP: TLabel + Left = 643 + Top = 8 + Width = 85 + Height = 12 + Alignment = taCenter + Anchors = [akLeft, akTop, akBottom] + AutoSize = False + Caption = #24403#21069#39029'/'#24635#39029#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Layout = tlCenter + end + object Label31: TLabel + Left = 281 + Top = 8 + Width = 84 + Height = 13 + Anchors = [akLeft, akTop, akBottom] + Caption = #27599#39029#35760#24405#26465#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Layout = tlCenter + Visible = False + end + object BTNP: TButton + Left = 739 + Top = 4 + Width = 78 + Height = 22 + Caption = #19979#19968#39029 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = BTNPClick + end + object BTLP: TButton + Left = 557 + Top = 4 + Width = 78 + Height = 22 + Caption = #19978#19968#39029 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = BTLPClick + end + object TCBNOR: TComboBox + Tag = 2 + Left = 373 + Top = 5 + Width = 78 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemHeight = 12 + ItemIndex = 0 + ParentFont = False + TabOrder = 2 + Text = '50' + Visible = False + Items.Strings = ( + '50' + '100' + '' + '') + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1128 + Top = 5 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 344 + Top = 236 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + Top = 5 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 564 + Top = 280 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 1060 + Top = 312 + end + object IdHTTP1: TIdHTTP + IOHandler = IdSSLIOHandlerSocket1 + MaxLineAction = maException + ReadTimeout = 0 + AllowCookies = True + ProxyParams.BasicAuthentication = False + ProxyParams.ProxyPort = 0 + Request.ContentLength = -1 + Request.ContentRangeEnd = 0 + Request.ContentRangeStart = 0 + Request.ContentType = ' application/x-www-form-urlencoded' + Request.Accept = 'text/html, */*' + Request.BasicAuthentication = False + Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)' + HTTPOptions = [hoForceEncodeParams] + Left = 336 + Top = 164 + end + object IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket + SSLOptions.Method = sslvSSLv2 + SSLOptions.Mode = sslmBoth + SSLOptions.VerifyMode = [] + SSLOptions.VerifyDepth = 0 + Left = 416 + Top = 160 + end +end diff --git a/盛纺贸易管理/U_HuiruhGPIjiluCX.pas b/盛纺贸易管理/U_HuiruhGPIjiluCX.pas new file mode 100644 index 0000000..c8e296a --- /dev/null +++ b/盛纺贸易管理/U_HuiruhGPIjiluCX.pas @@ -0,0 +1,332 @@ +unit U_HuiruhGPIjiluCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, + RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, IdIOHandler, + IdIOHandlerSocket, IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdHTTP, superobject, uJSONDB; + +type + TfrmHuiruhGPIjiluCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + RMXLSExport1: TRMXLSExport; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + TV1status: TcxGridDBColumn; + v1payAccpayName: TcxGridDBColumn; + V1remitCurCode: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Date: TcxGridDBColumn; + v1amt: TcxGridDBColumn; + IdHTTP1: TIdHTTP; + IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket; + Label11: TLabel; + Label2: TLabel; + Label3: TLabel; + Panel8: TPanel; + LBCPAP: TLabel; + BTNP: TButton; + BTLP: TButton; + Label4: TLabel; + Label31: TLabel; + TCBNOR: TComboBox; + Label5: TLabel; + Label6: TLabel; + payName: TEdit; + status: TComboBox; + Tv1Column1: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure memoMsgContextChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxPageControl1Change(Sender: TObject); + procedure BTNPClick(Sender: TObject); + procedure BTLPClick(Sender: TObject); + procedure payNameChange(Sender: TObject); + procedure statusChange(Sender: TObject); + + private + FInt, PFInt: Integer; + CurrentPage: integer; + result: boolean; + procedure InitGrid(); + procedure InitForm(); + function DelData(): Boolean; + function SendRequest(): boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmHuiruhGPIjiluCX: TfrmHuiruhGPIjiluCX; + +implementation + +uses + U_DataLink, U_Fun, U_ZDYHelp; + + +{$R *.dfm} + +procedure TfrmHuiruhGPIjiluCX.FormDestroy(Sender: TObject); +begin + frmHuiruhGPIjiluCX := nil; +end; + +procedure TfrmHuiruhGPIjiluCX.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmHuiruhGPIjiluCX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('GPI¼ѯӿ', Tv1, 'ָʾ'); +end; + +function TfrmHuiruhGPIjiluCX.SendRequest(): boolean; +var + s, t, m, w: string; + IdHTTP: TIdHTTP; + SendStr, Response, Response1, x, y, z, q: string; + Request: TStrings; + vJson, vRet: ISuperObject; + ja: TSuperArray; +begin +// SendStr:='{"beginDate":"20230622","endDate":"20230622","pageSize":100,"currentPage":1}'; + s := FormatDateTime('yyyyMMdd', BegDate.DateTime); + m := FormatDateTime('yyyyMMdd', EndDate.DateTime); + t := FloatToStr(currentPage); +// w := TCBNOR.Text; + x := '{"beginDate": ' + '"' + s + '"'; + y := x + ',"endDate":' + '"' + m + '"'; +// q := y + ',"pageSize":' + w + ''; + SendStr := y + ',"pageSize":100,"currentPage":' + t + '}'; + + vJson := SO(SendStr); + IdHTTP := TIdHTTP.Create(nil); + IdHTTP.Request.ContentType := 'application/json'; + Request := TStringList.Create; + result := false; + try + + Request.Append(utf8Encode(vJson.AsString)); + Response := IdHTTP.Post('http://www.rightsoft.top/shengfang/api/nbBank/easyInboundQuery ', Request); + + vRet := SO(Response); + if trim(vRet['msg'].AsString) = 'SUCCESS' then + begin + Response1 := vRet['data'].AsString; + vRet := SO(Response1); + Label3.caption := vRet['totalSize'].AsString; + Label4.caption := vRet['totalPage'].AsString; + Label11.Caption := '' + vRet['totalSize'].AsString; + Label2.Caption := 'ҳ' + vRet['totalPage'].AsString; + ja := vRet['list'].AsArray; + TJSONDB.JsonToClientDataSet(ja, Order_Main); + + result := true; + end; + finally + Request.Free; + IdHTTP.free; + end; + +end; + +procedure TfrmHuiruhGPIjiluCX.InitGrid(); +begin + if Order_Main.IsEmpty = False then + Order_Main.EmptyDataSet; + + SendRequest(); + LBCPAP.Caption := inttostr(CurrentPage) + '/' + label4.Caption; +end; +//var +// SS: TStringStream; +// HttpClient: TIdHttp; +// ParamList: TStringS; +//begin +//// SS := TStringStream.Create('', TEncoding.UTF8); +// SS := TStringStream.Create(''); +// HttpClient := TIdHttp.Create(nil); +// ParamList := TStringList.Create; +// +// try +// ParamList.Add('"beginDate":"20230101"'); +// ParamList.Add('"endDate":"20230529"'); +// ParamList.Add('"pageSize":100'); +// ParamList.Add('"currentPage":1'); +// +//// ParamList.Add('MsgContext=' + memoMsgContext.Text); +//// ParamList.Add('MsgContext=' + HTTPEncode(UTF8Encode(memoMsgContext.Text))); +// HttpClient.Post('http://101.132.146.12/sf/api/nbBank/easyInboundQuery', ParamList, SS); +// +// MemoResult.Text := SS.DataString; +// finally +// SS.Free; +// HttpClient.Free; +// ParamList.Free; +// end; +//end; + +procedure TfrmHuiruhGPIjiluCX.InitForm(); +begin + ReadCxGrid('Ӧ̻', Tv1, 'ָʾ'); + BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 60; + EndDate.DateTime := SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmHuiruhGPIjiluCX.TBFindClick(Sender: TObject); +begin + if Order_Main.Active = False then + Exit; + SDofilter10(Order_Main, SGetFilters(Panel1, 1, 2)); +// cxDataSetCreateBookmark(,) +// SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); +// TJSONDB.JsonToClientDataSet(ja, Order_Main); +// SCreateCDS20(ADOQueryMain, Order_Main); +// SInitCDSData20(ADOQueryMain, Order_Main); + +end; + +function TfrmHuiruhGPIjiluCX.DelData(): Boolean; +begin + try + Result := false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString) = '' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result := True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result := False; + Application.MessageBox('ɾ쳣', 'ʾ', 0); + end; +end; + +procedure TfrmHuiruhGPIjiluCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + Exit; + TcxGridToExcel('GPI¼ѯӿб', cxGrid1); +end; + +procedure TfrmHuiruhGPIjiluCX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmHuiruhGPIjiluCX.memoMsgContextChange(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmHuiruhGPIjiluCX.FormShow(Sender: TObject); +begin + currentPage := 1; + InitForm(); +end; + +procedure TfrmHuiruhGPIjiluCX.cxPageControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmHuiruhGPIjiluCX.BTNPClick(Sender: TObject); +var + i: double; +begin + + i := StrTofloat(Label3.Caption) / 100; + if CurrentPage < i then + CurrentPage := CurrentPage + 1; + InitGrid(); + +end; + +procedure TfrmHuiruhGPIjiluCX.BTLPClick(Sender: TObject); +begin + + if CurrentPage > 1 then + CurrentPage := CurrentPage - 1; + InitGrid(); +end; + +procedure TfrmHuiruhGPIjiluCX.payNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmHuiruhGPIjiluCX.statusChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. + diff --git a/盛纺贸易管理/U_HuiruhuikuanCX.dfm b/盛纺贸易管理/U_HuiruhuikuanCX.dfm new file mode 100644 index 0000000..bf2b963 --- /dev/null +++ b/盛纺贸易管理/U_HuiruhuikuanCX.dfm @@ -0,0 +1,458 @@ +object frmHuiruhuikuanCX: TfrmHuiruhuikuanCX + Left = 508 + Top = 412 + Width = 1399 + Height = 373 + Caption = #27719#20837#27719#27454#26597#35810#25509#21475 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1383 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1383 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 39 + Top = 16 + Width = 52 + Height = 12 + BiDiMode = bdLeftToRight + Caption = #20132#26131#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentBiDiMode = False + ParentFont = False + end + object Label3: TLabel + Left = 211 + Top = 16 + Width = 65 + Height = 12 + Caption = #38134#34892#27969#27700#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 399 + Top = 16 + Width = 65 + Height = 12 + Caption = #25910#27454#20154#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 376 + Top = 40 + Width = 124 + Height = 24 + Caption = #27719#27454#20154#24120#39547#22269#23478'/'#22320#21306#13' ' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 211 + Top = 40 + Width = 67 + Height = 12 + Caption = 'GPI '#36319#36394#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 566 + Top = 16 + Width = 65 + Height = 12 + Caption = #27719#27454#20154#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 92 + Top = 12 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 92 + Top = 36 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object refNo: TEdit + Tag = 2 + Left = 281 + Top = 12 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = refNoChange + OnKeyPress = refNoKeyPress + end + object roName: TEdit + Tag = 2 + Left = 466 + Top = 12 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = refNoChange + end + object chnName: TEdit + Tag = 2 + Left = 467 + Top = 36 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = refNoChange + end + object uetr: TEdit + Tag = 2 + Left = 281 + Top = 36 + Width = 81 + Height = 20 + TabOrder = 5 + OnChange = refNoChange + end + object payName: TEdit + Tag = 2 + Left = 634 + Top = 12 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = refNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 99 + Width = 1383 + Height = 235 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Column = v1chnName + end + item + Kind = skCount + end + item + Column = v1payName + end + item + Column = v1postscriptS + end + item + Column = v1rptNo + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.FonePurple + object v1refNo: TcxGridDBColumn + Caption = #38134#34892#27969#27700#21495 + DataBinding.FieldName = 'refNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1amt: TcxGridDBColumn + Caption = #27719#27454#37329#39069 + DataBinding.FieldName = 'amt' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object V1remitCurCode: TcxGridDBColumn + Caption = #27719#27454#24065#31181 + DataBinding.FieldName = 'remitCurCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1Date: TcxGridDBColumn + Caption = #20132#26131#26085#26399 + DataBinding.FieldName = 'transactionDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1payAcc: TcxGridDBColumn + Caption = #27719#36719#27454#20154#36134#21495 + DataBinding.FieldName = 'payAcc' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 86 + end + object v1payName: TcxGridDBColumn + Caption = #27719#27454#20154#21517#31216 + DataBinding.FieldName = 'payName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + VisibleForCustomization = False + Width = 70 + end + object v1chnName: TcxGridDBColumn + Caption = #27719#27454#20154#24120#39547#22269#23478'/'#22320#21306 + DataBinding.FieldName = 'chnName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1postscriptS: TcxGridDBColumn + Caption = #20132#26131#38468#35328 + DataBinding.FieldName = 'postscript' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1rptNo: TcxGridDBColumn + Caption = #30003#25253#21495#30721 + DataBinding.FieldName = 'rptNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1serviceFeeCcy: TcxGridDBColumn + Caption = #25163#32493#36153#24065#31181 + DataBinding.FieldName = 'serviceFeeCcy' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1serviceFeeAmt: TcxGridDBColumn + Caption = #25163#32493#36153#37329#39069 + DataBinding.FieldName = 'serviceFeeAmt' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1uetrt: TcxGridDBColumn + Caption = 'GPI '#36319#36394#21495 + DataBinding.FieldName = 'uetr' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + object V1rcvName: TcxGridDBColumn + Caption = #25910#27454#20154#21517#31216 + DataBinding.FieldName = 'rcvName' + Width = 88 + end + object V1rcvAcc: TcxGridDBColumn + Caption = #20837#36134#36134#21495 + DataBinding.FieldName = 'rcvAcc' + Width = 77 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 1128 + Top = 5 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 448 + Top = 196 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + Top = 5 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 8 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 352 + Top = 192 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 400 + Top = 192 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 308 + Top = 196 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 492 + Top = 200 + end +end diff --git a/盛纺贸易管理/U_HuiruhuikuanCX.pas b/盛纺贸易管理/U_HuiruhuikuanCX.pas new file mode 100644 index 0000000..29cf035 --- /dev/null +++ b/盛纺贸易管理/U_HuiruhuikuanCX.pas @@ -0,0 +1,251 @@ +unit U_HuiruhuikuanCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, + RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; + +type + TfrmHuiruhuikuanCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + refNo: TEdit; + Label5: TLabel; + roName: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Label4: TLabel; + chnName: TEdit; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + CDS_PRT: TClientDataSet; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1refNo: TcxGridDBColumn; + v1payAcc: TcxGridDBColumn; + V1remitCurCode: TcxGridDBColumn; + v1payName: TcxGridDBColumn; + v1chnName: TcxGridDBColumn; + v1uetrt: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Date: TcxGridDBColumn; + v1rptNo: TcxGridDBColumn; + v1postscriptS: TcxGridDBColumn; + Label2: TLabel; + uetr: TEdit; + Label6: TLabel; + payName: TEdit; + v1amt: TcxGridDBColumn; + v1serviceFeeCcy: TcxGridDBColumn; + v1serviceFeeAmt: TcxGridDBColumn; + V1rcvName: TcxGridDBColumn; + V1rcvAcc: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure refNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxPageControl1Change(Sender: TObject); + procedure refNoKeyPress(Sender: TObject; var Key: Char); + private + FInt, PFInt: Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData(): Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmHuiruhuikuanCX: TfrmHuiruhuikuanCX; + +implementation + +uses + U_DataLink, U_Fun, U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmHuiruhuikuanCX.FormDestroy(Sender: TObject); +begin + frmHuiruhuikuanCX := nil; +end; + +procedure TfrmHuiruhuikuanCX.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmHuiruhuikuanCX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('Ӧ̻', Tv1, 'ָʾ'); +end; + +procedure TfrmHuiruhuikuanCX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from CW_HRHK A '); + sql.Add('where A.transactionDate>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ''' '); + sql.Add('and A.transactionDate<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''' '); +// ShowMessage(SQL.text); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ; + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmHuiruhuikuanCX.InitForm(); +begin + ReadCxGrid('Ӧ̻', Tv1, 'ָʾ'); + BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 7; + EndDate.DateTime := SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmHuiruhuikuanCX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +function TfrmHuiruhuikuanCX.DelData(): Boolean; +begin + try + Result := false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ContractSX_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + ExecSQL; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString) = '' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result := True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result := False; + Application.MessageBox('ɾ쳣', 'ʾ', 0); + end; +end; + +procedure TfrmHuiruhuikuanCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + Exit; + TcxGridToExcel('ѯӿб', cxGrid1); +end; + +procedure TfrmHuiruhuikuanCX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmHuiruhuikuanCX.refNoChange(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmHuiruhuikuanCX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmHuiruhuikuanCX.cxPageControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmHuiruhuikuanCX.refNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from CW_HRHK '); + sql.Add('where refNo=' + quotedstr(trim(refNo.Text))); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ; + ADOQueryMain.EnableControls; + end; + end; +end; + +end. + diff --git a/盛纺贸易管理/U_JBData.dfm b/盛纺贸易管理/U_JBData.dfm new file mode 100644 index 0000000..2f0bc9f --- /dev/null +++ b/盛纺贸易管理/U_JBData.dfm @@ -0,0 +1,265 @@ +object frmJBData: TfrmJBData + Left = 133 + Top = 13 + Width = 1056 + Height = 704 + Caption = #20132#29677 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 686 + Top = 139 + Width = 49 + Height = 97 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 295 + Top = 25 + Width = 388 + Height = 97 + Caption = #20132#29677#21367#38271 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Button1: TButton + Left = 291 + Top = 488 + Width = 154 + Height = 97 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -56 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button1Click + end + object MJLen: TEdit + Left = 291 + Top = 134 + Width = 390 + Height = 105 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -96 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + object Panel3: TPanel + Left = 192 + Top = 248 + Width = 617 + Height = 211 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 2 + object SpeedButton1: TSpeedButton + Left = 411 + Top = 106 + Width = 100 + Height = 100 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 3 + Top = 2 + Width = 100 + Height = 100 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 105 + Top = 2 + Width = 100 + Height = 100 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 207 + Top = 2 + Width = 100 + Height = 100 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 309 + Top = 2 + Width = 100 + Height = 100 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 411 + Top = 2 + Width = 100 + Height = 100 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 3 + Top = 106 + Width = 100 + Height = 100 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 105 + Top = 106 + Width = 100 + Height = 100 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 207 + Top = 106 + Width = 100 + Height = 100 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 309 + Top = 106 + Width = 100 + Height = 100 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 513 + Top = 2 + Width = 100 + Height = 100 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton12Click + end + end + object Button2: TButton + Left = 534 + Top = 488 + Width = 154 + Height = 97 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -56 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button2Click + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 384 + Top = 8 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 448 + Top = 8 + end +end diff --git a/盛纺贸易管理/U_JBData.pas b/盛纺贸易管理/U_JBData.pas new file mode 100644 index 0000000..43dfa43 --- /dev/null +++ b/盛纺贸易管理/U_JBData.pas @@ -0,0 +1,260 @@ +unit U_JBData; //ʹϵͳһֹࡣ + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, ADODB, StdCtrls, Buttons, ExtCtrls; + +type + TfrmJBData = class(TForm) + Button1: TButton; + MJLen: TEdit; + Label1: TLabel; + ADOQueryCmd: TADOQuery; + Label2: TLabel; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton12: TSpeedButton; + ADOQueryTemp: TADOQuery; + Button2: TButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + frmJBData: TfrmJBData; + +implementation +Uses +U_DataLink,U_Fun,U_ZDYHelp,U_iniParam; + +{$R *.dfm} + +procedure TfrmJBData.FormDestroy(Sender: TObject); +begin + frmJBData:=nil; +end; + +procedure TfrmJBData.FormClose(Sender: TObject; var Action: TCloseAction); +begin + + Action:=caFree; +end; + +procedure TfrmJBData.FormShow(Sender: TObject); +begin + MJLen.SetFocus; +end; + +procedure TfrmJBData.SpeedButton1Click(Sender: TObject); +begin + MJLen.Text:=Trim(MJLen.Text)+Trim(TSpeedButton(Sender).Caption); + MJLen.SelectAll; +end; + +procedure TfrmJBData.SpeedButton12Click(Sender: TObject); +begin + if Trim(MJLen.Text)<>'' then + begin + MJLen.Text:=Copy(Trim(MJLen.Text),1,Length(Trim(MJLen.Text))-1); + MJLen.SelectAll; + end; +end; + +procedure TfrmJBData.Button1Click(Sender: TObject); +var + FFMJLen:Double; + MJIDInt:Integer; + maxno,maxno10,FBanZu,maxno100,maxno200,maxno300:String; +begin + if Trim(MJLen.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + MJLen.SetFocus; + exit; + end; + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(Max(Cast(MJID as int)),0) MJIDInt from WFB_MJJY'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where JTType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + + MJIDInt:=ADOQueryTemp.fieldbyname('MJIDInt').Value; + maxno100:=Trim(FormatDateTime('yyyyMMdd',SGetServerDateTime(ADOQueryTemp))); + maxno100:=Trim(SCXFlag)+Trim(Copy(maxno100,3,6)); + maxno200:=IntToStr(MJIDInt); + maxno200:=Copy(maxno200,1,7); + if StrToInt(maxno100)>StrToInt(maxno200) then + begin + maxno300:=Trim(maxno100)+'01'; + end else + begin + maxno300:=IntToStr(MJIDInt+1); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_JYResult where MJID='''+Trim(maxno300)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('δ鲻ܽ࣡','ʾ',0); + Exit; + end; + // ʹϵͳһֹࡣ + if MJIDInt>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_JB where MJID='''+Trim(Inttostr(MJIDInt+1))+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('ѵǼǣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִвȷݽ޸ģ','ʾ',32+4)<>IDYES then + begin + MJLen.Text:=''; + MJLen.SetFocus; + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + //潻 + if GetLSNo(ADOQueryCmd,maxno,'JB','WFB_JB',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡID쳣','ʾ',0); + Exit; + end; + + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + FBanZu:=Trim(ADOQueryTemp.fieldbyname('BanZu').AsString); + FFMJLen:=StrToFloat(MJLen.Text); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_JB where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('JBID').Value:=Trim(maxno); + FieldByName('MJID').Value:=Trim(maxno300); + FieldByName('MJLen').Value:=FFMJLen; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('BanZu').Value:=Trim(FBanZu); + if Trim(SCXFlag)<>'' then + begin + FieldByName('JTType').Value:=Trim(SCXFlag); + end; + Post; + end; + //潻 + //Ա + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where BanZu='''+Trim(FBanZu)+''''); + Open; + end; + with ADOQueryTemp do + begin + First; + while not eof do + begin + if GetLSNo(ADOQueryCmd,maxno10,'BZ','WFB_BanZu',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_BanZu where 1<>1'); + open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BZID').Value:=Trim(maxno10); + FieldByName('BanZu').Value:=Trim(FBanZu); + FieldByName('MJID').Value:=Trim(maxno300); + // FieldByName('MJID').Value:=Trim(IntToStr(MJIDInt+1)); + FieldByName('MJLen').Value:=StrToFloat(MJLen.Text); + FieldByName('UserId').Value:=Trim(ADOQueryTemp.fieldbyname('UserId').AsString); + FieldByName('UserName').Value:=Trim(ADOQueryTemp.fieldbyname('UserName').AsString); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('JBID').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + + //Ա + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('Ǽdzɹ!','ʾ',0); + Exit; + except + + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + end else + begin + Application.MessageBox('ʹϵͳһֹ࣡','ʾ',0); + Exit; + end; + +end; + +procedure TfrmJBData.Button2Click(Sender: TObject); +begin + Close; +end; + +end. diff --git a/盛纺贸易管理/U_JYMJIDPRINT.dfm b/盛纺贸易管理/U_JYMJIDPRINT.dfm new file mode 100644 index 0000000..b94d7a0 --- /dev/null +++ b/盛纺贸易管理/U_JYMJIDPRINT.dfm @@ -0,0 +1,135 @@ +object frmJYMJIDPRINT: TfrmJYMJIDPRINT + Left = 391 + Top = 247 + BorderIcons = [] + BorderStyle = bsToolWindow + Caption = #26816#39564#25253#21578 + ClientHeight = 202 + ClientWidth = 338 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + PixelsPerInch = 96 + TextHeight = 12 + object Button1: TButton + Left = 33 + Top = 148 + Width = 60 + Height = 25 + Caption = #25171#21360 + TabOrder = 0 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 28 + Top = 24 + Width = 249 + Height = 117 + ItemIndex = 1 + Items.Strings = ( + #26816#39564#21333#21367#20013#25991#20449#24687#34920'('#32654#26631')' + #26816#39564#21333#21367#33521#25991#20449#24687#34920'('#32654#26631')' + #26816#39564#21333#21367#20013#25991#20449#24687#34920'('#27431#26631')' + #26816#39564#21333#21367#33521#25991#20449#24687#34920'('#27431#26631')') + TabOrder = 1 + end + object Button2: TButton + Left = 129 + Top = 148 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + object Button3: TButton + Left = 217 + Top = 148 + Width = 60 + Height = 25 + Caption = #23548#20986 + TabOrder = 3 + OnClick = Button3Click + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 81 + Top = 33 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 84 + Top = 100 + end + object CDS_T: TClientDataSet + Aggregates = <> + Params = <> + Left = 128 + Top = 100 + end + object CDS_Z: TClientDataSet + Aggregates = <> + Params = <> + Left = 160 + Top = 100 + end + object CDS_E: TClientDataSet + Aggregates = <> + Params = <> + Left = 204 + Top = 100 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = CDS_Main + Left = 76 + Top = 167 + end + object RMDB_T: TRMDBDataSet + Visible = True + DataSet = CDS_T + Left = 140 + Top = 168 + end + object RMDB_Z: TRMDBDataSet + Visible = True + DataSet = CDS_Z + Left = 200 + Top = 168 + end + object RMDB_E: TRMDBDataSet + Visible = True + DataSet = CDS_E + Left = 256 + Top = 168 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 344 + Top = 136 + ReportData = {} + end +end diff --git a/盛纺贸易管理/U_JYMJIDPRINT.pas b/盛纺贸易管理/U_JYMJIDPRINT.pas new file mode 100644 index 0000000..7044ef4 --- /dev/null +++ b/盛纺贸易管理/U_JYMJIDPRINT.pas @@ -0,0 +1,339 @@ +unit U_JYMJIDPRINT; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, + RM_Dataset, DBClient, DB, ADODB, StdCtrls, ExtCtrls, RM_E_llPDF; + +type + TfrmJYMJIDPRINT = class(TForm) + ADOQueryTmp: TADOQuery; + CDS_Main: TClientDataSet; + CDS_T: TClientDataSet; + CDS_Z: TClientDataSet; + CDS_E: TClientDataSet; + RMDB_Main: TRMDBDataSet; + RMDB_T: TRMDBDataSet; + RMDB_Z: TRMDBDataSet; + RMDB_E: TRMDBDataSet; + RMGridReport1: TRMGridReport; + Button1: TButton; + RadioGroup1: TRadioGroup; + Button2: TButton; +// RMllPDFExport1: TRMllPDFExport; + Button3: TButton; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + private + Procedure Print1(flag1:integer); + { Private declarations } + public + fMJID:string; + Fflag:integer; + { Public declarations } + end; + +var + frmJYMJIDPRINT: TfrmJYMJIDPRINT; + +implementation + uses + U_DataLink,U_Fun,U_JYOrderCDOne, U_CKProductBCPOutList; +{$R *.dfm} +Procedure TfrmJYMJIDPRINT.Print1(flag1:integer); +var + i,j:integer; + fstr1,fPrintFile:string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + + with ADOqueryTmp do + begin + Close; + sql.Clear; + sql.Add('delete TBSubID where DName='''+Trim(DCode)+''''); + ExecSQL; + end; + with ADOqueryTmp do + begin + Close; + sql.Clear; + sql.Add('select * FROM TBSubID where DName='''+Trim(DCode)+''''); + open; + append; + fieldbyname('SubId').Value:=Trim(fMJID); + fieldbyname('Dname').Value:=Trim(DCode); + post; + end; + + + with ADOqueryTmp do + begin + close; + sql.Clear; + sql.Add(' exec P_Get_JYMJID_Main '); + sql.Add(' @MJID='+quotedstr(fMJID)); + if radiogroup1.ItemIndex>1 then + sql.Add(',@flag=''1'' ') + else + sql.Add(',@flag=''0'' '); + sql.Add(',@userID='+quotedstr(trim(DCode))); + open; + end; + SCreateCDS20(ADOqueryTmp,CDS_Main); + SInitCDSData20(ADOqueryTmp,CDS_Main); + + with ADOqueryTmp do + begin + close; + sql.Clear; + sql.Add(' exec P_Get_JYMJID '); + sql.Add(' @MJID='+quotedstr(fMJID)); + sql.Add(',@Flag='+quotedstr('0')); + open; + end; + SCreateCDS20(ADOqueryTmp,CDS_T); + SCreateCDS20(ADOqueryTmp,CDS_Z); + SCreateCDS20(ADOqueryTmp,CDS_E); +// SInitCDSData20(ADOQueryMain,Order_Main); + + +//ֵͷϢ + with ADOqueryTmp do + begin + close; + sql.Clear; + sql.Add(' exec P_Get_JYMJID '); + sql.Add(' @MJID='+quotedstr(fMJID)); + if (radiogroup1.ItemIndex=1) or (radiogroup1.ItemIndex=3) then + sql.Add(',@Flag='+quotedstr('2')) + else + sql.Add(',@Flag='+quotedstr('1')); + open; + end; + with CDS_T do + begin + append; + fieldbyname('N').Value:=1; + post; + while not ADOqueryTmp.eof do + begin + edit; + fieldbyname('H'+inttostr(ADOqueryTmp.fieldbyname('keyNo').AsInteger)).Value:=ADOqueryTmp.fieldbyname('cdName').asstring; + post; + ADOqueryTmp.Next; + i:=i+1; + end; + end; + + + //ֵмεϢ + with ADOqueryTmp do + begin + close; + sql.Clear; + sql.Add(' exec P_Get_JYMJID '); + sql.Add(' @MJID='+quotedstr(fMJID)); + sql.Add(',@Flag='+quotedstr('3')); + open; + end; + i:=1; + j:=1; + with CDS_Z do + begin + for j:=1 to 150 do + begin + append; + fieldbyname('N').Value:=j; + post; + end; + end; + + with CDS_Z do + begin + while not ADOqueryTmp.Eof do + begin + IF Locate('N',ADOqueryTmp.fieldbyname('H').AsInteger,[]) then + begin + Edit; + for i:=2 to 15 do + begin + Fields[i].Value:='----'; + end; + fieldbyname('N1').Value:=ADOqueryTmp.fieldbyname('CDBeg').AsString; + + IF ADOqueryTmp.FieldByName('KouFenQty').AsFloat>0 then + begin + fieldbyname('H'+inttostr(ADOqueryTmp.fieldbyname('keyNo').AsInteger)).Value:=inttostr(ADOqueryTmp.fieldbyname('KouFenQty').AsInteger)+'p'; + end; + IF ADOqueryTmp.FieldByName('CDName').AsString='' then + begin + fieldbyname('E1').Value:='----'; + fieldbyname('E2').Value:='----'; + fieldbyname('E3').Value:=ADOqueryTmp.fieldbyname('CDQty').AsString; + end; + post; + + IF (ADOqueryTmp.FieldByName('koufenType').AsString='1覴') + and (ADOqueryTmp.FieldByName('H1').AsInteger>ADOqueryTmp.FieldByName('H').AsInteger ) then + begin + for i:=ADOqueryTmp.FieldByName('H').AsInteger to ADOqueryTmp.FieldByName('H1').AsInteger do + begin + IF Locate('N',i,[]) then + begin + Edit; + fieldbyname('H'+inttostr(ADOqueryTmp.fieldbyname('keyNo').AsInteger)).Value:='====='; + post; + end; + end; + end; + end; + ADOqueryTmp.Next; + end; + end; + + //ֵܽϢ + + with ADOqueryTmp do + begin + close; + sql.Clear; + sql.Add(' exec P_Get_JYMJID '); + sql.Add(' @MJID='+quotedstr(fMJID)); + sql.Add(',@Flag='+quotedstr('4')); + open; + end; + i:=1; + with CDS_E do + begin + append; + fieldbyname('N').Value:=1; + post; + while not ADOqueryTmp.eof do + begin + edit; + fieldbyname('H'+inttostr(ADOqueryTmp.fieldbyname('keyNo').AsInteger)).Value:=ADOqueryTmp.fieldbyname('num').asstring; + post; + ADOqueryTmp.Next; + i:=i+1; + end; + end; + if (radiogroup1.ItemIndex=0) or (radiogroup1.ItemIndex=2) then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\鵥Ϣ.rmf'; + if (radiogroup1.ItemIndex=1) or (radiogroup1.ItemIndex=3) then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\鵥Ϣ(Ӣ).rmf'; + if NOT FileExists(fPrintFile) then + begin + Application.MessageBox(PChar('û'+trim(fPrintFile)),'ʾ',MB_ICONERROR); + exit; + end; + RMGridReport1.LoadFromFile(fPrintFile); + if flag1=0 then + RMGridReport1.ShowReport; + If flag1=1 then + begin + + if not DirectoryExists(pchar('D:\pdfĵ')) then + CreateDirectory(pchar('D:\pdfĵ'),nil); + fstr1:='D:\pdfĵ\'+trim(CDS_Main.fieldbyname('ISHzEng').AsString)+'_'+trim(CDS_Main.fieldbyname('MJID').AsString)+'_'+trim(CDS_Main.fieldbyname('MJXH').AsString)+'.pdf'; + RMGridReport1.PrepareReport; +// RMGridReport1.ExportTo(RMllPDFExport1,fstr1); + end; + // RMGridReport1.PrepareReport; + // RMGridReport1.PrintReport10(); +// RMGridReport1.ExportTo(RMXLSExport1,'C:\111.excel'); +// RMGridReport1.ExportTo(RMllPDFExport1,'C:\111.pdf'); + + +end; + +procedure TfrmJYMJIDPRINT.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=cafree; +end; + +procedure TfrmJYMJIDPRINT.FormDestroy(Sender: TObject); +begin + frmJYMJIDPRINT:=nil; +end; + +procedure TfrmJYMJIDPRINT.Button1Click(Sender: TObject); +begin + Print1(0); +end; + +procedure TfrmJYMJIDPRINT.FormCreate(Sender: TObject); +begin + fMJID:='1504080304'; + Fflag:=0; +end; + +procedure TfrmJYMJIDPRINT.Button2Click(Sender: TObject); +begin + close; +end; + +procedure TfrmJYMJIDPRINT.Button3Click(Sender: TObject); +begin + + IF Fflag=1 then + begin + if frmCKProductBCPOutList.CDS_Main.IsEmpty then Exit; + if frmCKProductBCPOutList.CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + frmCKProductBCPOutList.CDS_Main.DisableControls; + with frmCKProductBCPOutList.CDS_Main do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean then + begin + fMJID:=frmCKProductBCPOutList.CDS_Main.fieldbyname('MJID').AsString; + Print1(1); + end; + Next; + end; + end; + frmCKProductBCPOutList.CDS_Main.EnableControls; + end + else + begin + if frmJYOrderCDOne.Order_Main.IsEmpty then Exit; + if frmJYOrderCDOne.Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + frmJYOrderCDOne.Order_Main.DisableControls; + with frmJYOrderCDOne.Order_Main do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean then + begin + fMJID:=frmJYOrderCDOne.Order_Main.fieldbyname('MJID').AsString; + Print1(1); + end; + Next; + end; + end; + frmJYOrderCDOne.Order_Main.EnableControls; + end; +end; + +end. diff --git a/盛纺贸易管理/U_JYOrderCDMore.dfm b/盛纺贸易管理/U_JYOrderCDMore.dfm new file mode 100644 index 0000000..dd89324 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDMore.dfm @@ -0,0 +1,612 @@ +object frmJYOrderCDMore: TfrmJYOrderCDMore + Left = 190 + Top = 126 + Width = 1161 + Height = 573 + Caption = #26816#39564#20998#26512 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1145 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1145 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #26816#39564#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 177 + Top = 15 + Width = 53 + Height = 12 + Caption = #35746' '#21333' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object TLabel + Left = 322 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 322 + Top = 39 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 444 + Top = 15 + Width = 47 + Height = 12 + Caption = #20811' '#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 177 + Top = 39 + Width = 54 + Height = 12 + Caption = #32568' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 444 + Top = 39 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object RadioGroup1: TRadioGroup + Left = 588 + Top = -5 + Width = 185 + Height = 71 + Columns = 2 + ItemIndex = 0 + Items.Strings = ( + #25353#35746#21333 + #25353#32568#21495) + TabOrder = 2 + OnClick = RadioGroup1Click + end + object OrderNo: TEdit + Tag = 2 + Left = 230 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 3 + OnChange = TBFindClick + OnKeyPress = OrderNoKeyPress + end + object MPRTMF: TEdit + Tag = 2 + Left = 350 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = TBFindClick + end + object PRTColor: TEdit + Tag = 2 + Left = 350 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 5 + OnChange = TBFindClick + end + object MPRTKZ: TEdit + Tag = 2 + Left = 498 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = TBFindClick + end + object gangno: TEdit + Tag = 2 + Left = 230 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 7 + OnChange = TBFindClick + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 498 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 8 + OnChange = TBFindClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 120 + Width = 1145 + Height = 369 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column12 + end + item + Kind = skSum + Column = v1Column13 + end + item + Kind = skSum + Column = v1Column14 + end + item + Kind = skSum + Column = v1Column15 + end + item + Kind = skSum + Column = v1Column16 + end + item + Kind = skSum + Column = v1Column17 + end + item + Kind = skSum + Column = v1Column18 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'gangno' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v1Column3: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column5: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column6: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Width = 57 + end + object v1Column18: TcxGridDBColumn + Caption = #32568#25968#37327 + DataBinding.FieldName = 'GangQty' + HeaderAlignmentHorz = taCenter + Width = 55 + end + object v1Column11: TcxGridDBColumn + Caption = #21305#25968#37327 + DataBinding.FieldName = 'JQty' + HeaderAlignmentHorz = taCenter + Width = 53 + end + object v1Column7: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column14: TcxGridDBColumn + Caption = #27491#21697#21305#25968 + DataBinding.FieldName = 'ZPPS' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #27491#21697#25968#37327 + DataBinding.FieldName = 'ZPQty' + HeaderAlignmentHorz = taCenter + Width = 64 + end + object v1Column15: TcxGridDBColumn + Caption = #27425#21697#21305#25968 + DataBinding.FieldName = 'CPPS' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column13: TcxGridDBColumn + Caption = #27425#21697#25968#37327 + DataBinding.FieldName = 'CPQty' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v1Column16: TcxGridDBColumn + Caption = #22810#25340#21305#25968 + DataBinding.FieldName = 'LYPS' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v1Column17: TcxGridDBColumn + Caption = #22810#25340#25968#37327 + DataBinding.FieldName = 'LYQty' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column10: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'CDUnit' + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column9: TcxGridDBColumn + Caption = #30133#28857#25968#37327 + DataBinding.FieldName = 'CDQty' + HeaderAlignmentHorz = taCenter + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 62 + Top = 180 + Width = 294 + Height = 213 + TabOrder = 3 + Visible = False + object Label11: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 99 + Width = 1145 + Height = 21 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 4 + Tabs.Strings = ( + #25968#37327#32479#35745 + #20010#25968#32479#35745) + OnChange = cxTabControl1Change + ClientRectBottom = 21 + ClientRectRight = 1145 + ClientRectTop = 19 + end + object MovePanel2: TMovePanel + Left = 408 + Top = 192 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 432 + Top = 200 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 464 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 496 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 528 + Top = 200 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 368 + Top = 200 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 400 + Top = 200 + end +end diff --git a/盛纺贸易管理/U_JYOrderCDMore.pas b/盛纺贸易管理/U_JYOrderCDMore.pas new file mode 100644 index 0000000..981c9e4 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDMore.pas @@ -0,0 +1,362 @@ +unit U_JYOrderCDMore; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC, MovePanel; + +type + TfrmJYOrderCDMore = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Panel4: TPanel; + Label11: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + RadioGroup1: TRadioGroup; + cxTabControl1: TcxTabControl; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + Label3: TLabel; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + OrderNo: TEdit; + MPRTMF: TEdit; + PRTColor: TEdit; + MPRTKZ: TEdit; + gangno: TEdit; + MPRTCodeName: TEdit; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + MovePanel2: TMovePanel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure AOrdDefNote4Change(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure RadioGroup1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + private + DQdate:TDateTime; + FLeft,FTop:Integer; + procedure InitGrid(); + procedure InitGrid10(); + procedure InitForm(); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmJYOrderCDMore: TfrmJYOrderCDMore; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmJYOrderCDMore.FormDestroy(Sender: TObject); +begin + frmJYOrderCDMore:=nil; +end; + +procedure TfrmJYOrderCDMore.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmJYOrderCDMore.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmJYOrderCDMore.TBCloseClick(Sender: TObject); +begin + Close; + //WriteCxGrid('鱨J',Tv1,'Ⱦ'); +end; + +procedure TfrmJYOrderCDMore.InitGrid(); +var + i:integer; + j,z:Integer; +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState,:FFsql '); + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + if cxTabControl1.TabIndex=0 then + Parameters.ParamByName('PState').Value:=RadioGroup1.ItemIndex+1 + else + Parameters.ParamByName('PState').Value:=RadioGroup1.ItemIndex+4; + Parameters.ParamByName('FFsql').Value:=''; + Open; + end; + SCreateCDSOnly(ADOQueryMain,Order_Main); + SInitCDSDataOnly(ADOQueryMain,Order_Main); + for i:=18 to Order_Main.FieldCount-1 do + begin + if Tv1.ColumnCount>i then + begin + + end else + Tv1.CreateColumn; + Tv1.Columns[i].Width:=68; + Tv1.Columns[i].DataBinding.FieldName:=Order_Main.Fields[i].FieldName; + Tv1.Columns[i].Caption:=Trim(Order_Main.Fields[i].FieldName); + tv1.Columns[i].Summary.FooterKind:=skSum; + end; + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmJYOrderCDMore.InitGrid10(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState '); + Parameters.ParamByName('begdate').Value:='2012-01-01'; + Parameters.ParamByName('enddate').Value:='2011-01-01'; + Parameters.ParamByName('PState').Value:=RadioGroup1.ItemIndex+1; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmJYOrderCDMore.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2014-07-11') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + InitGrid(); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + +end; + +procedure TfrmJYOrderCDMore.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + + +procedure TfrmJYOrderCDMore.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + if RadioGroup1.ItemIndex=0 then + SelExportData(Tv1,ADOQueryMain,'') + else + if RadioGroup1.ItemIndex=1 then + SelExportData(Tv1,ADOQueryMain,''); +end; + +procedure TfrmJYOrderCDMore.TBRafreshClick(Sender: TObject); +begin + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmJYOrderCDMore.AOrdDefNote4Change(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFiltersHint(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmJYOrderCDMore.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmJYOrderCDMore.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmJYOrderCDMore.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmJYOrderCDMore.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmJYOrderCDMore.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + {Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel4.Refresh; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; } +end; + +procedure TfrmJYOrderCDMore.RadioGroup1Click(Sender: TObject); +begin + if RadioGroup1.ItemIndex=0 then + begin + GangNo.Text:=''; + GangNo.ReadOnly:=True; + v1Column2.Visible:=False; + end else + begin + GangNo.ReadOnly:=False; + v1Column2.Visible:=True; + end; + TBRafresh.Click; +end; + +procedure TfrmJYOrderCDMore.cxTabControl1Change(Sender: TObject); +begin + TBRafresh.Click; + if cxTabControl1.TabIndex=0 then + v1Column9.Caption:='õ' + else + v1Column9.Caption:='õ'; +end; + +procedure TfrmJYOrderCDMore.OrderNoKeyPress(Sender: TObject; + var Key: Char); +var + i:Integer; +begin + if Key=#13 then + begin + if Length(Trim(OrderNo.Text))<4 then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState,:FFsql '); + Parameters.ParamByName('begdate').Value:='2010-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + if cxTabControl1.TabIndex=0 then + begin + Parameters.ParamByName('PState').Value:=RadioGroup1.ItemIndex+1; + Parameters.ParamByName('FFSql').Value:=' where C.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''''; + end + else + begin + Parameters.ParamByName('PState').Value:=RadioGroup1.ItemIndex+4; + Parameters.ParamByName('FFSql').Value:=' where C.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''''; + end; + + Open; + end; + SCreateCDSOnly(ADOQueryMain,Order_Main); + SInitCDSDataOnly(ADOQueryMain,Order_Main); + for i:=18 to Order_Main.FieldCount-1 do + begin + if Tv1.ColumnCount>i then + begin + + end else + Tv1.CreateColumn; + Tv1.Columns[i].Width:=68; + Tv1.Columns[i].DataBinding.FieldName:=Order_Main.Fields[i].FieldName; + Tv1.Columns[i].Caption:=Trim(Order_Main.Fields[i].FieldName); + tv1.Columns[i].Summary.FooterKind:=skSum; + end; + finally + ADOQueryMain.EnableControls; + end; + MovePanel2.Visible:=False; + end; + +end; + +end. diff --git a/盛纺贸易管理/U_JYOrderCDOne.dfm b/盛纺贸易管理/U_JYOrderCDOne.dfm new file mode 100644 index 0000000..1b4d89b --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne.dfm @@ -0,0 +1,1880 @@ +object frmJYOrderCDOne: TfrmJYOrderCDOne + Left = 229 + Top = 213 + Width = 1366 + Height = 738 + Caption = #26816#39564#25253#21578 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1350 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBZF: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20316#24223 + ImageIndex = 48 + Visible = False + OnClick = TBZFClick + end + object TBExport: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBManage: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #32534#36753 + ImageIndex = 58 + Visible = False + OnClick = TBManageClick + end + object TBBN: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #36716#21333 + ImageIndex = 41 + Visible = False + OnClick = TBBNClick + end + object TOrder: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #36716#25351#31034#21333 + ImageIndex = 86 + OnClick = TOrderClick + end + object TBAftChkHX: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #26816#21518#22238#20462 + ImageIndex = 54 + Wrap = True + Visible = False + OnClick = TBAftChkHXClick + end + object ToolButton3: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #25442#31639#31995#25968 + ImageIndex = 54 + OnClick = ToolButton3Click + end + object ToolButton5: TToolButton + Left = 87 + Top = 30 + Caption = #20462#25913#25968#37327#21333#20301 + ImageIndex = 54 + OnClick = ToolButton5Click + end + object TFH: TToolButton + Left = 194 + Top = 30 + AutoSize = True + Caption = #21457#36135#29366#24577 + ImageIndex = 54 + OnClick = TFHClick + end + object ToolButton4: TToolButton + Left = 281 + Top = 30 + AutoSize = True + Caption = #39044#35272#21367#26631#31614 + ImageIndex = 96 + OnClick = ToolButton4Click + end + object ToolButton1: TToolButton + Left = 380 + Top = 30 + AutoSize = True + Caption = #25171#21360#21367#26631#31614 + ImageIndex = 96 + Visible = False + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 479 + Top = 30 + AutoSize = True + Caption = #26816#39564#30721#21333 + ImageIndex = 12 + OnClick = ToolButton2Click + end + object ComboBox6: TComboBox + Left = 566 + Top = 33 + Width = 140 + Height = 24 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ItemIndex = 0 + ParentFont = False + TabOrder = 0 + Text = #26816#39564#30721#21333 + Items.Strings = ( + #26816#39564#30721#21333 + #26816#39564#30721#21333'1' + #26816#39564#30721#21333'2' + #26816#39564#30721#21333'3' + #26816#39564#30721#21333'4' + #26816#39564#30721#21333'5' + #26816#39564#30721#21333'6' + #26816#39564#30721#21333'7' + #26816#39564#30721#21333'8' + #26816#39564#30721#21333'9' + #26816#39564#30721#21333'10' + #26816#39564#30721#21333'11' + #26816#39564#30721#21333'('#20013#25991')' + #26816#39564#30721#21333#38463#26681#24311 + #26816#39564#30721#21333#26368#26032#29256#38463#26681#24311 + #26816#39564#30721#21333'TAG NO' + #26816#39564#30721#21333'('#27454#21495')' + #26816#39564#30721#21333'('#21360#33457')' + #26816#39564#30721#21333'('#26579#33394')' + #26816#39564#30721#21333'('#33457#22411')' + #26816#39564#30721#21333'FOCUS' + #26816#39564#30721#21333'royal' + #26816#39564#30721#21333'SAK' + '' + '') + end + object TBClose: TToolButton + Left = 706 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1350 + Height = 96 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 10 + Width = 52 + Height = 12 + Caption = #26816#39564#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 169 + Top = 10 + Width = 52 + Height = 12 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object TLabel + Left = 318 + Top = 10 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 318 + Top = 34 + Width = 40 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 444 + Top = 10 + Width = 39 + Height = 12 + Caption = #25171#30721#20154 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 169 + Top = 34 + Width = 52 + Height = 12 + Caption = #26579#21378#32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 444 + Top = 34 + Width = 39 + Height = 12 + Caption = #21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 571 + Top = 10 + Width = 54 + Height = 12 + Caption = #30133' '#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 571 + Top = 34 + Width = 54 + Height = 12 + Caption = #31867' '#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 169 + Top = 58 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 444 + Top = 58 + Width = 39 + Height = 12 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 1172 + Top = 16 + Width = 52 + Height = 12 + Caption = #25171#21360#20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label19: TLabel + Left = 709 + Top = 12 + Width = 49 + Height = 12 + Caption = 'PO #' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 709 + Top = 34 + Width = 54 + Height = 12 + Caption = #27454' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 1023 + Top = 113 + Width = 52 + Height = 12 + Caption = #26159#21542#21512#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 883 + Top = 94 + Width = 52 + Height = 12 + Caption = #26159#21542#25171#21253 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label26: TLabel + Left = 571 + Top = 58 + Width = 54 + Height = 12 + Caption = #33394' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 709 + Top = 58 + Width = 53 + Height = 12 + Caption = #33457' '#22411' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 186 + Top = 76 + Width = 601 + Height = 15 + Caption = #27880':'#36755#20837#25351#31034#21333#21495#65292#26579#21378#32568#21495#65292#25110#32773#21512#21516#21495#25353#22238#36710#38190#65292#33021#36339#36807#26085#26399#26597#35810#65292#33410#30465#26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 310 + Top = 58 + Width = 52 + Height = 12 + Caption = #39068#33394#33521#25991 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 980 + Top = 8 + Width = 57 + Height = 17 + AutoSize = False + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentColor = False + ParentFont = False + end + object Label13: TLabel + Left = 1040 + Top = 11 + Width = 65 + Height = 12 + Caption = #32418#33394#26159#27425#21697 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 980 + Top = 34 + Width = 117 + Height = 12 + Caption = #34013#33394#23383#20307#26159#26242#19981#21457#36135 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 848 + Top = 11 + Width = 52 + Height = 12 + Caption = #21457#36135#29366#24577 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 6 + Width = 91 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 30 + Width = 91 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 9 + end + object OrderNo: TEdit + Tag = 2 + Left = 222 + Top = 6 + Width = 70 + Height = 20 + TabOrder = 1 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + object conNO: TEdit + Tag = 2 + Left = 360 + Top = 6 + Width = 70 + Height = 20 + TabOrder = 2 + OnChange = Aorddefstr1Change + OnKeyPress = conNOKeyPress + end + object MJID: TEdit + Tag = 2 + Left = 485 + Top = 30 + Width = 70 + Height = 20 + TabOrder = 12 + OnKeyPress = MJIDKeyPress + end + object ZCDName: TEdit + Tag = 2 + Left = 628 + Top = 6 + Width = 70 + Height = 20 + TabOrder = 4 + OnChange = Aorddefstr1Change + end + object MJType: TComboBox + Tag = 2 + Left = 628 + Top = 30 + Width = 70 + Height = 20 + ItemHeight = 12 + TabOrder = 13 + OnChange = Aorddefstr1Change + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 222 + Top = 54 + Width = 70 + Height = 20 + TabOrder = 15 + OnChange = Aorddefstr1Change + OnKeyPress = MPRTCodeNameKeyPress + end + object factoryName: TEdit + Tag = 2 + Left = 485 + Top = 54 + Width = 70 + Height = 20 + TabOrder = 17 + OnChange = Aorddefstr1Change + end + object Filler: TComboBox + Tag = 1 + Left = 485 + Top = 6 + Width = 70 + Height = 20 + ItemHeight = 12 + TabOrder = 3 + OnChange = Aorddefstr1Change + end + object RadioGroup1: TRadioGroup + Left = 1244 + Top = 19 + Width = 137 + Height = 66 + Columns = 3 + ItemIndex = 0 + Items.Strings = ( + #27491#24120 + #22238#20462 + #20840#37096) + TabOrder = 8 + Visible = False + OnClick = RadioGroup1Click + end + object CheckBox1: TCheckBox + Left = 750 + Top = 93 + Width = 131 + Height = 17 + Caption = #26816#39564#25253#21578#33521#25991 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 21 + Visible = False + end + object CheckBox2: TCheckBox + Left = 28 + Top = 59 + Width = 97 + Height = 17 + Caption = #20840#36873 + TabOrder = 20 + OnClick = CheckBox2Click + end + object MJStr4: TEdit + Tag = 2 + Left = 222 + Top = 30 + Width = 70 + Height = 20 + TabOrder = 10 + OnChange = OrderNoChange + OnKeyPress = MJStr4KeyPress + end + object PrtColor: TEdit + Tag = 2 + Left = 360 + Top = 30 + Width = 70 + Height = 20 + TabOrder = 11 + OnChange = OrderNoChange + end + object ComboBox1: TComboBox + Left = 1228 + Top = 12 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 7 + Text = '1' + Visible = False + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object KHConNO: TEdit + Tag = 2 + Left = 762 + Top = 6 + Width = 71 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object StyleNo: TEdit + Tag = 2 + Left = 762 + Top = 30 + Width = 71 + Height = 20 + TabOrder = 14 + OnChange = OrderNoChange + end + object ISHZ: TComboBox + Tag = 2 + Left = 1076 + Top = 107 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 23 + OnChange = Aorddefstr1Change + Items.Strings = ( + '' + #21512#26684 + #19981#21512#26684 + '' + '' + '' + '') + end + object ISbao: TComboBox + Left = 936 + Top = 93 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 22 + Visible = False + OnChange = ISbaoChange + Items.Strings = ( + '' + '' + #24050#25171#21253 + #26410#25171#21253) + end + object PRTColorNo: TEdit + Tag = 2 + Left = 628 + Top = 54 + Width = 70 + Height = 20 + TabOrder = 18 + OnChange = OrderNoChange + end + object prthx: TEdit + Tag = 2 + Left = 762 + Top = 54 + Width = 71 + Height = 20 + TabOrder = 19 + OnChange = OrderNoChange + end + object SOrddefstr4: TEdit + Tag = 2 + Left = 360 + Top = 54 + Width = 70 + Height = 20 + TabOrder = 16 + OnChange = OrderNoChange + end + object FHStatus0: TComboBox + Tag = 2 + Left = 900 + Top = 7 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 6 + OnChange = Aorddefstr1Change + Items.Strings = ( + '' + #24453#21457#36135 + #26242#19981#21457#36135) + end + object CheckBox3: TCheckBox + Left = 295 + Top = 11 + Width = 21 + Height = 17 + TabOrder = 24 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 177 + Width = 1350 + Height = 354 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 3 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv1CellClick + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skCount + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column25 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + end + item + Kind = skCount + Column = v1Column23 + end + item + Kind = skSum + Column = v1SumQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + object v1Column22: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 48 + end + object v1Column1: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 85 + end + object v1MJStr4: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 62 + end + object v1Column13: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 58 + end + object v1Column31: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column38: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column3: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column5: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 64 + end + object v1Column18: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'factoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1filler: TcxGridDBColumn + Caption = #25805#20316#24037 + DataBinding.FieldName = 'filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column21: TcxGridDBColumn + Caption = #25171#30721#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 94 + end + object v1Column32: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column23: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v1Column27: TcxGridDBColumn + Caption = #30382#37325 + DataBinding.FieldName = 'MJQty3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1Column28: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 53 + end + object v1Column8: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 54 + end + object v1Column10: TcxGridDBColumn + Caption = #21367#38271#24230 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 56 + end + object v1Column11: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'MJTypeOther' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 58 + end + object v1ZCDName: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'ZCDName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column9: TcxGridDBColumn + Caption = #30133#28857#38271#24230 + DataBinding.FieldName = 'CDQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object v1SumQty: TcxGridDBColumn + Caption = #30133#28857#20010#25968 + DataBinding.FieldName = 'SumQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column25: TcxGridDBColumn + Caption = #36192#36865#25968#37327 + DataBinding.FieldName = 'MJQty2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v1MKXS: TcxGridDBColumn + Caption = #25442#31639#31995#25968 + DataBinding.FieldName = 'MKXS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column33: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'khconNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1StyleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1ConPerson2: TcxGridDBColumn + Caption = #25910#36135#20844#21496 + DataBinding.FieldName = 'ConPerson2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJFK: TcxGridDBColumn + Caption = #26816#39564#38376#24133 + DataBinding.FieldName = 'MJFK' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJSJKZ: TcxGridDBColumn + Caption = #26816#39564#20811#37325 + DataBinding.FieldName = 'MJSJKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1FHStatus: TcxGridDBColumn + Caption = #21457#36135#29366#24577 + DataBinding.FieldName = 'FHStatus' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJStr2: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'MJStr2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 74 + Top = 170 + Width = 294 + Height = 213 + TabOrder = 5 + Visible = False + object Label11: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object Panel2: TPanel + Left = 356 + Top = 192 + Width = 225 + Height = 117 + Color = clSkyBlue + TabOrder = 6 + Visible = False + object Label15: TLabel + Left = 24 + Top = 36 + Width = 24 + Height = 12 + Caption = #31995#25968 + end + object Label24: TLabel + Left = 24 + Top = 56 + Width = 24 + Height = 12 + Caption = #30382#37325 + end + object Label25: TLabel + Left = 24 + Top = 12 + Width = 48 + Height = 12 + Caption = #25442#31639#31867#22411 + end + object cxCurrencyEdit1: TcxCurrencyEdit + Left = 52 + Top = 32 + Properties.DecimalPlaces = 4 + Properties.DisplayFormat = '0.####' + Properties.Nullstring = '0' + TabOrder = 1 + Width = 121 + end + object Button1: TButton + Left = 32 + Top = 80 + Width = 60 + Height = 25 + Caption = #30830#23450 + TabOrder = 3 + OnClick = Button1Click + end + object Button2: TButton + Left = 128 + Top = 80 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 4 + OnClick = Button2Click + end + object cxCurrencyEdit2: TcxCurrencyEdit + Left = 52 + Top = 52 + Properties.DecimalPlaces = 4 + Properties.DisplayFormat = '0.####' + Properties.Nullstring = '0' + TabOrder = 2 + Width = 121 + end + object ComboBox4: TComboBox + Left = 76 + Top = 8 + Width = 97 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 0 + Text = #20928#37325#25442#31639#38271#24230 + Items.Strings = ( + #20928#37325#25442#31639#38271#24230 + #38271#24230#25442#31639#20928#37325) + end + end + object Panel3: TPanel + Left = 460 + Top = 216 + Width = 249 + Height = 153 + Color = clSkyBlue + TabOrder = 8 + Visible = False + object Check_bq: TCheckBox + Left = 44 + Top = 24 + Width = 65 + Height = 17 + Caption = #21253#26631#31614 + TabOrder = 1 + end + object ComboBox2: TComboBox + Left = 120 + Top = 20 + Width = 70 + Height = 20 + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 0 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object ComboBox3: TComboBox + Left = 120 + Top = 52 + Width = 70 + Height = 20 + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 2 + Text = '1' + Visible = False + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object Fbq: TBtnEditA + Left = 64 + Top = 76 + Width = 125 + Height = 20 + TabOrder = 4 + Visible = False + OnBtnClick = FbqBtnClick + end + object check_Fbz: TCheckBox + Left = 44 + Top = 56 + Width = 73 + Height = 17 + Caption = #21253#21103#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 3 + Visible = False + end + object Button3: TButton + Left = 32 + Top = 112 + Width = 75 + Height = 25 + Caption = #25171#21360 + TabOrder = 5 + OnClick = Button3Click + end + object Button4: TButton + Left = 148 + Top = 112 + Width = 75 + Height = 25 + Caption = #20851#38381 + TabOrder = 6 + OnClick = Button4Click + end + end + object Panel5: TPanel + Left = 556 + Top = 284 + Width = 273 + Height = 101 + Color = clSkyBlue + TabOrder = 9 + Visible = False + object Label28: TLabel + Left = 48 + Top = 28 + Width = 48 + Height = 12 + Caption = #25968#37327#21333#20301 + end + object ComboBox5: TComboBox + Left = 100 + Top = 24 + Width = 145 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 0 + Items.Strings = ( + '' + 'M' + 'Y' + 'KG') + end + object Button5: TButton + Left = 32 + Top = 64 + Width = 60 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button5Click + end + object Button6: TButton + Left = 172 + Top = 64 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button6Click + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 531 + Width = 1350 + Height = 168 + Align = alBottom + TabOrder = 10 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'CDName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 144 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20010#25968 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Width = 96 + end + object v2Column2: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'CDend' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 93 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 93 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #36127#36131#20154 + DataBinding.FieldName = 'CDReason' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 131 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object Panel6: TPanel + Left = 546 + Top = 196 + Width = 273 + Height = 101 + Color = clSkyBlue + TabOrder = 7 + Visible = False + object Label14: TLabel + Left = 36 + Top = 28 + Width = 60 + Height = 12 + Caption = #22238#20462#21152#24037#21378 + end + object Button7: TButton + Left = 32 + Top = 64 + Width = 60 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button7Click + end + object Button8: TButton + Left = 172 + Top = 64 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button8Click + end + object FactoryName1: TEdit + Left = 100 + Top = 24 + Width = 121 + Height = 20 + TabOrder = 0 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 158 + Width = 1350 + Height = 19 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 2 + Properties.CustomButtons.Buttons = <> + Properties.Style = 9 + Properties.TabIndex = 0 + Properties.Tabs.Strings = ( + #26410#20986#24211 + #24050#20986#24211 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectRight = 0 + ClientRectTop = 0 + end + object Panel7: TPanel + Left = 805 + Top = 260 + Width = 273 + Height = 100 + Color = clSkyBlue + TabOrder = 4 + Visible = False + object Label30: TLabel + Left = 50 + Top = 28 + Width = 48 + Height = 12 + Caption = #21457#36135#29366#24577 + end + object Button9: TButton + Left = 32 + Top = 64 + Width = 60 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button9Click + end + object Button10: TButton + Left = 172 + Top = 64 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button10Click + end + object FHStatus1: TComboBox + Left = 100 + Top = 24 + Width = 121 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 0 + Items.Strings = ( + #26242#19981#21457#36135 + '') + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 604 + Top = 392 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 440 + Top = 128 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 516 + Top = 392 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 560 + Top = 392 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 376 + Top = 188 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 404 + Top = 189 + end + object PopupMenu1: TPopupMenu + Left = 460 + Top = 424 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 432 + Top = 256 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 764 + Top = 312 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 736 + Top = 312 + end + object CDS_CD: TClientDataSet + Aggregates = <> + Params = <> + Left = 342 + Top = 188 + end + object RMCD: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 253 + Top = 424 + ReportData = {} + end + object RMDBCD: TRMDBDataSet + Visible = True + DataSet = CDS_CD + Left = 792 + Top = 312 + end + object CDS_LS: TClientDataSet + Aggregates = <> + Params = <> + Left = 808 + Top = 364 + end + object RM3: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 432 + Top = 284 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 200 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 488 + Top = 424 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 432 + Top = 425 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 404 + Top = 424 + end + object RMDBPRT: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 835 + Top = 367 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 864 + Top = 364 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 460 + Top = 188 + end + object Print_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 489 + Top = 188 + end + object CDS_COL: TClientDataSet + Aggregates = <> + Params = <> + Left = 548 + Top = 424 + end + object RMDBCOL: TRMDBDataSet + Visible = True + DataSet = CDS_COL + Left = 587 + Top = 439 + end + object DataSource2: TDataSource + DataSet = Order_MJ + Left = 408 + Top = 464 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 448 + Top = 464 + end + object ADOTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 492 + Top = 464 + end + object CDS_WXPTPrint: TClientDataSet + Aggregates = <> + Params = <> + Left = 1010 + Top = 375 + end + object CDS_WXPT: TClientDataSet + Aggregates = <> + Params = <> + Left = 978 + Top = 375 + end + object RMDBWXPTPrint: TRMDBDataSet + Visible = True + DataSet = CDS_WXPTPrint + Left = 944 + Top = 374 + end + object CDS_CX: TClientDataSet + Aggregates = <> + Params = <> + Left = 1179 + Top = 316 + end + object RMDBCX: TRMDBDataSet + Visible = True + DataSet = CDS_CX + Left = 1146 + Top = 315 + end + object RMDB_MXCol: TRMDBDataSet + Visible = True + DataSet = Ord_Mx + Left = 1063 + Top = 531 + end + object Ord_Mx: TClientDataSet + Aggregates = <> + Params = <> + Left = 990 + Top = 528 + end + object RMJPEGExport1: TRMJPEGExport + ShowDialog = False + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + ProgressiveEncoding = False + PixelFormat = pf32bit + Left = 888 + Top = 84 + end +end diff --git a/盛纺贸易管理/U_JYOrderCDOne.pas b/盛纺贸易管理/U_JYOrderCDOne.pas new file mode 100644 index 0000000..68dcfaf --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne.pas @@ -0,0 +1,3439 @@ +unit U_JYOrderCDOne; + +interface + +uses + Windows, Messages, SysUtils, Variants, StrUtils, Classes, Graphics, Controls, + Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, + RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, MovePanel, cxTextEdit, + cxContainer, cxCurrencyEdit, U_SMLB, BtnEdit, RM_e_main, RM_e_htm, + RM_e_Graphic, RM_e_Jpeg, RM_e_txt, RM_e_csv, RM_E_llPDF, cxButtonEdit, cxPC, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, + dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, + dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, + dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, + dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, + dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, + dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, + dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmJYOrderCDOne = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + TBExport: TToolButton; + Order_Main: TClientDataSet; + conNO: TEdit; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + MJID: TEdit; + Label2: TLabel; + ZCDName: TEdit; + Panel4: TPanel; + Label11: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column1: TcxGridDBColumn; + v1MJStr4: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + Label4: TLabel; + MJType: TComboBox; + v1Column13: TcxGridDBColumn; + Label5: TLabel; + MPRTCodeName: TEdit; + v1Column18: TcxGridDBColumn; + Label12: TLabel; + factoryName: TEdit; + v1Column21: TcxGridDBColumn; + Filler: TComboBox; + TBManage: TToolButton; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + TBZF: TToolButton; + ToolButton1: TToolButton; + RM2: TRMGridReport; + RMDBMain: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + v1Column25: TcxGridDBColumn; + TBAftChkHX: TToolButton; + RadioGroup1: TRadioGroup; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + ToolButton2: TToolButton; + CDS_CD: TClientDataSet; + RMCD: TRMGridReport; + RMDBCD: TRMDBDataSet; + CDS_LS: TClientDataSet; + CheckBox1: TCheckBox; + ToolButton3: TToolButton; + Panel2: TPanel; + Label15: TLabel; + cxCurrencyEdit1: TcxCurrencyEdit; + Button1: TButton; + Button2: TButton; + v1MKXS: TcxGridDBColumn; + CheckBox2: TCheckBox; + MJStr4: TEdit; + PrtColor: TEdit; + Label18: TLabel; + ComboBox1: TComboBox; + RM3: TRMGridReport; + v1Column31: TcxGridDBColumn; + v1Column32: TcxGridDBColumn; + v1Column33: TcxGridDBColumn; + Panel3: TPanel; + Check_bq: TCheckBox; + ComboBox2: TComboBox; + ComboBox3: TComboBox; + Fbq: TBtnEditA; + check_Fbz: TCheckBox; + Button3: TButton; + Button4: TButton; + KHConNO: TEdit; + Label19: TLabel; + v1StyleNo: TcxGridDBColumn; + StyleNo: TEdit; + Label21: TLabel; + Label22: TLabel; + ISHZ: TComboBox; + RMXLSExport1: TRMXLSExport; + ISbao: TComboBox; + Label23: TLabel; + CDS_HZ: TClientDataSet; + RMDBHZ: TRMDBDataSet; + cxCurrencyEdit2: TcxCurrencyEdit; + Label24: TLabel; + TBBN: TToolButton; + Label25: TLabel; + ComboBox4: TComboBox; + RMDBPRT: TRMDBDataSet; + CDS_PRT: TClientDataSet; + v1Column38: TcxGridDBColumn; + PRTColorNo: TEdit; + Label26: TLabel; + prthx: TEdit; + Label27: TLabel; + Panel5: TPanel; + Label28: TLabel; + ComboBox5: TComboBox; + Button5: TButton; + Button6: TButton; + v1ConPerson2: TcxGridDBColumn; + v1SumQty: TcxGridDBColumn; + ComboBox6: TComboBox; + ADOQuery1: TADOQuery; + Print_HZ: TClientDataSet; + CDS_COL: TClientDataSet; + RMDBCOL: TRMDBDataSet; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DataSource2: TDataSource; + Order_MJ: TClientDataSet; + ADOTmp: TADOQuery; + Panel6: TPanel; + Label14: TLabel; + Button7: TButton; + Button8: TButton; + FactoryName1: TEdit; + Label16: TLabel; + v1ZCDName: TcxGridDBColumn; + Label20: TLabel; + SOrddefstr4: TEdit; + cxTabControl1: TcxTabControl; + v1MJFK: TcxGridDBColumn; + v1MJSJKZ: TcxGridDBColumn; + TFH: TToolButton; + v1FHStatus: TcxGridDBColumn; + Label6: TLabel; + Label13: TLabel; + Label29: TLabel; + Panel7: TPanel; + Label30: TLabel; + Button9: TButton; + Button10: TButton; + FHStatus1: TComboBox; + v1MJStr2: TcxGridDBColumn; + TOrder: TToolButton; + v1filler: TcxGridDBColumn; + Label17: TLabel; + FHStatus0: TComboBox; + CDS_WXPTPrint: TClientDataSet; + CDS_WXPT: TClientDataSet; + RMDBWXPTPrint: TRMDBDataSet; + CDS_CX: TClientDataSet; + RMDBCX: TRMDBDataSet; + RMDB_MXCol: TRMDBDataSet; + Ord_Mx: TClientDataSet; + RMJPEGExport1: TRMJPEGExport; + ToolButton4: TToolButton; + ToolButton5: TToolButton; + CheckBox3: TCheckBox; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure TBManageClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure TBZFClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure RadioGroup1Click(Sender: TObject); + procedure TBAftChkHXClick(Sender: TObject); + procedure Aorddefstr1Change(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + procedure PRTColorChange(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton2Click(Sender: TObject); + procedure v1Column15PropertiesEditValueChanged(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure TOrderClick(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure FbqBtnClick(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure APIDKeyPress(Sender: TObject; var Key: Char); + procedure ISbaoChange(Sender: TObject); + procedure TBBNClick(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure TADDClick(Sender: TObject); + procedure TUpdateClick(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure Button8Click(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure MJStr4KeyPress(Sender: TObject; var Key: Char); + procedure MPRTCodeNameKeyPress(Sender: TObject; var Key: Char); + procedure conNOKeyPress(Sender: TObject; var Key: Char); + procedure cxTabControl1Change(Sender: TObject); + procedure TFHClick(Sender: TObject); + procedure Button9Click(Sender: TObject); + procedure Button10Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + private + DQdate: TDateTime; + FLeft, FTop: Integer; + procedure InitGrid(); + procedure InitGrid10(); + procedure InitForm(); + function Savedata(): Boolean; + procedure GetCDSData(); + procedure GetBGData(); + function YSData(): Boolean; + procedure Print_WXPT2(); + procedure Print_WXPT3(); + procedure Print_WXPT8(); + { Private declarations } + public + FFInt: Integer; + FAPID, FMJType, FFiller, FMJStr2: string; + FBeg, FEnd, canshu1: string; + { Public declarations } + end; + +var + frmJYOrderCDOne: TfrmJYOrderCDOne; + +implementation + +uses + U_DataLink, U_OrderInPut, U_Fun, U_MJEdit, U_CPDBAO, U_CPGangNo, U_JYMJIDPRINT, + U_ZDYHelp, U_JYOrderCDOne_LR, U_ProductOrderListSel_cx, U_ProductOrderListSel; + +{$R *.dfm} +procedure TfrmJYOrderCDOne.Print_WXPT8(); +var + FMJId, fmjunit: string; + i, j, z: Integer; + FSumQty, FSumQtyM, FSumPS: Double; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select SYRName=cast('''' as varchar(70)),ConNO=cast('''' as varchar(70)),Filltime=cast(NULL as datetime),PRTHX=cast('''' as varchar(70)),'); + sql.add('orddefstr3=cast('''' as varchar(70)),MPRTCodeName=cast('''' as varchar(60)),PRTColorNo=cast('''' as varchar(60))'); + sql.add(',PrtCodeNo=cast('''' as varchar(70)),GangNo=cast('''' as varchar(70)),SOrddefstr4=cast('''' as varchar(70)),XX=cast('''' as varchar(70)),XH=Cast(0 as int)'); + sql.Add(',Qty0=Cast('''' as varchar(50)),PRTspec=cast('''' as varchar(70)),MJXH=cast('''' as varchar(10))'); + sql.Add(',Qty1=Cast('''' as varchar(50)),PRTMF=cast('''' as varchar(70))'); + sql.Add(',Qty2=Cast('''' as varchar(50)),PRTKZ=cast('''' as varchar(70))'); + sql.Add(',Qty3=Cast('''' as varchar(50)),CustomerNoName=cast('''' as varchar(70))'); + sql.Add(',Qty4=Cast('''' as varchar(50))'); + sql.Add(',Qty5=Cast('''' as varchar(50))'); + sql.Add(',Qty6=Cast('''' as varchar(50))'); + sql.Add(',Qty7=Cast('''' as varchar(50))'); + sql.Add(',Qty8=Cast('''' as varchar(50))'); + sql.Add(',Qty9=Cast('''' as varchar(50))'); + sql.add(',SumMQty=cast(0 as decimal(18,2)),SumYQty=cast(0 as decimal(18,2)),SumKGQty=cast(0 as decimal(18,2))'); + sql.Add(',SumJZQty=cast(0 as decimal(18,2)),PS=cast(0 as decimal(18,2))'); + sql.add(',CPPS=cast(0 as decimal(18,2)),CPQty=cast(0 as decimal(18,2)),CPKGQty=cast(0 as decimal(18,2))'); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_CD); + SInitCDSData20(ADOQueryTemp, CDS_CD); + if CDS_CD.IsEmpty = False then + CDS_CD.Delete; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD3_copy1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.add(',@flag=''11'''); + sql.add(',@Status= ' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus= ' + quotedstr(Trim(Order_Main.FieldByName('FHStatus').AsString))); +// ShowMessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_LS); + SInitCDSData20(ADOQueryTemp, CDS_LS); + if Trim(Order_Main.FieldByName('MJTypeOther').AsString) = 'M' then + begin + fmjunit := 'MTS'; + end; + if Trim(Order_Main.FieldByName('MJTypeOther').AsString) = 'Y' then + begin + fmjunit := 'YDS'; + end; + CDS_LS.DisableControls; + with CDS_LS do + begin + First; + while not Eof do + begin + if CDS_CD.IsEmpty then + begin + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value := 1; + FieldByName('XX').Value := 'RL NO'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumMQty').AsFloat := 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := 2; + FieldByName('XX').Value := fmjunit; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumYQty').AsFloat := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := 3; + FieldByName('XX').Value := 'KGS'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumKGQty').AsFloat := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + i := 0; //к + j := 0; //ҳ + z := 3; //к + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + end + else + begin + if Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString) = FMJId then + begin + i := i + 1; + if i < 10 then + begin + CDS_CD.Locate('XH', z - 2, []); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := i + 1; + fieldbyname('SumMQty').Value := fieldbyname('SumMQty').Value + 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + CDS_CD.Locate('XH', z - 1, []); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := i + 1; + fieldbyname('SumYQty').Value := fieldbyname('SumYQty').Value + CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + CDS_CD.Locate('XH', z, []); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('MJqty4').Value; + fieldbyname('PS').Value := i + 1; + fieldbyname('SumKGQty').Value := fieldbyname('SumKGQty').Value + CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + end + else + begin + i := 0; + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value := z + 1; + FieldByName('XX').Value := 'RL NO'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumMQty').AsFloat := 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 2; + FieldByName('XX').Value := fmjunit; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumYQty').AsFloat := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 3; + FieldByName('XX').Value := 'KGS'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumKGQty').AsFloat := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + i := 0; //к + j := 0; //ҳ + z := z + 3; //к + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + end; + end + else + begin + i := 0; + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value := z + 1; + FieldByName('XX').Value := 'RL NO'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumMQty').AsFloat := 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 2; + FieldByName('XX').Value := fmjunit; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumYQty').AsFloat := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 3; + FieldByName('XX').Value := 'KGS'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumKGQty').AsFloat := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + i := 0; //к + j := 0; //ҳ + z := z + 3; //к + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + end; + end; + Next; + end; + end; + CDS_LS.EnableControls; +end; + +procedure TfrmJYOrderCDOne.Print_WXPT3(); +var + FMJId, fmjunit: string; + i, j, z: Integer; + FSumQty, FSumQtyM, FSumPS: Double; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select SYRName=cast('''' as varchar(70)),ConNO=cast('''' as varchar(70)),Filltime=cast(NULL as datetime),PRTHX=cast('''' as varchar(70)),'); + sql.add('orddefstr3=cast('''' as varchar(70)),MPRTCodeName=cast('''' as varchar(60)),PRTColorNo=cast('''' as varchar(60))'); + sql.add(',PrtCodeNo=cast('''' as varchar(70)),GangNo=cast('''' as varchar(70)),SOrddefstr4=cast('''' as varchar(70)),XX=cast('''' as varchar(70)),XH=Cast(0 as int)'); + sql.Add(',Qty0=Cast('''' as varchar(50)),PRTspec=cast('''' as varchar(70)),MJXH=cast('''' as varchar(10))'); + sql.Add(',Qty1=Cast('''' as varchar(50)),PRTMF=cast('''' as varchar(70))'); + sql.Add(',Qty2=Cast('''' as varchar(50)),PRTKZ=cast('''' as varchar(70))'); + sql.Add(',Qty3=Cast('''' as varchar(50)),CustomerNoName=cast('''' as varchar(70))'); + sql.Add(',Qty4=Cast('''' as varchar(50))'); + sql.Add(',Qty5=Cast('''' as varchar(50))'); + sql.Add(',Qty6=Cast('''' as varchar(50))'); + sql.Add(',Qty7=Cast('''' as varchar(50))'); + sql.Add(',Qty8=Cast('''' as varchar(50))'); + sql.Add(',Qty9=Cast('''' as varchar(50))'); + sql.add(',SumMQty=cast(0 as decimal(18,2)),SumYQty=cast(0 as decimal(18,2)),SumKGQty=cast(0 as decimal(18,2))'); + sql.Add(',SumJZQty=cast(0 as decimal(18,2)),PS=cast(0 as decimal(18,2))'); + sql.add(',CPPS=cast(0 as decimal(18,2)),CPQty=cast(0 as decimal(18,2)),CPKGQty=cast(0 as decimal(18,2))'); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_CD); + SInitCDSData20(ADOQueryTemp, CDS_CD); + if CDS_CD.IsEmpty = False then + CDS_CD.Delete; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD3 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.add(',@flag=''1'''); + sql.Add(',@FHStatus= ' + quotedstr(Trim(Order_Main.FieldByName('FHStatus').AsString))); +// ShowMessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_LS); + SInitCDSData20(ADOQueryTemp, CDS_LS); + if Trim(Order_Main.FieldByName('MJTypeOther').AsString) = 'M' then + begin + fmjunit := 'MTS'; + end; + if Trim(Order_Main.FieldByName('MJTypeOther').AsString) = 'Y' then + begin + fmjunit := 'YDS'; + end; + CDS_LS.DisableControls; + with CDS_LS do + begin + First; + while not Eof do + begin + if CDS_CD.IsEmpty then + begin + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value := 1; + FieldByName('XX').Value := 'RL NO'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumMQty').AsFloat := 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := 2; + FieldByName('XX').Value := fmjunit; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumYQty').AsFloat := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := 3; + FieldByName('XX').Value := 'KGS'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumKGQty').AsFloat := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + i := 0; //к + j := 0; //ҳ + z := 3; //к + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + end + else + begin + if Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString) = FMJId then + begin + i := i + 1; + if i < 10 then + begin + CDS_CD.Locate('XH', z - 2, []); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := i + 1; + fieldbyname('SumMQty').Value := fieldbyname('SumMQty').Value + 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + CDS_CD.Locate('XH', z - 1, []); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := i + 1; + fieldbyname('SumYQty').Value := fieldbyname('SumYQty').Value + CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + CDS_CD.Locate('XH', z, []); + with CDS_CD do + begin + Edit; + GetCDSData(); + FieldByName('Qty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('MJqty4').Value; + fieldbyname('PS').Value := i + 1; + fieldbyname('SumKGQty').Value := fieldbyname('SumKGQty').Value + CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + end + else + begin + i := 0; + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value := z + 1; + FieldByName('XX').Value := 'RL NO'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumMQty').AsFloat := 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 2; + FieldByName('XX').Value := fmjunit; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumYQty').AsFloat := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 3; + FieldByName('XX').Value := 'KGS'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumKGQty').AsFloat := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + i := 0; //к + j := 0; //ҳ + z := z + 3; //к + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + end; + end + else + begin + i := 0; + with CDS_CD do + begin + Append; + GetCDSData(); + FieldByName('XH').Value := z + 1; + FieldByName('XX').Value := 'RL NO'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJXH').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumMQty').AsFloat := 1; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 2; + FieldByName('XX').Value := fmjunit; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumYQty').AsFloat := CDS_LS.fieldbyname('Qty').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + Append; + GetCDSData(); + FieldByName('XH').Value := z + 3; + FieldByName('XX').Value := 'KGS'; + FieldByName('Qty0').Value := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('PS').Value := 1; + fieldbyname('SumKGQty').AsFloat := CDS_LS.fieldbyname('MJqty4').AsFloat; + fieldbyname('CPPS').AsFloat := CDS_LS.fieldbyname('SumColZJ').AsFloat; + fieldbyname('CPQty').AsFloat := CDS_LS.fieldbyname('sumColQty').AsFloat; + fieldbyname('CPKGQty').AsFloat := CDS_LS.fieldbyname('sumColJZ').AsFloat; + Post; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + i := 0; //к + j := 0; //ҳ + z := z + 3; //к + end; + FSumQty := FSumQty + CDS_LS.fieldbyname('MJqty4').AsFloat; + FSumQtyM := FSumQtyM + CDS_LS.fieldbyname('Qty').AsFloat; + FSumPS := FSumPS + 1; + FMJId := Trim(CDS_LS.fieldbyname('PRTHX').AsString) + Trim(CDS_LS.fieldbyname('PRTColorNo').AsString) + Trim(CDS_LS.fieldbyname('GangNo').AsString); + end; + end; + Next; + end; + end; + CDS_LS.EnableControls; +end; + +function TfrmJYOrderCDOne.YSData(): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; +begin + Result := False; + with Order_Main do + begin + First; + while not Eof do + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 * from JYOrderCon_Sub Where Subid=''' + Trim(Order_Main.fieldbyname('ConID').AsString) + ''''); + Open; + end; + PriceUnit := Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit := Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ComTaiTou from JYOrder_Main where Mainid=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + Open; + end; + FComTaiTou := Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(FactoryName1.Text) + ''''); + Open; + end; + if ADOQueryTemp.IsEmpty = False then + begin + CRID := ADOQueryTemp.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(FactoryName1.Text); + FieldByName('ZdyStr1').Value := 'Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName=''' + Trim(FactoryName1.Text) + ''''); + sql.Add(' and YFTypeId=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd, YFID, 'HX', 'YF_Money_CR', 3, 1) = False then + begin + Application.MessageBox('ȡƷӦʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('MJID').AsString); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('status').Value := '0'; + FieldByName('CRType').Value := 'ӦտǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := Trim(FactoryName1.Text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', now)); + FieldByName('YFType').Value := 'Զ'; + //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := Trim(PriceUnit); + FieldByName('QtyUnit').Value := Trim(OrderUnit); + FieldByName('ComTaiTou').Value := Trim(FComTaiTou); + FieldByName('YFName').Value := '۽'; + FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('ConID').AsString); + Post; + end; + end + else + begin + YFID := Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.MJQty4),0) from WFB_MJJY A '); + sql.Add(' inner join JYOrdercon_Sub B on A.SubId=B.Conid where'); + SQL.Add(' A.MJID=YF_Money_CR.YFTypeId and CPType=''Ʒ'' )'); + sql.Add(' where YFTypeId=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFId=''' + Trim(YFID) + ''''); + Open; + end; + if ADOQueryTemp.FieldByName('Qty').Value = 0 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR where YFID=''' + Trim(YFID) + ''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where CRId=' + CRID); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_KC where CRId=' + CRID); + ExecSQL; + end; + end; + Next; + end; + end; + Result := True; +end; + +procedure TfrmJYOrderCDOne.FormDestroy(Sender: TObject); +begin + frmJYOrderCDOne := nil; +end; + +procedure TfrmJYOrderCDOne.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmJYOrderCDOne.FormCreate(Sender: TObject); +begin + cxgrid1.Align := alClient; + DQdate := SGetServerDate(ADOQueryTemp); + canshu1 := trim(DParameters1); +end; + +procedure TfrmJYOrderCDOne.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('鱨JF', Tv1, ''); +end; + +procedure TfrmJYOrderCDOne.InitGrid(); +var + i: integer; + j: Integer; + fsj: string; +begin + fsj := ' where A.FillTime>=''' + trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''' ' + 'and A.FillTime<''' + trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''' and A.WCStatus='''' '; + if (FBeg <> '') and (FEnd <> '') then + begin + fsj := fsj + ' and A.MJType=''' + trim(FMJType) + ''' and A.Filler=''' + trim(FFiller) + ''' ' + ' and isnull(A.MJStr2,'''')=''' + trim(FMJStr2) + ''' and A.APID=''' + trim(FAPID) + ''''; + end + else + begin + if trim(canshu1) = 'ҵԱ' then + begin + fsj := fsj + ' and CC.YWY=''' + trim(Dname) + ''''; + end; + if cxtabControl1.TabIndex = 0 then + begin + fsj := fsj + ' and isnull(A.MJStr2,'''')=''δ'' '; + end; + if cxtabControl1.TabIndex = 1 then + begin + fsj := fsj + ' and isnull(A.MJStr2,'''')<>''δ'' '; + end; + end; + if Trim(DParameters2) = 'Ʒ' then + begin + fsj := fsj + ' and isnull(A.MJType,'''')=''Ʒ'' '; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value := FormatDateTime('yyyy-MM-dd', BegDate.DateTime); + Parameters.ParamByName('enddate').Value := FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1); + Parameters.ParamByName('PState').Value := 1; + Parameters.ParamByName('FFSql').Value := fsj; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ; + ADOQueryMain.EnableControls; + //TBFind.Click; + end; +end; + +procedure TfrmJYOrderCDOne.InitGrid10(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState '); + Parameters.ParamByName('begdate').Value := '2012-01-01'; + Parameters.ParamByName('enddate').Value := '2011-01-01'; + Parameters.ParamByName('PState').Value := 3; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmJYOrderCDOne.InitForm(); +var + fsj: string; +begin + ReadCxGrid('鱨JF', Tv1, ''); + fsj := 'select distinct(Filler) name from WFB_MJJY '; + SInitComBoxBySql(ADOQueryCmd, Filler, False, fsj); + if (FBeg <> '') and (FEnd <> '') then + begin + BegDate.DateTime := strtodatetime(FBeg); + EndDate.DateTime := strtodatetime(FEnd); + InitGrid(); + end + else + begin + BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 1; + EndDate.DateTime := SGetServerDate10(ADOQueryTemp); + end; + //InitGrid(); +end; + +procedure TfrmJYOrderCDOne.TBFindClick(Sender: TObject); +var + fsj, fwhere: string; +begin + if ADOQueryMain.Active = False then + Exit; + + fwhere := SGetFilters(Panel1, 1, 2); + fsj := ''; + if trim(fsj) <> '' then + begin + if fwhere = '' then + fwhere := fsj + else + fwhere := fwhere + ' and ' + fsj; + end; + SDofilter(ADOQueryMain, fwhere); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmJYOrderCDOne.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + Exit; + SelExportData(Tv1, ADOQueryMain, '鱨'); +end; + +procedure TfrmJYOrderCDOne.TBRafreshClick(Sender: TObject); +begin + OrderNo.SetFocus; + {MovePanel2.Left:=(self.Width-MovePanel2.Width) div 2; + MovePanel2.Visible:=True; + MovePanel2.Refresh;} + InitGrid(); + //MovePanel2.Visible:=False; +end; + +procedure TfrmJYOrderCDOne.OrderNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne.FormShow(Sender: TObject); +begin + if Trim(DParameters2) = '' then + begin + TBManage.Visible := True; + TBZF.Visible := True; + TBBN.Visible := true; + ToolButton1.Visible := true; + v1Column22.Visible := true; + ToolButton5.Visible := true; + TOrder.Visible := true; + TBAftChkHX.Visible := True; + end + else + begin + v1Column22.Visible := False; + TOrder.Visible := false; + end; + if Trim(DParameters2) = 'Ʒ' then + begin + MJType.ItemIndex := MJType.Items.IndexOf('Ʒ'); + MJType.Enabled := false; + end; + InitForm(); + RMCD.CanExport := true +end; + +procedure TfrmJYOrderCDOne.Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmJYOrderCDOne.Image2Click(Sender: TObject); +begin + Panel4.Visible := False; +end; + +procedure TfrmJYOrderCDOne.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft := X; + FTop := Y; +end; + +procedure TfrmJYOrderCDOne.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Left := FLeft; + Panel4.Top := FTop + 110; + Panel4.Visible := True; + Panel4.Refresh; + Panel10.Caption := Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text := Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; +end; + +procedure TfrmJYOrderCDOne.TBManageClick(Sender: TObject); +begin + if Order_Main.IsEmpty then + exit; + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Order_Main.EnableControls; + Application.MessageBox('Ѳݲɾ!','ʾ',0); + Exit; + end;} + if Order_Main.FieldByName('MJStr2').AsString <> 'δ' then + begin + application.MessageBox('˾ɨ,ܱ༭', 'ʾ'); + exit; + end; + try + frmMJEdit := TfrmMJEdit.Create(Application); + with frmMJEdit do + begin + MJID.Text := Trim(Self.Order_Main.fieldbyname('MJID').AsString); + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,OrdUnit=(select isnull(B.LengUnit,E.OrderUnit) from JYorder_Main B inner join JYorder_Sub E on B.Mainid=E.Mainid '); + sql.Add(' where E.Mainid=A.Mainid and E.Subid=A.Subid )'); + sql.Add(' from WFB_MJJY A'); + sql.Add(' where A.MJID=''' + Trim(MJID.Text) + ''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + MJID.Text := ''; + Label2.Caption := ''; + Label2.Visible := False; + Application.MessageBox('!', 'ʾ', 0); + Exit; + end; + FStyleNo := Trim(Self.Order_Main.fieldbyname('StyleNo').AsString); + FOrderUnit := Trim(ADOTmp.fieldbyname('OrdUnit').AsString); + FHX := Trim(Self.Order_Main.fieldbyname('PRTHX').AsString); + FSE := Trim(Self.Order_Main.fieldbyname('SOrddefstr4').AsString); + MJXH.Text := Trim(ADOTmp.fieldbyname('MJXH').AsString); + MJstr4.Text := Trim(ADOTmp.fieldbyname('MJstr4').AsString); + MJMaoZ.Text := Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); + MJLen.Text := Trim(ADOTmp.fieldbyname('MJLen').AsString); + MJQty1.Text := Trim(ADOTmp.fieldbyname('MJQty1').AsString); + MJQty2.Text := Trim(ADOTmp.fieldbyname('MJQty2').AsString); + MJQty4.Text := Trim(ADOTmp.fieldbyname('MJQty4').AsString); + MJFK.Text := Trim(ADOTmp.fieldbyname('MJFK').AsString); + MJSJKZ.Text := Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); + M.Caption := Trim(Trim(ADOTmp.fieldbyname('MJTypeOther').AsString)); + Ma.Caption := Trim(Trim(ADOTmp.fieldbyname('MJStr1').AsString)); + if Trim(m.Caption) = '' then + begin + m.Caption := Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString); + end; + if Trim(Ma.Caption) = '' then + begin + Ma.Caption := Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); + end; + if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = 'Ʒ' then + begin + RadioGroup1.ItemIndex := 0 + end + else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = 'Ʒ' then + begin + RadioGroup1.ItemIndex := 1; + end + else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = '' then + begin + RadioGroup1.ItemIndex := 2; + end; + with ADOCmd do + begin + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' ' + quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(',' + quotedstr(trim(self.Caption))); + sql.Add(',' + quotedstr(trim('޸'))); + sql.Add(',' + quotedstr(trim('޸ǰ:' + trim(ADOTmp.FieldByName('MJID').AsString) + ' ָʾ:' + trim(ADOTmp.FieldByName('mainid').AsString) + '׺:' + trim(ADOTmp.FieldByName('MJstr4').AsString) + ':' + trim(ADOTmp.FieldByName('MJXH').AsString) + ':' + trim(ADOTmp.FieldByName('MJLen').AsString) + ':' + trim(ADOTmp.FieldByName('MJQty2').AsString) + ':' + trim(ADOTmp.FieldByName('MJQty4').AsString) + 'ë:' + trim(ADOTmp.FieldByName('MJMaoZ').AsString)))); + sql.Add(',' + quotedstr(trim('ɹ'))); + sql.Add(')'); +// ShowMessage(SQL.text); + + ExecSQL; + end; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY_CD A where A.MJID=''' + Trim(MJID.Text) + ''''); + Open; + end; + Label2.Caption := Trim(MJID.Text); + Label2.Visible := True; + MJID.Text := ''; + SCreateCDS20(ADOTmp, Order_MJ); + SInitCDSData20(ADOTmp, Order_MJ); + + if ShowModal = 1 then + begin + + end; + end; + finally + frmMJEdit.Free; + end; +end; + +procedure TfrmJYOrderCDOne.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main, True); +end; + +procedure TfrmJYOrderCDOne.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main, False); +end; + +procedure TfrmJYOrderCDOne.TBZFClick(Sender: TObject); +begin + if Order_Main.Locate('ssel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + if Application.MessageBox('ȷҪϺݲָܻ', 'ʾ', 32 + 4) <> IDYES then + Exit; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add(' and CRFlag='''''); + Open; + end; + if ADOQueryTemp.IsEmpty = False then + begin + Order_Main.EnableControls; + Application.MessageBox('Ѳݲɾ!', 'ʾ', 0); + Exit; + end + else + begin + //begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_MJJY where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('delete WFB_MJJY_CD where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('delete CK_BanCP_CR where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('delete CK_BanCP_KC where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' ' + quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(',' + quotedstr(trim(self.Caption))); + sql.Add(',' + quotedstr(trim('ɾ'))); + sql.Add(',' + quotedstr(trim(':' + trim(Order_Main.FieldByName('MJID').AsString) + ' ָʾ:' + trim(Order_Main.FieldByName('mainid').AsString) + '׺:' + trim(Order_Main.FieldByName('MJstr4').AsString) + ':' + trim(Order_Main.FieldByName('MJXH').AsString) + ':' + trim(Order_Main.FieldByName('MJLen').AsString) + ':' + trim(Order_Main.FieldByName('MJQty4').AsString)))); + sql.Add(',' + quotedstr(trim('ɹ'))); + sql.Add(')'); +// ShowMessage(SQL.text); + + ExecSQL; + end; + // end; + end; + Order_Main.Delete; + end + else + Next; + end; + end; + Order_Main.EnableControls; + +end; + +procedure TfrmJYOrderCDOne.ToolButton1Click(Sender: TObject); +var + fPrintFile, fPrintFile1, fPrintFile2: string; + Txt, fImagePath, fImagePath1, fImagePath2, Txt4, fImagePath4: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + if Order_Main.IsEmpty then + Exit; + if Order_Main.Locate('SSel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,G.ConNo,GangNo=A.MJStr4,A.MJStr4,isnull(C.styleNo,F.StyleNo) StyleNo,G.KHConNo,G.ConLBName,G.ConNLBName'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.Filltime ZDDate,B.FBQName '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,isnull(C.PRTColorEng,F.SOrdDefStr4) OrdPRTColorEng,F.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,D.PiQty '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.add(',F.XHNo,F.PRTMF,F.PRTKZ,F.PRTCodeName,F.PRTCode,G.CustomerNoName,C.*,A.*'); + sql.add(',CDQty=isnull((select SUM(CDqty) from WFB_MJJY_CD X where X.MJID=A.MJID),0) '); + sql.add(',SumQty=isnull((select SUM(CDBeg) from WFB_MJJY_CD X where X.MJID=A.MJID),0) '); + sql.Add(',TLen=cast(MJLen as varchar(10))'); + sql.Add(',FLen=substring(cast(MJLen as varchar(10)),1,LEN(MJLen)-3)+'',''+RIGHT(cast(MJLen as varchar(10)),2)'); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join CK_SXPB_CR D on D.SPId=A.APId '); + sql.add(' left join JYOrderCon_Sub F on F.Subid=A.ConID'); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + SQL.Add(' where A.MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + Open; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + sleep(500); + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := '32' + Copy(Trim(Order_Main.fieldbyname('OrderNO').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath1 := ExtractFilePath(Application.ExeName) + 'image\temp1.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath1) then + DeleteFile(fImagePath1); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath1), 4); + except + ; + //ADOCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt4 := '{"A":"' + Trim(ADOQueryPrint.fieldbyname('KHConNO').AsString) + '","B":"' + Trim(ADOQueryPrint.fieldbyname('MPRTCode').AsString) + '","C":"' + Trim(ADOQueryPrint.fieldbyname('mjqty4').AsString) + '","D":"' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + '","E":"' + Trim(ADOQueryPrint.fieldbyname('mjstr4').AsString) + '","F":"' + RightStr(('10000' + trim(ADOQueryPrint.fieldbyName('MJXH').AsString)), 4) + '"}'; + fImagePath4 := ExtractFilePath(Application.ExeName) + 'image\temp4.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath4) then + DeleteFile(fImagePath4); + Makebar(pchar(Txt4), Length(Txt4), 3, 3, 0, PChar(fImagePath4), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := 'NWJ01.100;' + Trim(ADOQueryPrint.fieldbyname('styleNo').AsString) + ';801;' + Trim(ADOQueryPrint.fieldbyname('PRTHX').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJQty4').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + ';' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\temp2.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath2) then + DeleteFile(fImagePath2); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath2), 4); + except + ; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + if Trim(ADOQueryPrint.fieldbyname('LBName').AsString) <> '' then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf' + else + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨӢıǩ.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := '32' + copy(Trim(Order_Main.fieldbyname('OrderNO').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM2.LoadFromFile(fPrintFile); + Rm2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); + RM2.PrintReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; + + if Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) <> '' then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) + '.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := '32' + copy(Label24.Caption, 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); + //RM2.ShowReport; + RM2.PrintReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; +end; + +procedure TfrmJYOrderCDOne.RadioGroup1Click(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne.TBAftChkHXClick(Sender: TObject); +var + fsj, fsj10: string; +begin + if order_Main.IsEmpty then + exit; + if Order_Main.Locate('SSel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + if Trim(fsj) = '' then + begin + fsj := Trim(Order_Main.fieldbyname('SubId').AsString); + end + else + begin + if Trim(fsj) <> Trim(Order_Main.fieldbyname('SubId').AsString) then + begin + Order_Main.EnableControls; + Application.MessageBox('ͬƷһ!', 'ʾ', 0); + Exit; + end; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + if Trim(fsj10) = '' then + begin + fsj10 := Trim(Order_Main.fieldbyname('fromfactoryName').AsString); + end + else + begin + if Trim(fsj10) <> Trim(Order_Main.fieldbyname('fromfactoryName').AsString) then + begin + Order_Main.EnableControls; + Application.MessageBox('ͬȾһ!', 'ʾ', 0); + Exit; + end; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQuery1 do + begin + close; + sql.clear; + sql.add('update WFB_MJJY set MJStr2=''ѻ'',MJType=''Ʒ'' '); + sql.add('where MJID=''' + trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + execsql; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; + application.MessageBox('ɹ', 'ʾ'); + initgrid(); + FactoryName1.Text := trim(Order_Main.fieldbyname('fromfactoryName').AsString); + //Panel6.Visible:=true; +end; + +function TfrmJYOrderCDOne.Savedata(): Boolean; +var + maxno, LLID: string; + HXPS: Integer; + HXQty, HXMQty: Double; +begin + HXPS := 0; + HXQty := 0; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); + sql.Add(' and FirstName=''' + Trim(Order_Main.fieldbyname('AOrddefstr4').AsString) + ''''); + Open; + end; + LLID := Trim(ADOQueryTemp.fieldbyname('LLID').AsString); + if Trim(LLID) = '' then + begin + Result := False; + Application.MessageBox('ûӦļӹ!', 'ʾ', 0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd, maxno, 'HX', 'Contract_Cloth_BefChkHX', 2, 1) = False then + begin + Result := False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!', 'ʾ', 0); + Exit; + end; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + HXPS := HXPS + 1; + HXQty := HXQty + Order_Main.FieldByName('MJLen').Value; + end; + Next; + end; + end; + except + end; +end; + +procedure TfrmJYOrderCDOne.Aorddefstr1Change(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne.OrderNoKeyPress(Sender: TObject; var Key: Char); +var + fsj: string; +begin + if Key = #13 then + begin + if Length(OrderNo.Text) < 4 then + Exit; + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + if CheckBox3.Checked = True then + begin + fsj := ' where CC.OrderNo= ''' + Trim(OrderNo.Text) + ''''; + end + else + begin + fsj := ' where CC.OrderNo like ''' + '%' + Trim(OrderNo.Text) + '%' + ''''; + end; +// fsj := ' where CC.OrderNo like ''' + '%' + Trim(OrderNo.Text) + '%' + ''''; + if canshu1 = 'ҵԱ' then + begin + fsj := fsj + ' and CC.YWY=''' + trim(DName) + ''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value := '2016-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + Parameters.ParamByName('PState').Value := 3; + Parameters.ParamByName('FFSql').Value := fsj; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne.Print_WXPT2(); +var + j, z, i, x: Integer; + FSumJZQty0, FSumQty0, FSumJZQty1, FSumQty1: Double; + FGangNo, FHZ, FPRTColorNo: string; +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.add(',@flag=''3'''); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + Open; + end; + SCreateCDS20(ADOQueryCmd, CDS_WXPT); + SInitCDSData20(ADOQueryCmd, CDS_WXPT); + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select XH=cast(0 as int),YS=cast(0 as int),SYRName=Cast('''' as varchar(70)),ConNO=Cast('''' as varchar(30)),'); + sql.Add(' CustomerNoName=Cast('''' as varchar(50)),'); + sql.add(' ROLL0=Cast('''' as varchar(50)),ROLL1=Cast('''' as varchar(50)),ROLL2=Cast('''' as varchar(50)),'); + sql.add(' PRTColorEng0=Cast('''' as varchar(50)),PRTColorEng1=Cast('''' as varchar(50)),PRTColorEng2=Cast('''' as varchar(50)),'); + sql.add(' PRTHX0=Cast('''' as varchar(50)),PRTHX1=Cast('''' as varchar(50)),PRTHX2=Cast('''' as varchar(50)),'); + sql.add(' KG0=Cast(0 as decimal(18,2)),KG1=Cast(0 as decimal(18,2)),KG2=Cast(0 as decimal(18,2)),'); + sql.add(' Qty0=Cast(0 as decimal(18,2)),Qty1=Cast(0 as decimal(18,2)),Qty2=Cast(0 as decimal(18,2)),'); + sql.Add(' sumBaoKG=cast(0 as decimal(18,2)),sumBaoQty=cast(0 as decimal(18,2)),'); + sql.Add(' SumZKGQty=cast(0 as decimal(18,2)),SumZQty=cast(0 as decimal(18,2)),'); + sql.Add(' sumHXKG=cast(0 as decimal(18,2)),sumHXQty=cast(0 as decimal(18,2))'); + open; + end; + SCreateCDS20(ADOQueryCmd, CDS_WXPTPrint); + SInitCDSData20(ADOQueryCmd, CDS_WXPTPrint); + if CDS_WXPTPrint.IsEmpty = False then + begin + CDS_WXPTPrint.Delete; + end; + j := 0; + z := 0; + i := 0; + x := 0; + FGangNo := ''; + FPRTColorNo := ''; + FSumJZQty1 := 0; + FSumQty1 := 0; + FSumJZQty0 := 0; + FSumQty0 := 0; + CDS_WXPT.DisableControls; + CDS_WXPTPrint.DisableControls; + with CDS_WXPT do + begin + First; + while not Eof do + begin + with CDS_WXPTPrint do + begin + if CDS_WXPTPrint.IsEmpty then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value := 0; + CDS_WXPTPrint.FieldByName('YS').Value := i; + CDS_WXPTPrint.FieldByName('SYRName').Value := CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value := CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX0').Value := CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL0').Value := CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng0').Value := CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG0').Value := CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value := CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value := CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value := CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value := CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value := CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value := CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value := CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + z := 0; // + j := 0; // + i := 0; //ҳ + FGangNo := Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end + else + begin + if j < 8 * (i + 1) - 1 then + begin + if z = 0 then + begin + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value := j + 1; + CDS_WXPTPrint.FieldByName('YS').Value := i; + CDS_WXPTPrint.FieldByName('SYRName').Value := CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value := CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX0').Value := CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL0').Value := CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng0').Value := CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG0').Value := CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value := CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value := CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value := CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value := CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value := CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value := CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value := CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.Post; + j := j + 1; + FGangNo := Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end + else + begin + CDS_WXPTPrint.Locate('XH', j + 1, []); + CDS_WXPTPrint.Edit; + CDS_WXPTPrint.FieldByName('SYRName').Value := CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value := CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX' + inttostr(z)).Value := CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL' + inttostr(z)).Value := CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng' + inttostr(z)).Value := CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG' + inttostr(z)).Value := CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty' + inttostr(z)).Value := CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value := CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value := CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value := CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value := CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value := CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value := CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + FGangNo := Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + j := j + 1; + end; + end + else + begin + if z < 2 then + begin + z := z + 1; + j := 8 * i; + CDS_WXPTPrint.Locate('XH', j, []); + CDS_WXPTPrint.Edit; + CDS_WXPTPrint.FieldByName('SYRName').Value := CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value := CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX' + inttostr(z)).Value := CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL' + inttostr(z)).Value := CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng' + inttostr(z)).Value := CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG' + inttostr(z)).Value := CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty' + inttostr(z)).Value := CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value := CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value := CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value := CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value := CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value := CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value := CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.post; + FGangNo := Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end + else + begin + i := i + 1; + z := 0; + j := 8 * i; + CDS_WXPTPrint.Append; + CDS_WXPTPrint.FieldByName('XH').Value := j; + CDS_WXPTPrint.FieldByName('YS').Value := i; + CDS_WXPTPrint.FieldByName('SYRName').Value := CDS_WXPT.fieldbyname('SYRName').Value; + CDS_WXPTPrint.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_WXPTPrint.FieldByName('CustomerNoName').Value := CDS_WXPT.fieldbyname('CustomerNoName').Value; + CDS_WXPTPrint.FieldByName('PRTHX0').Value := CDS_WXPT.fieldbyname('PRTHX').AsString; + CDS_WXPTPrint.FieldByName('ROLL0').Value := CDS_WXPT.fieldbyname('RollNo').AsString; + CDS_WXPTPrint.FieldByName('PRTColorEng0').Value := CDS_WXPT.fieldbyname('SOrdDefStr4').AsString; + CDS_WXPTPrint.FieldByName('KG0').Value := CDS_WXPT.fieldbyname('KGQty').AsFloat; + CDS_WXPTPrint.FieldByName('Qty0').Value := CDS_WXPT.fieldbyname('Qty').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoKG').Value := CDS_WXPT.fieldbyname('sumBaoKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumBaoQty').Value := CDS_WXPT.fieldbyname('sumBaoQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZKGQty').Value := CDS_WXPT.fieldbyname('SumZKGQty').AsFloat; + CDS_WXPTPrint.FieldByName('SumZQty').Value := CDS_WXPT.fieldbyname('SumZQty').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXKG').Value := CDS_WXPT.fieldbyname('sumHXKG').AsFloat; + CDS_WXPTPrint.FieldByName('sumHXQty').Value := CDS_WXPT.fieldbyname('sumHXQty').AsFloat; + CDS_WXPTPrint.Post; + FGangNo := Trim(CDS_WXPT.fieldbyname('CustomerNoName').AsString); + end; + end; + end; + end; + Next; + end; + end; + CDS_WXPT.EnableControls; + CDS_WXPTPrint.EnableControls; +end; + +procedure TfrmJYOrderCDOne.PRTColorChange(Sender: TObject); +begin + TBFind.Click; + if Order_Main.IsEmpty = False then + begin + //InitOrderColor(Trim(Order_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + // InitBCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmJYOrderCDOne.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + if Order_Main.IsEmpty then + exit; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY_CD A where A.MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + Open; + end; + SCreateCDS20(ADOTmp, Order_MJ); + SInitCDSData20(ADOTmp, Order_MJ); +end; + +procedure TfrmJYOrderCDOne.GetCDSData(); +begin + CDS_CD.fieldbyname('MPrtCodeName').Value := trim(CDS_LS.fieldbyname('PrtCodeName').AsString); + CDS_CD.fieldbyname('CustomerNoName').Value := trim(CDS_LS.fieldbyname('CustomerNoName').AsString); + CDS_CD.fieldbyname('PRTSpec').Value := trim(CDS_LS.fieldbyname('PRTSpec').AsString); + CDS_CD.fieldbyname('PRTMF').Value := trim(CDS_LS.fieldbyname('PRTMF').AsString); + CDS_CD.fieldbyname('prtkz').Value := trim(CDS_LS.fieldbyname('prtkz').AsString); + CDS_CD.FieldByName('SYRName').Value := CDS_LS.fieldbyname('SYRName').Value; + CDS_CD.FieldByName('ConNO').Value := CDS_LS.fieldbyname('ConNO').Value; + CDS_CD.FieldByName('Filltime').Value := CDS_LS.fieldbyname('Filltime').AsDateTime; + CDS_CD.FieldByName('PrtCodeNo').Value := CDS_LS.fieldbyname('PrtCodeNo').Value; + CDS_CD.FieldByName('orddefstr3').Value := CDS_LS.fieldbyname('orddefstr3').Value; + CDS_CD.FieldByName('PRTColorNo').Value := CDS_LS.fieldbyname('PRTColorNo').Value; + CDS_CD.FieldByName('SOrddefstr4').Value := CDS_LS.fieldbyname('SOrddefstr4').Value; + CDS_CD.FieldByName('GangNo').Value := CDS_LS.fieldbyname('GangNo').Value; + CDS_CD.FieldByName('PRTHX').Value := CDS_LS.fieldbyname('PRTHX').Value; +end; + +procedure TfrmJYOrderCDOne.ToolButton2Click(Sender: TObject); +var + fPrintFile, fZMFile: string; +begin + if Order_Main.IsEmpty then + Exit; + if (ComboBox6.Text = '뵥') or (ComboBox6.Text = '뵥1') or (ComboBox6.Text = '뵥2') or (ComboBox6.Text = '뵥3') or (ComboBox6.Text = '뵥SAK') or (ComboBox6.Text = '뵥4') or (ComboBox6.Text = '뵥5') or (ComboBox6.Text = '뵥6') or (ComboBox6.Text = '뵥()') or (ComboBox6.Text = '뵥(Ⱦɫ)') or (ComboBox6.Text = '뵥(ӡ)') or (ComboBox6.Text = '뵥()') then + begin + RMDBHZ.DataSet := CDS_HZ; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + // showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_HZ); + SInitCDSData20(ADOQueryTemp, CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_COL); + SInitCDSData20(ADOQuery1, CDS_COL); + end; + if (ComboBox6.Text = '뵥9') or (ComboBox6.Text = '뵥royal') or (ComboBox6.Text = '뵥10') or (ComboBox6.Text = '뵥11') then + begin + RMDBHZ.DataSet := CDS_HZ; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_c9 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + // showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_HZ); + SInitCDSData20(ADOQueryTemp, CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_c9 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_COL); + SInitCDSData20(ADOQuery1, CDS_COL); + end; + if (ComboBox6.Text = '뵥FOCUS') then + begin + RMDBHZ.DataSet := CDS_HZ; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_FOCUS '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); +// showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_HZ); + SInitCDSData20(ADOQueryTemp, CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_FOCUS '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + sql.add(',@flag=''2'' '); +// showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_COL); + SInitCDSData20(ADOQuery1, CDS_COL); + end; + if (ComboBox6.Text = '뵥()') then + begin + RMDBHZ.DataSet := CDS_HZ; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_c9 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + // showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_HZ); + SInitCDSData20(ADOQueryTemp, CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_c9 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + sql.add(',@flag=''22'' '); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_COL); + SInitCDSData20(ADOQuery1, CDS_COL); + end; + if ComboBox6.Text = '뵥7' then + begin + RMDBHZ.DataSet := CDS_HZ; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_copy1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + // showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_HZ); + SInitCDSData20(ADOQueryTemp, CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1_copy1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_COL); + SInitCDSData20(ADOQuery1, CDS_COL); + end; + if ComboBox6.Text = '뵥͢' then + begin + RMDBHZ.DataSet := CDS_WXPTPrint; + Print_WXPT2(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('conNO').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2=' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.add(',@flag=''4'''); + sql.Add(',@FHStatus=''' + trim(Order_Main.FieldByName('FHStatus').AsString) + ''' '); + Open; + end; + SCreateCDS20(ADOQueryCmd, CDS_CX); + SInitCDSData20(ADOQueryCmd, CDS_CX); + end; + if ComboBox6.Text = '뵥°氢͢' then + begin + Print_WXPT3(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD3 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('conNO').AsString))); + sql.add(',@flag=''4'''); + sql.Add(',@FHStatus=' + quotedstr(Trim(Order_Main.FieldByName('FHStatus').AsString))); + Open; + end; + SCreateCDS20(ADOQueryCmd, Ord_Mx); + SInitCDSData20(ADOQueryCmd, Ord_Mx); + end; + if ComboBox6.Text = '뵥8' then + begin + Print_WXPT8(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD3_copy1 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('conNO').AsString))); + sql.add(',@flag=''4'''); + sql.add(',@Status= ' + quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus=' + quotedstr(Trim(Order_Main.FieldByName('FHStatus').AsString))); + Open; + end; + SCreateCDS20(ADOQueryCmd, Ord_Mx); + SInitCDSData20(ADOQueryCmd, Ord_Mx); + end; + if ComboBox6.Text = '뵥TAG NO' then + begin + RMDBHZ.DataSet := CDS_WXPTPrint; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD2 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNo').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@flag=''3'''); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_WXPTPrint); + SInitCDSData20(ADOQueryTemp, CDS_WXPTPrint); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD2 '); + sql.add('@mainID=' + quotedstr(Trim(Order_Main.FieldByName('ConNo').AsString))); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_COL); + SInitCDSData20(ADOQuery1, CDS_COL); + end; + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox6.Text) + '.rmf'; + if FileExists(fPrintFile) then + begin + if RMCD.CanExport = true then + begin + fZMFile := 'C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile := 'C:\Documents and Settings\Administrator\\' + trim(Order_Main.fieldbyname('ConNO').AsString) + ' DETAILED PL.xls'; + end + else + begin + fZMFile := 'C:\Users\Administrator\Desktop\' + trim(Order_Main.fieldbyname('ConNO').AsString) + ' DETAILED PL.XLS'; + end; + RMCD.ExportTo(RMXLSExport1, fZMFile); + end; + RMCD.CanExport := true; + RMCD.LoadFromFile(fPrintFile); + RMCD.ShowReport; + RMCD.CanExport := False; + end + else + begin + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\鱨.rmf'), 'ʾ', 0); + end; +end; + +procedure TfrmJYOrderCDOne.GetBGData(); +var + FMJId: string; + i, j, z: Integer; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select MJXH=Cast(0 as int),GangNo=Cast('''' as varchar(20)),PRTColor=Cast('''' as varchar(20)),MJID=Cast('''' as varchar(20))'); + sql.Add(',PRTEColor=Cast('''' as varchar(20)),MJLen=Cast(0 as decimal(18,2)),MJJZ=Cast(0 as decimal(18,2)),XH=Cast(0 as int)'); + sql.Add(',MJMZ=Cast(0 as decimal(18,2)),MJFK=Cast(0 as decimal(18,2)),KFQtyHZ=Cast(0 as int),DengJi=Cast('''' as varchar(20)),PanDing=Cast('''' as varchar(20))'); + sql.Add(',CDName0=Cast('''' as varchar(20)),CDBeg0=Cast('''' as varchar(20)),KFQty0=Cast(0 as int)'); + sql.Add(',CDName1=Cast('''' as varchar(20)),CDBeg1=Cast('''' as varchar(20)),KFQty1=Cast(0 as int)'); + sql.Add(',CDName2=Cast('''' as varchar(20)),CDBeg2=Cast('''' as varchar(20)),KFQty2=Cast(0 as int)'); + sql.Add(',CDName3=Cast('''' as varchar(20)),CDBeg3=Cast('''' as varchar(20)),KFQty3=Cast(0 as int)'); + sql.Add(',CDName4=Cast('''' as varchar(20)),CDBeg4=Cast('''' as varchar(20)),KFQty4=Cast(0 as int)'); + sql.Add(',CDName5=Cast('''' as varchar(20)),CDBeg5=Cast('''' as varchar(20)),KFQty5=Cast(0 as int)'); + sql.Add(',CDName6=Cast('''' as varchar(20)),CDBeg6=Cast('''' as varchar(20)),KFQty6=Cast(0 as int)'); + sql.Add(',CDName7=Cast('''' as varchar(20)),CDBeg7=Cast('''' as varchar(20)),KFQty7=Cast(0 as int)'); + sql.Add(',CDName8=Cast('''' as varchar(20)),CDBeg8=Cast('''' as varchar(20)),KFQty8=Cast(0 as int)'); + sql.Add(',CDName9=Cast('''' as varchar(20)),CDBeg9=Cast('''' as varchar(20)),KFQty9=Cast(0 as int)'); + Open; + end; + SCreateCDS20(ADOQueryTemp, CDS_CD); + SInitCDSData20(ADOQueryTemp, CDS_CD); + if CDS_CD.IsEmpty = False then + CDS_CD.Delete; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select A.*,Case when isnull(MJType,'''')=''Ʒ'' and KFQtyHZ<26 then ''A'' '); + sql.Add(' when isnull(MJType,'''')=''Ʒ'' and KFQtyHZ>33 then ''C'''); + sql.Add(' when isnull(MJType,'''')=''Ʒ'' and KFQtyHZ>25 and A.KFQtyHZ<34 then ''B'''); + sql.Add(' else MJType end as DengJi'); + sql.Add('from (select A.CDBeg,A.CDName,A.KouFenQty,B.MJXH,C.Aorddefstr1,JS.PRTColor,JS.SOrddefstr4,B.MJID '); + sql.Add(',CDEName=(select Note from KH_Zdy KZ where KZ.ZdyName=A.CDName and KZ.Type=''WFBCD'' )'); + sql.Add(',B.MJLen,B.MJQty4,B.MJMaoZ,B.MJTypeOther,B.MJSJKZ,B.MJFK,B.MJType,B.PanDing'); + sql.Add(',KFQtyHZ=(select Sum(KouFenQty) from WFB_MJJY_CD MCD where MCD.MJID=B.MJID)'); + sql.Add(' from WFB_MJJY B inner join WFB_MJJY_CD A on B.MJID=A.MJID'); + sql.Add(' inner join JYOrder_Sub_AnPai C on B.APID=C.APID'); + sql.Add(' inner join JYOrder_Sub JS on C.SubId=JS.SubId'); + SQL.Add(' where B.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + if Trim(MJType.Text) <> '' then + begin + sql.Add(' and isnull(B.MJType,'''')=''' + Trim(MJType.Text) + ''''); + end; + + sql.Add(')A order by PRTColor,Cast(Aorddefstr1 as int),MJID,MJXH'); + Open; + end; + //ShowMessage(ADOQueryTemp.SQL.Text); + //ShowMessage(IntToStr(ADOQueryTemp.RecordCount)); + SCreateCDS20(ADOQueryTemp, CDS_LS); + SInitCDSData20(ADOQueryTemp, CDS_LS); + CDS_LS.DisableControls; + with CDS_LS do + begin + First; + while not Eof do + begin + if CDS_CD.IsEmpty then + begin + with CDS_CD do + begin + Append; + GetCDSData(); + if CheckBox1.Checked = True then + FieldByName('CDName0').Value := CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName0').Value := CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg0').Value := CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty0').Value := CDS_LS.fieldbyname('KouFenQty').Value; + FieldByName('XH').Value := 0; + Post; + FMJId := Trim(CDS_LS.fieldbyname('MJID').AsString); + i := 0; //к + j := 0; + z := 0; //к + end; + end + else + begin + if Trim(CDS_LS.fieldbyname('MJID').AsString) = FMJId then + begin + i := i + 1; + if i < 10 then + begin + with CDS_CD do + begin + Edit; + GetCDSData(); + if CheckBox1.Checked = True then + FieldByName('CDName' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('KouFenQty').Value; + Post; + end; + end + else + begin + i := 0; + with CDS_CD do + begin + Append; + GetCDSData(); + if CheckBox1.Checked = True then + FieldByName('CDName' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('KouFenQty').Value; + Post; + end; + end; + end + else + begin + i := 0; + with CDS_CD do + begin + Append; + GetCDSData(); + if CheckBox1.Checked = True then + FieldByName('CDName' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty' + Trim(IntToStr(i))).Value := CDS_LS.fieldbyname('KouFenQty').Value; + Post; + end; + FMJId := Trim(CDS_LS.fieldbyname('MJID').AsString); + end; + end; + Next; + end; + end; + CDS_LS.EnableControls; +end; + +procedure TfrmJYOrderCDOne.v1Column15PropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + mvalue := TcxTextEdit(Sender).EditingText; + with Order_Main do + begin + Edit; + FieldByName('PanDing').Value := Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFB_MJJY Set PanDing=''' + Trim(mvalue) + ''''); + SQL.Add(' where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + ExecSQL; + end; +end; + +procedure TfrmJYOrderCDOne.Button2Click(Sender: TObject); +begin + Panel2.Visible := false; +end; + +procedure TfrmJYOrderCDOne.Button1Click(Sender: TObject); +var + i, J: string; +begin + if Order_Main.IsEmpty then + Exit; + if Order_Main.Locate('SSel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + if trim(ComboBox4.Text) = '' then + begin + Application.MessageBox('ͲΪ!', 'ʾ', 0); + Exit; + end; + i := floattostr(strtofloatdef(trim(cxCurrencyEdit1.Text), 0)); + J := floattostr(strtofloatdef(trim(cxCurrencyEdit2.Text), 0)); + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + if trim(ComboBox4.Text) = 'ػ㳤' then + begin + sql.Add('Update WFB_MJJY Set MKXs=''' + trim(i) + ''',MJlen=cast(1.00* MJQty4 *''' + trim(i) + ''' as decimal(18,1)) '); + sql.Add('where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + end; + if trim(ComboBox4.Text) = 'Ȼ㾻' then + begin + sql.Add('Update WFB_MJJY Set MKXs=''' + trim(i) + ''',MJQty3=''' + trim(J) + ''',MJQty4=cast(1.00* MJlen *''' + trim(i) + ''' as decimal(18,1)) '); + sql.Add('where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('Update WFB_MJJY Set MJMaoZ=MJQty4+MJQty3 '); + sql.Add('where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + end; + + sql.Add('Update CK_BanCP_CR Set Qty=(select MJLen from WFB_MJJY X where X.MJID=CK_BanCP_CR.MJID) '); + sql.Add(',KGQty=(select MJMaoZ from WFB_MJJY X where X.MJID=CK_BanCP_CR.MJID) '); + sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY X where X.MJID=CK_BanCP_CR.MJID) '); + sql.Add('where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('Update CK_BanCP_KC Set KCQty=(select MJLen from WFB_MJJY X where X.MJID=CK_BanCP_KC.MJID) '); + sql.Add(',KCKGQty=(select MJMaoZ from WFB_MJJY X where X.MJID=CK_BanCP_KC.MJID) '); + sql.Add('where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݱɹ', 'ʾϢ'); + Panel2.Visible := false; + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݱʧܣ', 'ʾϢ', 0); + end; +end; + +procedure TfrmJYOrderCDOne.ToolButton3Click(Sender: TObject); +begin + Panel2.Left := (self.Width - Panel2.Width) div 2; + Panel2.Visible := true; +end; + +procedure TfrmJYOrderCDOne.CheckBox2Click(Sender: TObject); +begin + SelOKNo(Order_Main, CheckBox2.Checked); +end; + +procedure TfrmJYOrderCDOne.TOrderClick(Sender: TObject); +begin + frmProductOrderListSel := tfrmProductOrderListSel.Create(SELF); + with frmProductOrderListSel do + begin + if ShowModal = 1 then + begin + with Self.Order_Main do + begin + First; + while not Eof do + begin + if Self.Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set Subid=''' + trim(frmProductOrderListSel.Order_Main.fieldbyname('Subid').AsString) + ''' '); + sql.Add(',Mainid=''' + trim(frmProductOrderListSel.Order_Main.fieldbyname('Mainid').AsString) + ''' '); + sql.Add('where MJID=''' + Trim(self.Order_Main.fieldbyname('MJID').AsString) + ''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCP_CR Set Subid=''' + trim(frmProductOrderListSel.Order_Main.fieldbyname('Subid').AsString) + ''' '); + sql.Add(',Mainid=''' + trim(frmProductOrderListSel.Order_Main.fieldbyname('Mainid').AsString) + ''' '); + sql.Add('where MJID=''' + Trim(self.Order_Main.fieldbyname('MJID').AsString) + ''''); + ExecSQL; + end; + end; + Next; + end; + end; + end; + free; + end; +end; + +procedure TfrmJYOrderCDOne.ToolButton6Click(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + if Order_Main.Locate('SSel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + if trim(fieldbyname('mjstr2').AsString) <> 'δ' then + begin + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ⲻܳ!', 'ʾϢ', MB_ICONERROR); + exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set baoID='''',baoNo='''' '); + sql.Add('where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݳɹ', 'ʾϢ'); + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݳʧܣ', 'ʾϢ', 0); + end; +end; + +procedure TfrmJYOrderCDOne.ToolButton7Click(Sender: TObject); +begin + frmCPGangNo := TfrmCPGangNo.Create(self); + with frmCPGangNo do + begin + if showmodal = 1 then + begin + // InitGrid(); + end; + end; + frmCPGangNo.Free; +end; + +procedure TfrmJYOrderCDOne.ToolButton9Click(Sender: TObject); +begin + frmSMLB := TfrmSMLB.create(self); + with frmSMLB do + begin + show; + end; +end; + +procedure TfrmJYOrderCDOne.Button4Click(Sender: TObject); +begin + Panel3.Visible := false; +end; + +procedure TfrmJYOrderCDOne.Button3Click(Sender: TObject); +var + fPrintFile: string; + Txt, fImagePath: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; + FBaoID: string; +begin + if Order_Main.IsEmpty then + Exit; + if trim(Order_Main.FieldByName('BaoID').AsString) = '' then + begin + application.MessageBox('δܴӡ', 'ʾ'); + exit; + end; + + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther as QtyUnit,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + SQL.ADD('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,'); + sql.Add('MprtCodeNameEng=(select top 1 Note from KH_Zdy X where X.zdyName=D.MprtCodeName), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.add(' ,substring(G.ConNo,LEN(G.ConNO)-3,LEN(G.ConNO)) HS,F.XHNo'); + sql.Add('from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + sql.add(' left join CK_SXPB_CR E on E.SPID=A.APID'); + sql.add(' inner join JYOrderCon_Sub F on F.Subid=E.ConCKID '); + sql.add(' inner join JYOrderCon_Main G on G.Mainid=F.Mainid '); + SQL.Add('where A.BaoID=''' + Trim(Order_Main.fieldbyname('BaoID').AsString) + ''''); + SQL.ADD('group by A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + sql.add('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,F.XHNo'); + Open; + end; + + if ADOQueryPrint.RecordCount > 1 then + begin + Application.MessageBox('´!', 'ʾ', 0); + Exit; + end; + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := trim(ADOQueryPrint.fieldbyname('baoID').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + if Check_bq.Checked then + begin + if Trim(ADOQueryPrint.fieldbyname('NLBName').AsString) <> '' then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('NLBName').AsString) + '.rmf' + else + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['ID'] := trim(ADOQueryPrint.fieldbyname('HS').AsString) + Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); + RM2.DefaultCopies := strtointdef(trim(ComboBox2.Text), 1); + RM2.LoadFromFile(fPrintFile); + // RM2.ShowReport; + RM2.printReport; + end + else + begin + // Order_Main.EnableControls; + Application.MessageBox(PChar('û' + fPrintFile), 'ʾ', 0); + Exit; + end; + end; + + if check_Fbz.Checked then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(Fbq.Text) + '.rmf'; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RM2.DefaultCopies := strtointdef(trim(ComboBox3.Text), 1); + RM2.LoadFromFile(fPrintFile); + // RM2.ShowReport; + RM2.printReport; + end + else + begin + // Order_Main.EnableControls; + Application.MessageBox(PChar('û' + fPrintFile), 'ʾ', 0); + Exit; + end; + end; + +end; + +procedure TfrmJYOrderCDOne.ToolButton5Click(Sender: TObject); +begin + Panel5.Left := (self.Width - Panel5.Width) div 2; + Panel5.Visible := true; +end; + +procedure TfrmJYOrderCDOne.FbqBtnClick(Sender: TObject); +begin + try + frmZDYHelp := TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag := 'BAOFFLAG'; + flagname := 'ǩ'; + if ShowModal = 1 then + begin + Fbq.Text := trim(ClientDataSet1.fieldbyname('zdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJYOrderCDOne.MJIDKeyPress(Sender: TObject; var Key: Char); +var + fsj: string; +begin + if Key = #13 then + begin + if Length(MJID.Text) < 4 then + Exit; + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + fsj := ' where A.MJID like ''' + '%' + Trim(MJID.Text) + '%' + ''''; + if canshu1 = 'ҵԱ' then + begin + fsj := fsj + ' and CC.YWY=''' + trim(DName) + ''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value := '2016-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + Parameters.ParamByName('PState').Value := 3; + Parameters.ParamByName('FFSql').Value := fsj; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne.APIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + {if Length(APID.Text)<4 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value:='2010-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Parameters.ParamByName('PState').Value:=3; + Parameters.ParamByName('FFSql').Value:=' where B.APID like '''+'%'+Trim(APID.Text)+'%'+''''; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + if Order_Main.IsEmpty=False then + begin + //InitOrderColor(Trim(Order_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + // InitBCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + // InitRCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),GangNo,ADOQueryTemp); + end; + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False;} + end; +end; + +procedure TfrmJYOrderCDOne.ISbaoChange(Sender: TObject); +begin + Tbfind.Click; +end; + +procedure TfrmJYOrderCDOne.TBBNClick(Sender: TObject); +var + fsubid: string; +begin + if Order_Main.IsEmpty then + exit; + if Order_Main.Locate('ssel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + fsubid := ''; + frmProductOrderListSel_cx := TfrmProductOrderListSel_cx.create(self); + with frmProductOrderListSel_cx do + begin + if showmodal = 1 then + begin + fsubid := trim(Order_Main.fieldbyname('Subid').asstring); + end; + free; + end; + if trim(fsubid) <> '' then + begin + ADOQueryCmd.Connection.BeginTrans; + try + with Order_Main do + begin + DisableControls; + First; + while not eof do + begin + if fieldbyname('ssel').AsBoolean = true then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFB_MJJY Set ConID=''' + Trim(fsubid) + ''' '); + sql.Add('where MJID=' + quotedstr(trim(Order_Main.fieldbyName('MJID').AsString))); + execsql; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate CK_SXPB_CR Set ConCKID=''' + Trim(fsubid) + ''' '); + sql.Add('where SPID=' + quotedstr(trim(Order_Main.fieldbyName('APID').AsString))); + execsql; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate CK_BanCP_CR Set ConID=''' + Trim(fsubid) + ''' '); + SQL.Add(',ConNo=(select Top 1 A.ConNo from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.Mainid=B.Mainid where B.Subid=''' + trim(fsubid) + ''')'); + SQL.Add(',KHConNO=(select Top 1 A.KHConNO from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.Mainid=B.Mainid where B.Subid=''' + trim(fsubid) + ''')'); + sql.Add(' where MJID=' + quotedstr(trim(Order_Main.fieldbyName('MJID').AsString))); + execsql; + end; + end; + next; + end; + first; + EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ', 'ʾ'); + TBRafresh.Click; + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ', 'ʾ'); + end; + end; +end; + +procedure TfrmJYOrderCDOne.Button6Click(Sender: TObject); +begin + Panel5.Visible := false; +end; + +procedure TfrmJYOrderCDOne.Button5Click(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + if Order_Main.Locate('SSel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + if trim(ComboBox5.Text) = '' then + begin + Application.MessageBox('λΪ!', 'ʾ', 0); + Exit; + end; + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJTypeOther=''' + trim(ComboBox5.Text) + ''' where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('Update CK_BanCP_CR Set QtyUnit=''' + trim(ComboBox5.Text) + ''' where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + sql.Add('Update CK_BanCP_KC Set KCQtyUnit=''' + trim(ComboBox5.Text) + ''' where MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݱɹ', 'ʾϢ'); + Panel2.Visible := false; + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݱʧܣ', 'ʾϢ', 0); + end; +end; + +procedure TfrmJYOrderCDOne.ToolButton12Click(Sender: TObject); +begin + Panel5.Visible := true; +end; + +procedure TfrmJYOrderCDOne.TADDClick(Sender: TObject); +begin + frmJYOrderCDOne_LR := TfrmJYOrderCDOne_LR.create(Self); + with frmJYOrderCDOne_LR do + begin + FCRID := ''; + if showModal = 1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmJYOrderCDOne.TUpdateClick(Sender: TObject); +begin + if Order_Main.isempty then + exit; + frmJYOrderCDOne_LR := TfrmJYOrderCDOne_LR.create(Self); + with frmJYOrderCDOne_LR do + begin + FCRID := trim(Order_Main.fieldbyname('CRID').AsString); + if showModal = 1 then + begin + initGrid(); + end; + free; + end; +end; + +procedure TfrmJYOrderCDOne.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id, id1: Integer; +begin + id := Tv1.GetColumnByFieldName('MJType').Index; + id1 := Tv1.GetColumnByFieldName('FHStatus').Index; + if ARecord.Values[id] = 'Ʒ' then + begin + AStyle := DataLink_TradeManage.Red; + end; + if ARecord.Values[id1] = 'ݲ' then + begin + AStyle := DataLink_TradeManage.FontBlue; + end; +end; + +procedure TfrmJYOrderCDOne.Button8Click(Sender: TObject); +begin + Panel6.Visible := False; +end; + +procedure TfrmJYOrderCDOne.Button7Click(Sender: TObject); +begin + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + if YSData() = False then + begin + Application.MessageBox('Ӧտʧ!', 'ʾ', 0); + Exit; + end; + end; + next; + end; + end; +end; + +procedure TfrmJYOrderCDOne.MJStr4KeyPress(Sender: TObject; var Key: Char); +var + fsj: string; +begin + if Key = #13 then + begin + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + fsj := ' where A.MJStr4 like ''' + '%' + Trim(MJStr4.Text) + '%' + ''''; + if canshu1 = 'ҵԱ' then + begin + fsj := fsj + ' and CC.YWY=''' + trim(DName) + ''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value := '2016-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + Parameters.ParamByName('PState').Value := 3; + Parameters.ParamByName('FFSql').Value := fsj; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne.MPRTCodeNameKeyPress(Sender: TObject; var Key: Char); +var + fsj: string; +begin + if Key = #13 then + begin + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + fsj := ' where CC.MPRTCodeName like ''' + '%' + Trim(MPRTCodeName.Text) + '%' + ''''; + if canshu1 = 'ҵԱ' then + begin + fsj := fsj + ' and CC.YWY=''' + trim(DName) + ''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value := '2016-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + Parameters.ParamByName('PState').Value := 3; + Parameters.ParamByName('FFSql').Value := fsj; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne.conNOKeyPress(Sender: TObject; var Key: Char); +var + fsj: string; +begin + if Key = #13 then + begin + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + fsj := ' where EE.conNO like ''' + '%' + Trim(conNO.Text) + '%' + ''''; + if canshu1 = 'ҵԱ' then + begin + fsj := fsj + ' and CC.YWY=''' + trim(DName) + ''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value := '2016-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + Parameters.ParamByName('PState').Value := 3; + Parameters.ParamByName('FFSql').Value := fsj; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne.cxTabControl1Change(Sender: TObject); +begin + TBManage.Visible := false; + TBBN.Visible := false; + TBAftchkHX.Visible := false; + Toolbutton3.Visible := false; + if cxtabcontrol1.TabIndex = 0 then + begin + TBManage.Visible := true; + TBBN.Visible := true; + TBAftchkHX.Visible := true; + Toolbutton3.Visible := true; + end; + initgrid(); +end; + +procedure TfrmJYOrderCDOne.TFHClick(Sender: TObject); +begin + if Order_Main.IsEmpty then + exit; + if Order_Main.Locate('Ssel', true, []) = False then + begin + application.MessageBox('ûѡ', 'ʾ'); + exit; + end; + Panel7.Visible := true; +end; + +procedure TfrmJYOrderCDOne.Button9Click(Sender: TObject); +begin + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQuery1 do + begin + close; + sql.clear; + sql.add('update WFB_MJJY set FHStatus=''' + trim(FHStatus1.Text) + ''' '); + sql.add('where MJID=''' + trim(Order_Main.fieldbyname('MJID').AsString) + ''''); + + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' ' + quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(',' + quotedstr(trim(self.Caption))); + sql.Add(',' + quotedstr(trim('޸ķ״̬'))); + sql.Add(',' + quotedstr(trim('޸ǰ:' + trim(Order_Main.fieldbyname('MJID').AsString) + ', ''״̬'',' + trim(Order_Main.fieldbyname('FHStatus').AsString) + ' '))); + sql.Add(',' + quotedstr(trim('ɹ'))); + sql.Add(')'); + + execsql; + end; + end; + Next; + end; + end; + Application.MessageBox('ɹ', 'ʾ'); +end; + +procedure TfrmJYOrderCDOne.Button10Click(Sender: TObject); +begin + Panel7.Visible := false; +end; + +procedure TfrmJYOrderCDOne.ToolButton4Click(Sender: TObject); +var + fPrintFile, fPrintFile1, fPrintFile2: string; + Txt, Txt1, Txt2, Txt3, fImagePath, fImagePath1, fImagePath2, fImagePath3, Txt4, fImagePath4: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + if Order_Main.IsEmpty then + Exit; + if Order_Main.Locate('SSel', True, []) = False then + begin + Application.MessageBox('ûѡ!', 'ʾ', 0); + Exit; + end; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean = True then + begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,G.ConNo,GangNo=A.MJStr4,A.MJStr4,isnull(C.styleNo,F.StyleNo) StyleNo,G.KHConNo,G.ConLBName,G.ConNLBName'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.Filltime ZDDate,B.FBQName '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,isnull(C.PRTColorEng,F.SOrdDefStr4) OrdPRTColorEng,F.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,D.PiQty '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.add(',F.XHNo,F.PRTMF,F.PRTKZ,F.PRTCodeName,F.PRTCode,G.CustomerNoName,C.*,A.*'); + sql.add(',CDQty=isnull((select SUM(CDqty) from WFB_MJJY_CD X where X.MJID=A.MJID),0) '); + sql.add(',SumQty=isnull((select SUM(CDBeg) from WFB_MJJY_CD X where X.MJID=A.MJID),0) '); + sql.Add(',TLen=cast(MJLen as varchar(10)) '); // right(''000''+cast(mjlen as varchar),6) + sql.Add(',FLen=substring(cast(MJLen as varchar(10)),1,LEN(MJLen)-3)+'',''+RIGHT(cast(MJLen as varchar(10)),2)'); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join CK_SXPB_CR D on D.SPId=A.APId '); + sql.add(' left join JYOrderCon_Sub F on F.Subid=A.ConID'); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + SQL.Add(' where A.MJID=''' + Trim(Order_Main.fieldbyname('MJID').AsString) + ''''); +// ShowMessage(SQL.text); + Open; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + sleep(500); + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt1 := '32' + Copy(Trim(Order_Main.fieldbyname('OrderNO').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath1 := ExtractFilePath(Application.ExeName) + 'image\temp1.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath1) then + DeleteFile(fImagePath1); + Makebar(pchar(Txt1), Length(Txt1), 3, 3, 0, PChar(fImagePath1), 4); + except + ; + //ADOCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt2 := 'NWJ01.100;' + Trim(ADOQueryPrint.fieldbyname('styleNo').AsString) + ';801;' + Trim(ADOQueryPrint.fieldbyname('PRTHX').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJQty4').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + ';' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\temp2.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath2) then + DeleteFile(fImagePath2); + Makebar(pchar(Txt2), Length(Txt2), 3, 3, 0, PChar(fImagePath2), 4); + except + ; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt3 := '32' + copy(Trim(Order_Main.fieldbyname('OrderNo').AsString), 3, 4) + '20200101' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath3 := ExtractFilePath(Application.ExeName) + 'image\temp3.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath3) then + DeleteFile(fImagePath3); + Makebar(pchar(Txt3), Length(Txt3), 3, 3, 0, PChar(fImagePath3), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt4 := '{"A":"' + Trim(ADOQueryPrint.fieldbyname('KHConNO').AsString) + '","B":"' + Trim(ADOQueryPrint.fieldbyname('StyleNo').AsString) + '","C":"' + Trim(ADOQueryPrint.fieldbyname('mjqty4').AsString) + '","D":"' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + '","E":"' + Trim(ADOQueryPrint.fieldbyname('mjstr4').AsString) + '","F":"' + RightStr(('10000' + trim(ADOQueryPrint.fieldbyName('MJXH').AsString)), 4) + '"}'; + fImagePath4 := ExtractFilePath(Application.ExeName) + 'image\temp4.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath4) then + DeleteFile(fImagePath4); + Makebar(pchar(Txt4), Length(Txt4), 3, 3, 0, PChar(fImagePath4), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + if Trim(ADOQueryPrint.fieldbyname('LBName').AsString) <> '' then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf' + else + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨӢıǩ.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE3'] := fImagePath3; //'32' + copy(Trim(CDS_Print.fieldbyname('OrderNo').AsString), 3, 4) + '20200101' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := trim(Txt3); +// RMVariables['MJXH1'] := '32' + copy(Trim(Order_Main.fieldbyname('OrderNO').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM2.LoadFromFile(fPrintFile); + Rm2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); + RM2.ShowReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; + + if Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) <> '' then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) + '.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE3'] := fImagePath3; + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := trim(Txt3); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); + RM2.ShowReport; + //RM2.PrintReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; +end; + +end. + diff --git a/盛纺贸易管理/U_JYOrderCDOne_GDYJCX.dfm b/盛纺贸易管理/U_JYOrderCDOne_GDYJCX.dfm new file mode 100644 index 0000000..a0dce65 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne_GDYJCX.dfm @@ -0,0 +1,800 @@ +object frmJYOrderCDOne_GDYJCX: TfrmJYOrderCDOne_GDYJCX + Left = 189 + Top = 127 + Width = 1180 + Height = 586 + Caption = #36319#21333#19994#32489#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1164 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1164 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object TLabel + Left = 200 + Top = 14 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 200 + Top = 38 + Width = 52 + Height = 12 + Caption = #36319#21333#22995#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 336 + Top = 14 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 347 + Top = 38 + Width = 39 + Height = 12 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 476 + Top = 14 + Width = 52 + Height = 12 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 1172 + Top = 16 + Width = 52 + Height = 12 + Caption = #25171#21360#20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object BegDate: TDateTimePicker + Left = 95 + Top = 10 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 95 + Top = 34 + Width = 85 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object ConNoHZ: TEdit + Tag = 2 + Left = 253 + Top = 10 + Width = 70 + Height = 20 + TabOrder = 2 + OnChange = Aorddefstr1Change + OnKeyPress = ConNoHZKeyPress + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 389 + Top = 10 + Width = 70 + Height = 20 + TabOrder = 3 + OnChange = Aorddefstr1Change + end + object RanChang: TEdit + Tag = 2 + Left = 389 + Top = 34 + Width = 70 + Height = 20 + TabOrder = 4 + OnChange = Aorddefstr1Change + end + object OrderNo: TEdit + Tag = 2 + Left = 530 + Top = 10 + Width = 70 + Height = 20 + TabOrder = 5 + OnChange = Aorddefstr1Change + OnKeyPress = OrderNoKeyPress + end + object RadioGroup1: TRadioGroup + Left = 1244 + Top = 19 + Width = 137 + Height = 66 + Columns = 3 + ItemIndex = 0 + Items.Strings = ( + #27491#24120 + #22238#20462 + #20840#37096) + TabOrder = 6 + Visible = False + OnClick = RadioGroup1Click + end + object CheckBox2: TCheckBox + Left = 47 + Top = 64 + Width = 97 + Height = 17 + Caption = #20840#36873 + TabOrder = 7 + Visible = False + OnClick = CheckBox2Click + end + object GenDan: TEdit + Tag = 2 + Left = 253 + Top = 34 + Width = 70 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + object ComboBox1: TComboBox + Left = 1228 + Top = 12 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 9 + Text = '1' + Visible = False + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object CheckBox3: TCheckBox + Left = 23 + Top = 11 + Width = 73 + Height = 17 + Caption = #26816#39564#26085#26399 + Checked = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + State = cbChecked + TabOrder = 10 + OnClick = CheckBox3Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 1164 + Height = 451 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skCount + end + item + Kind = skSum + Column = v1ZPJZ + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1ZPPS + end + item + Kind = skSum + Column = v1CPJZ + end + item + Kind = skSum + Column = v1CPPS + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1GenDan: TcxGridDBColumn + Caption = #36319#21333#22995#21517 + DataBinding.FieldName = 'GenDan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 71 + end + object v1FactoryName: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FactoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1ConNoHZ: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1DJRKPS: TcxGridDBColumn + Caption = #24453#26816#20837#24211#21305#25968 + DataBinding.FieldName = 'DJRKPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle2 + Width = 84 + end + object v1DJRKQty: TcxGridDBColumn + Caption = #24453#26816#20837#24211#25968#37327 + DataBinding.FieldName = 'DJRKQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle2 + Width = 84 + end + object v1DJCKPS: TcxGridDBColumn + Caption = #24453#26816#20986#24211#21305#25968 + DataBinding.FieldName = 'DJCKPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle1 + Width = 84 + end + object v1DJCKQty: TcxGridDBColumn + Caption = #24453#26816#20986#24211#25968#37327 + DataBinding.FieldName = 'DJCKQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle1 + Width = 84 + end + object v1Column1: TcxGridDBColumn + Caption = #24453#26816#25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1ZPPS: TcxGridDBColumn + Caption = #27491#21697#26816#39564#21305#25968 + DataBinding.FieldName = 'ZPPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle3 + Width = 84 + end + object v1ZPJZ: TcxGridDBColumn + Caption = #27491#21697#26816#39564#20928#37325 + DataBinding.FieldName = 'ZPJZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle3 + Width = 84 + end + object v1ZPlen: TcxGridDBColumn + Caption = #27491#21697#26816#39564#38271#24230 + DataBinding.FieldName = 'ZPlen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle3 + Width = 84 + end + object v1JYQtyUnit: TcxGridDBColumn + Caption = #26816#39564#25968#37327#21333#20301 + DataBinding.FieldName = 'JYQtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v1CPPS: TcxGridDBColumn + Caption = #27425#21697#26816#39564#21305#25968 + DataBinding.FieldName = 'CPPS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle4 + Width = 84 + end + object v1CPJZ: TcxGridDBColumn + Caption = #27425#21697#26816#39564#20928#37325 + DataBinding.FieldName = 'CPJZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle4 + Width = 84 + end + object v1CPlen: TcxGridDBColumn + Caption = #27425#21697#26816#39564#38271#24230 + DataBinding.FieldName = 'CPlen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = cxStyle4 + Width = 84 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 74 + Top = 199 + Width = 294 + Height = 213 + TabOrder = 3 + Visible = False + object Label11: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 604 + Top = 392 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 432 + Top = 192 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 516 + Top = 392 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 560 + Top = 392 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 372 + Top = 200 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 400 + Top = 200 + end + object PopupMenu1: TPopupMenu + Left = 432 + Top = 368 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 432 + Top = 256 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 764 + Top = 312 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 736 + Top = 312 + end + object CDS_CD: TClientDataSet + Aggregates = <> + Params = <> + Left = 432 + Top = 220 + end + object RMCD: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 532 + Top = 4 + ReportData = {} + end + object RMDBCD: TRMDBDataSet + Visible = True + DataSet = CDS_CD + Left = 792 + Top = 312 + end + object CDS_LS: TClientDataSet + Aggregates = <> + Params = <> + Left = 808 + Top = 364 + end + object RM3: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 432 + Top = 292 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 372 + Top = 228 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 500 + Top = 8 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 820 + Top = 312 + end + object RMDBPRT: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 848 + Top = 312 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 868 + Top = 360 + end + object CDS_COL: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 4 + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_CD + Left = 792 + Top = 312 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 436 + Top = 408 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svTextColor] + TextColor = clRed + end + object cxStyle2: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyle3: TcxStyle + AssignedValues = [svTextColor] + TextColor = clTeal + end + object cxStyle4: TcxStyle + AssignedValues = [svTextColor] + TextColor = clNavy + end + end +end diff --git a/盛纺贸易管理/U_JYOrderCDOne_GDYJCX.pas b/盛纺贸易管理/U_JYOrderCDOne_GDYJCX.pas new file mode 100644 index 0000000..525ff43 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne_GDYJCX.pas @@ -0,0 +1,919 @@ +unit U_JYOrderCDOne_GDYJCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, MovePanel, cxTextEdit, cxContainer, cxCurrencyEdit,U_SMLB, BtnEdit, + RM_e_main, RM_e_htm, RM_e_Graphic, RM_e_Jpeg, RM_e_txt, RM_e_csv, + RM_E_llPDF, cxPC; + +type + TfrmJYOrderCDOne_GDYJCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + ConNoHZ: TEdit; + Label9: TLabel; + Panel4: TPanel; + Label11: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1GenDan: TcxGridDBColumn; + v1ZPJZ: TcxGridDBColumn; + v1JYQtyUnit: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + Label5: TLabel; + MPRTCodeName: TEdit; + v1FactoryName: TcxGridDBColumn; + Label12: TLabel; + Label13: TLabel; + RanChang: TEdit; + OrderNo: TEdit; + v1ZPPS: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + RM2: TRMGridReport; + RMDBMain: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + RadioGroup1: TRadioGroup; + CDS_CD: TClientDataSet; + RMCD: TRMGridReport; + RMDBCD: TRMDBDataSet; + CDS_LS: TClientDataSet; + CheckBox2: TCheckBox; + GenDan: TEdit; + Label18: TLabel; + ComboBox1: TComboBox; + RM3: TRMGridReport; + v1ConNoHZ: TcxGridDBColumn; + RMXLSExport1: TRMXLSExport; + CDS_HZ: TClientDataSet; + RMDBHZ: TRMDBDataSet; + RMDBPRT: TRMDBDataSet; + CDS_PRT: TClientDataSet; + CDS_COL: TClientDataSet; + RMDBDataSet1: TRMDBDataSet; + v1CPPS: TcxGridDBColumn; + v1CPJZ: TcxGridDBColumn; + CheckBox3: TCheckBox; + ADOQuery1: TADOQuery; + v1OrderNo: TcxGridDBColumn; + v1DJRKPS: TcxGridDBColumn; + v1DJRKQty: TcxGridDBColumn; + v1ZPlen: TcxGridDBColumn; + v1CPlen: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1DJCKQty: TcxGridDBColumn; + v1DJCKPS: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle3: TcxStyle; + cxStyle4: TcxStyle; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure RadioGroup1Click(Sender: TObject); + procedure Aorddefstr1Change(Sender: TObject); + procedure PRTColorChange(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1Column15PropertiesEditValueChanged(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure ISbaoChange(Sender: TObject); + procedure ConNoHZKeyPress(Sender: TObject; var Key: Char); + procedure ADateChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CheckBox3Click(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + private + DQdate:TDateTime; + FLeft,FTop:Integer; + procedure InitGrid(); + procedure InitGrid10(); + procedure InitForm(); + function Savedata():Boolean; + procedure GetCDSData(); + procedure GetBGData(); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmJYOrderCDOne_GDYJCX: TfrmJYOrderCDOne_GDYJCX; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun,U_MJEdit, U_CPDBAO, U_CPGangNo, + U_JYOrderCDOne, U_ZDYHelp, U_ProductOrderListSel; + +{$R *.dfm} + +procedure TfrmJYOrderCDOne_GDYJCX.FormDestroy(Sender: TObject); +begin + frmJYOrderCDOne_GDYJCX:=nil; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('鱨JF',Tv1,''); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.InitGrid(); +var + i:integer; + j:Integer; +begin + checkBox3.Checked:=true; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select AA.OrderNo,AA.MPRTCodeName,AA.FactoryName,AA.QtyUnit,AA.GenDan,JYQtyUnit,ConNoHZ=[dbo].[F_Get_Order_SubStr](AA.MainId,''ConNoHZ''),Sum(DJRKPS) DJRKPS'); + sql.add(',Sum(DJRKQty) DJRKQty,Sum(DJCKPS) DJCKPS,Sum(DJCKQty) DJCKQty,Sum(ZPPS) ZPPS,Sum(ZPJZ) ZPJZ,Sum(ZPlen) ZPlen,Sum(CPPS) CPPS '); //Sum(ZPMZ) ZPMZ, + sql.add(',Sum(CPJZ) CPJZ,Sum(CPlen) CPlen from '); //Sum(CPMZ) CPMZ, + sql.add('(select A.OrderNo,A.Mainid,A.MPRTCodeName,C.FactoryName,C.QtyUnit,DJRKPS=C.PiQty,DJRKQty=C.Qty'); + sql.Add(',DJCKPS=(select Sum(W.PiQty) from CK_SXPB_CR W where W.FZSPID=C.SPID and W.CRFlag='''')'); + sql.Add(',DJCKQty=(select Sum(W.Qty) from CK_SXPB_CR W where W.FZSPID=C.SPID and W.CRFlag='''')'); + sql.add(',ZPPS=(select Count(W.MJID) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',ZPJZ=(select Sum(W.MJQty4) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + {sql.add(',ZPMZ=(select Sum(W.MJMaoZ) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + }sql.add(',ZPlen=(select Sum(W.MJLen) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + + sql.add(',CPPS=(select Count(W.MJID) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',CPJZ=(select Sum(W.MJQty4) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + {sql.add(',CPMZ=(select Sum(W.MJMaoZ) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + }sql.add(',CPlen=(select Sum(W.MJLen) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',JYQtyUnit=(select Top 1 W.MJTypeOther from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID)'); + sql.add(',GenDan=(select Top 1 C.PFGenDanPerson from JYOrder_Process B inner join JYOrder_PCS_Sub C on C.PSID=B.PSID '); + sql.add(' where B.MainId=A.MainId and B.PSName=''Ⱦɫ'') '); + sql.add('from CK_SXPB_CR C '); + sql.add(' inner join JYOrder_Main A on C.OrdMainidRK=A.Mainid'); + sql.add(' where isnull(C.CKName,'''')=''첼'' and C.CRFlag='''' and C.CRType=''ӹ'' '); + if checkBox3.Checked=true then + begin + sql.add(' and A.filltime>='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''' '); + sql.add(' and A.Filltime<'''+trim(formatdatetime('yyyy-MM-dd',Enddate.DateTime+1))+''' '); + end; + sql.add(') AA '); + sql.add('group by AA.OrderNo,AA.MPRTCodeName,AA.FactoryName,AA.QtyUnit,AA.MainId,AA.GenDan,AA.JYQtyUnit'); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + //TBFind.Click; + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.InitGrid10(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState '); + Parameters.ParamByName('begdate').Value:='2012-01-01'; + Parameters.ParamByName('enddate').Value:='2011-01-01'; + Parameters.ParamByName('PState').Value:=3; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.InitForm(); +var + fsj:String; +begin + ReadCxGrid('鱨JF',Tv1,''); + fsj:='select distinct(Filler) name from WFB_MJJY '; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-1; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp)-1; + //InitGrid(); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.TBFindClick(Sender: TObject); +var + fsj,fwhere:String; +begin + if ADOQueryMain.Active=False then Exit; + fwhere:=SGetFilters(Panel1,1,2); + SDofilter(ADOQueryMain,fwhere); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + + +procedure TfrmJYOrderCDOne_GDYJCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'鱨'); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.TBRafreshClick(Sender: TObject); +begin + ConnOHZ.SetFocus; + {MovePanel2.Left:=(self.Width-MovePanel2.Width) div 2; + MovePanel2.Visible:=True; + MovePanel2.Refresh;} + InitGrid(); + //MovePanel2.Visible:=False; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.OrderNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.FormShow(Sender: TObject); +begin + InitForm(); + if Trim(DParameters2)='' then + begin + //TBManage.Visible:=True; + //TBZF.Visible:=True; + //ToolButton3.Visible:=true; + //TBBN.Visible:=true; + //ToolButton12.Visible:=true; + //ToolButton1.Visible:=true; + //ToolButton9.Visible:=true; + //ToolButton4.Visible:=true; + //ToolButton6.Visible:=true; + //ToolButton5.Visible:=true; + //ToolButton7.Visible:=true; + //ToolButton11.Visible:=true; + //TBAftChkHX.Visible:=True; + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ToolButton1Click(Sender: TObject); +var + fPrintFile:string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,GangNo=D.RCgangNO,PRTColorEng=E.Note,EE.ConLBName,EE.ConNLBName '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTCode,B.MaiTouNote,EE.ConPerson2,EE.conDefstr2,EE.conDefstr3,EE.ConNo,EE.KHConNO,DD.StyleNo,B.LengUnit,C.*,A.* '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.add(' ,substring(EE.ConNo,LEN(EE.ConNO)-3,LEN(EE.ConNO)) HS,DD.XHNo,D.PiQty'); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join CK_SXPB_CR D on D.SPId=A.APId '); + sql.add(' left join JYOrderCon_Sub DD on DD.Subid=D.ConCKID '); + sql.add(' left join JYOrderCon_Main EE on EE.Mainid=DD.Mainid '); + SQL.Add(' where A.MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + if Trim(ADOQueryPrint.fieldbyname('ConLBName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('ConLBName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + // fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\15029.rmf' ; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RMVariables['ID']:=trim(ADOQueryPrint.fieldbyname('HS').AsString)+Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); + RM2.LoadFromFile(fPrintFile); + Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1); + // RM2.ShowReport; + RM2.PrintReport; + { IF Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)<>'' then + begin + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM3.LoadFromFile(fPrintFile); + RM3.DefaultCopies:=1; + // RM3.ShowReport; + RM3.PrintReport; + end; + end; } + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + Exit; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.RadioGroup1Click(Sender: TObject); +begin + TBFind.Click; +end; + +function TfrmJYOrderCDOne_GDYJCX.Savedata():Boolean; +var + maxno,LLID:string; + HXPS:Integer; + HXQty,HXMQty:Double; +begin + HXPS:=0; + HXQty:=0; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstName='''+Trim(Order_Main.fieldbyname('AOrddefstr4').AsString)+''''); + Open; + end; + LLID:=Trim(ADOQueryTemp.fieldbyname('LLID').AsString); + if Trim(LLID)='' then + begin + Result:=False; + Application.MessageBox('ûӦļӹ!','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxno,'HX','Contract_Cloth_BefChkHX',2,1)=False then + begin + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + HXPS:=HXPS+1; + HXQty:=HXQty+Order_Main.FieldByName('MJLen').Value; + end; + Next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(''); + Open; + end; + except + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.Aorddefstr1Change(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.PRTColorChange(Sender: TObject); +begin + TBFind.Click; + if Order_Main.IsEmpty=False then + begin + //InitOrderColor(Trim(Order_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + // InitBCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.GetCDSData(); +begin + CDS_CD.FieldByName('MJXH').Value:=CDS_LS.fieldbyname('MJXH').Value; + CDS_CD.FieldByName('GangNo').Value:=CDS_LS.fieldbyname('Aorddefstr1').Value; + CDS_CD.FieldByName('PRTColor').Value:=CDS_LS.fieldbyname('PRTColor').Value; + CDS_CD.FieldByName('PRTEColor').Value:=CDS_LS.fieldbyname('SOrddefstr4').Value; + CDS_CD.FieldByName('MJLen').Value:=CDS_LS.fieldbyname('MJLen').Value; + CDS_CD.FieldByName('MJJZ').Value:=CDS_LS.fieldbyname('MJQty4').Value; + CDS_CD.FieldByName('MJMZ').Value:=CDS_LS.fieldbyname('MJMaoZ').Value; + CDS_CD.FieldByName('MJFK').Value:=CDS_LS.fieldbyname('MJFK').Value; + CDS_CD.FieldByName('KFQtyHZ').Value:=CDS_LS.fieldbyname('KFQtyHZ').Value; + CDS_CD.FieldByName('DengJi').Value:=CDS_LS.fieldbyname('DengJi').Value; + CDS_CD.FieldByName('PanDing').Value:=CDS_LS.fieldbyname('PanDing').Value; + CDS_CD.FieldByName('MJID').Value:=CDS_LS.fieldbyname('MJID').Value; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ToolButton2Click(Sender: TObject); +var + fPrintFile,fZMFile:string; +begin + if Order_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID='+quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.add(',@begtime='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''' '); + sql.add(',@Endtime='''+trim(formatdatetime('yyyy-MM-dd',Enddate.DateTime+1))+''' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_HZ); + SInitCDSData20(ADOQueryTemp,CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID='+quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + sql.add(',@begtime='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''''); + sql.add(',@Endtime='''+trim(formatdatetime('yyyy-MM-dd',Enddate.DateTime+1))+''''); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_COL); + SInitCDSData20(ADOQuery1,CDS_COL); + if FileExists(fPrintFile) then + begin + if RMCD.CanExport=true then + begin + fZMFile:='C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile:='C:\Documents and Settings\Administrator\\'+trim(Order_Main.fieldbyname('ConNO').AsString)+'.xls'; + end + else + begin + fZMFile:='C:\Users\Administrator\Desktop\'+trim(Order_Main.fieldbyname('ConNO').AsString)+'.XLS'; + end; + RMCD.ExportTo(RMXLSExport1,fZMFile); + end; + RMCD.CanExport:=true; + RMCD.LoadFromFile(fPrintFile); + RMCD.ShowReport; + RMCD.CanExport:=False; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\鱨.rmf'),'ʾ',0); + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.GetBGData(); +var + FMJId:string; + i,j,z:Integer; +begin + +end; + +procedure TfrmJYOrderCDOne_GDYJCX.v1Column15PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with Order_Main do + begin + Edit; + FieldByName('PanDing').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFB_MJJY Set PanDing='''+Trim(mvalue)+''''); + SQL.Add(' where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.Button1Click(Sender: TObject); +var + i,J:string; +begin + +end; + +procedure TfrmJYOrderCDOne_GDYJCX.CheckBox2Click(Sender: TObject); +begin + SelOKNo(Order_Main,CheckBox2.Checked); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ToolButton4Click(Sender: TObject); +begin + frmCPDBao:=TfrmCPDBao.Create(self); + with frmCPDBao do + begin + show; + + end; +// frmCPDBao.Release; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ToolButton6Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + IF trim(fieldbyname('mjstr2').AsString)<>'δ' then + begin + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ⲻܳ!','ʾϢ',MB_ICONERROR); + exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set baoID='''',baoNo='''' '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݳɹ','ʾϢ'); + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݳʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ToolButton7Click(Sender: TObject); +begin + frmCPGangNo:=TfrmCPGangNo.Create(self); + with frmCPGangNo do + begin + if showmodal=1 then + begin + // InitGrid(); + end; + end; + frmCPGangNo.Free; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ToolButton9Click(Sender: TObject); +begin + frmSMLB:=TfrmSMLB.create(self); + with frmSMLB do + begin + show; + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.Button3Click(Sender: TObject); +var fPrintFile: string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; + FBaoID:string; +begin + if Order_Main.IsEmpty then Exit; + if trim(Order_Main.FieldByName('BaoID').AsString)='' then + begin + application.MessageBox('δܴӡ','ʾ'); + exit; + end; + + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther as QtyUnit,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + SQL.ADD('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,'); + sql.Add('MprtCodeNameEng=(select top 1 Note from KH_Zdy X where X.zdyName=D.MprtCodeName), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.add(' ,substring(G.ConNo,LEN(G.ConNO)-3,LEN(G.ConNO)) HS,F.XHNo'); + sql.Add('from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + sql.add(' left join CK_SXPB_CR E on E.SPID=A.APID'); + sql.add(' inner join JYOrderCon_Sub F on F.Subid=E.ConCKID '); + sql.add(' inner join JYOrderCon_Main G on G.Mainid=F.Mainid '); + SQL.Add('where A.BaoID='''+Trim(Order_Main.fieldbyname('BaoID').AsString)+''''); + SQL.ADD('group by A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + sql.add('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,F.XHNo'); + Open; + end; + + if ADOQueryPrint.RecordCount>1 then + begin + Application.MessageBox('´!','ʾ',0); + Exit; + end; + + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=trim(ADOQueryPrint.fieldbyname('baoID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ISbaoChange(Sender: TObject); +begin + Tbfind.Click; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ConNoHZKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(ConnoHZ.Text)<4 then Exit; + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select AA.OrderNo,AA.MPRTCodeName,AA.FactoryName,AA.QtyUnit,AA.GenDan,JYQtyUnit,ConNoHZ=[dbo].[F_Get_Order_SubStr](AA.MainId,''ConNoHZ''),Sum(DJRKPS) DJRKPS'); + sql.add(',Sum(DJRKQty) DJRKQty,Sum(DJCKPS) DJCKPS,Sum(DJCKQty) DJCKQty,Sum(ZPPS) ZPPS,Sum(ZPJZ) ZPJZ,Sum(ZPlen) ZPlen,Sum(CPPS) CPPS '); //Sum(ZPMZ) ZPMZ, + sql.add(',Sum(CPJZ) CPJZ,Sum(CPlen) CPlen from '); //Sum(CPMZ) CPMZ, + sql.add('(select A.OrderNo,A.Mainid,A.MPRTCodeName,C.FactoryName,C.QtyUnit,DJRKPS=C.PiQty,DJRKQty=C.Qty'); + sql.Add(',DJCKPS=(select Sum(W.PiQty) from CK_SXPB_CR W where W.FZSPID=C.SPID and W.CRFlag='''')'); + sql.Add(',DJCKQty=(select Sum(W.Qty) from CK_SXPB_CR W where W.FZSPID=C.SPID and W.CRFlag='''')'); + sql.add(',ZPPS=(select Count(W.MJID) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',ZPJZ=(select Sum(W.MJQty4) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + {sql.add(',ZPMZ=(select Sum(W.MJMaoZ) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + }sql.add(',ZPlen=(select Sum(W.MJLen) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + + sql.add(',CPPS=(select Count(W.MJID) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',CPJZ=(select Sum(W.MJQty4) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + {sql.add(',CPMZ=(select Sum(W.MJMaoZ) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + }sql.add(',CPlen=(select Sum(W.MJLen) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',JYQtyUnit=(select Top 1 W.MJTypeOther from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID)'); + sql.add(',GenDan=(select Top 1 C.PFGenDanPerson from JYOrder_Process B inner join JYOrder_PCS_Sub C on C.PSID=B.PSID '); + sql.add(' where B.MainId=A.MainId and B.PSName=''Ⱦɫ'') '); + sql.add('from CK_SXPB_CR C '); + sql.add(' inner join JYOrder_Main A on C.OrdMainidRK=A.Mainid'); + sql.add(' where isnull(C.CKName,'''')=''첼'' and C.CRFlag='''' and C.CRType=''ӹ'' '); + sql.add(') AA '); + sql.add(' where [dbo].[F_Get_Order_SubStr](AA.MainId,''ConNoHZ'') like '''+'%'+trim(ConNOHZ.Text)+'%'+''' '); + sql.add('group by AA.OrderNo,AA.MPRTCodeName,AA.FactoryName,AA.QtyUnit,AA.MainId,AA.GenDan,AA.JYQtyUnit'); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally; + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne_GDYJCX.ADateChange(Sender: TObject); +begin + initGrid(); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.cxTabControl1Change(Sender: TObject); +begin + initgrid(); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.CheckBox3Click(Sender: TObject); +begin + initgrid(); +end; + +procedure TfrmJYOrderCDOne_GDYJCX.OrderNoKeyPress(Sender: TObject; + var Key: Char); +begin + if key=#13 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select AA.OrderNo,AA.MPRTCodeName,AA.FactoryName,AA.QtyUnit,AA.GenDan,JYQtyUnit,ConNoHZ=[dbo].[F_Get_Order_SubStr](AA.MainId,''ConNoHZ''),Sum(DJRKPS) DJRKPS'); + sql.add(',Sum(DJRKQty) DJRKQty,Sum(DJCKPS) DJCKPS,Sum(DJCKQty) DJCKQty,Sum(ZPPS) ZPPS,Sum(ZPJZ) ZPJZ,Sum(ZPlen) ZPlen,Sum(CPPS) CPPS '); //Sum(ZPMZ) ZPMZ, + sql.add(',Sum(CPJZ) CPJZ,Sum(CPlen) CPlen from '); //Sum(CPMZ) CPMZ, + sql.add('(select A.OrderNo,A.Mainid,A.MPRTCodeName,C.FactoryName,C.QtyUnit,DJRKPS=C.PiQty,DJRKQty=C.Qty'); + sql.Add(',DJCKPS=(select Sum(W.PiQty) from CK_SXPB_CR W where W.FZSPID=C.SPID and W.CRFlag='''')'); + sql.Add(',DJCKQty=(select Sum(W.Qty) from CK_SXPB_CR W where W.FZSPID=C.SPID and W.CRFlag='''')'); + sql.add(',ZPPS=(select Count(W.MJID) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',ZPJZ=(select Sum(W.MJQty4) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + {sql.add(',ZPMZ=(select Sum(W.MJMaoZ) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + }sql.add(',ZPlen=(select Sum(W.MJLen) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + + sql.add(',CPPS=(select Count(W.MJID) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',CPJZ=(select Sum(W.MJQty4) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + {sql.add(',CPMZ=(select Sum(W.MJMaoZ) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + }sql.add(',CPlen=(select Sum(W.MJLen) from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID and W.MJType=''Ʒ'')'); + sql.add(',JYQtyUnit=(select Top 1 W.MJTypeOther from WFB_MJJY W inner join CK_SXPB_CR R on R.SPID=W.APID '); + sql.add('and isnull(R.CKName,'''')=''첼'' and R.CRFlag='''' where R.FZSPID=C.SPID)'); + sql.add(',GenDan=(select Top 1 C.PFGenDanPerson from JYOrder_Process B inner join JYOrder_PCS_Sub C on C.PSID=B.PSID '); + sql.add(' where B.MainId=A.MainId and B.PSName=''Ⱦɫ'') '); + sql.add('from CK_SXPB_CR C '); + sql.add(' inner join JYOrder_Main A on C.OrdMainidRK=A.Mainid'); + sql.add(' where isnull(C.CKName,'''')=''첼'' and C.CRFlag='''' and C.CRType=''ӹ'' '); + sql.add(') AA '); + sql.add(' where AA.OrderNO like '''+'%'+trim(OrderNo.Text)+'%'+''' '); + sql.add('group by AA.OrderNo,AA.MPRTCodeName,AA.FactoryName,AA.QtyUnit,AA.MainId,AA.GenDan,AA.JYQtyUnit'); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally; + ADOQueryMain.EnableControls; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_JYOrderCDOne_HZCX.dfm b/盛纺贸易管理/U_JYOrderCDOne_HZCX.dfm new file mode 100644 index 0000000..7862a96 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne_HZCX.dfm @@ -0,0 +1,1378 @@ +object frmJYOrderCDOne_HZCX: TfrmJYOrderCDOne_HZCX + Left = 189 + Top = 127 + Width = 1180 + Height = 579 + Caption = #26816#39564#27719#24635#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1164 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26816#39564#25253#21578 + ImageIndex = 12 + OnClick = ToolButton2Click + end + object ComboBox6: TComboBox + Left = 276 + Top = 3 + Width = 145 + Height = 24 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + Items.Strings = ( + #26816#39564#30721#21333'1' + 'HAM'#26816#39564#30721#21333) + end + object TBClose: TToolButton + Left = 421 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1164 + Height = 86 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object TLabel + Left = 198 + Top = 15 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 337 + Top = 39 + Width = 40 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 198 + Top = 39 + Width = 52 + Height = 12 + Caption = #26579#21378#32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 764 + Top = 87 + Width = 39 + Height = 12 + Caption = #21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label4: TLabel + Left = 463 + Top = 14 + Width = 40 + Height = 12 + Caption = #31867' '#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 198 + Top = 63 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 590 + Top = 63 + Width = 52 + Height = 12 + Caption = #25171#21253#29366#24577 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 337 + Top = 63 + Width = 39 + Height = 12 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 463 + Top = 63 + Width = 39 + Height = 12 + Caption = #22383#24067#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 1172 + Top = 16 + Width = 52 + Height = 12 + Caption = #25171#21360#20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label19: TLabel + Left = 590 + Top = 15 + Width = 35 + Height = 12 + Caption = 'PO #' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 337 + Top = 15 + Width = 40 + Height = 12 + Caption = #27454' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 1023 + Top = 113 + Width = 52 + Height = 12 + Caption = #26159#21542#21512#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 951 + Top = 83 + Width = 52 + Height = 12 + Caption = #26159#21542#25171#21253 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label26: TLabel + Left = 463 + Top = 39 + Width = 40 + Height = 12 + Caption = #33394' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 590 + Top = 39 + Width = 39 + Height = 12 + Caption = #33457#22411#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 904 + Top = 87 + Width = 39 + Height = 12 + Caption = #25171#30721#20154 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object BegDate: TDateTimePicker + Left = 95 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 95 + Top = 35 + Width = 85 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object conNO: TEdit + Tag = 2 + Left = 251 + Top = 11 + Width = 70 + Height = 21 + TabOrder = 2 + OnChange = Aorddefstr1Change + OnKeyPress = conNOKeyPress + end + object MJID: TEdit + Tag = 2 + Left = 805 + Top = 83 + Width = 70 + Height = 21 + TabOrder = 3 + Visible = False + end + object MJType: TComboBox + Tag = 2 + Left = 504 + Top = 11 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 4 + OnChange = Aorddefstr1Change + Items.Strings = ( + #27491#21697 + #27425#21697 + #22810#25340 + '') + end + object PRTCodeName: TEdit + Tag = 2 + Left = 251 + Top = 59 + Width = 70 + Height = 21 + TabOrder = 5 + OnChange = Aorddefstr1Change + end + object MJStr2: TComboBox + Tag = 2 + Left = 647 + Top = 59 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 6 + OnChange = Aorddefstr1Change + Items.Strings = ( + #26410#20837#24211 + #24050#20986#24211 + '' + '' + '' + '') + end + object factoryName: TEdit + Tag = 2 + Left = 379 + Top = 59 + Width = 70 + Height = 21 + TabOrder = 7 + OnChange = Aorddefstr1Change + end + object fromfactoryName: TEdit + Tag = 2 + Left = 504 + Top = 59 + Width = 70 + Height = 21 + TabOrder = 8 + OnChange = Aorddefstr1Change + end + object RadioGroup1: TRadioGroup + Left = 1244 + Top = 19 + Width = 137 + Height = 66 + Columns = 3 + ItemIndex = 0 + Items.Strings = ( + #27491#24120 + #22238#20462 + #20840#37096) + TabOrder = 9 + Visible = False + OnClick = RadioGroup1Click + end + object CheckBox1: TCheckBox + Left = 750 + Top = 87 + Width = 131 + Height = 17 + Caption = #26816#39564#25253#21578#33521#25991 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + end + object CheckBox2: TCheckBox + Left = 47 + Top = 64 + Width = 97 + Height = 17 + Caption = #20840#36873 + TabOrder = 11 + OnClick = CheckBox2Click + end + object Mjstr4: TEdit + Tag = 2 + Left = 251 + Top = 35 + Width = 70 + Height = 21 + TabOrder = 12 + OnChange = OrderNoChange + end + object PrtColor: TEdit + Tag = 2 + Left = 379 + Top = 35 + Width = 70 + Height = 21 + TabOrder = 13 + OnChange = OrderNoChange + end + object ComboBox1: TComboBox + Left = 1228 + Top = 12 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 14 + Text = '1' + Visible = False + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object KHConNO: TEdit + Tag = 2 + Left = 647 + Top = 11 + Width = 70 + Height = 21 + TabOrder = 15 + OnChange = OrderNoChange + end + object StyleNo: TEdit + Tag = 2 + Left = 379 + Top = 11 + Width = 70 + Height = 21 + TabOrder = 16 + OnChange = OrderNoChange + end + object ISHZ: TComboBox + Tag = 2 + Left = 1076 + Top = 107 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 17 + OnChange = Aorddefstr1Change + Items.Strings = ( + '' + #21512#26684 + #19981#21512#26684 + '' + '' + '' + '') + end + object ISbao: TComboBox + Left = 1004 + Top = 79 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 18 + Visible = False + OnChange = ISbaoChange + Items.Strings = ( + '' + '' + #24050#25171#21253 + #26410#25171#21253) + end + object PRTColorNo: TEdit + Tag = 2 + Left = 504 + Top = 35 + Width = 70 + Height = 21 + TabOrder = 19 + OnChange = OrderNoChange + end + object prthx: TEdit + Tag = 2 + Left = 647 + Top = 35 + Width = 70 + Height = 21 + TabOrder = 20 + OnChange = OrderNoChange + end + object Filler: TComboBox + Tag = 1 + Left = 945 + Top = 83 + Width = 70 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 21 + Visible = False + OnChange = Aorddefstr1Change + end + object CheckBox3: TCheckBox + Left = 23 + Top = 12 + Width = 73 + Height = 17 + Caption = #26816#39564#26085#26399 + Checked = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + State = cbChecked + TabOrder = 22 + OnClick = CheckBox3Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 140 + Width = 1164 + Height = 401 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skCount + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1MJQty + end + item + Kind = skSum + Column = v1CDLen + end + item + Kind = skSum + Column = v1SumQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column22: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 48 + end + object v1Column32: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'conNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column2: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'Mjstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + object v1PRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 58 + end + object v1Column31: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PRTColorNo: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column38: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column18: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'fromfactoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column19: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'factoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJQty: TcxGridDBColumn + Caption = #21367#25968 + DataBinding.FieldName = 'MJQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object v1Column28: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 53 + end + object v1Column10: TcxGridDBColumn + Caption = #21367#38271#24230 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 56 + end + object v1Column11: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'MJTypeOther' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 58 + end + object v1Column33: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'khconNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object v1Column35: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1ConPerson2: TcxGridDBColumn + Caption = #25910#36135#20844#21496 + DataBinding.FieldName = 'ConPerson2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1conDefstr2: TcxGridDBColumn + Caption = #25910#36135#22320#22336 + DataBinding.FieldName = 'conDefstr2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MJStr2: TcxGridDBColumn + Caption = #25171#21253#29366#24577 + DataBinding.FieldName = 'MJStr2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1SumQty: TcxGridDBColumn + Caption = #30133#28857#20010#25968 + DataBinding.FieldName = 'SumQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1CDLen: TcxGridDBColumn + Caption = #30133#28857#38271#24230 + DataBinding.FieldName = 'CDQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1filler: TcxGridDBColumn + Caption = #25805#20316#24037 + DataBinding.FieldName = 'filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MKXS: TcxGridDBColumn + Caption = #31995#25968 + DataBinding.FieldName = 'MKXS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 74 + Top = 199 + Width = 294 + Height = 213 + TabOrder = 3 + Visible = False + object Label11: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object Panel2: TPanel + Left = 500 + Top = 188 + Width = 225 + Height = 117 + Color = clSkyBlue + TabOrder = 4 + Visible = False + object Label15: TLabel + Left = 24 + Top = 36 + Width = 24 + Height = 12 + Caption = #31995#25968 + end + object Label24: TLabel + Left = 24 + Top = 56 + Width = 24 + Height = 12 + Caption = #30382#37325 + end + object Label25: TLabel + Left = 24 + Top = 12 + Width = 48 + Height = 12 + Caption = #25442#31639#31867#22411 + end + object cxCurrencyEdit1: TcxCurrencyEdit + Left = 52 + Top = 32 + Properties.DecimalPlaces = 4 + Properties.DisplayFormat = '0.####' + Properties.Nullstring = '0' + TabOrder = 0 + Width = 121 + end + object Button1: TButton + Left = 32 + Top = 80 + Width = 60 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 128 + Top = 80 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + object cxCurrencyEdit2: TcxCurrencyEdit + Left = 52 + Top = 52 + Properties.DecimalPlaces = 4 + Properties.DisplayFormat = '0.####' + Properties.Nullstring = '0' + TabOrder = 3 + Width = 121 + end + object ComboBox4: TComboBox + Left = 76 + Top = 12 + Width = 97 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 4 + Items.Strings = ( + #38271#24230#25442#31639#20928#37325 + #20928#37325#25442#31639#38271#24230) + end + end + object Panel3: TPanel + Left = 484 + Top = 244 + Width = 249 + Height = 153 + Color = clSkyBlue + TabOrder = 6 + Visible = False + object Check_bq: TCheckBox + Left = 44 + Top = 24 + Width = 65 + Height = 17 + Caption = #21253#26631#31614 + TabOrder = 0 + end + object ComboBox2: TComboBox + Left = 120 + Top = 20 + Width = 70 + Height = 20 + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 1 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object ComboBox3: TComboBox + Left = 120 + Top = 52 + Width = 70 + Height = 20 + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 2 + Text = '1' + Visible = False + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object Fbq: TBtnEditA + Left = 64 + Top = 76 + Width = 125 + Height = 21 + TabOrder = 3 + Visible = False + OnBtnClick = FbqBtnClick + end + object check_Fbz: TCheckBox + Left = 44 + Top = 56 + Width = 73 + Height = 17 + Caption = #21253#21103#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + Visible = False + end + object Button3: TButton + Left = 32 + Top = 112 + Width = 75 + Height = 25 + Caption = #25171#21360 + TabOrder = 5 + OnClick = Button3Click + end + object Button4: TButton + Left = 148 + Top = 112 + Width = 75 + Height = 25 + Caption = #20851#38381 + TabOrder = 6 + OnClick = Button4Click + end + end + object Panel5: TPanel + Left = 684 + Top = 208 + Width = 273 + Height = 101 + Color = clSkyBlue + TabOrder = 5 + Visible = False + object Label28: TLabel + Left = 48 + Top = 28 + Width = 48 + Height = 12 + Caption = #25968#37327#21333#20301 + end + object ComboBox5: TComboBox + Left = 100 + Top = 24 + Width = 145 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 0 + Items.Strings = ( + '' + 'M' + 'Y') + end + object Button5: TButton + Left = 32 + Top = 64 + Width = 60 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button5Click + end + object Button6: TButton + Left = 172 + Top = 64 + Width = 60 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button6Click + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 118 + Width = 1164 + Height = 22 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 7 + Properties.CustomButtons.Buttons = <> + Properties.Style = 9 + Properties.TabIndex = 0 + Properties.Tabs.Strings = ( + #26410#20986#24211 + #24050#20986#24211 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 22 + ClientRectRight = 1164 + ClientRectTop = 19 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 604 + Top = 392 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 432 + Top = 192 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 516 + Top = 392 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 560 + Top = 392 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 372 + Top = 200 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 400 + Top = 200 + end + object PopupMenu1: TPopupMenu + Left = 432 + Top = 368 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 432 + Top = 256 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 764 + Top = 312 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 736 + Top = 312 + end + object CDS_CD: TClientDataSet + Aggregates = <> + Params = <> + Left = 432 + Top = 220 + end + object RMCD: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 532 + Top = 4 + ReportData = {} + end + object RMDBCD: TRMDBDataSet + Visible = True + DataSet = CDS_CD + Left = 792 + Top = 312 + end + object CDS_LS: TClientDataSet + Aggregates = <> + Params = <> + Left = 808 + Top = 364 + end + object RM3: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 432 + Top = 292 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 372 + Top = 228 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 500 + Top = 8 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 820 + Top = 312 + end + object RMDBPRT: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 848 + Top = 312 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 868 + Top = 360 + end + object CDS_COL: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 4 + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = CDS_CD + Left = 792 + Top = 312 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 436 + Top = 408 + end +end diff --git a/盛纺贸易管理/U_JYOrderCDOne_HZCX.pas b/盛纺贸易管理/U_JYOrderCDOne_HZCX.pas new file mode 100644 index 0000000..a9f4c83 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne_HZCX.pas @@ -0,0 +1,1321 @@ +unit U_JYOrderCDOne_HZCX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, MovePanel, cxTextEdit, cxContainer, cxCurrencyEdit,U_SMLB, BtnEdit, + RM_e_main, RM_e_htm, RM_e_Graphic, RM_e_Jpeg, RM_e_txt, RM_e_csv, + RM_E_llPDF, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, + dxBarBuiltInMenu; + +type + TfrmJYOrderCDOne_HZCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + conNO: TEdit; + Label7: TLabel; + Label9: TLabel; + Label10: TLabel; + MJID: TEdit; + Panel4: TPanel; + Label11: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + Label4: TLabel; + MJType: TComboBox; + v1PRTCodeName: TcxGridDBColumn; + Label5: TLabel; + PRTCodeName: TEdit; + Label6: TLabel; + MJStr2: TComboBox; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + Label12: TLabel; + Label13: TLabel; + factoryName: TEdit; + fromfactoryName: TEdit; + v1Column22: TcxGridDBColumn; + v1MJQty: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + RM2: TRMGridReport; + RMDBMain: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + RadioGroup1: TRadioGroup; + v1Column28: TcxGridDBColumn; + ToolButton2: TToolButton; + CDS_CD: TClientDataSet; + RMCD: TRMGridReport; + RMDBCD: TRMDBDataSet; + CDS_LS: TClientDataSet; + CheckBox1: TCheckBox; + Panel2: TPanel; + Label15: TLabel; + cxCurrencyEdit1: TcxCurrencyEdit; + Button1: TButton; + Button2: TButton; + CheckBox2: TCheckBox; + Mjstr4: TEdit; + PrtColor: TEdit; + Label18: TLabel; + ComboBox1: TComboBox; + RM3: TRMGridReport; + v1Column31: TcxGridDBColumn; + v1Column32: TcxGridDBColumn; + v1Column33: TcxGridDBColumn; + Panel3: TPanel; + Check_bq: TCheckBox; + ComboBox2: TComboBox; + ComboBox3: TComboBox; + Fbq: TBtnEditA; + check_Fbz: TCheckBox; + Button3: TButton; + Button4: TButton; + KHConNO: TEdit; + Label19: TLabel; + v1Column35: TcxGridDBColumn; + StyleNo: TEdit; + Label21: TLabel; + Label22: TLabel; + ISHZ: TComboBox; + RMXLSExport1: TRMXLSExport; + ISbao: TComboBox; + Label23: TLabel; + CDS_HZ: TClientDataSet; + RMDBHZ: TRMDBDataSet; + cxCurrencyEdit2: TcxCurrencyEdit; + Label24: TLabel; + Label25: TLabel; + ComboBox4: TComboBox; + RMDBPRT: TRMDBDataSet; + CDS_PRT: TClientDataSet; + v1PRTColorNo: TcxGridDBColumn; + v1Column38: TcxGridDBColumn; + PRTColorNo: TEdit; + Label26: TLabel; + prthx: TEdit; + Label27: TLabel; + Panel5: TPanel; + Label28: TLabel; + ComboBox5: TComboBox; + Button5: TButton; + Button6: TButton; + v1conDefstr2: TcxGridDBColumn; + v1ConPerson2: TcxGridDBColumn; + v1MJStr2: TcxGridDBColumn; + Label8: TLabel; + Filler: TComboBox; + v1MKXS: TcxGridDBColumn; + ComboBox6: TComboBox; + CDS_COL: TClientDataSet; + RMDBDataSet1: TRMDBDataSet; + cxTabControl1: TcxTabControl; + v1filler: TcxGridDBColumn; + v1SumQty: TcxGridDBColumn; + v1CDLen: TcxGridDBColumn; + CheckBox3: TCheckBox; + ADOQuery1: TADOQuery; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure RadioGroup1Click(Sender: TObject); + procedure Aorddefstr1Change(Sender: TObject); + procedure PRTColorChange(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1Column15PropertiesEditValueChanged(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + procedure ToolButton9Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure FbqBtnClick(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure ISbaoChange(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure conNOKeyPress(Sender: TObject; var Key: Char); + procedure ADateChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure CheckBox3Click(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + DQdate:TDateTime; + FLeft,FTop:Integer; + procedure InitGrid(); + procedure InitGrid10(); + procedure InitForm(); + function Savedata():Boolean; + procedure GetCDSData(); + procedure GetBGData(); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmJYOrderCDOne_HZCX: TfrmJYOrderCDOne_HZCX; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun,U_MJEdit, U_CPDBAO, U_CPGangNo, + U_JYOrderCDOne, U_ZDYHelp, U_ProductOrderListSel; + +{$R *.dfm} + +procedure TfrmJYOrderCDOne_HZCX.FormDestroy(Sender: TObject); +begin + frmJYOrderCDOne_HZCX:=nil; +end; + +procedure TfrmJYOrderCDOne_HZCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmJYOrderCDOne_HZCX.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmJYOrderCDOne_HZCX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('鱨JF',Tv1,''); +end; + +procedure TfrmJYOrderCDOne_HZCX.InitGrid(); +var + i:integer; + j:Integer; +begin + checkBox3.Enabled:=false; + if cxtabControl1.TabIndex=0 then + begin + checkBox3.Enabled:=true; + end; + if cxtabControl1.TabIndex<>0 then + begin + checkBox3.Checked:=true; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select DD.PrtCodeName,DD.SOrdDefStr4,DD.PRTColor,DD.PRTColorNo,DD.PRTHX,B.factoryName,A.APID,B.fromFactoryName,EE.ConPerson2,EE.conDefstr2,EE.conDefstr3,EE.ConNo,EE.KHConNO,DD.StyleNo '); + sql.add(',A.Mjstr4,A.Filler,A.MJType,Sum(A.MJQty3) MJQty3,Sum(A.MJQty4) MJQty4,sum(MJMaoZ) MJMaoZ,Sum(MJLen) MJLen,Sum(A.MJQty2) MJQty2'); + sql.add(',MJQty=(select Count(C.MJXH) from WFB_MJJY C where C.APID=A.APID and C.MJType=A.MJType and C.Filler=A.Filler and C.MJStr2=A.MJStr2)'); + sql.add(',A.MJTypeOther,A.MKXS,A.MJStr2 '); + sql.Add(',CDQty=(select SUM(CDqty) from WFB_MJJY_CD X inner join WFB_MJJY C on X.MJID=C.MJID where C.APID=A.APID and C.MJType=A.MJType and C.Filler=A.Filler and C.MJStr2=A.MJStr2) '); + sql.add(',SumQty=(select SUM(CDBeg) from WFB_MJJY_CD X inner join WFB_MJJY C on X.MJID=C.MJID where C.APID=A.APID and C.MJType=A.MJType and C.Filler=A.Filler and C.MJStr2=A.MJStr2) '); + sql.add('from WFB_MJJY A '); + sql.add('inner join CK_SXPB_CR B on B.SPID=A.APID '); + sql.add('inner join JYOrderCon_Sub DD on DD.Subid=A.ConID '); + sql.add('inner join JYOrderCon_Main EE on EE.Mainid=DD.Mainid where 1=1 '); + if checkBox3.Checked=true then + begin + sql.add(' and A.filltime>='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''' '); + sql.add(' and A.Filltime<'''+trim(formatdatetime('yyyy-MM-dd',Enddate.DateTime+1))+''' '); + end; + if cxtabControl1.TabIndex=0 then + begin + sql.add(' and A.MJStr2=''δ'' '); + end; + if cxtabControl1.TabIndex=1 then + begin + sql.add(' and A.MJStr2=''ѳ'' '); + end; + sql.add('group by DD.PrtCodeName,DD.SOrdDefStr4,DD.PRTColor,DD.PRTColorNo,DD.PRTHX,B.factoryName,A.APID,B.fromFactoryName,EE.ConPerson2,EE.conDefstr2,EE.conDefstr3,EE.ConNo,EE.KHConNO,DD.StyleNo '); + sql.add(',A.Mjstr4,A.Filler,A.MJType,A.MJTypeOther,A.MKXS,A.MJStr2 '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + //TBFind.Click; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.InitGrid10(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX :begdate,:enddate,:PState '); + Parameters.ParamByName('begdate').Value:='2012-01-01'; + Parameters.ParamByName('enddate').Value:='2011-01-01'; + Parameters.ParamByName('PState').Value:=3; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.InitForm(); +var + fsj:String; +begin + ReadCxGrid('鱨JF',Tv1,''); + fsj:='select distinct(Filler) name from WFB_MJJY '; + SInitComBoxBySql(ADOQueryCmd,Filler,False,fsj); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-1; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp)-1; + //InitGrid(); +end; + +procedure TfrmJYOrderCDOne_HZCX.TBFindClick(Sender: TObject); +var + fsj,fwhere:String; +begin + if ADOQueryMain.Active=False then Exit; + fwhere:=SGetFilters(Panel1,1,2); + fsj:=''; + if trim(ISbao.Text)='Ѵ' then + begin + fsj:=fsj+' baoNo>''0'' '; + end else + if trim(ISbao.Text)='δ' then + begin + fsj:=fsj+' baoNo='''' '; + end; + + IF trim(fsj)<>'' then + begin + IF fwhere='' then fwhere:=fsj + else fwhere:=fwhere+' and '+fsj; + end; + SDofilter(ADOQueryMain,fwhere); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + + +procedure TfrmJYOrderCDOne_HZCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'鱨'); +end; + +procedure TfrmJYOrderCDOne_HZCX.TBRafreshClick(Sender: TObject); +begin + ConnO.SetFocus; + {MovePanel2.Left:=(self.Width-MovePanel2.Width) div 2; + MovePanel2.Visible:=True; + MovePanel2.Refresh;} + InitGrid(); + //MovePanel2.Visible:=False; +end; + +procedure TfrmJYOrderCDOne_HZCX.OrderNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne_HZCX.FormShow(Sender: TObject); +begin + InitForm(); + if Trim(DParameters2)='' then + begin + //TBManage.Visible:=True; + //TBZF.Visible:=True; + //ToolButton3.Visible:=true; + //TBBN.Visible:=true; + //ToolButton12.Visible:=true; + //ToolButton1.Visible:=true; + //ToolButton9.Visible:=true; + //ToolButton4.Visible:=true; + //ToolButton6.Visible:=true; + //ToolButton5.Visible:=true; + //ToolButton7.Visible:=true; + //ToolButton11.Visible:=true; + //TBAftChkHX.Visible:=True; + end; + if Trim(DParameters2)='Ʒ' then + begin + MJType.ItemIndex:=MJType.Items.IndexOf('Ʒ'); + MJType.Enabled:=false; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmJYOrderCDOne_HZCX.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmJYOrderCDOne_HZCX.Tv1MouseUp(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmJYOrderCDOne_HZCX.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmJYOrderCDOne_HZCX.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton1Click(Sender: TObject); +var + fPrintFile:string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,GangNo=D.RCgangNO,PRTColorEng=E.Note,EE.ConLBName,EE.ConNLBName '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTCode,B.MaiTouNote,EE.ConPerson2,EE.conDefstr2,EE.conDefstr3,EE.ConNo,EE.KHConNO,DD.StyleNo,B.LengUnit,C.*,A.* '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.add(' ,substring(EE.ConNo,LEN(EE.ConNO)-3,LEN(EE.ConNO)) HS,DD.XHNo,D.PiQty'); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join CK_SXPB_CR D on D.SPId=A.APId '); + sql.add(' left join JYOrderCon_Sub DD on DD.Subid=D.ConCKID '); + sql.add(' left join JYOrderCon_Main EE on EE.Mainid=DD.Mainid '); + SQL.Add(' where A.MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + if Trim(ADOQueryPrint.fieldbyname('ConLBName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('ConLBName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + // fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\15029.rmf' ; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RMVariables['ID']:=trim(ADOQueryPrint.fieldbyname('HS').AsString)+Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); + RM2.LoadFromFile(fPrintFile); + Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1); + // RM2.ShowReport; + RM2.PrintReport; + { IF Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)<>'' then + begin + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM3.LoadFromFile(fPrintFile); + RM3.DefaultCopies:=1; + // RM3.ShowReport; + RM3.PrintReport; + end; + end; } + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + Exit; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; +end; + +procedure TfrmJYOrderCDOne_HZCX.RadioGroup1Click(Sender: TObject); +begin + TBFind.Click; +end; + +function TfrmJYOrderCDOne_HZCX.Savedata():Boolean; +var + maxno,LLID:string; + HXPS:Integer; + HXQty,HXMQty:Double; +begin + HXPS:=0; + HXQty:=0; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstName='''+Trim(Order_Main.fieldbyname('AOrddefstr4').AsString)+''''); + Open; + end; + LLID:=Trim(ADOQueryTemp.fieldbyname('LLID').AsString); + if Trim(LLID)='' then + begin + Result:=False; + Application.MessageBox('ûӦļӹ!','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxno,'HX','Contract_Cloth_BefChkHX',2,1)=False then + begin + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + HXPS:=HXPS+1; + HXQty:=HXQty+Order_Main.FieldByName('MJLen').Value; + end; + Next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(''); + Open; + end; + except + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.Aorddefstr1Change(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderCDOne_HZCX.PRTColorChange(Sender: TObject); +begin + TBFind.Click; + if Order_Main.IsEmpty=False then + begin + //InitOrderColor(Trim(Order_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + // InitBCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.GetCDSData(); +begin + CDS_CD.FieldByName('MJXH').Value:=CDS_LS.fieldbyname('MJXH').Value; + CDS_CD.FieldByName('GangNo').Value:=CDS_LS.fieldbyname('Aorddefstr1').Value; + CDS_CD.FieldByName('PRTColor').Value:=CDS_LS.fieldbyname('PRTColor').Value; + CDS_CD.FieldByName('PRTEColor').Value:=CDS_LS.fieldbyname('SOrddefstr4').Value; + CDS_CD.FieldByName('MJLen').Value:=CDS_LS.fieldbyname('MJLen').Value; + CDS_CD.FieldByName('MJJZ').Value:=CDS_LS.fieldbyname('MJQty4').Value; + CDS_CD.FieldByName('MJMZ').Value:=CDS_LS.fieldbyname('MJMaoZ').Value; + CDS_CD.FieldByName('MJFK').Value:=CDS_LS.fieldbyname('MJFK').Value; + CDS_CD.FieldByName('KFQtyHZ').Value:=CDS_LS.fieldbyname('KFQtyHZ').Value; + CDS_CD.FieldByName('DengJi').Value:=CDS_LS.fieldbyname('DengJi').Value; + CDS_CD.FieldByName('PanDing').Value:=CDS_LS.fieldbyname('PanDing').Value; + CDS_CD.FieldByName('MJID').Value:=CDS_LS.fieldbyname('MJID').Value; +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton2Click(Sender: TObject); +var + fPrintFile,fZMFile:string; +begin + if Order_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID='+quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + //sql.add(',@begtime='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''' '); + //sql.add(',@Endtime='''+trim(formatdatetime('yyyy-MM-dd',Enddate.DateTime+1))+''' '); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2='+quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus='''+trim(Order_Main.FieldByName('FHStatus').AsString)+''' '); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_HZ); + SInitCDSData20(ADOQueryTemp,CDS_HZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.add('exec P_Print_JYMD1 '); + sql.add('@mainID='+quotedstr(Trim(Order_Main.FieldByName('ConNO').AsString))); + //sql.add(',@begtime='''+trim(formatdatetime('yyyy-MM-dd',begdate.DateTime))+''' '); + //sql.add(',@Endtime='''+trim(formatdatetime('yyyy-MM-dd',Enddate.DateTime+1))+''' '); + sql.Add(',@begtime=''2000-01-01'''); + sql.Add(',@Endtime=''2100-01-01'''); + sql.add(',@MJStr2='+quotedstr(Trim(Order_Main.FieldByName('MJStr2').AsString))); + sql.Add(',@FHStatus='''+trim(Order_Main.FieldByName('FHStatus').AsString)+''' '); + sql.add(',@flag=''2'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_COL); + SInitCDSData20(ADOQuery1,CDS_COL); + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ComboBox6.Text)+'.rmf' ; + if FileExists(fPrintFile) then + begin + if RMCD.CanExport=true then + begin + fZMFile:='C:\Users\Administrator\Desktop'; + if not DirectoryExists(fZMFile) then + begin + fZMFile:='C:\Documents and Settings\Administrator\\'+trim(Order_Main.fieldbyname('ConNO').AsString)+' DETAILED PL.xls'; + end + else + begin + fZMFile:='C:\Users\Administrator\Desktop\'+trim(Order_Main.fieldbyname('ConNO').AsString)+' DETAILED PL.XLS'; + end; + RMCD.ExportTo(RMXLSExport1,fZMFile); + end; + RMCD.CanExport:=true; + RMCD.LoadFromFile(fPrintFile); + RMCD.ShowReport; + RMCD.CanExport:=False; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\鱨.rmf'),'ʾ',0); + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.GetBGData(); +var + FMJId:string; + i,j,z:Integer; +begin + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select MJXH=Cast(0 as int),GangNo=Cast('''' as varchar(20)),PRTColor=Cast('''' as varchar(20)),MJID=Cast('''' as varchar(20))'); + sql.Add(',PRTEColor=Cast('''' as varchar(20)),MJLen=Cast(0 as decimal(18,2)),MJJZ=Cast(0 as decimal(18,2)),XH=Cast(0 as int)'); + sql.Add(',MJMZ=Cast(0 as decimal(18,2)),MJFK=Cast(0 as decimal(18,2)),KFQtyHZ=Cast(0 as int),DengJi=Cast('''' as varchar(20)),PanDing=Cast('''' as varchar(20))'); + sql.Add(',CDName0=Cast('''' as varchar(20)),CDBeg0=Cast('''' as varchar(20)),KFQty0=Cast(0 as int)'); + sql.Add(',CDName1=Cast('''' as varchar(20)),CDBeg1=Cast('''' as varchar(20)),KFQty1=Cast(0 as int)'); + sql.Add(',CDName2=Cast('''' as varchar(20)),CDBeg2=Cast('''' as varchar(20)),KFQty2=Cast(0 as int)'); + sql.Add(',CDName3=Cast('''' as varchar(20)),CDBeg3=Cast('''' as varchar(20)),KFQty3=Cast(0 as int)'); + sql.Add(',CDName4=Cast('''' as varchar(20)),CDBeg4=Cast('''' as varchar(20)),KFQty4=Cast(0 as int)'); + sql.Add(',CDName5=Cast('''' as varchar(20)),CDBeg5=Cast('''' as varchar(20)),KFQty5=Cast(0 as int)'); + sql.Add(',CDName6=Cast('''' as varchar(20)),CDBeg6=Cast('''' as varchar(20)),KFQty6=Cast(0 as int)'); + sql.Add(',CDName7=Cast('''' as varchar(20)),CDBeg7=Cast('''' as varchar(20)),KFQty7=Cast(0 as int)'); + sql.Add(',CDName8=Cast('''' as varchar(20)),CDBeg8=Cast('''' as varchar(20)),KFQty8=Cast(0 as int)'); + sql.Add(',CDName9=Cast('''' as varchar(20)),CDBeg9=Cast('''' as varchar(20)),KFQty9=Cast(0 as int)'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_CD); + SInitCDSData20(ADOQueryTemp,CDS_CD); + if CDS_CD.IsEmpty=False then CDS_CD.Delete; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select A.*,Case when isnull(MJType,'''')=''Ʒ'' and KFQtyHZ<26 then ''A'' '); + sql.Add(' when isnull(MJType,'''')=''Ʒ'' and KFQtyHZ>33 then ''C'''); + sql.Add(' when isnull(MJType,'''')=''Ʒ'' and KFQtyHZ>25 and A.KFQtyHZ<34 then ''B'''); + sql.Add(' else MJType end as DengJi'); + sql.Add('from (select A.CDBeg,A.CDName,A.KouFenQty,B.MJXH,C.Aorddefstr1,JS.PRTColor,JS.SOrddefstr4,B.MJID '); + sql.Add(',CDEName=(select Note from KH_Zdy KZ where KZ.ZdyName=A.CDName and KZ.Type=''WFBCD'' )'); + sql.Add(',B.MJLen,B.MJQty4,B.MJMaoZ,B.MJTypeOther,B.MJSJKZ,B.MJFK,B.MJType,B.PanDing'); + sql.Add(',KFQtyHZ=(select Sum(KouFenQty) from WFB_MJJY_CD MCD where MCD.MJID=B.MJID)'); + sql.Add(' from WFB_MJJY B inner join WFB_MJJY_CD A on B.MJID=A.MJID'); + sql.Add(' inner join JYOrder_Sub_AnPai C on B.APID=C.APID'); + sql.Add(' inner join JYOrder_Sub JS on C.SubId=JS.SubId'); + SQL.Add(' where B.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + if Trim(MJType.Text)<>'' then + begin + sql.Add(' and isnull(B.MJType,'''')='''+Trim(MJType.Text)+''''); + end; + + sql.Add(')A order by PRTColor,Cast(Aorddefstr1 as int),MJID,MJXH'); + Open; + end; + //ShowMessage(ADOQueryTemp.SQL.Text); + //ShowMessage(IntToStr(ADOQueryTemp.RecordCount)); + SCreateCDS20(ADOQueryTemp,CDS_LS); + SInitCDSData20(ADOQueryTemp,CDS_LS); + CDS_LS.DisableControls; + with CDS_LS do + begin + First; + while not Eof do + begin + if CDS_CD.IsEmpty then + begin + with CDS_CD do + begin + Append; + GetCDSData(); + if CheckBox1.Checked=True then + FieldByName('CDName0').Value:=CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName0').Value:=CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg0').Value:=CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty0').Value:=CDS_LS.fieldbyname('KouFenQty').Value; + FieldByName('XH').Value:=0; + Post; + FMJId:=Trim(CDS_LS.fieldbyname('MJID').AsString); + i:=0;//к + j:=0; + z:=0;//к + end; + end else + begin + if Trim(CDS_LS.fieldbyname('MJID').AsString)=FMJId then + begin + i:=i+1; + if i<10 then + begin + with CDS_CD do + begin + Edit; + GetCDSData(); + if CheckBox1.Checked=True then + FieldByName('CDName'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('KouFenQty').Value; + Post; + end; + end else + begin + i:=0; + with CDS_CD do + begin + Append; + GetCDSData(); + if CheckBox1.Checked=True then + FieldByName('CDName'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('KouFenQty').Value; + Post; + end; + end; + end else + begin + i:=0; + with CDS_CD do + begin + Append; + GetCDSData(); + if CheckBox1.Checked=True then + FieldByName('CDName'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDEName').Value + else + FieldByName('CDName'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDName').Value; + FieldByName('CDBeg'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('CDBeg').Value; + FieldByName('KFQty'+Trim(IntToStr(i))).Value:=CDS_LS.fieldbyname('KouFenQty').Value; + Post; + end; + FMJId:=Trim(CDS_LS.fieldbyname('MJID').AsString); + end; + end; + Next; + end; + end; + CDS_LS.EnableControls; +end; + +procedure TfrmJYOrderCDOne_HZCX.v1Column15PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with Order_Main do + begin + Edit; + FieldByName('PanDing').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFB_MJJY Set PanDing='''+Trim(mvalue)+''''); + SQL.Add(' where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.Button2Click(Sender: TObject); +begin + Panel2.Visible:=false; +end; + +procedure TfrmJYOrderCDOne_HZCX.Button1Click(Sender: TObject); +var + i,J:string; +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if trim(ComboBox4.Text)='' then + begin + Application.MessageBox('ͲΪ!','ʾ',0); + Exit; + end; + i:=floattostr(strtofloatdef(trim(cxCurrencyEdit1.Text),0)); + J:= floattostr(strtofloatdef(trim(cxCurrencyEdit2.Text),0)); + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + // sql.Add('Update WFB_MJJY Set MKXs='''+trim(i)+''',MJLen=cast(1.00000* MJQty4 *'''+trim(i)+''' as decimal(18,1)) '); + IF trim(ComboBox4.Text)='Ȼ㾻'then + begin + sql.Add('Update WFB_MJJY Set MKXs='''+trim(i)+''',MJQty3='''+trim(J)+''',MJQty4=cast(1.00000* MJlen *'''+trim(i)+''' as decimal(18,1)) '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + sql.Add('Update WFB_MJJY Set MJMaoZ=MJQty4+MJQty3 '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + end; + IF trim(ComboBox4.Text)='ػ㳤'then + begin + sql.Add('Update WFB_MJJY Set MKXs='''+trim(i)+''',MJQty3='''+trim(J)+''',MJlen=cast(1.00000* MJQty4 *'''+trim(i)+''' as decimal(18,0)) '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + sql.Add('Update WFB_MJJY Set MJMaoZ=MJQty4+MJQty3 '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + end; + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݱɹ','ʾϢ'); + Panel2.Visible:=false; + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݱʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton3Click(Sender: TObject); +begin + Panel2.Left:=(self.Width-Panel2.Width) div 2; + Panel2.Visible:=true; +end; + +procedure TfrmJYOrderCDOne_HZCX.CheckBox2Click(Sender: TObject); +begin + SelOKNo(Order_Main,CheckBox2.Checked); +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton4Click(Sender: TObject); +begin + frmCPDBao:=TfrmCPDBao.Create(self); + with frmCPDBao do + begin + show; + + end; +// frmCPDBao.Release; +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton6Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + IF trim(fieldbyname('mjstr2').AsString)<>'δ' then + begin + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ⲻܳ!','ʾϢ',MB_ICONERROR); + exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set baoID='''',baoNo='''' '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݳɹ','ʾϢ'); + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݳʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton7Click(Sender: TObject); +begin + frmCPGangNo:=TfrmCPGangNo.Create(self); + with frmCPGangNo do + begin + if showmodal=1 then + begin + // InitGrid(); + end; + end; + frmCPGangNo.Free; +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton9Click(Sender: TObject); +begin + frmSMLB:=TfrmSMLB.create(self); + with frmSMLB do + begin + show; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.Button4Click(Sender: TObject); +begin + Panel3.Visible:=false; +end; + +procedure TfrmJYOrderCDOne_HZCX.Button3Click(Sender: TObject); +var fPrintFile: string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; + FBaoID:string; +begin + if Order_Main.IsEmpty then Exit; + if trim(Order_Main.FieldByName('BaoID').AsString)='' then + begin + application.MessageBox('δܴӡ','ʾ'); + exit; + end; + + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther as QtyUnit,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + SQL.ADD('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,'); + sql.Add('MprtCodeNameEng=(select top 1 Note from KH_Zdy X where X.zdyName=D.MprtCodeName), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.add(' ,substring(G.ConNo,LEN(G.ConNO)-3,LEN(G.ConNO)) HS,F.XHNo'); + sql.Add('from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + sql.add(' left join CK_SXPB_CR E on E.SPID=A.APID'); + sql.add(' inner join JYOrderCon_Sub F on F.Subid=E.ConCKID '); + sql.add(' inner join JYOrderCon_Main G on G.Mainid=F.Mainid '); + SQL.Add('where A.BaoID='''+Trim(Order_Main.fieldbyname('BaoID').AsString)+''''); + SQL.ADD('group by A.Baoid,A.BaoNo,G.ConNO,G.KHConNO,F.StyleNo,A.MJTypeOther,D.OrderNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,D.LBName,D.NLBName,'); + sql.add('C.SOrddefstr4,G.MPrtCode,G.MPRTSpec,G.ConPerson2,G.conDefstr2,G.conDefstr3,D.MaiTouNote,D.LengUnit,F.XHNo'); + Open; + end; + + if ADOQueryPrint.RecordCount>1 then + begin + Application.MessageBox('´!','ʾ',0); + Exit; + end; + + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=trim(ADOQueryPrint.fieldbyname('baoID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + IF Check_bq.Checked then + begin + if Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)<>'' then + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RMVariables['ID']:=trim(ADOQueryPrint.fieldbyname('HS').AsString)+Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); + RM2.DefaultCopies:=strtointdef(trim(ComboBox2.Text),1); + RM2.LoadFromFile(fPrintFile); + // RM2.ShowReport; + RM2.printReport; + end + else + begin + // Order_Main.EnableControls; + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; + end; + + IF check_Fbz.Checked then + begin + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(Fbq.Text)+'.rmf' ; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM2.DefaultCopies:=strtointdef(trim(ComboBox3.Text),1); + RM2.LoadFromFile(fPrintFile); + // RM2.ShowReport; + RM2.printReport; + end + else + begin + // Order_Main.EnableControls; + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; + end; + +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton5Click(Sender: TObject); +begin + Panel3.Left:=(self.Width-Panel3.Width) div 2; + Panel3.Visible:=true; +end; + +procedure TfrmJYOrderCDOne_HZCX.FbqBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BAOFFLAG'; + flagname:='ǩ'; + if ShowModal=1 then + begin + Fbq.Text:=trim(ClientDataSet1.fieldbyname('zdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.MJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Length(MJID.Text)<4 then Exit; + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_JYOrder_HZFX20 :begdate,:enddate,:PState,:FFSql '); + Parameters.ParamByName('begdate').Value:='2010-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Parameters.ParamByName('PState').Value:=3; + Parameters.ParamByName('FFSql').Value:=' where A.MJID like '''+'%'+Trim(MJID.Text)+'%'+''''; + //ShowMessage(sql.Text); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + if Order_Main.IsEmpty=False then + begin + //InitOrderColor(Trim(Order_Main.fieldbyname('MainId').AsString),PRTColor,ADOQueryTemp); + // InitBCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),AOrdDefStr1,ADOQueryTemp); + // InitRCGangNo(Trim(Order_Main.fieldbyname('SubId').AsString),GangNo,ADOQueryTemp); + end; + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.ISbaoChange(Sender: TObject); +begin + Tbfind.Click; +end; + +procedure TfrmJYOrderCDOne_HZCX.Button6Click(Sender: TObject); +begin + Panel5.Visible:=false; +end; + +procedure TfrmJYOrderCDOne_HZCX.Button5Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if trim(ComboBox5.Text)='' then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + try + Order_Main.DisableControls; + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJTypeOther='''+trim(ComboBox5.Text)+''' '); + sql.Add('where MJID='''+Trim(Order_Main.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Order_Main.EnableControls; + application.MessageBox('ݱɹ','ʾϢ'); + Panel2.Visible:=false; + TBRafresh.Click; + exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Order_Main.EnableControls; + application.MessageBox('ݱʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.ToolButton12Click(Sender: TObject); +begin + Panel5.Visible:=true; +end; + +procedure TfrmJYOrderCDOne_HZCX.conNOKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(Conno.Text)<4 then Exit; + {MovePanel2.Visible:=True; + MovePanel2.Refresh;} + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select DD.PrtCodeName,DD.SOrdDefStr4,DD.PRTColor,DD.PRTColorNo,DD.PRTHX,B.factoryName,B.SPID,B.fromFactoryName,EE.ConPerson2,EE.conDefstr2,EE.conDefstr3,EE.ConNo,EE.KHConNO,DD.StyleNo '); + sql.add(',A.Mjstr4,A.MJType,Sum(A.MJQty3) MJQty3,Sum(A.MJQty4) MJQty4,sum(MJMaoZ) MJMaoZ,Sum(MJLen) MJLen,Sum(A.MJQty2) MJQty2'); + sql.add(',MJQty=(select Count(C.MJXH) from WFB_MJJY C where C.APID=B.SPID and C.MJType=A.MJType and C.MJTypeOther=A.MJTypeOther and C.MJStr2=A.MJStr2)'); + sql.add(',A.MJTypeOther,A.MKXS,A.MJStr2 '); + sql.add('from WFB_MJJY A '); + sql.add('inner join CK_SXPB_CR B on B.SPID=A.APID '); + sql.add('inner join JYOrderCon_Sub DD on DD.Subid=A.ConID '); + sql.add('inner join JYOrderCon_Main EE on EE.Mainid=DD.Mainid '); + sql.add('where EE.ConNo like '''+'%'+trim(ConNo.Text)+'%'+''' '); + sql.add('group by DD.PrtCodeName,DD.SOrdDefStr4,DD.PRTColor,DD.PRTColorNo,DD.PRTHX,B.factoryName,B.SPID,B.fromFactoryName,EE.ConPerson2,EE.conDefstr2,EE.conDefstr3,EE.ConNo,EE.KHConNO,DD.StyleNo '); + sql.add(',A.Mjstr4,A.MJType,A.MJTypeOther,A.MKXS,A.MJStr2 '); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + //MovePanel2.Visible:=False; + end; +end; + +procedure TfrmJYOrderCDOne_HZCX.ADateChange(Sender: TObject); +begin + initGrid(); +end; + +procedure TfrmJYOrderCDOne_HZCX.cxTabControl1Change(Sender: TObject); +begin + initgrid(); +end; + +procedure TfrmJYOrderCDOne_HZCX.CheckBox3Click(Sender: TObject); +begin + initgrid(); +end; + +procedure TfrmJYOrderCDOne_HZCX.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + frmJYOrderCDOne:=TfrmJYOrderCDOne.create(self); + with frmJYOrderCDOne do + begin + FBeg:=datetostr(self.BegDate.DateTime); + FEnd:=datetostr(self.EndDate.DateTime); + FMJType:=trim(self.Order_Main.fieldbyname('MJType').AsString); + FFiller:=trim(self.Order_Main.fieldbyname('Filler').AsString); + FMJStr2:=trim(self.Order_Main.fieldbyname('MJStr2').AsString); + FAPID:=trim(self.Order_Main.fieldbyname('APID').AsString); + if showmodal=1 then + begin + + end; + free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_JYOrderCDOne_LR.dfm b/盛纺贸易管理/U_JYOrderCDOne_LR.dfm new file mode 100644 index 0000000..ffc9604 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne_LR.dfm @@ -0,0 +1,245 @@ +object frmJYOrderCDOne_LR: TfrmJYOrderCDOne_LR + Left = 188 + Top = 122 + Width = 1162 + Height = 588 + Caption = #20837#24211#20449#24687#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TADD: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = TADDClick + end + object TDel: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = TDelClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 29 + Width = 1146 + Height = 521 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1KGQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v2Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 109 + end + object v2PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v2PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1CRType: TcxGridDBColumn + Caption = #20837#24211#31867#22411 + DataBinding.FieldName = 'CRType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1CRTypePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'CPType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #27491#21697 + #27425#21697) + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v1Column2: TcxGridDBColumn + Caption = #20837#24211#26102#38388 + DataBinding.FieldName = 'FillTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 102 + end + object v1KGQty: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Width = 89 + end + object v2Column6: TcxGridDBColumn + Caption = #20837#24211#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Width = 89 + end + object v1Column7: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column7PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 83 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 380 + Top = 109 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 516 + Top = 117 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 344 + Top = 376 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 376 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 260 + Top = 104 + end + object ADOZDY: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 300 + Top = 101 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 216 + Top = 96 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 456 + Top = 113 + end +end diff --git a/盛纺贸易管理/U_JYOrderCDOne_LR.pas b/盛纺贸易管理/U_JYOrderCDOne_LR.pas new file mode 100644 index 0000000..f29221d --- /dev/null +++ b/盛纺贸易管理/U_JYOrderCDOne_LR.pas @@ -0,0 +1,356 @@ +unit U_JYOrderCDOne_LR; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxDropDownEdit, cxCheckBox, cxCalendar; + +type + TfrmJYOrderCDOne_LR = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + ADOQuery1: TADOQuery; + TADD: TToolButton; + TDel: TToolButton; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v2Column1: TcxGridDBColumn; + v2PRTColor: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1KGQty: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + v1CRType: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TADDClick(Sender: TObject); + procedure TDelClick(Sender: TObject); + procedure v2PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column11PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1CRTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + FXS:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + { Private declarations } + public + PState,PCopyInt:Integer; + FCRID,FConNo:String; + + { Public declarations } + end; + +var + frmJYOrderCDOne_LR: TfrmJYOrderCDOne_LR; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ProductOrderListSel; + +{$R *.dfm} + +procedure TfrmJYOrderCDOne_LR.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmJYOrderCDOne_LR.InitData(); +begin + with ADOQuery1 do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from CK_BanCP_CR A '); + sql.add('where 1=2'); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); +end; + +procedure TfrmJYOrderCDOne_LR.ZDYHelp(FButn:TcxButtonEdit;LType:string); +begin + +end; + +procedure TfrmJYOrderCDOne_LR.FormShow(Sender: TObject); +begin + + InitData(); + +end; + +function TfrmJYOrderCDOne_LR.SaveData():Boolean; +var + maxno,maxSubNo,FInt:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('BCID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'CR','CK_BanCP_CR',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end else + begin + maxno:=Trim(FCRID); + end; + if Trim(Order_Sub.fieldbyname('BCID').AsString)='' then + begin + if GetLSNo(ADOCmd,FInt,'3','CK_BanCP_CR',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from CK_BanCP_CR where BCID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('BCID').AsString)='' then + begin + ADOCmd.Append; + fieldbyname('CRID').AsFloat:=strtofloat(FInt); + end + else + ADOCmd.Edit; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('APID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'CK_BanCP_CR',0); + FieldByName('KGQty').Value:=Order_Sub.fieldbyname('KGQty').AsFloat; + FieldByName('BCFK').Value:=Order_Sub.fieldbyname('BCFK').AsFloat; + FieldByName('BCKZ').Value:=Order_Sub.fieldbyname('BCKZ').AsFloat; + FieldByName('Qty').Value:=Order_Sub.fieldbyname('Qty').AsFloat; + fieldbyname('CRFlag').Value:=''; + ADOCmd.Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('BCID').Value:=Trim(maxno); + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmJYOrderCDOne_LR.TBSaveClick(Sender: TObject); +begin + + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + end; + +end; + +procedure TfrmJYOrderCDOne_LR.v1Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + frmProductOrderListSel:=TfrmProductOrderListSel.Create(self); + with frmProductOrderListSel do + begin + if showmodal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('orderNo').AsString:=trim(Order_Main.fieldbyname('OrderNo').asstring); + fieldbyname('MPRTCodeName').AsString:=trim(Order_Main.fieldbyname('MPRTCodeName').asstring); + fieldbyname('PRTColor').AsString:=trim(Order_Main.fieldbyname('PRTColor').asstring); + fieldbyname('PRTColorNo').AsString:=trim(Order_Main.fieldbyname('PRTColorNo').asstring); + fieldbyname('PRTHX').AsString:=trim(Order_Main.fieldbyname('PRTHX').asstring); + fieldbyname('Mainid').AsString:=trim(Order_Main.fieldbyname('Mainid').asstring); + fieldbyname('Subid').AsString:=trim(Order_Main.fieldbyname('Subid').asstring); + post; + end; + end; + free; + end; +end; + +procedure TfrmJYOrderCDOne_LR.TADDClick(Sender: TObject); +begin + if Order_Sub.IsEmpty=False then + begin + CopyAddRowCDS(Order_Sub); + with Order_Sub do + begin + Edit; + FieldByName('CRID').Value:=null; + post; + end; + end else + begin + with Order_Sub do + begin + Append; + fieldbyname('filltime').AsDateTime:=now; + fieldbyname('CRTime').AsDateTime:=now; + Post; + end; + end; +end; + +procedure TfrmJYOrderCDOne_LR.TDelClick(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + Order_Sub.Delete; +end; + +procedure TfrmJYOrderCDOne_LR.v2PRTColorPropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJYOrderCDOne_LR.v2Column1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCodeName'; + flagname:=''; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('MPRTCodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJYOrderCDOne_LR.v1Column11PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PRTHX'; + flagname:='ͻ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTHX').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJYOrderCDOne_LR.v1CRTypePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CRType'; + flagname:=''; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('CRType').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJYOrderCDOne_LR.v1Column7PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='QtyUnit'; + flagname:='ȵλ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('QtyUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_JYOrderZJList.dfm b/盛纺贸易管理/U_JYOrderZJList.dfm new file mode 100644 index 0000000..02430c3 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderZJList.dfm @@ -0,0 +1,516 @@ +object frmJYOrderZJList: TfrmJYOrderZJList + Left = 124 + Top = 96 + Width = 1182 + Height = 606 + Caption = #36136#26816#20449#24687#30331#35760 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1166 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object ToolButton3: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #36865#23457 + ImageIndex = 22 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton2: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25764#38144 + ImageIndex = 52 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object ToolButton4: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 567 + Top = 0 + Caption = #38468#20214 + ImageIndex = 53 + Visible = False + OnClick = ToolButton5Click + end + object TBExport: TToolButton + Left = 626 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 689 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 120 + Width = 1166 + Height = 447 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 46 + end + object v1Column9: TcxGridDBColumn + Caption = #36136#26816#26085#26399 + DataBinding.FieldName = 'ZJDate' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 101 + end + object v1Column2: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 117 + end + object v1Column7: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'ZJName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 94 + end + object v1Column6: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'ZJMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column1: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'ZJKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column4: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'FactoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + object v1Column10: TcxGridDBColumn + Caption = #36127#36131#20154 + DataBinding.FieldName = 'ZJFZPerson' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column11: TcxGridDBColumn + Caption = #36136#26816#32467#26524 + DataBinding.FieldName = 'ZJStatus' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 112 + end + object v1Column12: TcxGridDBColumn + Caption = #35760#24405#20154 + DataBinding.FieldName = 'ZJPerson' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 82 + end + object v1Column8: TcxGridDBColumn + Caption = #38468#20214 + DataBinding.FieldName = 'FJFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column13: TcxGridDBColumn + Caption = #23457#25209#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column3: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'Status' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1166 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label9: TLabel + Left = 191 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 191 + Top = 39 + Width = 39 + Height = 12 + Caption = #20379#24212#21830 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 377 + Top = 15 + Width = 54 + Height = 12 + Caption = #21697' '#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 377 + Top = 39 + Width = 52 + Height = 12 + Caption = #36136#26816#32467#26524 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 28 + Top = 15 + Width = 52 + Height = 12 + Caption = #26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 64 + Top = 39 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Tag = 2 + Left = 231 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + OnKeyPress = OrderNoKeyPress + end + object FactoryName: TEdit + Tag = 2 + Left = 231 + Top = 35 + Width = 125 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object ZJName: TEdit + Tag = 2 + Left = 434 + Top = 11 + Width = 125 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object BegDate: TDateTimePicker + Left = 81 + Top = 11 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 81 + Top = 35 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + object ZJStatus: TComboBox + Tag = 1 + Left = 434 + Top = 35 + Width = 126 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 5 + OnChange = ZJStatusChange + Items.Strings = ( + #36890#36807 + #19981#36890#36807 + '') + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 99 + Width = 1166 + Height = 21 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Style = 8 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #24453#36865#23457 + #24050#36865#23457 + #24050#23457#25209 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 23 + ClientRectRight = 1166 + ClientRectTop = 23 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 464 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 432 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 304 + Top = 152 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 352 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 160 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 624 + Top = 216 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 592 + Top = 216 + end + object RMXLSExport2: TRMXLSExport + ShowAfterExport = False + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 556 + Top = 216 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 472 + Top = 200 + end +end diff --git a/盛纺贸易管理/U_JYOrderZJList.pas b/盛纺贸易管理/U_JYOrderZJList.pas new file mode 100644 index 0000000..81812d8 --- /dev/null +++ b/盛纺贸易管理/U_JYOrderZJList.pas @@ -0,0 +1,548 @@ +unit U_JYOrderZJList; //78 + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit, cxPC; + +type + TfrmJYOrderZJList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + ToolButton1: TToolButton; + Panel1: TPanel; + Label9: TLabel; + OrderNo: TEdit; + v1Column2: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + Label2: TLabel; + FactoryName: TEdit; + v1Column1: TcxGridDBColumn; + Label34: TLabel; + v1Column7: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + ZJName: TEdit; + v1Column4: TcxGridDBColumn; + Label1: TLabel; + v1Column5: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label3: TLabel; + Label4: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + ZJStatus: TComboBox; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + cxTabControl1: TcxTabControl; + ToolButton4: TToolButton; + v1Column3: TcxGridDBColumn; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport2: TRMXLSExport; + CDS_PRT: TClientDataSet; + ToolButton5: TToolButton; + v1Column8: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ZJStatusChange(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmJYOrderZJList: TfrmJYOrderZJList; + +implementation +uses + U_DataLink,U_RTFun, U_ZJInPut,U_FjList_RZ; + +{$R *.dfm} + +procedure TfrmJYOrderZJList.FormDestroy(Sender: TObject); +begin + frmJYOrderZJList:=nil; +end; + +procedure TfrmJYOrderZJList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmJYOrderZJList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmJYOrderZJList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ʼ¼',Tv1,'ָʾ'); + Close; +end; + +procedure TfrmJYOrderZJList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.ZJID),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrder_ZhiJian A '); + sql.Add(' where 1=1 '); + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + sql.Add(' and ZJDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and ZJDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmJYOrderZJList.InitForm(); +begin + BegDate.Date:=SGetServerDateMBeg(ADOQueryTemp); + EndDate.Date:=SGetServerDate(ADOQueryTemp); + ReadCxGrid('ʼ¼',Tv1,'ָʾ'); + InitGrid(); +end; + +procedure TfrmJYOrderZJList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmJYOrderZJList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + try + frmZJInPut:=TfrmZJInPut.Create(Application); + with frmZJInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('ZJId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmZJInPut.Free; + end; +end; + +procedure TfrmJYOrderZJList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //Order_Main.Delete; + end; +end; + +function TfrmJYOrderZJList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Order_Main.Locate('SSel',True,[]) do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Delete JYOrder_ZhiJian where ZJId='''+Trim(Order_Main.fieldbyname('ZJId').AsString)+''''); + ExecSQL; + end; + Order_Main.Delete; + end; + end; + Order_Main.EnableControls; + + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmJYOrderZJList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ʼϢб',cxGrid1); +end; + +procedure TfrmJYOrderZJList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmJYOrderZJList.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmZJInPut:=TfrmZJInPut.Create(Application); + with frmZJInPut do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmZJInPut.Free; + end; +end; + +procedure TfrmJYOrderZJList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmJYOrderZJList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmJYOrderZJList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmJYOrderZJList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmZJInPut:=TfrmZJInPut.Create(Application); + with frmZJInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('ZJId').AsString); + TBSave.Visible:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmZJInPut.Free; + end; +end; + +procedure TfrmJYOrderZJList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmJYOrderZJList.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmJYOrderZJList.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmJYOrderZJList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmJYOrderZJList.ZJStatusChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmJYOrderZJList.OrderNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(OrderNo.Text)='' then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.ZJID),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from JYOrder_ZhiJian A '); + sql.Add(' where orderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''''); + if cxTabControl1.TabIndex=0 then + begin + sql.Add(' and isnull(SChker,'''')='''' '); + end else + begin + if cxTabControl1.TabIndex=1 then + begin + sql.Add(' and isnull(SChker,'''')<>'''' and isnull(Chker,'''')='''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + sql.Add(' and isnull(Chker,'''')<>'''' '); + end; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmJYOrderZJList.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>0 then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_ZhiJian Set Status='''',SChktime=getdate(),SChker='''+Trim(DName)+''''); + sql.Add(' where ZJID='''+Trim(Order_Main.fieldbyname('ZJID').AsString)+''''); + ExecSQL; + end; + Order_Main.Delete; + end; + end; + Order_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmJYOrderZJList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex<>1 then Exit; + if Order_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_ZhiJian'); + sql.Add(' where ZJID='''+Trim(Order_Main.fieldbyname('ZJID').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('Chker').AsString)<>'' then + begin + Order_Main.EnableControls; + Application.MessageBox('ܳ!','ʾ',0); + Exit; + end; + + end; + Next; + end; + end; + Order_Main.EnableControls; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while Locate('SSel',True,[])=True do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_ZhiJian Set Status=Null,SChktime=Null,SChker=Null'); + sql.Add(' where ZJID='''+Trim(Order_Main.fieldbyname('ZJID').AsString)+''''); + ExecSQL; + end; + Order_Main.Delete; + end; + end; + Order_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + + except + Order_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmJYOrderZJList.ToolButton4Click(Sender: TObject); +var + fPrintFile:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ʼ챨.rmf'; + RMXLSExport2:= TRMXLSExport.Create(RMXLSExport2); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_ZhiJian where ZJId='''+Trim(Order_Main.fieldbyname('ZJId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + if FileExists(fPrintFile) then + begin + //RMVariables['OrderUnit']:=Order_Main.fieldbyname('OrderUnit').Value; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ʼ챨.rmf'),'ʾ',0); + end; +end; + +procedure TfrmJYOrderZJList.ToolButton5Click(Sender: TObject); +begin + {if Order_Main.IsEmpty then Exit; + try + frmFjList_RZ:=TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + fkeyNO:=Trim(Self.Order_Main.fieldbyname('ZJId').AsString); + fType:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; } +end; + +end. diff --git a/盛纺贸易管理/U_JYResult.dfm b/盛纺贸易管理/U_JYResult.dfm new file mode 100644 index 0000000..580b681 --- /dev/null +++ b/盛纺贸易管理/U_JYResult.dfm @@ -0,0 +1,527 @@ +object frmJYResult: TfrmJYResult + Left = 134 + Top = 55 + Width = 1079 + Height = 664 + Caption = #26816#39564#32467#26524 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 63 + Top = 59 + Width = 74 + Height = 35 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 63 + Top = 122 + Width = 74 + Height = 35 + Caption = #21402#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 142 + Top = 204 + Width = 74 + Height = 35 + Caption = #21560#27700 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 867 + Top = 52 + Width = 70 + Height = 35 + Caption = 'g/'#13217 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 880 + Top = 120 + Width = 38 + Height = 35 + Caption = 'mm' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 385 + Top = 204 + Width = 74 + Height = 35 + Caption = #27668#21619 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 625 + Top = 204 + Width = 111 + Height = 35 + Caption = #33394#29282#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object KZ1: TEdit + Left = 142 + Top = 55 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = KZ1Click + end + object KZ2: TEdit + Left = 288 + Top = 55 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = KZ2Click + end + object KZ3: TEdit + Left = 434 + Top = 55 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = KZ3Click + end + object KZ4: TEdit + Left = 580 + Top = 55 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = KZ4Click + end + object KZ5: TEdit + Left = 726 + Top = 55 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = KZ5Click + end + object HD1: TEdit + Left = 142 + Top = 118 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = HD1Click + end + object HD2: TEdit + Left = 288 + Top = 118 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = HD2Click + end + object HD3: TEdit + Left = 434 + Top = 118 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = HD3Click + end + object HD4: TEdit + Left = 580 + Top = 118 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = HD4Click + end + object HD5: TEdit + Left = 726 + Top = 118 + Width = 140 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + OnClick = HD5Click + end + object XSWater: TComboBox + Left = 216 + Top = 195 + Width = 129 + Height = 56 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ItemHeight = 48 + ParentFont = False + TabOrder = 10 + Items.Strings = ( + #22909 + #23578#21487 + #27424#20339) + end + object QiWei: TComboBox + Left = 460 + Top = 195 + Width = 129 + Height = 56 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ItemHeight = 48 + ParentFont = False + TabOrder = 11 + Items.Strings = ( + #26377 + #26080) + end + object Button1: TButton + Left = 296 + Top = 514 + Width = 120 + Height = 90 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 12 + OnClick = Button1Click + end + object Button2: TButton + Left = 592 + Top = 514 + Width = 120 + Height = 90 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 13 + OnClick = Button2Click + end + object Panel3: TPanel + Left = 187 + Top = 272 + Width = 618 + Height = 212 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 14 + object SpeedButton1: TSpeedButton + Left = 412 + Top = 108 + Width = 100 + Height = 100 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 3 + Top = 2 + Width = 100 + Height = 100 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 105 + Top = 2 + Width = 100 + Height = 100 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 207 + Top = 2 + Width = 100 + Height = 100 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 309 + Top = 2 + Width = 100 + Height = 100 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 411 + Top = 2 + Width = 100 + Height = 100 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 4 + Top = 108 + Width = 100 + Height = 100 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 106 + Top = 108 + Width = 100 + Height = 100 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 208 + Top = 108 + Width = 100 + Height = 100 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 310 + Top = 108 + Width = 100 + Height = 100 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 514 + Top = 108 + Width = 100 + Height = 100 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 513 + Top = 2 + Width = 100 + Height = 100 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -96 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + end + object SeLD: TComboBox + Left = 737 + Top = 195 + Width = 129 + Height = 56 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ItemHeight = 48 + ParentFont = False + TabOrder = 15 + Items.Strings = ( + #22909 + #19981#22909 + #20813#26816) + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 960 + Top = 528 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 984 + Top = 456 + end +end diff --git a/盛纺贸易管理/U_JYResult.pas b/盛纺贸易管理/U_JYResult.pas new file mode 100644 index 0000000..ad818b0 --- /dev/null +++ b/盛纺贸易管理/U_JYResult.pas @@ -0,0 +1,480 @@ +unit U_JYResult; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, DB, ADODB, Buttons, ExtCtrls; + +type + TfrmJYResult = class(TForm) + Label1: TLabel; + KZ1: TEdit; + KZ2: TEdit; + KZ3: TEdit; + KZ4: TEdit; + KZ5: TEdit; + Label2: TLabel; + HD1: TEdit; + HD2: TEdit; + HD3: TEdit; + HD4: TEdit; + HD5: TEdit; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + XSWater: TComboBox; + Label6: TLabel; + QiWei: TComboBox; + Button1: TButton; + Button2: TButton; + ADOQueryCmd: TADOQuery; + ADOQueryTemp: TADOQuery; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + Label7: TLabel; + SeLD: TComboBox; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure KZ1Click(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure KZ2Click(Sender: TObject); + procedure KZ3Click(Sender: TObject); + procedure KZ4Click(Sender: TObject); + procedure KZ5Click(Sender: TObject); + procedure HD1Click(Sender: TObject); + procedure HD2Click(Sender: TObject); + procedure HD3Click(Sender: TObject); + procedure HD4Click(Sender: TObject); + procedure HD5Click(Sender: TObject); + private + Fint:Integer; + { Private declarations } + public + { Public declarations } + end; + +var + frmJYResult: TfrmJYResult; + +implementation +uses +U_DataLink,U_Fun,U_iniParam; + +{$R *.dfm} + +procedure TfrmJYResult.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + DataLink_WFBProducttion.ADOLink.Connected:=False; + Action:=caFree; +end; + +procedure TfrmJYResult.FormDestroy(Sender: TObject); +begin + frmJYResult:=nil; +end; + +procedure TfrmJYResult.Button1Click(Sender: TObject); +var + MJIDInt:Integer; + maxno,maxno10,maxno20,FBanZu:String; +begin + if( (Trim(KZ1.Text)<>'') and (Trim(KZ2.Text)<>'') and (Trim(KZ3.Text)<>'') and + (Trim(KZ4.Text)<>'') and (Trim(KZ5.Text)<>'') )=False then + begin + Application.MessageBox('ݲȫ','ʾ',0); + Exit; + end; + if( (Trim(HD1.Text)<>'') and (Trim(HD2.Text)<>'') and (Trim(HD3.Text)<>'') and + (Trim(HD4.Text)<>'') and (Trim(HD5.Text)<>'') )=False then + begin + Application.MessageBox('ݲȫ','ʾ',0); + Exit; + end; + if Trim(XSWater.Text)='' then + begin + Application.MessageBox('ˮΪգ','ʾ',0); + Exit; + end; + if Trim(QiWei.Text)='' then + begin + Application.MessageBox('ζΪգ','ʾ',0); + Exit; + end; + if Trim(SeLD.Text)='' then + begin + Application.MessageBox('ɫζȲΪգ','ʾ',0); + Exit; + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where Cast(MJID as int)='); + sql.Add('(select Max(Cast(MJID as int) ) from WFB_JYResult'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where JTType='''+Trim(SCXFlag)+''''); + end; + sql.Add(')'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' and JTType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + with ADOQueryCmd do + begin + close; + SQL.Clear; + SQL.Add('select Top 1* from WFB_JYResult'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where JTType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + Application.MessageBox('ϾδӡǩԽ飡','ʾ',0); + Exit; + end; + end; + if Application.MessageBox('ȷҪִвȷݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(Max(Cast(MJID as int)),0) MJIDInt from WFB_MJJY'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where JTType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + // 112091201 20120914 + MJIDInt:=ADOQueryTemp.fieldbyname('MJIDInt').Value; + maxno10:=Trim(FormatDateTime('yyyyMMdd',SGetServerDateTime(ADOQueryTemp))); + maxno10:=Trim(SCXFlag)+Trim(Copy(maxno10,3,6)); + maxno20:=IntToStr(MJIDInt); + maxno20:=Copy(maxno20,1,7); + try + ADOQueryCmd.Connection.BeginTrans; + if MJIDInt>0 then + begin + if StrToInt(maxno10)>StrToInt(maxno20) then + begin + if GetLSNo(ADOQueryCmd,maxno,Trim(SCXFlag),'WFB_MJJY',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + maxno:=Trim(IntToStr(MJIDInt+1)) + end else + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + SQL.Add('select * from WFB_JB '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,maxno,Trim(SCXFlag),'WFB_MJJY',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ADOQueryTemp.fieldbyname('MJID').AsString); + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_JYResult where MJID='''+Trim(maxno)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ѿ飡','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + FBanZu:=Trim(ADOQueryTemp.fieldbyname('BanZu').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_JYResult where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('BanZu').Value:=Trim(FBanZu); + FieldByName('KZ1').Value:=Trim(KZ1.Text); + FieldByName('KZ2').Value:=Trim(KZ2.Text); + FieldByName('KZ3').Value:=Trim(KZ3.Text); + FieldByName('KZ4').Value:=Trim(KZ4.Text); + FieldByName('KZ5').Value:=Trim(KZ5.Text); + FieldByName('HD1').Value:=Trim(HD1.Text); + FieldByName('HD2').Value:=Trim(HD2.Text); + FieldByName('HD3').Value:=Trim(HD3.Text); + FieldByName('HD4').Value:=Trim(HD4.Text); + FieldByName('HD5').Value:=Trim(HD5.Text); + FieldByName('XSWater').Value:=Trim(XSWater.Text); + FieldByName('QiWei').Value:=Trim(QiWei.Text); + FieldByName('SeLD').Value:=Trim(SeLD.Text); + if Trim(SCXFlag)<>'' then + begin + FieldByName('JTType').Value:=Trim(SCXFlag); + end; + Post; + end; + ADOQueryCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ','ʾ',0); + Exit; + except + DataLink_WFBProducttion.ADOLink.Connected:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmJYResult.Button2Click(Sender: TObject); +begin + Close; +end; + +procedure TfrmJYResult.KZ1Click(Sender: TObject); +begin + Fint:=1; +end; + +procedure TfrmJYResult.SpeedButton1Click(Sender: TObject); +begin + if Fint=1 then + begin + KZ1.Text:=Trim(KZ1.Text)+Trim(TSpeedButton(Sender).Caption); + KZ1.SelectAll; + end else + if Fint=2 then + begin + KZ2.Text:=Trim(KZ2.Text)+Trim(TSpeedButton(Sender).Caption); + KZ2.SelectAll; + end else + if Fint=3 then + begin + KZ3.Text:=Trim(KZ3.Text)+Trim(TSpeedButton(Sender).Caption); + KZ3.SelectAll; + end else + if Fint=4 then + begin + KZ4.Text:=Trim(KZ4.Text)+Trim(TSpeedButton(Sender).Caption); + KZ4.SelectAll; + end else + if Fint=5 then + begin + KZ5.Text:=Trim(KZ5.Text)+Trim(TSpeedButton(Sender).Caption); + KZ5.SelectAll; + end else + if Fint=6 then + begin + HD1.Text:=Trim(HD1.Text)+Trim(TSpeedButton(Sender).Caption); + HD1.SelectAll; + end else + if Fint=7 then + begin + HD2.Text:=Trim(HD2.Text)+Trim(TSpeedButton(Sender).Caption); + HD2.SelectAll; + end else + if Fint=8 then + begin + HD3.Text:=Trim(HD3.Text)+Trim(TSpeedButton(Sender).Caption); + HD3.SelectAll; + end else + if Fint=9 then + begin + HD4.Text:=Trim(HD4.Text)+Trim(TSpeedButton(Sender).Caption); + HD4.SelectAll; + end else + if Fint=10 then + begin + HD5.Text:=Trim(HD5.Text)+Trim(TSpeedButton(Sender).Caption); + HD5.SelectAll; + end; +end; + +procedure TfrmJYResult.SpeedButton12Click(Sender: TObject); +begin + if Fint=1 then + begin + if Trim(KZ1.Text)<>'' then + begin + KZ1.Text:=Copy(Trim(KZ1.Text),1,Length(Trim(KZ1.Text))-1); + KZ1.SelectAll; + end; + end else + if Fint=2 then + begin + if Trim(KZ2.Text)<>'' then + begin + KZ2.Text:=Copy(Trim(KZ2.Text),1,Length(Trim(KZ2.Text))-1); + KZ2.SelectAll; + end; + end else + if Fint=3 then + begin + if Trim(KZ3.Text)<>'' then + begin + KZ3.Text:=Copy(Trim(KZ3.Text),1,Length(Trim(KZ3.Text))-1); + KZ3.SelectAll; + end; + end else + if Fint=4 then + begin + if Trim(KZ4.Text)<>'' then + begin + KZ4.Text:=Copy(Trim(KZ4.Text),1,Length(Trim(KZ4.Text))-1); + KZ4.SelectAll; + end; + end else + if Fint=5 then + begin + if Trim(KZ5.Text)<>'' then + begin + KZ5.Text:=Copy(Trim(KZ5.Text),1,Length(Trim(KZ5.Text))-1); + KZ5.SelectAll; + end; + end else + if Fint=6 then + begin + if Trim(HD1.Text)<>'' then + begin + HD1.Text:=Copy(Trim(HD1.Text),1,Length(Trim(HD1.Text))-1); + HD1.SelectAll; + end; + end else + if Fint=7 then + begin + if Trim(HD2.Text)<>'' then + begin + HD2.Text:=Copy(Trim(HD2.Text),1,Length(Trim(HD2.Text))-1); + HD2.SelectAll; + end; + end else + if Fint=8 then + begin + if Trim(HD3.Text)<>'' then + begin + HD3.Text:=Copy(Trim(HD3.Text),1,Length(Trim(HD3.Text))-1); + HD3.SelectAll; + end; + end else + if Fint=9 then + begin + if Trim(HD4.Text)<>'' then + begin + HD4.Text:=Copy(Trim(HD4.Text),1,Length(Trim(HD4.Text))-1); + HD4.SelectAll; + end; + end else + if Fint=10 then + begin + if Trim(HD5.Text)<>'' then + begin + HD5.Text:=Copy(Trim(HD5.Text),1,Length(Trim(HD5.Text))-1); + HD5.SelectAll; + end; + end; +end; + +procedure TfrmJYResult.FormShow(Sender: TObject); +begin + Fint:=1; + KZ1.SetFocus; +end; + +procedure TfrmJYResult.KZ2Click(Sender: TObject); +begin + Fint:=2; +end; + +procedure TfrmJYResult.KZ3Click(Sender: TObject); +begin + Fint:=3; +end; + +procedure TfrmJYResult.KZ4Click(Sender: TObject); +begin + Fint:=4; +end; + +procedure TfrmJYResult.KZ5Click(Sender: TObject); +begin + Fint:=5; +end; + +procedure TfrmJYResult.HD1Click(Sender: TObject); +begin + Fint:=6; +end; + +procedure TfrmJYResult.HD2Click(Sender: TObject); +begin + Fint:=7; +end; + +procedure TfrmJYResult.HD3Click(Sender: TObject); +begin + Fint:=8; +end; + +procedure TfrmJYResult.HD4Click(Sender: TObject); +begin + Fint:=9; +end; + +procedure TfrmJYResult.HD5Click(Sender: TObject); +begin + Fint:=10; +end; + +end. diff --git a/盛纺贸易管理/U_JiangLiaoSet.dfm b/盛纺贸易管理/U_JiangLiaoSet.dfm new file mode 100644 index 0000000..0fbe367 --- /dev/null +++ b/盛纺贸易管理/U_JiangLiaoSet.dfm @@ -0,0 +1,968 @@ +object frmJiangLiaoSet: TfrmJiangLiaoSet + Left = 36 + Top = 5 + Width = 1225 + Height = 754 + Caption = #27974#26009#37197#21046#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 14 + object Label12: TLabel + Left = 664 + Top = 15 + Width = 30 + Height = 14 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1217 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 63 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 67 + Top = 0 + Caption = #25764#38144 + ImageIndex = 7 + OnClick = ToolButton2Click + end + object TBClose: TToolButton + Left = 130 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 1217 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 60 + Height = 14 + Caption = #31614#21457#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 187 + Top = 15 + Width = 21 + Height = 14 + Caption = '---' + end + object Label3: TLabel + Left = 328 + Top = 15 + Width = 45 + Height = 14 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 528 + Top = 15 + Width = 30 + Height = 14 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 688 + Top = 15 + Width = 30 + Height = 14 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 824 + Top = 15 + Width = 60 + Height = 14 + Caption = #37197#27974#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 83 + Top = 11 + Width = 105 + Height = 22 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 201 + Top = 11 + Width = 103 + Height = 22 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 376 + Top = 11 + Width = 137 + Height = 22 + TabOrder = 2 + OnChange = OrderNoChange + end + object CustomNoName: TEdit + Tag = 2 + Left = 560 + Top = 11 + Width = 105 + Height = 22 + TabOrder = 3 + OnChange = OrderNoChange + end + object SWFBColor: TComboBox + Tag = 1 + Left = 721 + Top = 11 + Width = 78 + Height = 22 + Style = csDropDownList + ItemHeight = 14 + TabOrder = 4 + OnChange = OrderNoChange + end + object ZuHeID: TEdit + Tag = 2 + Left = 885 + Top = 11 + Width = 137 + Height = 22 + TabOrder = 5 + OnChange = OrderNoChange + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 71 + Width = 1217 + Height = 24 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 2 + Tabs.Strings = ( + #24453#37197#21046 + #24050#37197#21046) + OnChange = cxTabControl1Change + ClientRectBottom = 24 + ClientRectRight = 1217 + ClientRectTop = 21 + end + object cxGrid4: TcxGrid + Left = 0 + Top = 95 + Width = 1217 + Height = 242 + Align = alClient + TabOrder = 3 + object TvOrdNo: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = TvOrdNoCellClick + DataController.DataSource = DSOrdNo + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + object vOrderBakColumn1: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 39 + end + object vOrderBakColumn2: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 118 + end + object vOrderBakColumn3: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 52 + end + object vOrdNoColumn2: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 69 + end + object vOrdNoColumn3: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 76 + end + object vOrderBakColumn4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 45 + end + object vOrderBakColumn5: TcxGridDBColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object vOrdNoColumn1: TcxGridDBColumn + Caption = #37197#27974#21333#21495 + DataBinding.FieldName = 'ZuHeID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 117 + end + end + object cxGrid4Level1: TcxGridLevel + GridView = TvOrdNo + end + end + object Panel2: TPanel + Left = 0 + Top = 337 + Width = 1217 + Height = 71 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object Label4: TLabel + Left = 5 + Top = 41 + Width = 80 + Height = 15 + Caption = #37197#21046#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 162 + Top = 41 + Width = 18 + Height = 15 + Caption = 'KG' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 5 + Top = 12 + Width = 80 + Height = 15 + Caption = #20135#21697#22411#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 183 + Top = 12 + Width = 48 + Height = 15 + Caption = #23380#30446#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 183 + Top = 41 + Width = 48 + Height = 15 + Caption = #33457#22411#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 453 + Top = 41 + Width = 80 + Height = 15 + Caption = #37197#21046#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 610 + Top = 41 + Width = 18 + Height = 15 + Caption = 'KG' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MCQty: TEdit + Tag = 2 + Left = 76 + Top = 37 + Width = 84 + Height = 23 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnChange = MCQtyChange + OnKeyPress = MCQtyKeyPress + end + object WFBCpSpec: TcxButtonEdit + Left = 76 + Top = 10 + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = SWFBCodeNamePropertiesButtonClick + TabOrder = 1 + Width = 84 + end + object WKMS: TcxButtonEdit + Left = 222 + Top = 10 + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = WKMSPropertiesButtonClick + TabOrder = 2 + Width = 58 + end + object SWFBHW: TcxButtonEdit + Left = 222 + Top = 38 + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxButtonEdit2PropertiesButtonClick + TabOrder = 3 + Width = 58 + end + object BtnSave: TButton + Left = 376 + Top = 10 + Width = 54 + Height = 22 + Caption = #20445#23384 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = BtnSaveClick + end + object BtnPrint: TButton + Left = 376 + Top = 38 + Width = 55 + Height = 22 + Caption = #25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = BtnPrintClick + end + object BtnChkNo: TButton + Left = 288 + Top = 38 + Width = 80 + Height = 22 + Caption = #23457#26680#19981#36890#36807 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = BtnChkNoClick + end + object BtnChkOk: TButton + Left = 288 + Top = 10 + Width = 80 + Height = 22 + Caption = #23457#26680#36890#36807 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = BtnChkOkClick + end + object MCQty10: TEdit + Tag = 2 + Left = 524 + Top = 37 + Width = 84 + Height = 23 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnChange = MCQty10Change + OnKeyPress = MCQtyKeyPress + end + end + object Panel3: TPanel + Left = 0 + Top = 408 + Width = 1217 + Height = 309 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object Label7: TLabel + Left = 1100 + Top = 51 + Width = 45 + Height = 14 + Caption = #22791#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label8: TLabel + Left = 1100 + Top = 131 + Width = 45 + Height = 14 + Caption = #22791#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label9: TLabel + Left = 1100 + Top = 211 + Width = 45 + Height = 14 + Caption = #22791#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object cxGrid1: TcxGrid + Left = 2 + Top = 2 + Width = 435 + Height = 305 + Align = alLeft + PopupMenu = PopupMenu3 + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSub + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column4 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1Column1: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + SortIndex = 0 + SortOrder = soAscending + Width = 53 + end + object v1Column3: TcxGridDBColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 104 + end + object v1Column4: TcxGridDBColumn + Caption = #39044#20272#25968#37327'(kg)' + DataBinding.FieldName = 'YGQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 91 + end + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #37197#27604#37327 + DataBinding.FieldName = 'PBQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #23454#38469#25968#37327'(kg)' + DataBinding.FieldName = 'SJQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 91 + end + end + object cxGrid1Level4: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid3: TcxGrid + Left = 437 + Top = 2 + Width = 337 + Height = 305 + Align = alLeft + PopupMenu = PopupMenu1 + TabOrder = 1 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSJYFZ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column4 + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v2Column1: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + SortIndex = 0 + SortOrder = soAscending + Width = 59 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 112 + end + object v2Column2: TcxGridDBColumn + Caption = #37197#27604#37327 + DataBinding.FieldName = 'PBQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v2Column4: TcxGridDBColumn + Tag = 2 + Caption = #23454#38469#25968#37327'(kg)' + DataBinding.FieldName = 'SJQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 92 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv2 + end + end + object Panel4: TPanel + Left = 774 + Top = 2 + Width = 153 + Height = 305 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Panel8: TPanel + Left = 2 + Top = 2 + Width = 149 + Height = 25 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #22791#27880 + TabOrder = 0 + end + object MCNote: TRichEdit + Left = 2 + Top = 27 + Width = 149 + Height = 276 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ScrollBars = ssBoth + TabOrder = 1 + end + end + object Panel5: TPanel + Left = 927 + Top = 2 + Width = 154 + Height = 305 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Panel6: TPanel + Left = 2 + Top = 2 + Width = 150 + Height = 25 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #35746#21333#21495 + TabOrder = 0 + end + object OrderNoSL: TRichEdit + Left = 2 + Top = 27 + Width = 150 + Height = 276 + Align = alClient + ScrollBars = ssBoth + TabOrder = 1 + end + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 208 + Top = 256 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 144 + Top = 255 + end + object DSOrdNo: TDataSource + DataSet = CDS_Main + Left = 240 + Top = 256 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 934 + Top = 469 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 176 + Top = 258 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 690 + Top = 272 + end + object DSSub: TDataSource + DataSet = CDS_Sub + Left = 586 + Top = 264 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 642 + Top = 264 + end + object PopupMenu3: TPopupMenu + Left = 298 + Top = 525 + object MenuItem3: TMenuItem + Caption = #22686#34892 + OnClick = MenuItem3Click + end + object MenuItem4: TMenuItem + Caption = #21024#34892 + OnClick = MenuItem4Click + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 408 + Top = 8 + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Main + Left = 830 + Top = 488 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBZY + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 870 + Top = 504 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 966 + Top = 466 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 806 + Top = 392 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 618 + Top = 460 + end + object RMDBZY: TRMDBDataSet + Visible = True + DataSet = CDS_Sub + Left = 830 + Top = 488 + end + object RMDBFZ: TRMDBDataSet + Visible = True + Left = 806 + Top = 496 + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 754 + Top = 471 + end + object DSJYFZ: TDataSource + DataSet = CDS_JYFZ + Left = 842 + Top = 575 + end + object CDS_JYFZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 898 + Top = 511 + end + object PopupMenu1: TPopupMenu + Left = 514 + Top = 519 + object MenuItem1: TMenuItem + Caption = #22686#34892 + OnClick = MenuItem1Click + end + object MenuItem2: TMenuItem + Caption = #21024#34892 + OnClick = MenuItem2Click + end + end +end diff --git a/盛纺贸易管理/U_JiangLiaoSet.pas b/盛纺贸易管理/U_JiangLiaoSet.pas new file mode 100644 index 0000000..43e3835 --- /dev/null +++ b/盛纺贸易管理/U_JiangLiaoSet.pas @@ -0,0 +1,1182 @@ +unit U_JiangLiaoSet; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxPC, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxCheckBox, Menus, cxTextEdit, RM_Common, RM_Class, + RM_GridReport, RM_System, RM_Dataset, RM_e_Xls, cxContainer, cxMaskEdit, + cxButtonEdit; + +type + TfrmJiangLiaoSet = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNo: TEdit; + cxTabControl1: TcxTabControl; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DSOrdNo: TDataSource; + ADOCmd: TADOQuery; + ADOQueryMain: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + DSSub: TDataSource; + CDS_Sub: TClientDataSet; + ToolButton1: TToolButton; + PopupMenu3: TPopupMenu; + MenuItem3: TMenuItem; + MenuItem4: TMenuItem; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + RMDBMain: TRMDBDataSet; + RM1: TRMGridReport; + ADOQueryPrint: TADOQuery; + RMXLSExport1: TRMXLSExport; + Label10: TLabel; + CustomNoName: TEdit; + Label11: TLabel; + Label12: TLabel; + cxGridPopupMenu3: TcxGridPopupMenu; + TvOrdNo: TcxGridDBTableView; + cxGrid4Level1: TcxGridLevel; + cxGrid4: TcxGrid; + vOrderBakColumn1: TcxGridDBColumn; + vOrderBakColumn2: TcxGridDBColumn; + vOrderBakColumn3: TcxGridDBColumn; + vOrderBakColumn4: TcxGridDBColumn; + vOrderBakColumn5: TcxGridDBColumn; + RMDBZY: TRMDBDataSet; + RMDBFZ: TRMDBDataSet; + SWFBColor: TComboBox; + vOrdNoColumn1: TcxGridDBColumn; + Label18: TLabel; + ZuHeID: TEdit; + vOrdNoColumn2: TcxGridDBColumn; + vOrdNoColumn3: TcxGridDBColumn; + Panel2: TPanel; + Label4: TLabel; + Label5: TLabel; + Label14: TLabel; + Label16: TLabel; + Label17: TLabel; + MCQty: TEdit; + WFBCpSpec: TcxButtonEdit; + WKMS: TcxButtonEdit; + SWFBHW: TcxButtonEdit; + BtnSave: TButton; + BtnPrint: TButton; + BtnChkNo: TButton; + BtnChkOk: TButton; + Panel3: TPanel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + cxGrid1Level4: TcxGridLevel; + cxGrid3: TcxGrid; + Tv2: TcxGridDBTableView; + v2Column1: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + ADOTemp: TADOQuery; + DSJYFZ: TDataSource; + CDS_JYFZ: TClientDataSet; + PopupMenu1: TPopupMenu; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + v1Column2: TcxGridDBColumn; + Panel4: TPanel; + Panel5: TPanel; + Panel8: TPanel; + MCNote: TRichEdit; + Panel6: TPanel; + OrderNoSL: TRichEdit; + ToolButton2: TToolButton; + v2Column2: TcxGridDBColumn; + Label6: TLabel; + Label13: TLabel; + MCQty10: TEdit; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure MenuItem3Click(Sender: TObject); + procedure MenuItem4Click(Sender: TObject); + procedure BtnSaveClick(Sender: TObject); + procedure TvOrdNoCellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure MCQtyKeyPress(Sender: TObject; var Key: Char); + procedure BtnChkOkClick(Sender: TObject); + procedure BtnChkNoClick(Sender: TObject); + procedure BtnPrintClick(Sender: TObject); + procedure MenuItem1Click(Sender: TObject); + procedure MenuItem2Click(Sender: TObject); + procedure SWFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WKMSPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxButtonEdit2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column2PropertiesEditValueChanged(Sender: TObject); + procedure MCQtyChange(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure MCQty10Change(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + private + { Private declarations } + ChkInt:Integer; + procedure InitGridMain(); + procedure InitGrid(); + procedure MCData(); + procedure InitGridMainSel(); + public + { Public declarations } + end; + +var + frmJiangLiaoSet: TfrmJiangLiaoSet; + +implementation +uses + U_DataLink,U_Fun,U_GetPGJBOneTwoInList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmJiangLiaoSet.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmJiangLiaoSet.FormDestroy(Sender: TObject); +begin + frmJiangLiaoSet:=nil; +end; + +procedure TfrmJiangLiaoSet.InitGrid(); +begin + try + ADOTemp.DisableControls; + with ADOTemp do + begin + Close; + SQL.Clear; + if cxTabControl1.TabIndex=0 then + begin + sql.Add('select * from WFBYCL_JiangYe where MCID='''+Trim(CDS_Main.fieldbyname('MCID').AsString)+''''); + end else + sql.Add('select * from WFBYCL_JiangYe where ZuHeID='''+Trim(CDS_Main.fieldbyname('ZuHeID').AsString)+''''); + sql.Add(' and JYType=''ҪҺ'' '); + sql.Add(' order by OrderNo'); + Open; + end; + SCreateCDS20(ADOTemp,CDS_Sub); + SInitCDSData20(ADOTemp,CDS_Sub); + with ADOTemp do + begin + Close; + SQL.Clear; + if cxTabControl1.TabIndex=0 then + begin + sql.Add('select * from WFBYCL_JiangYe where MCID='''+Trim(CDS_Main.fieldbyname('MCID').AsString)+''''); + end else + sql.Add('select * from WFBYCL_JiangYe where ZuHeID='''+Trim(CDS_Main.fieldbyname('ZuHeID').AsString)+''''); + sql.Add(' and JYType=''Һ'' '); + sql.Add(' order by OrderNo'); + Open; + end; + SCreateCDS20(ADOTemp,CDS_JYFZ); + SInitCDSData20(ADOTemp,CDS_JYFZ); + finally + ADOTemp.EnableControls; + end; +end; + +procedure TfrmJiangLiaoSet.InitGridMain(); +begin + //BegDate.SetFocus; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select A.*,OrderNo=(select OrderNo from WFBOrder_Main B where B.MainId=A.MainId), '); + sql.Add(' OrderQty=(select Sum(SOrdQty) from WFBOrder_Sub WS where WS.MainId=A.MainId and WS.SWFBColor=A.SWFBColor),'); + SQL.Add(' OrderUnit=(select OrdUnit from WFBOrder_Main B where B.MainId=A.MainId),'); + sql.Add(' OrderNoSL=dbo.F_Get_WFBOrder_SubStr(A.ZuHeId,''OrderNoSL''),'); + sql.Add(' CustomNoName=(select ZdyName from KH_Zdy B inner join WFBOrder_Main C on B.ZdyNo=C.CustomNo'); + sql.Add(' where C.MainId=A.MainId)'); + sql.Add(' from WFBYCL_MainIdColor_JiangYe A '); + SQL.Add(' inner join WFBOrder_Main C on A.MainId=C.MainId where C.ChkStatus=''ͨ'' '); + if cxTabControl1.TabIndex=0 then + SQL.Add(' and not exists(select * from WFBYCL_JiangYe WJY where WJY.ZuHeId=A.ZuHeId)') + else + if cxTabControl1.TabIndex>0 then + begin + sql.Add('and exists(select * from WFBYCL_JiangYe WJY where WJY.ZuHeId=A.ZuHeId) and A.FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add('and A.FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmJiangLiaoSet.InitGridMainSel(); +begin + //BegDate.SetFocus; + { try + ADOTemp.DisableControls; + with ADOTemp do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add(' select A.*,OrderNo=(select OrderNo from WFBOrder_Main B '); + sql.Add(' where B.MainId=A.MainId), '); + sql.Add(' CustomNoName=(select ZdyName from KH_Zdy B inner join WFBOrder_Main C on B.ZdyNo=C.CustomNo'); + sql.Add(' where C.MainId=A.MainId)'); + sql.Add(' from WFBYCL_MainIdColor_JiangYe A '); + sql.Add(' where A.ZuHeId='''+Trim(CDS_Main.fieldbyname('ZuHeId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Sel); + SInitCDSData20(ADOQueryMain,CDS_Sel); + finally + ADOQueryMain.EnableControls; + end; } +end; + +procedure TfrmJiangLiaoSet.ToolButton1Click(Sender: TObject); +begin + InitGridMain(); +end; + +procedure TfrmJiangLiaoSet.FormShow(Sender: TObject); +var + fsj:String; +begin + fsj:='select ZdyName name from KH_Zdy where Type=''WFBColor'' '; + SInitComBoxBySql(ADOTemp,SWFBColor,False,fsj); + EndDate.DateTime:=SGetServerDate(ADOTemp); + BegDate.DateTime:=EndDate.DateTime-30; + ReadCxGrid('New',Tv1,'޷IJ'); + ReadCxGrid('FZ',Tv2,'޷IJ'); + ReadCxGrid('ɫ',TvOrdNo,'޷IJ'); + InitGridMain(); + if Trim(DParameters1)='' then + begin + BtnSave.Visible:=False; + vOrderBakColumn1.Visible:=False; + v1Column1.Options.Focusing:=False; + v1Column2.Options.Focusing:=False; + v2Column1.Options.Focusing:=False; + v1Column5.Options.Focusing:=False; + v2Column4.Options.Focusing:=False; + MCQty.ReadOnly:=True; + MCQty10.ReadOnly:=True; + end else + begin + BtnChkOk.Visible:=False; + BtnChkNo.Visible:=False; + vOrderBakColumn1.Visible:=True; + end; + + //InitGrid(); +end; + +procedure TfrmJiangLiaoSet.cxTabControl1Change(Sender: TObject); +begin + InitGridMain(); + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + InitGrid(); + MCQty.Text:=Trim(CDS_Main.fieldbyname('MCQty').AsString); + MCQty10.Text:=Trim(CDS_Main.fieldbyname('MCQtySJ').AsString); + MCNote.Text:=Trim(CDS_Main.fieldbyname('MCNote').AsString); + if cxTabControl1.TabIndex>0 then + begin + Label7.Visible:=True; + Label8.Visible:=True; + Label9.Visible:=True; + Label7.Caption:='Ƶˣ'+Trim(CDS_Main.fieldbyname('Filler').AsString); + Label8.Caption:='ˣ'+Trim(CDS_Main.fieldbyname('Chker').AsString); + Label9.Caption:='״̬'+Trim(CDS_Main.fieldbyname('ChkStatus').AsString); + end else + begin + Label7.Visible:=False; + Label8.Visible:=False; + Label9.Visible:=False; + end; +end; + +procedure TfrmJiangLiaoSet.OrderNoChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmJiangLiaoSet.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('New',Tv1,'޷IJ'); + WriteCxGrid('FZ',Tv2,'޷IJ'); + WriteCxGrid('ɫ',TvOrdNo,'޷IJ'); +end; + +procedure TfrmJiangLiaoSet.MenuItem3Click(Sender: TObject); +begin + if BtnSave.Visible=False then Exit; + try + frmGetPGJBOneTwoInList:=TfrmGetPGJBOneTwoInList.Create(Application); + with frmGetPGJBOneTwoInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + First; + while not Eof do + begin + with CDS_Sub do + begin + Append; + CDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + CDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + //CDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + Post; + end; + Next; + end; + end; + end; + end; + finally + frmGetPGJBOneTwoInList.Free; + end; +end; + +procedure TfrmJiangLiaoSet.MenuItem4Click(Sender: TObject); +begin + if BtnSave.Visible=False then Exit; + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.FieldByName('YJID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_JiangYe where YJID='''+Trim(CDS_Sub.FieldByName('YJID').AsString)+''''); + ExecSQL; + end; + end; + CDS_Sub.Delete; + {if CDS_Sub.IsEmpty=False then + MCQty.Text:=FloatToStr(Tv1.DataController.Summary.FooterSummaryValues[0]) + else + MCQty.Text:='0'; } +end; + +procedure TfrmJiangLiaoSet.BtnSaveClick(Sender: TObject); +var + maxno,FMCQty,FColor,FZuHeId:string; +begin + if ChkInt<>1 then + begin + if Trim(CDS_Main.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + Application.MessageBox('ͨݲ޸ģ','ʾ',0); + Exit; + end; + end else + begin + if Trim(CDS_Main.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + if Application.MessageBox('ͨȷҪ','ʾ',32+4)<>IDYES then + begin + ChkInt:=2; + Exit; + end; + end; + end; + + + if CDS_Main.IsEmpty then Exit; + if CDS_Sub.IsEmpty then Exit; + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡݣ','ʾ',0); + Exit; + end; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + if Trim(FColor)='' then + FColor:=Trim(CDS_Main.fieldbyname('SWFBColor').AsString) + else + if Trim(CDS_Main.fieldbyname('SWFBColor').AsString)<>FColor then + begin + CDS_Main.EnableControls; + Application.MessageBox('ɫͬܺϲƣ','ʾ',0); + Exit; + end; + end; + Next; + end; + end; + CDS_Main.EnableControls; + if Trim(MCQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + try + BegDate.SetFocus; + ADOCmd.Connection.BeginTrans; + if GetLSNo(ADOCmd,FZuHeId,'ZH','WFBYCL_MainIdColor_JiangYe',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡIDʧܣ','ʾ',0); + Exit; + end; + with CDS_Sub do + begin + First; + while not eof do + begin + if Trim(CDS_Sub.fieldbyname('YJID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'YJ','WFBYCL_JiangYe',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('YJID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_JiangYe where YJID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_Sub.fieldbyname('YJID').AsString)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOTemp); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(CDS_Sub.fieldbyname('MCID').AsString)<>'' then + begin + FieldByName('MCID').Value:=Trim(CDS_Sub.fieldbyname('MCID').AsString); + FieldByName('MainId').Value:=Trim(CDS_Sub.fieldbyname('MainId').AsString); + FieldByName('SWFBColor').Value:=Trim(CDS_Sub.fieldbyname('SWFBColor').AsString); + end else + begin + FieldByName('MCID').Value:='HB'; + FieldByName('MainId').Value:='HB'; + FieldByName('SWFBColor').Value:='HB'; + end; + + FieldByName('YJID').Value:=Trim(maxno); + FieldByName('JYType').Value:='ҪҺ'; + + FieldByName('YCLCode').Value:=Trim(CDS_Sub.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(CDS_Sub.fieldbyname('YCLName').AsString); + If Trim(CDS_Sub.fieldbyname('YGQty').AsString)<>'' then + FieldByName('YGQty').Value:=Trim(CDS_Sub.fieldbyname('YGQty').AsString) + else + FieldByName('YGQty').Value:=0; + If Trim(CDS_Sub.fieldbyname('SJQty').AsString)<>'' then + FieldByName('SJQty').Value:=CDS_Sub.fieldbyname('SJQty').Value + else + FieldByName('SJQty').Value:=0; + If Trim(CDS_Sub.fieldbyname('OrderNo').AsString)<>'' then + FieldByName('OrderNo').Value:=CDS_Sub.fieldbyname('OrderNo').Value + else + FieldByName('OrderNo').Value:=99; + If Trim(CDS_Sub.fieldbyname('PBQty').AsString)<>'' then + FieldByName('PBQty').Value:=CDS_Sub.fieldbyname('PBQty').Value + else + FieldByName('PBQty').Value:=0; + FieldByName('ZuHeId').Value:=Trim(FZuHeId); + Post; + end; + with CDS_Sub do + begin + Edit; + FieldByName('YJID').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + with CDS_JYFZ do + begin + First; + while not eof do + begin + if Trim(CDS_JYFZ.fieldbyname('YJID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'YF','WFBYCL_JiangYe',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_JYFZ.fieldbyname('YJID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_JiangYe where YJID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_JYFZ.fieldbyname('YJID').AsString)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOTemp); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(CDS_JYFZ.fieldbyname('MCID').AsString)<>'' then + begin + FieldByName('MCID').Value:=Trim(CDS_JYFZ.fieldbyname('MCID').AsString); + FieldByName('MainId').Value:=Trim(CDS_JYFZ.fieldbyname('MainId').AsString); + FieldByName('SWFBColor').Value:=Trim(CDS_JYFZ.fieldbyname('SWFBColor').AsString); + end else + begin + FieldByName('MCID').Value:='HB'; + FieldByName('MainId').Value:='HB'; + FieldByName('SWFBColor').Value:='HB'; + end; + FieldByName('YJID').Value:=Trim(maxno); + FieldByName('JYType').Value:='Һ'; + FieldByName('YCLCode').Value:=Trim(CDS_JYFZ.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(CDS_JYFZ.fieldbyname('YCLName').AsString); + If Trim(CDS_JYFZ.fieldbyname('SJQty').AsString)<>'' then + FieldByName('SJQty').Value:=CDS_JYFZ.fieldbyname('SJQty').Value + else + FieldByName('SJQty').Value:=0; + If Trim(CDS_JYFZ.fieldbyname('OrderNo').AsString)<>'' then + FieldByName('OrderNo').Value:=CDS_JYFZ.fieldbyname('OrderNo').Value + else + FieldByName('OrderNo').Value:=0; + If Trim(CDS_Sub.fieldbyname('PBQty').AsString)<>'' then + FieldByName('PBQty').Value:=CDS_Sub.fieldbyname('PBQty').Value + else + FieldByName('PBQty').Value:=0; + FieldByName('ZuHeId').Value:=Trim(FZuHeId); + Post; + end; + with CDS_JYFZ do + begin + Edit; + FieldByName('YJID').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + if Trim(MCQty.Text)='' then + FMCQty:='0' + else + FMCQty:=MCQty.Text; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_MainIdColor_JiangYe where MCID='''+Trim(CDS_Main.fieldbyname('MCID').AsString)+''''); + Open; + end; + with ADOCmd do + begin + Edit; + FieldByName('MCQty').Value:=FMCQty; + if Trim(MCQty10.Text)='' then + FieldByName('MCQtySJ').Value:=0 + else + FieldByName('MCQty').Value:=StrToFloat(MCQty10.Text); + FieldByName('MCNote').Value:=Trim(MCNote.Text); + FieldByName('WFBCpSpec').Value:=Trim(WFBCpSpec.Text); + FieldByName('WKMS').Value:=Trim(WKMS.Text); + FieldByName('SWFBHW').Value:=Trim(SWFBHW.Text); + FieldByName('ZuHeId').Value:=Trim(FZuHeId); + if Trim(CDS_Main.fieldbyname('ChkStatus').AsString)='˲ͨ' then + begin + FieldByName('ChkStatus').Value:='޸'; + FieldByName('Chker').Value:=''; + with CDS_Main do + begin + Edit; + FieldByName('ChkStatus').Value:='޸'; + + Post; + end; + end; + if Trim(CDS_Main.fieldbyname('Filler').AsString)='' then + begin + fieldbyname('Filler').Value:=Trim(DName); + fieldbyname('FillTime').Value:=SGetServerDateTime(ADOTemp); + with CDS_Main do + begin + Edit; + FieldByName('Filler').Value:=Trim(DName); + Post; + end; + end else + begin + fieldbyname('Editer').Value:=Trim(DName); + fieldbyname('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + with CDS_Main do + begin + Edit; + FieldByName('ZuHeId').Value:=Trim(FZuHeId); + Post; + end; + if cxTabControl1.TabIndex=0 then + begin + CDS_Main.Delete; + end else + Next; + end else + Next; + end; + end; + CDS_Main.EnableControls; + + ADOCmd.Connection.CommitTrans; + if ChkInt<>1 then + Application.MessageBox('ɹ','ʾ',0); + InitGrid(); + Exit; + except + ADOCmd.Connection.RollbackTrans; + if ChkInt<>1 then + Application.MessageBox('ʧ!','ʾ',0) + else + Application.MessageBox('쳣!','ʾ',0); + Exit; + end; +end; + +procedure TfrmJiangLiaoSet.TvOrdNoCellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + var + FFHBID,maxno:string; +begin + FFHBID:=Trim(CDS_Main.fieldbyname('ZuHeID').AsString); + maxno:=Trim(CDS_Main.fieldbyname('MCID').AsString); + with ADOTemp do + begin + Close; + SQL.Clear; + if cxTabControl1.TabIndex=0 then + begin + sql.Add('select * from WFBYCL_JiangYe where MCID='''+Trim(maxno)+''''); + end else + sql.Add('select * from WFBYCL_JiangYe where ZuHeID='''+Trim(FFHBID)+''''); + sql.Add(' and JYType=''ҪҺ'' '); + sql.Add(' order by OrderNo'); + Open; + end; + SCreateCDS20(ADOTemp,CDS_Sub); + SInitCDSData20(ADOTemp,CDS_Sub); + with ADOTemp do + begin + Close; + SQL.Clear; + if cxTabControl1.TabIndex=0 then + begin + sql.Add('select * from WFBYCL_JiangYe where MCID='''+Trim(maxno)+''''); + end else + sql.Add('select * from WFBYCL_JiangYe where ZuHeID='''+Trim(FFHBID)+''''); + sql.Add(' and JYType=''Һ'' '); + sql.Add(' order by OrderNo'); + Open; + end; + SCreateCDS20(ADOTemp,CDS_JYFZ); + SInitCDSData20(ADOTemp,CDS_JYFZ); + + with ADOTemp do + begin + Close; + sql.Clear; + SQL.Add('select Top 1*,'); + sql.Add(' OrderNoSL=dbo.F_Get_WFBOrder_SubStr(A.ZuHeId,''OrderNoSL'')'); + if Trim(FFHBID)<>'' then + sql.Add(' from WFBYCL_MainIdColor_JiangYe A where ZuHeId='''+Trim(FFHBID)+'''') + else + sql.Add(' from WFBYCL_MainIdColor_JiangYe A where MCId='''+Trim(CDS_Main.fieldbyname('MCID').AsString)+'''') ; + Open; + end; + MCQty.Text:=Trim(ADOTemp.fieldbyname('MCQty').AsString); + MCQty10.Text:=Trim(ADOTemp.fieldbyname('MCQtySJ').AsString); + MCNote.Text:=Trim(ADOTemp.fieldbyname('MCNote').AsString); + WKMS.Text:=Trim(ADOTemp.fieldbyname('WKMS').AsString); + SWFBHW.Text:=Trim(ADOTemp.fieldbyname('SWFBHW').AsString); + WFBCpSpec.Text:=Trim(ADOTemp.fieldbyname('WFBCpSpec').AsString); + OrderNoSL.Text:=Trim(ADOTemp.fieldbyname('OrderNoSL').AsString); + if cxTabControl1.TabIndex>0 then + begin + Label7.Visible:=True; + Label8.Visible:=True; + Label9.Visible:=True; + Label7.Caption:='Ƶˣ'+Trim(ADOTemp.fieldbyname('Filler').AsString); + Label8.Caption:='ˣ'+Trim(ADOTemp.fieldbyname('Chker').AsString); + Label9.Caption:='״̬'+Trim(ADOTemp.fieldbyname('ChkStatus').AsString); + end else + begin + Label7.Visible:=False; + Label8.Visible:=False; + Label9.Visible:=False; + end; + + + +end; +procedure TfrmJiangLiaoSet.MCData(); +begin + MCQty.Text:=Trim(CDS_Main.fieldbyname('MCQty').AsString); + MCNote.Text:=Trim(CDS_Main.fieldbyname('MCNote').AsString); + if cxTabControl1.TabIndex>0 then + begin + Label7.Visible:=True; + Label8.Visible:=True; + Label9.Visible:=True; + Label7.Caption:='Ƶˣ'+Trim(CDS_Main.fieldbyname('Filler').AsString); + Label8.Caption:='ˣ'+Trim(CDS_Main.fieldbyname('Chker').AsString); + Label9.Caption:='״̬'+Trim(CDS_Main.fieldbyname('ChkStatus').AsString); + end else + begin + Label7.Visible:=False; + Label8.Visible:=False; + Label9.Visible:=False; + end; +end; + +procedure TfrmJiangLiaoSet.MCQtyKeyPress(Sender: TObject; var Key: Char); +begin + if not (Key in['0'..'9','.',#13,#8]) then + begin + Key:=#0; + end; +end; + +procedure TfrmJiangLiaoSet.BtnChkOkClick(Sender: TObject); +begin + if cxTabControl1.TabIndex=0 then Exit; + ChkInt:=1; + // BtnSave.Click; + if ChkInt=2 then Exit; + if Trim(DName)=Trim(CDS_Main.fieldbyname('Filler').AsString) then + begin + Application.MessageBox('Լݣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_MainIdColor_JiangYe Set Chker='''+Trim(DName)+''''); + SQL.Add(',ChkTime=getdate(),ChkStatus=''ͨ'' '); + sql.Add('where ZuHeId='''+Trim(CDS_Main.fieldbyname('ZuHeId').AsString)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + with CDS_Main do + begin + Edit; + FieldByName('ChkStatus').Value:='ͨ'; + FieldByName('Chker').Value:=Trim(DName); + Post; + end; + MCData(); + ChkInt:=0; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; + +end; + +procedure TfrmJiangLiaoSet.BtnChkNoClick(Sender: TObject); +begin + if cxTabControl1.TabIndex=0 then Exit; + ChkInt:=1; + // BtnSave.Click; + if ChkInt=2 then Exit; + if Trim(DName)=Trim(CDS_Main.fieldbyname('Filler').AsString) then + begin + Application.MessageBox('Լݣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_MainIdColor_JiangYe Set Chker='''+Trim(DName)+''''); + SQL.Add(',ChkTime=getdate(),ChkStatus=''˲ͨ'' '); + sql.Add('where ZuHeId='''+Trim(CDS_Main.fieldbyname('ZuHeId').AsString)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + with CDS_Main do + begin + Edit; + FieldByName('ChkStatus').Value:='˲ͨ'; + FieldByName('Chker').Value:=Trim(DName); + Post; + end; + MCData(); + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmJiangLiaoSet.BtnPrintClick(Sender: TObject); +var + fPrintFile:string; +begin + if Trim(CDS_Main.fieldbyname('ChkStatus').AsString)<>'ͨ' then + begin + Application.MessageBox('δܴͨӡݣ','ʾ',0); + Exit; + end; + with ADOQueryPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Print_JiangYe :ZuHeId'); + Parameters.ParamByName('ZuHeId').Value:=Trim(CDS_Main.fieldbyname('ZuHeId').AsString); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\õ10.rmf' ; + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\õ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmJiangLiaoSet.MenuItem1Click(Sender: TObject); +begin + if BtnSave.Visible=False then Exit; + try + frmGetPGJBOneTwoInList:=TfrmGetPGJBOneTwoInList.Create(Application); + with frmGetPGJBOneTwoInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + First; + while not Eof do + begin + with CDS_JYFZ do + begin + Append; + CDS_JYFZ.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + CDS_JYFZ.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + //CDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + Post; + end; + Next; + end; + end; + end; + end; + finally + frmGetPGJBOneTwoInList.Free; + end; +end; + +procedure TfrmJiangLiaoSet.MenuItem2Click(Sender: TObject); +begin + if BtnSave.Visible=False then Exit; + if CDS_JYFZ.IsEmpty then Exit; + if Trim(CDS_JYFZ.FieldByName('YJID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_JiangYe where YJID='''+Trim(CDS_JYFZ.FieldByName('YJID').AsString)+''''); + ExecSQL; + end; + end; + CDS_JYFZ.Delete; +end; + +procedure TfrmJiangLiaoSet.SWFBCodeNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCpSpec'; + flagname:='Ʒͺ'; + if ShowModal=1 then + begin + Self.WFBCpSpec.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJiangLiaoSet.WKMSPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WKMS'; + flagname:='Ŀ'; + if ShowModal=1 then + begin + Self.WKMS.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJiangLiaoSet.cxButtonEdit2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBHX'; + flagname:=''; + if ShowModal=1 then + begin + Self.SWFBHW.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmJiangLiaoSet.v1Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FMCQty:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(MCQty.Text)='' then + begin + FMCQty:='0' + end else + begin + FMCQty:=Trim(MCQty.Text); + end; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with CDS_Sub do + begin + Edit; + FieldByName('SJQty').Value:=StrToFloat(mvalue)*StrToFloat(FMCQty)/100; + FieldByName('PBQty').Value:=StrToFloat(mvalue); + Post; + end; +end; + +procedure TfrmJiangLiaoSet.MCQtyChange(Sender: TObject); +var + mvalue,FMCQty:string; +begin + if( (MCQty.Focused) and (MCQty.ReadOnly=False) )then + begin + if Trim(MCQty.Text)='' then + begin + FMCQty:='0' + end else + begin + FMCQty:=Trim(MCQty.Text); + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('PBQty').AsString)<>'' then + mvalue:=Trim(fieldbyname('PBQty').AsString) + else + mvalue:='0'; + FieldByName('SJQty').Value:=StrToFloat(mvalue)*StrToFloat(FMCQty)/100; + Post; + Next; + end; + end; + CDS_Sub.EnableControls; + end; + +end; + +procedure TfrmJiangLiaoSet.ToolButton2Click(Sender: TObject); +begin + if cxTabControl1.TabIndex=0 then Exit; + if Trim(CDS_Main.FieldByName('ChkStatus').AsString)='ͨ' then Exit; + if Application.MessageBox('ȷҪִд˲?','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_JiangYe Set ZuHeId=NULL where MCID='''+Trim(CDS_Main.fieldbyname('MCID').AsString)+''''); + sql.Add('Update WFBYCL_MainIdColor_JiangYe Set ZuHeId=NULL where MCID='''+Trim(CDS_Main.fieldbyname('MCID').AsString)+''''); + ExecSQL; + end; + CDS_Main.Delete; + +end; + +procedure TfrmJiangLiaoSet.MCQty10Change(Sender: TObject); +var + mvalue,FMCQty:string; +begin + if( (MCQty10.Focused) and (MCQty10.ReadOnly=False) )then + begin + if Trim(MCQty10.Text)='' then + begin + FMCQty:='0' + end else + begin + FMCQty:=Trim(MCQty10.Text); + end; + CDS_JYFZ.DisableControls; + with CDS_JYFZ do + begin + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('PBQty').AsString)<>'' then + mvalue:=Trim(fieldbyname('PBQty').AsString) + else + mvalue:='0'; + FieldByName('SJQty').Value:=StrToFloat(mvalue)*StrToFloat(FMCQty)/100; + Post; + Next; + end; + end; + CDS_JYFZ.EnableControls; + end; + +end; + +procedure TfrmJiangLiaoSet.v2Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FMCQty:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(MCQty10.Text)='' then + begin + FMCQty:='0' + end else + begin + FMCQty:=Trim(MCQty10.Text); + end; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with CDS_JYFZ do + begin + Edit; + FieldByName('SJQty').Value:=StrToFloat(mvalue)*StrToFloat(FMCQty)/100; + FieldByName('PBQty').Value:=StrToFloat(mvalue); + Post; + end; +end; + +end. diff --git a/盛纺贸易管理/U_KHDYInPut.dfm b/盛纺贸易管理/U_KHDYInPut.dfm new file mode 100644 index 0000000..e974b26 --- /dev/null +++ b/盛纺贸易管理/U_KHDYInPut.dfm @@ -0,0 +1,528 @@ +object frmKHDYInPut: TfrmKHDYInPut + Left = 223 + Top = 62 + Width = 962 + Height = 642 + Caption = #33394#21345'/SO'#30331#35760 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 946 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 59 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 946 + Height = 575 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Panel3: TPanel + Left = 0 + Top = 0 + Width = 944 + Height = 233 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label1: TLabel + Left = 31 + Top = 119 + Width = 67 + Height = 12 + Caption = #26085' '#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 31 + Top = 22 + Width = 66 + Height = 12 + Caption = #21152' '#24037' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 265 + Top = 22 + Width = 67 + Height = 12 + Caption = #21697' '#21517#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 31 + Top = 153 + Width = 67 + Height = 12 + Caption = #22791' '#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 497 + Top = 22 + Width = 67 + Height = 12 + Caption = #27454' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 31 + Top = 54 + Width = 67 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 265 + Top = 54 + Width = 65 + Height = 12 + Caption = #23545#33394#20809#28304#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 497 + Top = 54 + Width = 65 + Height = 12 + Caption = #23610#23544#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 31 + Top = 86 + Width = 67 + Height = 12 + Caption = #39068' '#33394#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 265 + Top = 86 + Width = 67 + Height = 12 + Caption = #33457' '#22411#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 497 + Top = 86 + Width = 66 + Height = 12 + Caption = #24320' '#21333' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 265 + Top = 118 + Width = 65 + Height = 12 + Caption = #23458#25143#31616#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 497 + Top = 118 + Width = 66 + Height = 12 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 497 + Top = 152 + Width = 66 + Height = 12 + Caption = #36319' '#21333' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Note: TRichEdit + Left = 93 + Top = 151 + Width = 388 + Height = 74 + ScrollBars = ssBoth + TabOrder = 0 + end + object DYDate: TDateTimePicker + Left = 93 + Top = 115 + Width = 156 + Height = 20 + Date = 42240.000000000000000000 + Time = 42240.000000000000000000 + TabOrder = 1 + end + object FactoryName: TBtnEditA + Left = 93 + Top = 18 + Width = 153 + Height = 20 + Hint = 'FactoryNo' + ReadOnly = True + TabOrder = 2 + OnBtnClick = FactoryNameBtnClick + end + object CPName: TEdit + Left = 327 + Top = 19 + Width = 153 + Height = 18 + TabOrder = 3 + end + object StyleNo: TEdit + Left = 559 + Top = 19 + Width = 153 + Height = 18 + TabOrder = 4 + end + object KHName: TBtnEditA + Left = 93 + Top = 50 + Width = 153 + Height = 20 + Hint = 'FactoryNo' + ReadOnly = True + TabOrder = 5 + OnBtnClick = KHNameBtnClick + end + object DuiSeGuangYuan: TBtnEditA + Left = 327 + Top = 50 + Width = 153 + Height = 20 + TabOrder = 6 + OnBtnClick = DuiSeGuangYuanBtnClick + end + object ChiCunNote: TBtnEditA + Left = 559 + Top = 50 + Width = 153 + Height = 20 + TabOrder = 7 + OnBtnClick = ChiCunNoteBtnClick + end + object ColorHZ: TEdit + Left = 93 + Top = 83 + Width = 153 + Height = 18 + TabOrder = 8 + end + object HXHZ: TEdit + Left = 327 + Top = 83 + Width = 153 + Height = 18 + TabOrder = 9 + end + object DYPerson: TBtnEditA + Left = 559 + Top = 82 + Width = 153 + Height = 20 + Hint = 'FactoryNo' + TabOrder = 10 + OnBtnClick = DYPersonBtnClick + end + object KHNameJC: TEdit + Left = 327 + Top = 115 + Width = 153 + Height = 18 + ReadOnly = True + TabOrder = 11 + end + object YWY: TEdit + Left = 559 + Top = 115 + Width = 153 + Height = 18 + ReadOnly = True + TabOrder = 12 + end + object GDPerson: TBtnEditA + Left = 559 + Top = 148 + Width = 153 + Height = 20 + Hint = 'FactoryNo' + TabOrder = 13 + OnBtnClick = GDPersonBtnClick + end + object DYNo: TEdit + Tag = 2 + Left = 631 + Top = 227 + Width = 153 + Height = 18 + ReadOnly = True + TabOrder = 14 + Visible = False + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 233 + Width = 944 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 262 + Width = 944 + Height = 311 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1Column14: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHInt' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.Default + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column20: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 127 + end + object v1SOrddefstr1: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 98 + end + object v1Column1: TcxGridDBColumn + Caption = #24847#35265 + DataBinding.FieldName = 'YJNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 317 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 640 + Top = 65533 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 584 + Top = 65533 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 608 + Top = 65533 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 240 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 368 + end +end diff --git a/盛纺贸易管理/U_KHDYInPut.pas b/盛纺贸易管理/U_KHDYInPut.pas new file mode 100644 index 0000000..332903b --- /dev/null +++ b/盛纺贸易管理/U_KHDYInPut.pas @@ -0,0 +1,439 @@ +unit U_KHDYInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit,jpeg, + IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC, + cxGridCustomPopupMenu, cxGridPopupMenu, FTComboBox; + +type + TfrmKHDYInPut = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + TBSave: TToolButton; + Panel3: TPanel; + Label1: TLabel; + Label10: TLabel; + Label34: TLabel; + Label4: TLabel; + Note: TRichEdit; + DYDate: TDateTimePicker; + FactoryName: TBtnEditA; + CPName: TEdit; + Label5: TLabel; + StyleNo: TEdit; + Label6: TLabel; + KHName: TBtnEditA; + Label8: TLabel; + DuiSeGuangYuan: TBtnEditA; + Label9: TLabel; + ChiCunNote: TBtnEditA; + Label11: TLabel; + ColorHZ: TEdit; + Label12: TLabel; + HXHZ: TEdit; + Label13: TLabel; + DYPerson: TBtnEditA; + Label2: TLabel; + KHNameJC: TEdit; + Label3: TLabel; + YWY: TEdit; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column14: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1SOrddefstr1: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column1: TcxGridDBColumn; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + Label7: TLabel; + GDPerson: TBtnEditA; + DYNo: TEdit; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure FactoryNameBtnClick(Sender: TObject); + procedure KHNameBtnClick(Sender: TObject); + procedure DuiSeGuangYuanBtnClick(Sender: TObject); + procedure ChiCunNoteBtnClick(Sender: TObject); + procedure DYPersonBtnClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure GDPersonBtnClick(Sender: TObject); + private + procedure InitData(); + function SaveData():Boolean; + { Private declarations } + public + canshu1:String; + PState,CopyInt:Integer; + FMainId:String; + { Public declarations } + end; + +var + frmKHDYInPut: TfrmKHDYInPut; +implementation +uses + U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_GYSList, U_ZdyAttachment; + +{$R *.dfm} + +procedure TfrmKHDYInPut.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmKHDYInPut.InitData(); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from KH_DaYang where DYId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,Panel3,0); + DYNo.Text:=trim(ADOQuery1.fieldbyname('DYNo').AsString); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from KH_DaYang_MX where DYId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + if PState=0 then + begin + DYDate.Date:=SGetServerDate(ADOTemp); + end; + if CopyInt=99 then + begin + FMainId:=''; + with Order_Sub do + begin + first; + while not eof do + begin + edit; + fieldbyname('DYID').AsString:=''; + Fieldbyname('DMId').AsString:=''; + next; + end; + end; + end; +end; + + +procedure TfrmKHDYInPut.FormShow(Sender: TObject); +begin + InitData(); +end; + +function TfrmKHDYInPut.SaveData():Boolean; +var + maxno,maxsubno:String; +begin + Result:=False; + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'SK','KH_DaYang',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from KH_DaYang where DYId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + if CopyInt=99 then + begin + FieldByName('DYNo').Value:=trim(DYNo.Text); + end + else + FieldByName('DYNo').Value:='SK'+Trim(KHNameJC.Text)+Copy(Trim(maxno),3,9); + end + else begin + Edit; + FieldByName('DYNo').Value:=trim(DYNo.Text); + end; + FieldByName('DYId').Value:=Trim(maxno); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillerCode').Value:=Trim(DCode); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + RTSetsavedata(ADOCmd,'KH_DaYang',Panel3,0); + FieldByName('Valid').Value:='Y'; + Post; + end; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('DMId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxsubno,'DM','KH_DaYang_MX',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxsubno:=Trim(Order_Sub.fieldbyname('DMId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from KH_DaYang_MX where DMId='''+Trim(maxsubno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('DMId').AsString)='' then + Append + else + Edit; + FieldByName('DYId').Value:=Trim(maxno); + FieldByName('DMId').Value:=Trim(maxsubno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'KH_DaYang_MX',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('DMId').Value:=Trim(maxsubno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + FMainId:=Trim(maxno); + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmKHDYInPut.TBSaveClick(Sender: TObject); +begin + ToolBar1.SetFocus; + if Trim(FactoryName.Text)='' then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if Trim(CPName.Text)='' then + begin + Application.MessageBox('ƷΪ!','ʾ',0); + Exit; + end; + if Trim(KHName.Text)='' then + begin + Application.MessageBox('ͻΪ!','ʾ',0); + Exit; + end; + if Trim(DYPerson.Text)='' then + begin + Application.MessageBox('˲Ϊ!','ʾ',0); + Exit; + end; + if Trim(GDPerson.Text)='' then + begin + Application.MessageBox('ԱΪ!','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + Modalresult:=1; + end; +end; + +procedure TfrmKHDYInPut.FactoryNameBtnClick(Sender: TObject); +begin + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + Self.FactoryName.Text:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + Self.FactoryName.TxtCode:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyCode').AsString); + end; + end; + finally + frmGYSList.Free; + end; +end; + +procedure TfrmKHDYInPut.KHNameBtnClick(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + KHName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + KHName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + KHNameJC.Text:=Trim(CDS_HZ.fieldbyname('zdyNameZ').AsString); + YWY.Text:=Trim(CDS_HZ.fieldbyname('DEFstr5').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmKHDYInPut.DuiSeGuangYuanBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='DuiSeGuangYuan'; + flagname:='ɫԴ'; + if ShowModal=1 then + begin + DuiSeGuangYuan.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmKHDYInPut.ChiCunNoteBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ChiCunNote'; + flagname:='ߴҪ'; + if ShowModal=1 then + begin + ChiCunNote.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmKHDYInPut.DYPersonBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='DYPerson'; + flagname:=''; + fnote:=True; + V1Note.Caption:='绰'; + if ShowModal=1 then + begin + DYPerson.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmKHDYInPut.ToolButton1Click(Sender: TObject); +begin + with Order_Sub do + begin + Append; + + Post; + end; + with Order_Sub do + begin + Edit; + FieldByName('XHInt').Value:=Order_Sub.RecordCount; + Post; + end; +end; + +procedure TfrmKHDYInPut.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('DMId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete KH_DaYang_MX where DMId='''+Trim(Order_Sub.fieldbyname('DMId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmKHDYInPut.GDPersonBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PFGenDanPerson'; + flagname:='Ա'; + fnote:=True; + V1Note.Caption:='绰'; + if ShowModal=1 then + begin + GDPerson.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_KHDYList.dfm b/盛纺贸易管理/U_KHDYList.dfm new file mode 100644 index 0000000..2a262ea --- /dev/null +++ b/盛纺贸易管理/U_KHDYList.dfm @@ -0,0 +1,670 @@ +object frmKHDYList: TfrmKHDYList + Left = 192 + Top = 126 + Width = 1153 + Height = 598 + Caption = #33394#21345'/SO'#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1137 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object ToolButton2: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 4 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object ToolButton5: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #38468#20214 + ImageIndex = 57 + OnClick = ToolButton5Click + end + object ToolButton4: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = ToolButton4Click + end + object TBExport: TToolButton + Left = 567 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 630 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 104 + Width = 1137 + Height = 329 + Align = alClient + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column5: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Width = 46 + end + object v1Column3: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'DYNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 99 + end + object v1Column9: TcxGridDBColumn + Caption = #26085#26399 + DataBinding.FieldName = 'DYDate' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 101 + end + object v1Column2: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FactoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 107 + end + object v1Column7: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 94 + end + object v1Column6: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 79 + end + object v1Column14: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'KHNameJC' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column15: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'YWY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column17: TcxGridDBColumn + Caption = #24320#21333#20154 + DataBinding.FieldName = 'DYPerson' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object v1Column18: TcxGridDBColumn + Caption = #36319#21333#21592 + DataBinding.FieldName = 'GDPerson' + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1Column1: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'CPName' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v1Column16: TcxGridDBColumn + Caption = #22238#26679#26085#26399 + DataBinding.FieldName = 'HYDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnEditValueChanged = v1Column16PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 106 + end + object v1Column4: TcxGridDBColumn + Caption = #23545#33394#20809#28304 + DataBinding.FieldName = 'DuiSeGuangYuan' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + object v1Column10: TcxGridDBColumn + Caption = #23610#23544#35201#27714 + DataBinding.FieldName = 'ChiCunNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column11: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'ColorHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 112 + end + object v1Column13: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'HXHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column12: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 82 + end + object v1Column8: TcxGridDBColumn + Caption = #38468#20214 + DataBinding.FieldName = 'FJFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 59 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1137 + Height = 72 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label9: TLabel + Left = 198 + Top = 16 + Width = 44 + Height = 13 + Caption = #32534' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 198 + Top = 42 + Width = 42 + Height = 13 + Caption = #21152#24037#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 394 + Top = 16 + Width = 28 + Height = 13 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 30 + Top = 16 + Width = 56 + Height = 13 + Caption = #26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 69 + Top = 42 + Width = 14 + Height = 13 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 394 + Top = 42 + Width = 28 + Height = 13 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 576 + Top = 16 + Width = 28 + Height = 13 + Caption = #27454#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 576 + Top = 42 + Width = 28 + Height = 13 + Caption = #31616#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 758 + Top = 16 + Width = 42 + Height = 13 + Caption = #19994#21153#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object DYNO: TEdit + Tag = 2 + Left = 242 + Top = 12 + Width = 135 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + OnKeyPress = DYNOKeyPress + end + object FactoryName: TEdit + Tag = 2 + Left = 242 + Top = 38 + Width = 135 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object CPName: TEdit + Tag = 2 + Left = 426 + Top = 12 + Width = 135 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object BegDate: TDateTimePicker + Left = 88 + Top = 12 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 88 + Top = 38 + Width = 94 + Height = 21 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + object KHName: TEdit + Tag = 2 + Left = 426 + Top = 38 + Width = 135 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + end + object StyleNo: TEdit + Tag = 2 + Left = 608 + Top = 12 + Width = 135 + Height = 20 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object KHNameJC: TEdit + Tag = 2 + Left = 608 + Top = 38 + Width = 135 + Height = 20 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + object YWY: TEdit + Tag = 2 + Left = 803 + Top = 12 + Width = 135 + Height = 20 + TabOrder = 8 + OnChange = CustomerNoNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 433 + Width = 1137 + Height = 125 + Align = alBottom + TabOrder = 3 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHInt' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.Default + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column20: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 127 + end + object v1SOrddefstr1: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 98 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #24847#35265 + DataBinding.FieldName = 'YJNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 317 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 464 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 432 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 304 + Top = 152 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 352 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 416 + Top = 160 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 624 + Top = 216 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 592 + Top = 216 + end + object RMXLSExport2: TRMXLSExport + ShowAfterExport = False + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 556 + Top = 216 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 472 + Top = 200 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 432 + end + object DataSource2: TDataSource + DataSet = Order_Sub + Left = 904 + Top = 432 + end +end diff --git a/盛纺贸易管理/U_KHDYList.pas b/盛纺贸易管理/U_KHDYList.pas new file mode 100644 index 0000000..22dbf3f --- /dev/null +++ b/盛纺贸易管理/U_KHDYList.pas @@ -0,0 +1,532 @@ +unit U_KHDYList; // + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit, cxPC, cxTextEdit; + +type + TfrmKHDYList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + ToolButton1: TToolButton; + Panel1: TPanel; + Label9: TLabel; + DYNO: TEdit; + v1Column2: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + Label2: TLabel; + FactoryName: TEdit; + v1Column1: TcxGridDBColumn; + Label34: TLabel; + v1Column7: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + CPName: TEdit; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + Label3: TLabel; + Label4: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + ToolButton4: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport2: TRMXLSExport; + CDS_PRT: TClientDataSet; + v1Column8: TcxGridDBColumn; + ToolButton5: TToolButton; + v1Column3: TcxGridDBColumn; + Label1: TLabel; + KHName: TEdit; + Label5: TLabel; + StyleNo: TEdit; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + Label6: TLabel; + KHNameJC: TEdit; + Label7: TLabel; + YWY: TEdit; + Order_Sub: TClientDataSet; + DataSource2: TDataSource; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1SOrddefstr1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolButton2: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ZJStatusChange(Sender: TObject); + procedure DYNOKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure v1Column16PropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton2Click(Sender: TObject); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmKHDYList: TfrmKHDYList; + +implementation +uses + U_DataLink,U_RTFun, U_KHDYInPut, U_FjList_RZ; + +{$R *.dfm} + +procedure TfrmKHDYList.FormDestroy(Sender: TObject); +begin + frmKHDYList:=nil; +end; + +procedure TfrmKHDYList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmKHDYList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + canshu1:=Trim(DParameters1); +end; + +procedure TfrmKHDYList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('¼',Tv1,''); + Close; +end; + +procedure TfrmKHDYList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.DYID),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + + sql.Add(' from KH_DaYang A '); + sql.Add(' where 1=1 '); + sql.Add(' and DYDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and DYDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add(' and FillerCode='''+Trim(DCode)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmKHDYList.InitForm(); +begin + BegDate.Date:=SGetServerDateMBeg(ADOQueryTemp); + EndDate.Date:=SGetServerDate(ADOQueryTemp); + ReadCxGrid('¼',Tv1,''); + InitGrid(); +end; + +procedure TfrmKHDYList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmKHDYList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('޸!','ʾ',0); + Exit; + end; + try + frmKHDYInPut:=TfrmKHDYInPut.Create(Application); + with frmKHDYInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('DYId').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmKHDYInPut.Free; + end; +end; + +procedure TfrmKHDYList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ɾ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from TP_File where WBID='''+Trim(Order_Main.fieldbyname('DYID').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('ϴɾ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from KH_DaYang_MX where DYID='''+Trim(Order_Main.fieldbyname('DYID').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('ϸݣɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //Order_Main.Delete; + end; +end; + +function TfrmKHDYList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Delete KH_DaYang where DYId='''+Trim(Order_Main.fieldbyname('DYId').AsString)+''''); + ExecSQL; + end; + Order_Main.Delete; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmKHDYList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ɫ/SOϢб',cxGrid1); +end; + +procedure TfrmKHDYList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmKHDYList.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmKHDYInPut:=TfrmKHDYInPut.Create(Application); + with frmKHDYInPut do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmKHDYInPut.Free; + end; +end; + +procedure TfrmKHDYList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmKHDYList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmKHDYList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmKHDYList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmKHDYInPut:=TfrmKHDYInPut.Create(Application); + with frmKHDYInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('DYId').AsString); + TBSave.Visible:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmKHDYInPut.Free; + end; +end; + +procedure TfrmKHDYList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmKHDYList.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmKHDYList.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmKHDYList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmKHDYList.ZJStatusChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmKHDYList.DYNOKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Trim(DYNO.Text)='' then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.DYID),0)>0 then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); + sql.Add(' from KH_DaYang A '); + sql.Add(' where DYNO like '''+'%'+Trim(DYNO.Text)+'%'+''''); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add(' and FillerCode='''+Trim(DCode)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmKHDYList.ToolButton4Click(Sender: TObject); +var + fPrintFile:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\.rmf'; + RMXLSExport2:= TRMXLSExport.Create(RMXLSExport2); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add(' select A.*,B.* '); + sql.Add(' ,DYPersonTel=(select Note from KH_Zdy KZ where KZ.ZdyName=A.DYPerson and KZ.Type=''DYPerson'' )'); + sql.Add(' ,GDPersonTel=(select Note from KH_Zdy KZ where KZ.ZdyName=A.GDPerson and KZ.Type=''PFGenDanPerson'' )'); + sql.Add(' from KH_DaYang A '); + sql.Add(' left join KH_DaYang_MX B on A.DYID=B.DYID '); + sql.Add(' where A.DYId='''+Trim(Order_Main.fieldbyname('DYId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + if FileExists(fPrintFile) then + begin + //RMVariables['OrderUnit']:=Order_Main.fieldbyname('OrderUnit').Value; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmKHDYList.ToolButton5Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmFjList_RZ:=TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + // PState:=1; + if Trim(DParameters1)<>'Ȩ' then cxButton1.Visible:=false; + fkeyNO:=Trim(Self.Order_Main.fieldbyname('DYId').AsString); + fType:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; +end; + +procedure TfrmKHDYList.v1Column16PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with Order_Main do + begin + Edit; + if Trim(mvalue)<>'' then + FieldByName('HYDate').Value:=mvalue + else + FieldByName('HYDate').Value:=Null; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if Trim(mvalue)<>'' then + sql.Add('Update KH_DaYang Set HYDate='''+Trim(Order_Main.fieldbyname('HYDate').AsString)+'''') + else + sql.Add('Update KH_DaYang Set HYDate=Null'); + sql.Add(' where DYID='''+Trim(Order_Main.fieldbyname('DYID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmKHDYList.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.add('select * from KH_DaYang_MX '); + sql.add('where DYId='''+trim(Order_Main.fieldbyname('DYID').AsString)+''''); + open; + end; + SCreateCDS20(ADOQueryCmd,Order_Sub); + SInitCDSData20(ADOQueryCmd,Order_Sub); +end; + +procedure TfrmKHDYList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmKHDYInPut:=TfrmKHDYInPut.Create(Application); + with frmKHDYInPut do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('DYId').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmKHDYInPut.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_KHTopList.dfm b/盛纺贸易管理/U_KHTopList.dfm new file mode 100644 index 0000000..c9472a1 --- /dev/null +++ b/盛纺贸易管理/U_KHTopList.dfm @@ -0,0 +1,604 @@ +object frmKHTopList: TfrmKHTopList + Left = 191 + Top = 108 + Width = 1404 + Height = 745 + Caption = #23458#25143#38144#37327#25490#34892#27036 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1388 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1388 + Height = 58 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 139 + Top = 13 + Width = 28 + Height = 13 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 25 + Top = 13 + Width = 28 + Height = 13 + Caption = #24180#20221 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 312 + Top = 13 + Width = 126 + Height = 13 + Caption = #27880#65306#25968#25454#26174#31034#20026#37329#39069 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object KHName: TEdit + Tag = 2 + Left = 167 + Top = 9 + Width = 129 + Height = 21 + TabOrder = 0 + OnChange = KHNameChange + end + object BegDate: TDateTimePicker + Left = 55 + Top = 9 + Width = 65 + Height = 21 + Date = 40675.000000000000000000 + Format = 'yyyy' + Time = 40675.000000000000000000 + TabOrder = 1 + end + object RadioGroup1: TRadioGroup + Left = 547 + Top = 2 + Width = 262 + Height = 53 + Columns = 2 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemIndex = 0 + Items.Strings = ( + #26609#29366#22270 + #26354#32447#22270) + ParentFont = False + TabOrder = 2 + OnClick = RadioGroup1Click + end + end + object cxPageControl1: TcxPageControl + Left = 0 + Top = 91 + Width = 1388 + Height = 320 + ActivePage = cxTabSheet1 + Align = alTop + Style = 8 + TabOrder = 2 + OnChange = cxPageControl1Change + ClientRectBottom = 320 + ClientRectRight = 1388 + ClientRectTop = 24 + object cxTabSheet1: TcxTabSheet + Caption = #25353#26376#20221 + ImageIndex = 0 + object cxGrid1: TcxGrid + Left = 0 + Top = 0 + Width = 1388 + Height = 296 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v2Column3 + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1Column4 + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + Column = v1Column11 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 75 + end + object v1Column7: TcxGridDBColumn + Caption = '1'#26376#20221 + DataBinding.FieldName = 'MonMoney1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v2Column1: TcxGridDBColumn + Caption = '2'#26376#20221 + DataBinding.FieldName = 'MonMoney2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 75 + end + object v1Column8: TcxGridDBColumn + Caption = '3'#26376#20221 + DataBinding.FieldName = 'MonMoney3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v2Column3: TcxGridDBColumn + Caption = '4'#26376#20221 + DataBinding.FieldName = 'MonMoney4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 75 + end + object v1Column5: TcxGridDBColumn + Caption = '5'#26376#20221 + DataBinding.FieldName = 'MonMoney5' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column2: TcxGridDBColumn + Caption = '6'#26376#20221 + DataBinding.FieldName = 'MonMoney6' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column4: TcxGridDBColumn + Caption = '7'#26376#20221 + DataBinding.FieldName = 'MonMoney7' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column3: TcxGridDBColumn + Caption = '8'#26376#20221 + DataBinding.FieldName = 'MonMoney8' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 75 + end + object v1Column6: TcxGridDBColumn + Caption = '9'#26376#20221 + DataBinding.FieldName = 'MonMoney9' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 75 + end + object v2Column5: TcxGridDBColumn + Caption = '10'#26376#20221 + DataBinding.FieldName = 'MonMoney10' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 75 + end + object v1Column9: TcxGridDBColumn + Caption = '11'#26376#20221 + DataBinding.FieldName = 'MonMoney11' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column10: TcxGridDBColumn + Caption = '12'#26376#20221 + DataBinding.FieldName = 'MonMoney12' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column11: TcxGridDBColumn + Caption = #21512#35745 + DataBinding.FieldName = 'MonMoneyHJ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + end + object cxTabSheet2: TcxTabSheet + Caption = #25353#23395#24230 + ImageIndex = 1 + object cxGrid2: TcxGrid + Left = 0 + Top = 0 + Width = 1388 + Height = 296 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn2 + end + item + Kind = skSum + Column = cxGridDBColumn3 + end + item + Kind = skSum + Column = cxGridDBColumn4 + end + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 86 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = '1'#23395#24230 + DataBinding.FieldName = 'MonMoney1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = '2'#23395#24230 + DataBinding.FieldName = 'MonMoney2' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 80 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = '3'#23395#24230 + DataBinding.FieldName = 'MonMoney3' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = '4'#23395#24230 + DataBinding.FieldName = 'MonMoney4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 80 + end + object v2Column2: TcxGridDBColumn + Caption = #21512#35745 + DataBinding.FieldName = 'MonMoneyHJ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 102 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv2 + end + end + end + end + object MovePanel2: TMovePanel + Left = 442 + Top = 208 + Width = 313 + Height = 53 + BevelInner = bvLowered + Caption = #27491#22312#22788#29702#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object DBChart1: TDBChart + Left = 0 + Top = 411 + Width = 1388 + Height = 294 + BackWall.Brush.Color = clWhite + Gradient.Visible = True + LeftWall.Color = clBlue + Title.Font.Charset = GB2312_CHARSET + Title.Font.Color = clBlue + Title.Font.Height = -12 + Title.Font.Name = #23435#20307 + Title.Font.Style = [fsBold] + Title.Text.Strings = ( + 'TDBChart') + Title.Visible = False + LeftAxis.Visible = False + View3D = False + View3DOptions.Elevation = 315 + View3DOptions.Orthogonal = False + View3DOptions.Perspective = 0 + View3DOptions.Rotation = 360 + Align = alClient + TabOrder = 4 + object cxSplitter1: TcxSplitter + Left = 1 + Top = 1 + Width = 1386 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salTop + Control = cxPageControl1 + end + object Series1: TBarSeries + Active = False + Marks.ArrowLength = 20 + Marks.Style = smsValue + Marks.Visible = True + SeriesColor = clRed + Title = #38144#21806#25968#37327 + XValues.DateTime = False + XValues.Name = 'X' + XValues.Multiplier = 1.000000000000000000 + XValues.Order = loAscending + YValues.DateTime = False + YValues.Name = 'Bar' + YValues.Multiplier = 1.000000000000000000 + YValues.Order = loNone + end + object Series2: TFastLineSeries + Marks.ArrowLength = 8 + Marks.Font.Charset = GB2312_CHARSET + Marks.Font.Color = clBlack + Marks.Font.Height = -12 + Marks.Font.Name = #23435#20307 + Marks.Font.Style = [] + Marks.Style = smsValue + Marks.Visible = True + SeriesColor = clRed + Title = #38144#21806#25968#37327 + LinePen.Color = clRed + LinePen.Width = 2 + XValues.DateTime = False + XValues.Name = 'X' + XValues.Multiplier = 1.000000000000000000 + XValues.Order = loAscending + YValues.DateTime = False + YValues.Name = 'Y' + YValues.Multiplier = 1.000000000000000000 + YValues.Order = loNone + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 723 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 840 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 792 + Top = 40 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 848 + Top = 176 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 720 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 662 + Top = 147 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 776 + Top = 144 + end +end diff --git a/盛纺贸易管理/U_KHTopList.pas b/盛纺贸易管理/U_KHTopList.pas new file mode 100644 index 0000000..270bb1b --- /dev/null +++ b/盛纺贸易管理/U_KHTopList.pas @@ -0,0 +1,255 @@ +unit U_KHTopList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, Menus, + cxCheckBox, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, + RM_e_Xls, cxPC, Series, TeEngine, TeeProcs, Chart, DbChart, cxSplitter; + +type + TfrmKHTopList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + Label1: TLabel; + KHName: TEdit; + Label2: TLabel; + BegDate: TDateTimePicker; + cxPageControl1: TcxPageControl; + cxTabSheet1: TcxTabSheet; + cxTabSheet2: TcxTabSheet; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + v1Column11: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + MovePanel2: TMovePanel; + cxGridPopupMenu2: TcxGridPopupMenu; + Label3: TLabel; + RadioGroup1: TRadioGroup; + DBChart1: TDBChart; + Series1: TBarSeries; + Series2: TFastLineSeries; + cxSplitter1: TcxSplitter; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBRafreshClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure KHNameChange(Sender: TObject); + procedure cxPageControl1Change(Sender: TObject); + procedure RadioGroup1Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + FLeft,FTop:Integer; + procedure InitGrid(); + procedure Intsub(); + { Private declarations } + public + { Public declarations } + FMainid,FSubId,FConNo,FColor,FCodeName:String; + + end; + +var + frmKHTopList: TfrmKHTopList; + +implementation +uses + U_DataLink,U_Fun; + +{$R *.dfm} + +procedure TfrmKHTopList.FormDestroy(Sender: TObject); +begin + frmKHTopList:=nil; +end; + +procedure TfrmKHTopList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmKHTopList.InitGrid(); +begin + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('exec P_View_KHTop :FYear,:CXState'); + Parameters.ParamByName('FYear').Value:=Trim(FormatDateTime('yyyy',BegDate.Date)); + if cxPageControl1.ActivePageIndex=0 then + begin + Parameters.ParamByName('CXState').Value:=''; + end else + begin + Parameters.ParamByName('CXState').Value:=''; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + MovePanel2.Visible:=False; +end; + +procedure TfrmKHTopList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmKHTopList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('Tv1',Tv1,'ͻ'); + WriteCxGrid('Tv2',Tv2,'ͻ'); + Close; +end; + +procedure TfrmKHTopList.FormShow(Sender: TObject); +begin + BegDate.Date:=SGetServerDate(ADOQueryTemp); + ReadCxGrid('Tv1',Tv1,'ͻ'); + ReadCxGrid('Tv2',Tv2,'ͻ'); +end; + +procedure TfrmKHTopList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmKHTopList.KHNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmKHTopList.cxPageControl1Change(Sender: TObject); +begin + InitGrid(); + Intsub(); +end; + +procedure TfrmKHTopList.Intsub(); +var + i:integer; +begin + if cxPageControl1.ActivePageIndex=0 then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select Convert(varchar(7),CRTime,120) YF,SUM(Money) SumMoney '); + sql.Add(' from YF_Money_CR A'); + sql.Add(' where ISNULL(CRType,'''')=''ӦտǼ'' and isnull(A.YFType,'''')=''Զ'''); + sql.Add(' and A.FactoryName='''+trim(CDS_Main.fieldbyname('KHName').AsString)+''' '); + sql.Add(' and Convert(varchar(4),CRTime,120)='''+Trim(FormatDateTime('yyyy',BegDate.Date))+''''); + SQL.Add(' group by Convert(varchar(7),CRTime,120)'); + Open; + end; + end + else + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select Sum(Money) SumMoney,YF '); + sql.Add(' from (select YF=(case when Month(CRTime)>=1 and Month(CRTime)<4 then ''һ'''); + sql.Add(' when Month(CRTime)>=4 and Month(CRTime)<7 then ''ڶ'''); + sql.Add(' when Month(CRTime)>=7 and Month(CRTime)<10 then '''''); + sql.Add(' when Month(CRTime)>=10 and Month(CRTime)<=12 then ''ļ'' end)'); + sql.Add(',Money'); + sql.Add(' from YF_Money_CR A'); + sql.Add(' where ISNULL(CRType,'''')=''ӦտǼ'' and isnull(A.YFType,'''')=''Զ'''); + sql.Add(' and A.FactoryName='''+trim(CDS_Main.fieldbyname('KHName').AsString)+''' '); + sql.Add(' and Convert(varchar(4),CRTime,120)='''+Trim(FormatDateTime('yyyy',BegDate.Date))+''') AA'); + sql.Add(' group by YF'); + Open; + end; + end; + for i:=0 to DBChart1.SeriesCount-1 do + begin + DBChart1.Series[i].Active:=False; + end; + DBChart1.Series[RadioGroup1.ItemIndex].Active:=True; + DBChart1.Series[RadioGroup1.ItemIndex].DataSource:=nil; + DBChart1.Series[RadioGroup1.ItemIndex].DataSource:=ADOQueryCmd; + DBChart1.Series[RadioGroup1.ItemIndex].XLabelsSource:='YF'; + DBChart1.Series[RadioGroup1.ItemIndex].YValues.ValueSource:='SumMoney'; +end; + +procedure TfrmKHTopList.RadioGroup1Click(Sender: TObject); +begin + Intsub(); +end; + +procedure TfrmKHTopList.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Intsub(); +end; + +procedure TfrmKHTopList.Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Intsub(); +end; + +end. diff --git a/盛纺贸易管理/U_LabelAdd.dfm b/盛纺贸易管理/U_LabelAdd.dfm new file mode 100644 index 0000000..360b2df --- /dev/null +++ b/盛纺贸易管理/U_LabelAdd.dfm @@ -0,0 +1,284 @@ +object frmLabelAdd: TfrmLabelAdd + Left = 231 + Top = 125 + Width = 1282 + Height = 676 + BorderIcons = [biMaximize] + Caption = #26631#31614#32534#36753 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 447 + Height = 604 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label1: TLabel + Left = 43 + Top = 438 + Width = 65 + Height = 13 + Caption = #23458#25143#21517#31216#65306 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 34 + Top = 50 + Width = 65 + Height = 13 + Caption = #26631#31614#25991#20214#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 34 + Top = 78 + Width = 67 + Height = 13 + Caption = #22791' '#27880#65306 + end + object Label9: TLabel + Left = 35 + Top = 17 + Width = 65 + Height = 13 + Caption = #26631#31614#21517#31216#65306 + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 35 + Top = 323 + Width = 65 + Height = 13 + Caption = #26631#31614#31867#22411#65306 + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object customerNo: TBtnEditA + Left = 113 + Top = 433 + Width = 319 + Height = 21 + Enabled = False + ReadOnly = True + TabOrder = 0 + Visible = False + OnBtnClick = customerNoBtnClick + end + object LabelFileName: TBtnEditA + Left = 100 + Top = 45 + Width = 281 + Height = 21 + ReadOnly = True + TabOrder = 1 + OnBtnClick = LabelFileNameBtnClick + end + object beizhu: TMemo + Left = 100 + Top = 75 + Width = 278 + Height = 161 + ScrollBars = ssBoth + TabOrder = 2 + end + object LabelCaption: TEdit + Left = 100 + Top = 13 + Width = 281 + Height = 21 + TabOrder = 3 + end + object LabelType: TFTComboBox + Tag = 99 + Left = 110 + Top = 320 + Width = 281 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + ItemIndex = 0 + TabOrder = 4 + Text = #20013#25991#26631#31614 + Visible = False + Items.Strings = ( + #20013#25991#26631#31614 + #33521#25991#26631#31614 + #20013#33521#25991#26631#31614) + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1266 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 87 + Caption = 'ToolBar2' + Color = clBtnFace + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 1 + Transparent = False + object Tsave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384#26631#31614 + ImageIndex = 14 + OnClick = TsaveClick + end + object Tclose: TToolButton + Left = 91 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TcloseClick + end + end + object RMPreview1: TRMPreview + Left = 447 + Top = 32 + Width = 819 + Height = 604 + Align = alClient + BevelOuter = bvLowered + Caption = #26631#31614#39044#35272 + TabOrder = 2 + OnDblClick = RMPreview1DblClick + Options.RulerUnit = rmutScreenPixels + Options.RulerVisible = False + Options.DrawBorder = False + Options.BorderPen.Color = clGray + Options.BorderPen.Style = psDash + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + CommandTimeout = 300 + Parameters = <> + Left = 492 + Top = 168 + end + object OpenDialog1: TOpenDialog + Filter = 'RMFl(*.rmf)|*.rmf' + InitialDir = '.' + Left = 200 + Top = 4 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + ShowProgress = False + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + Preview = RMPreview1 + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 8 + ReportData = {} + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + CommandTimeout = 300 + Parameters = <> + Left = 503 + Top = 139 + end + object RMGridReportDesigner1: TRMGridReportDesigner + Left = 376 + Top = 8 + end + object RMBarCodeObject1: TRMBarCodeObject + Left = 280 + Top = 4 + end + object RMBMPExport1: TRMBMPExport + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + Left = 408 + Top = 8 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 10 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 440 + Top = 8 + end + object RMDS_Main: TRMDBDataSet + Visible = True + AliasName = #26631#31614#25968#25454 + Left = 498 + Top = 72 + end + object RMDataDictionary1: TRMDataDictionary + FieldFieldNames.TableName = 'TableName' + FieldFieldNames.FieldName = 'FieldName' + FieldFieldNames.FieldAlias = 'FieldAlias' + Left = 502 + Top = 102 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 352 + Top = 480 + end +end diff --git a/盛纺贸易管理/U_LabelAdd.pas b/盛纺贸易管理/U_LabelAdd.pas new file mode 100644 index 0000000..8171396 --- /dev/null +++ b/盛纺贸易管理/U_LabelAdd.pas @@ -0,0 +1,458 @@ +unit U_LabelAdd; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, ExtCtrls, DB, ADODB, + RM_System, RM_Common, RM_Class, RM_GridReport, Buttons, FTComboBox, + RM_Preview, RM_e_Xls, RM_e_Graphic, RM_e_bmp, RM_BarCode, + RM_DsgGridReport, RM_Dataset, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid; + +type + TfrmLabelAdd = class(TForm) + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + customerNo: TBtnEditA; + LabelFileName: TBtnEditA; + beizhu: TMemo; + ToolBar1: TToolBar; + Tsave: TToolButton; + Tclose: TToolButton; + ADOQueryCmd: TADOQuery; + OpenDialog1: TOpenDialog; + RMGridReport1: TRMGridReport; + Label9: TLabel; + LabelCaption: TEdit; + Label10: TLabel; + LabelType: TFTComboBox; + ADOQueryTmp: TADOQuery; + RMPreview1: TRMPreview; + RMGridReportDesigner1: TRMGridReportDesigner; + RMBarCodeObject1: TRMBarCodeObject; + RMBMPExport1: TRMBMPExport; + RMXLSExport1: TRMXLSExport; + RMDS_Main: TRMDBDataSet; + RMDataDictionary1: TRMDataDictionary; + ADOQuery1: TADOQuery; + procedure TcloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TsaveClick(Sender: TObject); + procedure LabelFileNameBtnClick(Sender: TObject); + procedure customerNoBtnClick(Sender: TObject); + procedure BtOpenClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure RMPreview1DblClick(Sender: TObject); + private + fIsChg:Boolean; + fFileName:string; + fpathFileName:string; + function SaveData():Boolean; + function EditData():Boolean; + function PostFileToData():boolean; + // function CovFileDate(Fd:_FileTime):TDateTime; + procedure InitWinData(); + procedure InitVarDictionary(); + procedure InitDataSetDictionary(); + + public + fcustomNo:string; + fKeyNo:string; + fWinStatus:integer; + end; + +var + frmLabelAdd: TfrmLabelAdd; + +implementation +uses + U_DataLink,U_Fun10; +{$R *.dfm} +///////////////////////////////////////////// +function CovFileDate(Fd:_FileTime):TDateTime; +var + Tct:_SystemTime; + Temp:_FileTime; +begin + FileTimeToLocalFileTime(Fd,Temp); + FileTimeToSystemTime(Temp,Tct); + CovFileDate:=SystemTimeToDateTime(Tct); +end; +procedure GetFileInfo(mFile:string;var mfileSize:integer;var CreationTime:tdatetime;var WriteTime:tdatetime); +var + vSearchRec: TSearchRec; +begin + FindFirst(mFile,faAnyFile,vSearchRec); + mfileSize:=vSearchRec.Size; + CreationTime:=CovFileDate(vSearchRec.FindData.ftCreationTime);//ʱ + //vSearchRec.FindData.ftLastAccessTime//ʱ + WriteTime:=CovFileDate(vSearchRec.FindData.ftLastWriteTime);//޸ʱ + FindClose(vSearchRec); +end; +///////////////////////////////////////////////////// + //ύļ +////////////////////////////////////////////////////// +function TfrmLabelAdd.PostFileToData():boolean; +var + mFileName:string; + Stream : TMemoryStream; + mfileSize:integer; + mCreationTime:TdateTime; + mWriteTime:TdateTime; +begin + result:=false; + try + // ADOQueryCmd.Connection.BeginTrans ; + try + with ADOQueryCmd do + begin + close; + sql.Clear ; + sql.Add('delete from RT_FileUpdate'); + sql.Add('where FileName='+quotedStr(trim(fFileName))); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear ; + sql.Add('select * from RT_FileUpdate'); + sql.Add('where FileName='+quotedStr(trim(fFileName))); + Open; + ////////////////////////// + //ȡļϢ + GetFileInfo(fpathFileName,mfileSize,mCreationTime,mWriteTime); + + if RecordCount<=0 then + begin + Append; + fieldByName('FileName').AsString := fFileName; + end + else + begin + edit; + end; + + fieldByName('FileEditDate').Value :=mWriteTime; + fieldByName('FileCreateDate').Value :=mCreationTime; + fieldByName('FileSize').Value :=mfileSize; + fieldByName('Filler').Value :=Dname; + fieldByName('LastEditer').Value :=Dname; + fieldByName('LastEditTime').Value :=DServerDate; + if pos('.rmf',fFileName)>0 then + begin + fieldByName('FilePath').Value :='report'; + fieldByName('FileType').Value :=''; + end + else if pos('.dll',fFileName)>0 then + begin + fieldByName('FilePath').Value :=''; + fieldByName('FileType').Value :='һ'; + end + else + begin + fieldByName('FilePath').Value :=''; + fieldByName('FileType').Value :=''; + end; + // FJStream.LoadFromFile(fpathFileName); + // CompressionStream(FJStream); + //tblobfield(FieldByName('Files')).LoadFromFile(FJStream); + tblobfield(FieldByName('Files')).LoadFromFile(fpathFileName); + //OLEݴݿ + // ADOQueryCmdFileContent.LoadFromFile(fpathFileName); + //ADOQueryCmdFileContent.LoadFromStream(Stream); + + post; + end; + finally + // FJStream.free; + end; + result:=true; + // ADOQueryCmd.Connection.CommitTrans ; + except + // ADOQueryCmd.Connection.RollbackTrans ; + // application.MessageBox(pchar('ύļ['+trim(fFileName)+']ʧ!'),'ʾϢ',MB_ICONERROR); + end; + +end; + +procedure TfrmLabelAdd.TcloseClick(Sender: TObject); +begin + if fIsChg then + begin + if application.MessageBox('ǩƹǷҪ?','ʾϢ',1)=1 then + begin + Tsave.Click ; + end + else + close; + end + else + close; +end; + +procedure TfrmLabelAdd.FormCreate(Sender: TObject); +begin + fIsChg:=false; +end; + +procedure TfrmLabelAdd.TsaveClick(Sender: TObject); +begin + if trim(labelCaption.Text)='' then + begin + application.MessageBox('ǩƲΪգ','ʾ'); + labelCaption.SetFocus; + exit; + end; + if trim(LabelFileName.Text)='' then + begin + application.MessageBox('ǩļΪգѡǩ','ʾ'); + LabelFileName.SetFocus; + exit; + end; + fpathFileName:= trim(LabelFileName.Text); + fFileName:=ExtractFileName(fpathFileName); + if fWinStatus=0 then + begin + if SaveData() then + begin + ModalResult:=1; + end; + end + else + begin + if EditData() then + begin + ModalResult:=1; + end; + end; +end; +///////////////////////////////////////////////////////////////////// + //ܣ +///////////////////////////////////////////////////////////////////// +function TfrmLabelAdd.SaveData():Boolean; +begin + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from P_Label'); + sql.Add('where 1<>1'); + Open; + + Append; + fieldByName('CustomerNO').value:=trim(customerno.txtCode); + fieldByName('filler').value:=DName; + fieldByName('filltime').value:=DServerDate; + fieldByName('beizhu').value:= trim(beizhu.text); + + fieldByName('LabelCaption').value:=trim(LabelCaption.text); + fieldByName('LabelType').value:=trim(LabelType.text); + fieldByName('LabelFileName').value:= trim(LabelFileName.text); + //TBlobField(FieldByName('LabelFile')).LoadFromStream(fStream); + RMGridReport1.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); + Post; + end; + + if not postFileToData() then + begin + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ǩģ!','Ϣ',0); + exit; + end; + result:=true; + ADOQueryCmd.Connection.CommitTrans; + except + Result:=false; + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ǩģ!','Ϣ',0); + end; +end; + +///////////////////////////////////////////////////////////////////// + //ܣ +///////////////////////////////////////////////////////////////////// +function TfrmLabelAdd.EditData():Boolean; +begin + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from P_Label'); + sql.Add('where labelId='+fkeyNo); + Open; + Edit; + fieldByName('LabelCaption').value:=trim(LabelCaption.text); + fieldByName('LabelType').value:=trim(LabelType.text); + fieldByName('LabelFileName').value:= trim(LabelFileName.text); + RMGridReport1.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); + fieldByName('Editer').value:=DName; + fieldByName('EditTime').value:=DServerDate; + fieldByName('beizhu').value:= trim(beizhu.text); + Post; + end; + if not postFileToData() then + begin + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ǩģ!','Ϣ',0); + exit; + end; + ADOQueryCmd.Connection.CommitTrans; + result:=true; + except + Result:=false; + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ǩģ!','Ϣ',0); + end; +end; + +procedure TfrmLabelAdd.LabelFileNameBtnClick(Sender: TObject); +begin + if OpenDialog1.Execute() then + begin + LabelFileName.Text:=OpenDialog1.FileName; + RMGridReport1.LoadFromFile(LabelFileName.Text); + RMGridReport1.Preview :=RMPreview1; + RMGridReport1.ShowReport ; + end; +end; + +procedure TfrmLabelAdd.customerNoBtnClick(Sender: TObject); +begin + { + FormGetCust:=TFormGetCust.Create(self); + + if FormGetCust.ShowModal=mrok then + begin + customNo.TxtCode:=trim(FormGetCust.ADOQuery1.Fieldbyname('customno').AsString); + customNo.Text:=trim(FormGetCust.ADOQuery1.Fieldbyname('shortname').AsString); + end; + FormGetCust.Free; + } +{ frmCustHelp:=TfrmCustHelp.create(self); + with frmCustHelp do + begin + if showModal=1 then + begin + customNo.TxtCode:=trim(ADOQueryHelp.Fieldbyname('customno').AsString); + customNo.Text:=trim(ADOQueryHelp.Fieldbyname('shortname').AsString); + end; + free; + end; } +end; + +procedure TfrmLabelAdd.BtOpenClick(Sender: TObject); +begin + + +end; +//////////////////////////////////////////////////////////// + //ʼ +//////////////////////////////////////////////////////////// +procedure TfrmLabelAdd.InitWinData(); +begin + try + with ADOQueryTmp do + begin + close; + sql.Clear ; + sql.Add('select A.*'); + sql.Add('from P_Label A'); + sql.Add('WHERE LabelId='+fkeyNo); + Open; + if isEmpty then + begin + close; + exit; + end; + + SSetWinData(ADOQueryTmp,panel1); + RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile'))); + //RMGridReport2.FileName:=trim(fieldByName('labelFileName').AsString); + //RMGridReport2.LoadFromBlobField(tblobfield(fieldbyname('labelFile'))); + RMGridReport1.Preview :=RMPreview1; + RMGridReport1.ShowReport ; + RMPreview1.Refresh; + end; + except + end; +end; + +procedure TfrmLabelAdd.FormShow(Sender: TObject); +begin + if fWinStatus>0 then + InitWinData(); + RMPreview1.Align:=alClient; +end; + +procedure TfrmLabelAdd.RMPreview1DblClick(Sender: TObject); +begin + //btOpen.Click ; +end; +//////////////////////////////////////////////////////////// + // +//////////////////////////////////////////////////////////// +procedure TfrmLabelAdd.InitVarDictionary(); +var + i:integer; +begin +{ try + with RMGridReport2 do + begin + Dictionary.Variables.Clear ; + Dictionary.Variables.AddCategory('ͻλϢ'); + with ADOQueryTmp do + begin + close; + sql.clear; + sql.Add('exec P_Label_CustPrintData'); + sql.Add(quotedStr(fCustomNo)); + Open; + for i:=0 to FieldCount-1 do + begin + + Dictionary.Variables.Add(trim(fields[i].FieldName) + ,''); + Dictionary.Variables.AsString[trim(fields[i].FieldName)]:=trim(fields[i].AsString); + end; + end; + end; + finally + + end; } +end; +///////////////////////////////////////////////// + // +///////////////////////////////////////////////// +procedure TfrmLabelAdd.InitDataSetDictionary(); +begin +{ with ADOQuery1 do + begin + close; + sql.Clear ; + sql.Add('exec P_Label_PrintSet'); + sql.Add(quotedStr('')); + //sql.Add(','+quotedStr('')); + //sql.Add(','+quotedStr('')); + //sql.Add(','+quotedStr('')); + //sql.Add(','+quotedStr('')); + OPen; + end; + with RMGridReport2 do + begin + Dictionary.FieldAliases.Clear; + Dictionary.FieldAliases['RMDS_Main']:= 'ǩ'; + Dictionary.FieldAliases['RMDS_Main."barcode"']:='ǩ'; + end; } +end; + +end. diff --git a/盛纺贸易管理/U_LabelPrint.dfm b/盛纺贸易管理/U_LabelPrint.dfm new file mode 100644 index 0000000..517e74c --- /dev/null +++ b/盛纺贸易管理/U_LabelPrint.dfm @@ -0,0 +1,122 @@ +object frmLabelPrint: TfrmLabelPrint + Left = 345 + Top = 212 + BorderIcons = [biSystemMenu] + BorderStyle = bsDialog + Caption = #26631#31614#25171#21360 + ClientHeight = 166 + ClientWidth = 271 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 12 + object Button1: TButton + Left = 72 + Top = 80 + Width = 73 + Height = 25 + Caption = #25171#21360 + TabOrder = 0 + OnClick = Button1Click + end + object Panel1: TPanel + Left = 32 + Top = 24 + Width = 193 + Height = 41 + BevelOuter = bvLowered + Caption = #27491#22312#21152#36733#25171#21360#20449#24687'...' + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + object ADOQueryMain: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + CommandTimeout = 300 + Parameters = <> + Left = 144 + Top = 24 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 192 + Top = 24 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 10 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 160 + Top = 120 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + ShowProgress = False + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDS_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 184 + Top = 72 + ReportData = {} + end + object RMBarCodeObject1: TRMBarCodeObject + Left = 128 + Top = 68 + end + object RMBMPExport1: TRMBMPExport + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + Left = 80 + Top = 120 + end + object RMDS_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryMain + Left = 170 + end + object ADOQueryTmp: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + Parameters = <> + Left = 56 + Top = 80 + end + object ADOQueryCust: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + CommandTimeout = 300 + Parameters = <> + Left = 152 + Top = 88 + end +end diff --git a/盛纺贸易管理/U_LabelPrint.pas b/盛纺贸易管理/U_LabelPrint.pas new file mode 100644 index 0000000..6f531f7 --- /dev/null +++ b/盛纺贸易管理/U_LabelPrint.pas @@ -0,0 +1,143 @@ +unit U_LabelPrint; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, ADODB, RM_e_Graphic, RM_e_bmp, RM_BarCode, RM_System, + RM_Common, RM_Class, RM_GridReport, RM_e_Xls, RM_Dataset, StdCtrls, + ExtCtrls; + +type + TfrmLabelPrint = class(TForm) + ADOQueryMain: TADOQuery; + ADOConnection1: TADOConnection; + RMXLSExport1: TRMXLSExport; + RMGridReport1: TRMGridReport; + RMBarCodeObject1: TRMBarCodeObject; + RMBMPExport1: TRMBMPExport; + RMDS_Main: TRMDBDataSet; + ADOQueryTmp: TADOQuery; + Button1: TButton; + ADOQueryCust: TADOQuery; + Panel1: TPanel; + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + private + procedure InitDataSetDictionary(); +// procedure InitVarDictionary(); + procedure OpenLabel(); + public + fLabelId:string; //ǩ¼Id; + fKeyNo:string; // + fCustomNo:string; //ͻ + fLabelCopys:integer; //ӡ + fIsPreviewPrint:Boolean; + FFCDFlag:String; + procedure DoPrintLabel(); + end; + +var + frmLabelPrint: TfrmLabelPrint; + +implementation +uses + U_DataLink; +{$R *.dfm} +//////////////////////////////////////////////////////////////////// + //ӡǩ +//////////////////////////////////////////////////////////////////// +procedure TfrmLabelPrint.DoPrintLabel(); +begin + InitDataSetDictionary(); + OpenLabel(); +end; + +procedure TfrmLabelPrint.FormCreate(Sender: TObject); +begin + try + with ADOConnection1 do + begin + Connected:=false; + ConnectionString:=DConString; + Connected:=true; + end; + Except + application.MessageBox('ݿʧܣ','',mb_Ok+ MB_ICONERROR); + end; +end; +///////////////////////////////////////////////// + //ܣرǩ +///////////////////////////////////////////////// +procedure TfrmLabelPrint.InitDataSetDictionary(); +begin + try + with ADOQueryMain do + begin + close; + sql.Clear ; + sql.Add('select RTrim(AA.XJID) XJID,RTrim(Cast(AA.XJSJKZ as varchar(20))) XJSJKZ,RTrim(cast(Cast(AA.XJFK*10 as int) as varchar(20))) XJFK,RTrim(B.OrderNo)+'''+Trim(FFCDFlag)+''' OrderNo'); + sql.Add(',Rtrim(C.SWFBColor) SWFBColor, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + sql.Add(',Rtrim(Cast(AA.XJlen as varchar(20))) XJlen,Rtrim(Cast(AA.XJMaoZ as varchar(20))) XJMaoZ'); + sql.Add(',Rtrim(Cast(AA.XJFree as varchar(20))) XJFree,Rtrim(Cast( Cast(AA.XJlen*AA.XJFK/100 as int) as varchar(20))) XJPFM'); + sql.Add(',Rtrim(Cast(Cast(C.SWFBKZ as int) as varchar(20))) SWFBKZ'); + sql.Add(',Rtrim(Cast(Cast(AA.XJJt as int) as varchar(20))) XJJt'); + sql.Add(',RTrim(B.LbEngName) LbEngName'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_XJJY AA '); + sql.add(' inner join WFB_MJJY A on AA.MJID=A.MJID') ; + sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where AA.XJID='''+Trim(fKeyNo)+''''); + OPen; + end; + with RMGridReport1 do + begin + Dictionary.FieldAliases.Clear; + Dictionary.FieldAliases['RMDS_Main']:= 'ǩ'; + // Dictionary.FieldAliases['RMDS_Main."BarCodeNo"']:='ǩ'; + end; + except + application.MessageBox('رǩʱ!','Ϣ',0); + end; +end; +////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////// +procedure TfrmLabelPrint.OpenLabel(); +begin + with ADOQueryTmp do + begin + close; + sql.Clear ; + sql.Add('select labelfile from P_Label A'); + sql.Add('where labelId='''+fLabelId+''''); + Open; + if fieldbyname('labelFile').IsNull then + begin + application.MessageBox('δҵҪӡıǩϢ¼!','ʾϢ',0); + self.Close ; + exit; + end; + RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile'))); + // InitVarDictionary(); + //fIsPreviewPrint:=true; + if fIsPreviewPrint then + RMGridReport1.ShowReport + else + RMGridReport1.PrintReport ; + close; + end; + +end; +procedure TfrmLabelPrint.Button1Click(Sender: TObject); +begin + DoPrintLabel(); +end; + +procedure TfrmLabelPrint.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +end. diff --git a/盛纺贸易管理/U_MJEdit.dfm b/盛纺贸易管理/U_MJEdit.dfm new file mode 100644 index 0000000..59885d9 --- /dev/null +++ b/盛纺贸易管理/U_MJEdit.dfm @@ -0,0 +1,511 @@ +object frmMJEdit: TfrmMJEdit + Left = 191 + Top = 136 + Width = 1147 + Height = 688 + Caption = #24067#21305#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1131 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton3: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 58 + OnClick = ToolButton2Click + end + object ToolButton4: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20316#24223 + ImageIndex = 48 + OnClick = ToolButton4Click + end + object TBQPrint: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #26631#31614#25171#21360 + ImageIndex = 12 + OnClick = TBQPrintClick + end + object TBClose: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 30 + Width = 1131 + Height = 74 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 52 + Height = 12 + Caption = #24067#21305#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 33 + Top = 48 + Width = 7 + Height = 12 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label4: TLabel + Left = 459 + Top = 20 + Width = 24 + Height = 12 + Caption = #27611#37325 + end + object M: TLabel + Left = 428 + Top = 20 + Width = 6 + Height = 12 + Caption = 'M' + OnDblClick = MDblClick + end + object Label6: TLabel + Left = 343 + Top = 20 + Width = 24 + Height = 12 + Caption = #38271#24230 + end + object Ma: TLabel + Left = 296 + Top = 100 + Width = 6 + Height = 12 + Caption = 'M' + end + object Label7: TLabel + Left = 211 + Top = 100 + Width = 24 + Height = 12 + Caption = #21407#30721 + end + object Label5: TLabel + Left = 332 + Top = 104 + Width = 6 + Height = 12 + Caption = 'M' + end + object Label8: TLabel + Left = 563 + Top = 20 + Width = 24 + Height = 12 + Caption = #24133#23485 + end + object Label9: TLabel + Left = 644 + Top = 20 + Width = 12 + Height = 12 + Caption = 'cm' + end + object Label10: TLabel + Left = 540 + Top = 20 + Width = 12 + Height = 12 + Caption = 'Kg' + end + object Label3: TLabel + Left = 563 + Top = 44 + Width = 24 + Height = 12 + Caption = #20811#37325 + end + object Label11: TLabel + Left = 644 + Top = 44 + Width = 24 + Height = 12 + Caption = 'g/'#13217 + end + object Label13: TLabel + Left = 343 + Top = 44 + Width = 24 + Height = 12 + Caption = #36192#36865 + end + object Label12: TLabel + Left = 459 + Top = 44 + Width = 24 + Height = 12 + Caption = #20928#37325 + end + object Label14: TLabel + Left = 540 + Top = 44 + Width = 12 + Height = 12 + Caption = 'Kg' + end + object Label15: TLabel + Left = 231 + Top = 20 + Width = 24 + Height = 12 + Caption = #21367#21495 + end + object Label16: TLabel + Left = 231 + Top = 44 + Width = 24 + Height = 12 + Caption = #32568#21495 + end + object Label17: TLabel + Left = 25 + Top = 48 + Width = 52 + Height = 12 + Caption = #25171#21360#20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MJID: TEdit + Left = 80 + Top = 10 + Width = 110 + Height = 25 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object MJMaoZ: TEdit + Left = 484 + Top = 16 + Width = 54 + Height = 20 + TabOrder = 1 + end + object MJLen: TEdit + Left = 368 + Top = 16 + Width = 54 + Height = 20 + TabOrder = 2 + end + object RadioGroup1: TRadioGroup + Left = 680 + Top = 3 + Width = 153 + Height = 58 + Columns = 3 + ItemIndex = 0 + Items.Strings = ( + #27491#21697 + #27425#21697) + TabOrder = 3 + end + object MJQty1: TEdit + Left = 236 + Top = 100 + Width = 54 + Height = 20 + TabOrder = 4 + end + object MJFK: TEdit + Left = 588 + Top = 16 + Width = 54 + Height = 20 + TabOrder = 5 + end + object MJSJKZ: TEdit + Left = 588 + Top = 40 + Width = 54 + Height = 20 + TabOrder = 6 + end + object MJQty2: TEdit + Left = 368 + Top = 40 + Width = 54 + Height = 20 + TabOrder = 7 + end + object MJQty4: TEdit + Left = 484 + Top = 40 + Width = 54 + Height = 20 + TabOrder = 8 + end + object MJXH: TEdit + Left = 256 + Top = 16 + Width = 54 + Height = 20 + TabOrder = 9 + end + object MJStr4: TEdit + Left = 256 + Top = 40 + Width = 54 + Height = 20 + TabOrder = 10 + end + object FS: TComboBox + Left = 80 + Top = 42 + Width = 112 + Height = 23 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 15 + ItemIndex = 0 + ParentFont = False + TabOrder = 11 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 104 + Width = 1131 + Height = 545 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.TextSHuangSe + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'CDName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = tv2CDTypePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_TradeManage.Default + Width = 144 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20010#25968 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = tv2CDWZPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_TradeManage.Default + Width = 96 + end + object v2Column2: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'CDend' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.Default + Width = 93 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_TradeManage.Default + Width = 93 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #36127#36131#20154 + DataBinding.FieldName = 'CDReason' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 131 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 832 + Top = 72 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 200 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 832 + Top = 40 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 528 + Top = 200 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 200 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 327 + Top = 230 + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 541 + Top = 160 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 397 + Top = 244 + ReportData = {} + end +end diff --git a/盛纺贸易管理/U_MJEdit.pas b/盛纺贸易管理/U_MJEdit.pas new file mode 100644 index 0000000..17acfb2 --- /dev/null +++ b/盛纺贸易管理/U_MJEdit.pas @@ -0,0 +1,814 @@ +unit U_MJEdit; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + StrUtils, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, DBClient, ADODB, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, + cxButtonEdit, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, + dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, + dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmMJEdit = class(TForm) + ToolBar1: TToolBar; + ToolButton2: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + MJID: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOTmp: TADOQuery; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + ToolButton1: TToolButton; + ToolButton3: TToolButton; + Label2: TLabel; + MJMaoZ: TEdit; + Label4: TLabel; + M: TLabel; + Label6: TLabel; + MJLen: TEdit; + RadioGroup1: TRadioGroup; + Ma: TLabel; + Label7: TLabel; + MJQty1: TEdit; + Label5: TLabel; + Label8: TLabel; + MJFK: TEdit; + Label9: TLabel; + Label10: TLabel; + Label3: TLabel; + Label11: TLabel; + MJSJKZ: TEdit; + ToolButton4: TToolButton; + Label13: TLabel; + MJQty2: TEdit; + Label12: TLabel; + Label14: TLabel; + MJQty4: TEdit; + MJXH: TEdit; + Label15: TLabel; + Label16: TLabel; + MJStr4: TEdit; + TBQPrint: TToolButton; + ADOQueryPrint: TADOQuery; + RMDBMain: TRMDBDataSet; + RM2: TRMGridReport; + Label17: TLabel; + FS: TComboBox; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure tv2CDTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + procedure tv2CDWZPropertiesEditValueChanged(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure MDblClick(Sender: TObject); + procedure TBQPrintClick(Sender: TObject); + private + { Private declarations } + function SaveData(): Boolean; + public + FStyleNo, FOrderUnit, FHX, FSE: string; + { Public declarations } + end; + +var + frmMJEdit: TfrmMJEdit; + +implementation + +uses + U_Fun, U_ZDYHelp, U_DataLink; + +{$R *.dfm} + +procedure TfrmMJEdit.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmMJEdit.FormDestroy(Sender: TObject); +begin + frmMJEdit := nil; +end; + +procedure TfrmMJEdit.MJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select A.* from WFB_MJJY A'); + sql.Add(' where A.MJID=''' + Trim(MJID.Text) + ''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + MJID.Text := ''; + Label2.Caption := ''; + Label2.Visible := False; + Application.MessageBox('!', 'ʾ', 0); + Exit; + end; + MJXH.Text := Trim(ADOTmp.fieldbyname('MJXH').AsString); + MJstr4.Text := Trim(ADOTmp.fieldbyname('MJstr4').AsString); + MJMaoZ.Text := Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); + MJLen.Text := Trim(ADOTmp.fieldbyname('MJLen').AsString); + MJQty1.Text := Trim(ADOTmp.fieldbyname('MJQty1').AsString); + MJQty2.Text := Trim(ADOTmp.fieldbyname('MJQty2').AsString); + MJQty4.Text := Trim(ADOTmp.fieldbyname('MJQty4').AsString); + MJFK.Text := Trim(ADOTmp.fieldbyname('MJFK').AsString); + MJSJKZ.Text := Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); + M.Caption := Trim(Trim(ADOTmp.fieldbyname('MJTypeOther').AsString)); + Ma.Caption := Trim(Trim(ADOTmp.fieldbyname('MJStr1').AsString)); + { if Trim(m.Caption)='' then + begin + m.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString); + end; + if Trim(Ma.Caption)='' then + begin + Ma.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); + end; } + if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = 'Ʒ' then + begin + RadioGroup1.ItemIndex := 0 + end + else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = 'Ʒ' then + begin + RadioGroup1.ItemIndex := 1; + end + else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = '' then + begin + RadioGroup1.ItemIndex := 2; + end; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY_CD A where A.MJID=''' + Trim(MJID.Text) + ''''); + Open; + end; + Label2.Caption := Trim(MJID.Text); + Label2.Visible := True; + MJID.Text := ''; + SCreateCDS20(ADOTmp, Order_MJ); + SInitCDSData20(ADOTmp, Order_MJ); + TBQPrint.Click; + end; +end; + +procedure TfrmMJEdit.tv2CDTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp := TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag := 'WFBCD'; + flagname := 'õ'; + if ShowModal = 1 then + begin + Self.Order_MJ.Edit; + Self.Order_MJ.FieldByName('CDName').value := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJEdit.tv2CDWZPropertiesEditValueChanged(Sender: TObject); +var + mvalue, CDBeg, CDEnd: string; + FFReal: Double; +begin + mvalue := TcxTextEdit(Sender).EditingText; + with Order_MJ do + begin + Edit; + FieldByName('CDBeg').Value := mvalue; + Post; + end; + CDBeg := Trim(Order_MJ.fieldbyname('CDBeg').AsString); + CDEnd := Trim(Order_MJ.fieldbyname('CDEnd').AsString); + if (Trim(CDBeg) <> '') and (Trim(CDEnd) <> '') then + begin + if TryStrToFloat(CDBeg, FFReal) and TryStrToFloat(CDBeg, FFReal) then + begin + if StrToFloat(CDEnd) < StrToFloat(CDBeg) then + begin + Application.MessageBox('ֹλСʼλ!', 'ʾ', 0); + Exit; + end; + with Order_MJ do + begin + Edit; + FieldByName('CDQty').Value := StrToFloat(CDEnd) - StrToFloat(CDBeg); + Post; + end; + end + else + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end; +end; + +procedure TfrmMJEdit.v2Column2PropertiesEditValueChanged(Sender: TObject); +var + mvalue, CDBeg, CDEnd: string; + FFReal: Double; +begin + mvalue := TcxTextEdit(Sender).EditingText; + with Order_MJ do + begin + Edit; + FieldByName('CDEnd').Value := mvalue; + Post; + end; + CDBeg := Trim(Order_MJ.fieldbyname('CDBeg').AsString); + CDEnd := Trim(Order_MJ.fieldbyname('CDEnd').AsString); + if (Trim(CDBeg) <> '') and (Trim(CDEnd) <> '') then + begin + if TryStrToFloat(CDBeg, FFReal) and TryStrToFloat(CDBeg, FFReal) then + begin + if StrToFloat(CDEnd) < StrToFloat(CDBeg) then + begin + Application.MessageBox('ֹλСʼλ!', 'ʾ', 0); + Exit; + end; + with Order_MJ do + begin + Edit; + FieldByName('CDQty').Value := StrToFloat(CDEnd) - StrToFloat(CDBeg); + Post; + end; + end + else + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end; +end; + +procedure TfrmMJEdit.ToolButton1Click(Sender: TObject); +begin + if Trim(Label2.Caption) = '' then + Exit; + Order_MJ.Append; + Order_MJ.Post; +end; + +procedure TfrmMJEdit.ToolButton3Click(Sender: TObject); +begin + if Trim(Label2.Caption) = '' then + Exit; + if Order_MJ.IsEmpty then + Exit; + if Trim(Order_MJ.fieldbyname('MCID').AsString) <> '' then + begin + if Application.MessageBox('ȷҪɾ', 'ʾ', 32 + 4) <> IDYES then + Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_MJJY_CD where MCID=''' + Trim(Order_MJ.fieldbyname('MCID').AsString) + ''''); + ExecSQL; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('update WFB_MJJY SET ZCDName=dbo.F_Get_Order_SubStr(MJID,''QDHZ'')'); + sql.Add(' where MJID=''' + Trim(Order_MJ.fieldbyname('MJID').AsString) + ''''); + execsql; + end; + end; + Order_MJ.Delete; +end; + +function TfrmMJEdit.SaveData(): Boolean; +var + maxno: string; + FFreal: Double; + FKHZ, FKHY, FCD, FMZ, FTM: string; +begin + try + ADOCmd.Connection.BeginTrans; + ///õ + with Order_MJ do + begin + First; + while not Eof do + begin + if Trim(Order_MJ.fieldbyname('MCID').AsString) = '' then + begin + if GetLSNo(ADOTmp, maxno, 'MC', 'WFB_MJJY_CD', 5, 1) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ', 'ʾ', 0); + Exit; + end; + end + else + begin + maxno := Trim(Order_MJ.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID=''' + Trim(maxno) + ''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_MJ.fieldbyname('MCID').AsString) = '' then + Append + else + Edit; + FieldByName('MJId').Value := Trim(Label2.Caption); + FieldByName('MCID').Value := Trim(maxno); + SSetSaveDataCDSNew(ADOCmd, Tv2, Order_MJ, 'WFB_MJJY_CD', 0); + if trim(Order_MJ.fieldbyname('CDName').AsString) = '' then + FieldByName('koufenQty').Value := 0 + else + FieldByName('koufenQty').Value := Order_MJ.fieldbyname('koufenQty').AsFloat; + Post; + end; + Order_MJ.Edit; + Order_MJ.FieldByName('MCID').Value := Trim(maxno); + Order_MJ.FieldByName('MJID').Value := Trim(Label2.Caption); + Next; + end; + end; + if Trim(MJMaoZ.Text) <> '' then + begin + if TryStrToFloat(MJMaoZ.Text, FFreal) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJLen.Text) <> '' then + begin + if TryStrToFloat(MJLen.Text, FFreal) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȷǷ!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJSJKZ.Text) <> '' then + begin + if TryStrToFloat(MJSJKZ.Text, FFreal) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('طǷ!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJQty2.Text) <> '' then + begin + if TryStrToFloat(MJQty2.Text, FFreal) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJQty4.Text) <> '' then + begin + if TryStrToFloat(MJQty4.Text, FFreal) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('طǷ!', 'ʾ', 0); + Exit; + end; + end; + FKHZ := Copy(Trim(FStyleNo), 1, 3); + FKHY := Copy(Trim(FStyleNo), 5, 7); + if (FOrderUnit <> 'KG') and (FOrderUnit <> 'Kg') and (FOrderUnit <> 'kg') then + begin + if Pos('.', Trim(MJLen.Text)) = 0 then + begin + if Length(Trim(MJLen.Text)) = 1 then + FCD := '0' + Trim(MJLen.Text) + '0000'; + end + else + begin + if Length(Copy(Trim(MJLen.Text), 1, Pos('.', Trim(MJLen.Text)) - 1)) = 1 then + FCD := '0' + MJLen.Text + '0000'; + FCD := Copy(Trim(FCD), 1, Pos('.', Trim(FCD)) - 1) + Copy(Trim(FCD), Pos('.', Trim(FCD)) + 1, 3); + end; + end + else + begin + if Pos('.', Trim(MJMaoz.Text)) = 0 then + begin + if Length(Trim(MJMaoz.Text)) = 1 then + FCD := '0' + Trim(MJMaoz.Text) + '0000'; + end + else + begin + if Length(Copy(Trim(MJMaoz.Text), 1, Pos('.', Trim(MJMaoz.Text)) - 1)) = 1 then + FCD := '0' + MJMaoz.Text + '0000'; + FCD := Copy(Trim(FCD), 1, Pos('.', Trim(FCD)) - 1) + Copy(Trim(FCD), Pos('.', Trim(FCD)) + 1, 3); + end; + end; + FCD := Copy(Trim(FCD), 1, 4); + FMZ := '0000' + trim(MJXH.Text); + FMZ := Copy(Trim(FMZ), Length(FMZ) - 3, Length(FMZ)); + FTM := trim(FKHZ) + trim(FKHY) + copy(Trim(FHX) + Trim(FSE), 1, 3) + '0' + trim(FCD) + trim(MJStr4.Text) + trim(FMZ); + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFB_MJJY Set MJTypeOther=''' + Trim(M.Caption) + ''''); + SQL.Add(',TM=''' + Trim(FTM) + ''''); + SQL.Add(',MZ=''' + Trim(FMZ) + ''''); + sql.Add(',MJStr1=''' + Trim(Ma.Caption) + ''''); + sql.Add(',MJStr4=''' + Trim(MJStr4.Text) + ''''); + sql.Add(',MJXH=''' + Trim(MJXH.Text) + ''''); + sql.add(',ZCDName=dbo.F_Get_Order_SubStr(MJID,''QDHZ'')'); + if Trim(MJLen.Text) <> '' then + begin + sql.Add(',MJLen=' + Trim(MJLen.Text)); + end + else + begin + sql.Add(',MJLen=0'); + end; + if Trim(MJQty1.Text) <> '' then + begin + sql.Add(',MJQty1=' + Trim(MJQty1.Text)); + end + else + begin + sql.Add(',MJQty1=0'); + end; + if Trim(MJQty2.Text) <> '' then + begin + sql.Add(',MJQty2=' + Trim(MJQty2.Text)); + end + else + begin + sql.Add(',MJQty2=0'); + end; + if Trim(MJFK.Text) <> '' then + begin + sql.Add(',MJFK=' + Trim(MJFK.Text)); + end + else + begin + sql.Add(',MJFK=0'); + end; + if Trim(MJMaoZ.Text) <> '' then + begin + sql.Add(',MJMaoZ=' + Trim(MJMaoZ.Text)); + end + else + begin + sql.Add(',MJMaoZ=0'); + end; + if Trim(MJSJKZ.Text) <> '' then + begin + sql.Add(',MJSJKZ=' + Trim(MJSJKZ.Text)); + end + else + begin + sql.Add(',MJSJKZ=0'); + end; + if Trim(MJQty4.Text) <> '' then + begin + sql.Add(',MJQty4=' + Trim(MJQty4.Text)); + end + else + begin + sql.Add(',MJQty4=0'); + end; + if RadioGroup1.ItemIndex = 0 then + begin + sql.Add(',MJType=''Ʒ'' '); + end + else if RadioGroup1.ItemIndex = 1 then + begin + sql.Add(',MJType=''Ʒ'' '); + end + else if RadioGroup1.ItemIndex = 2 then + begin + sql.Add(',MJType=''ƴ'' '); + end; + sql.Add(' where MJID=''' + Trim(Label2.Caption) + ''''); + + sql.Add('UPdate CK_BanCP_KC Set KCQtyUnit=''' + Trim(M.Caption) + ''''); + if Trim(MJLen.Text) <> '' then + begin + sql.Add(',KCQty=' + Trim(MJLen.Text)); + end + else + begin + sql.Add(',KCQty=0'); + end; + if Trim(MJMaoZ.Text) <> '' then + begin + sql.Add(',KCKGQty=' + Trim(MJMaoZ.Text)); + end + else + begin + sql.Add(',KCKGQty=0'); + end; + sql.Add(' where MJID=''' + Trim(Label2.Caption) + ''' and KCQty>0'); + ExecSQL; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate CK_BanCP_CR Set QtyUnit=''' + Trim(M.Caption) + ''''); + sql.Add(',AOrdDefStr1=''' + Trim(MJStr4.Text) + ''''); + if Trim(MJLen.Text) <> '' then + begin + sql.Add(',Qty=' + Trim(MJLen.Text)); + end + else + begin + sql.Add(',Qty=0'); + end; + if Trim(MJMaoZ.Text) <> '' then + begin + sql.Add(',KGQty=' + Trim(MJMaoZ.Text)); + end + else + begin + sql.Add(',KGQty=0'); + end; + if Trim(MJQty4.Text) <> '' then + begin + sql.Add(',MJQty4=' + Trim(MJQty4.Text)); + end + else + begin + sql.Add(',MJQty4=0'); + end; + if RadioGroup1.ItemIndex = 0 then + begin + sql.Add(',CPType=''Ʒ'' '); + end + else if RadioGroup1.ItemIndex = 1 then + begin + sql.Add(',CPType=''Ʒ'' '); + end + else if RadioGroup1.ItemIndex = 2 then + begin + sql.Add(',MJType=''ƴ'' '); + end; + sql.Add(' where MJID=''' + Trim(Label2.Caption) + ''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + Result := True; + except + Result := False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ', 'ʾ', 0); + end; +end; + +procedure TfrmMJEdit.ToolButton2Click(Sender: TObject); +begin + if Trim(Label2.Caption) = '' then + Exit; + if SaveData() then + begin + Application.MessageBox('ɹ!', 'ʾ', 0); + Exit; + end; +end; + +procedure TfrmMJEdit.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ƥ', Tv2, 'Ⱦ'); +end; + +procedure TfrmMJEdit.FormShow(Sender: TObject); +begin + ReadCxGrid('ƥ', Tv2, 'Ⱦ'); +end; + +procedure TfrmMJEdit.ToolButton4Click(Sender: TObject); +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID=''' + Trim(Label2.Caption) + ''''); + sql.Add(' and CRFlag='''''); + Open; + end; + if ADOTmp.IsEmpty = False then + begin + Application.MessageBox('Ѳݲɾ!', 'ʾ', 0); + Exit; + end + else + begin + if Application.MessageBox('ȷҪϺݲָܻ', 'ʾ', 32 + 4) = IDYES then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_MJJY where MJID=''' + Trim(Label2.Caption) + ''' '); + sql.Add('delete WFB_MJJY_CD where MJID=''' + Trim(Label2.Caption) + ''' '); + sql.Add('delete CK_BanCP_CR where MJID=''' + Trim(Label2.Caption) + ''' '); + sql.Add('delete CK_BanCP_KC where MJID=''' + Trim(Label2.Caption) + ''' '); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' ' + quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(',' + quotedstr(trim(self.Caption))); + sql.Add(',' + quotedstr(trim('ɾ'))); + sql.Add(',' + quotedstr(trim(':' + trim(MJID.text)))); + sql.Add(',' + quotedstr(trim('ɹ'))); + sql.Add(')'); + ExecSQL; + end; + Label2.Caption := ''; + end; + end; +end; + +procedure TfrmMJEdit.MDblClick(Sender: TObject); +begin + if trim(M.Caption) = 'M' then + M.Caption := 'Y' + else + M.Caption := 'M'; +end; + +procedure TfrmMJEdit.TBQPrintClick(Sender: TObject); +var +// fPrintFile: string; +// Txt, fImagePath: string; +// Moudle: THandle; +// Makebar: TMakebar; +// Mixtext: TMixtext; + fPrintFile, fPrintFile1, fPrintFile2: string; + Txt, fImagePath, fImagePath1, fImagePath2, Txt4, fImagePath4: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,G.ConNo,GangNo=A.MJStr4,A.MJStr4,isnull(C.styleNo,F.StyleNo) StyleNo,G.KHConNo,G.ConLBName,G.ConNLBName'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.Filltime ZDDate,B.FBQName '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,isnull(C.PRTColorEng,F.SOrdDefStr4) OrdPRTColorEng,F.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,D.PiQty '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.add(' ,substring(G.ConNo,LEN(G.ConNO)-3,LEN(G.ConNO)) HS,F.XHNo'); + sql.Add(',TLen=cast(MJLen as varchar(10))'); + sql.Add(',FLen=substring(cast(MJLen as varchar(10)),1,LEN(MJLen)-3)+'',''+RIGHT(cast(MJLen as varchar(10)),2)'); + SQL.ADD(' ,F.PRTMF,F.PRTKZ,F.PRTCodeName,F.PRTCode,G.CustomerNoName,C.*,A.*'); + sql.Add(' from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join CK_SXPB_CR D on D.SPId=A.APId '); + sql.add(' left join JYOrderCon_Sub F on F.Subid=A.ConID'); + sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); + SQL.Add(' where A.MJID=''' + Trim(Label2.Caption) + ''''); + Open; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + ; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + sleep(500); + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := '32' + Copy(Trim(ADOQueryPrint.fieldbyname('orderNo').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath1 := ExtractFilePath(Application.ExeName) + 'image\temp1.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath1) then + DeleteFile(fImagePath1); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath1), 4); + except + ; + //ADOCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := 'NWJ01.100;' + Trim(ADOQueryPrint.fieldbyname('styleNo').AsString) + ';801;' + Trim(ADOQueryPrint.fieldbyname('PRTHX').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJQty4').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + ';' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\temp2.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath2) then + DeleteFile(fImagePath2); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath2), 4); + except + ; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt4 := '{"A":"' + Trim(ADOQueryPrint.fieldbyname('KHConNO').AsString) + '","B":"' + Trim(ADOQueryPrint.fieldbyname('StyleNo').AsString) + '","C":"' + Trim(ADOQueryPrint.fieldbyname('mjqty4').AsString) + '","D":"' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + '","E":"' + Trim(ADOQueryPrint.fieldbyname('mjstr4').AsString) + '","F":"' + RightStr(('10000' + trim(ADOQueryPrint.fieldbyName('MJXH').AsString)), 4) + '"}'; + fImagePath4 := ExtractFilePath(Application.ExeName) + 'image\temp4.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath4) then + DeleteFile(fImagePath4); + Makebar(pchar(Txt4), Length(Txt4), 3, 3, 0, PChar(fImagePath4), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['ID'] := trim(ADOQueryPrint.fieldbyname('HS').AsString) + Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := '32' + copy(Trim(ADOQueryPrint.fieldbyname('orderNo').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies := strtointdef(trim(FS.Text), 1); + //RM2.ShowReport; + RM2.PrintReport; + end + else + begin + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString)), 'ʾ', 0); + end; +end; + +end. + diff --git a/盛纺贸易管理/U_MJManage.dfm b/盛纺贸易管理/U_MJManage.dfm new file mode 100644 index 0000000..2deb5de --- /dev/null +++ b/盛纺贸易管理/U_MJManage.dfm @@ -0,0 +1,1192 @@ +object frmMJManage: TfrmMJManage + Left = 65 + Top = -15 + Width = 1137 + Height = 730 + Caption = #27597#21367#30331#35760 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClick = FormClick + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 19 + object Panel1: TPanel + Left = 0 + Top = 30 + Width = 1129 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label1: TLabel + Left = 143 + Top = 23 + Width = 80 + Height = 19 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 519 + Top = 23 + Width = 80 + Height = 19 + Caption = #25163#24037#24405#20837 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MainId: TEdit + Left = 224 + Top = 21 + Width = 241 + Height = 27 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnKeyPress = MainIdKeyPress + end + object Edit1: TEdit + Left = 607 + Top = 21 + Width = 241 + Height = 27 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1129 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object TBCD: TToolButton + Left = 0 + Top = 0 + Caption = #30133#28857#31649#29702 + ImageIndex = 132 + OnClick = TBCDClick + end + object TBClose: TToolButton + Left = 83 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel2: TPanel + Left = 0 + Top = 201 + Width = 388 + Height = 492 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Panel3: TPanel + Left = 2 + Top = 2 + Width = 384 + Height = 116 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Button1: TButton + Left = 0 + Top = 1 + Width = 65 + Height = 57 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button1Click + end + object Button2: TButton + Left = 64 + Top = 1 + Width = 65 + Height = 57 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 128 + Top = 1 + Width = 65 + Height = 57 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button3Click + end + object Button4: TButton + Left = 192 + Top = 1 + Width = 65 + Height = 57 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button4Click + end + object Button5: TButton + Left = 256 + Top = 1 + Width = 65 + Height = 57 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = Button5Click + end + object Button6: TButton + Left = 320 + Top = 1 + Width = 65 + Height = 57 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Button6Click + end + object Button7: TButton + Left = 0 + Top = 57 + Width = 65 + Height = 57 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = Button7Click + end + object Button8: TButton + Left = 64 + Top = 57 + Width = 65 + Height = 57 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = Button8Click + end + object Button9: TButton + Left = 128 + Top = 57 + Width = 65 + Height = 57 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = Button9Click + end + object Button10: TButton + Left = 192 + Top = 57 + Width = 65 + Height = 57 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + OnClick = Button10Click + end + object Button11: TButton + Left = 256 + Top = 57 + Width = 65 + Height = 57 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -48 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = Button11Click + end + object Button12: TButton + Left = 320 + Top = 57 + Width = 65 + Height = 57 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + OnClick = Button12Click + end + end + object Panel4: TPanel + Left = 2 + Top = 118 + Width = 384 + Height = 339 + Align = alTop + TabOrder = 1 + object Button13: TButton + Left = 0 + Top = 1 + Width = 65 + Height = 57 + TabOrder = 0 + Visible = False + OnClick = Button13Click + end + object Button14: TButton + Left = 64 + Top = 1 + Width = 65 + Height = 57 + TabOrder = 1 + Visible = False + OnClick = Button14Click + end + object Button15: TButton + Left = 128 + Top = 1 + Width = 65 + Height = 57 + TabOrder = 2 + Visible = False + OnClick = Button15Click + end + object Button16: TButton + Left = 192 + Top = 1 + Width = 65 + Height = 57 + TabOrder = 3 + Visible = False + OnClick = Button16Click + end + object Button17: TButton + Left = 256 + Top = 1 + Width = 65 + Height = 57 + TabOrder = 4 + Visible = False + OnClick = Button17Click + end + object Button18: TButton + Left = 320 + Top = 1 + Width = 65 + Height = 57 + TabOrder = 5 + Visible = False + OnClick = Button18Click + end + object Button19: TButton + Left = 0 + Top = 57 + Width = 65 + Height = 57 + TabOrder = 6 + Visible = False + OnClick = Button19Click + end + object Button20: TButton + Left = 64 + Top = 57 + Width = 65 + Height = 57 + TabOrder = 7 + Visible = False + OnClick = Button20Click + end + object Button21: TButton + Left = 128 + Top = 57 + Width = 65 + Height = 57 + TabOrder = 8 + Visible = False + OnClick = Button21Click + end + object Button22: TButton + Left = 192 + Top = 57 + Width = 65 + Height = 57 + TabOrder = 9 + Visible = False + OnClick = Button22Click + end + object Button23: TButton + Left = 256 + Top = 57 + Width = 65 + Height = 57 + TabOrder = 10 + Visible = False + OnClick = Button23Click + end + object Button24: TButton + Left = 320 + Top = 57 + Width = 65 + Height = 57 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = Button24Click + end + object Button25: TButton + Left = 0 + Top = 113 + Width = 65 + Height = 57 + TabOrder = 12 + Visible = False + OnClick = Button25Click + end + object Button26: TButton + Left = 64 + Top = 113 + Width = 65 + Height = 57 + TabOrder = 13 + Visible = False + OnClick = Button26Click + end + object Button27: TButton + Left = 128 + Top = 113 + Width = 65 + Height = 57 + TabOrder = 14 + Visible = False + OnClick = Button27Click + end + object Button28: TButton + Left = 192 + Top = 113 + Width = 65 + Height = 57 + TabOrder = 15 + Visible = False + OnClick = Button28Click + end + object Button29: TButton + Left = 256 + Top = 113 + Width = 65 + Height = 57 + TabOrder = 16 + Visible = False + OnClick = Button29Click + end + object Button30: TButton + Left = 320 + Top = 113 + Width = 65 + Height = 57 + TabOrder = 17 + Visible = False + OnClick = Button30Click + end + object Button31: TButton + Left = 0 + Top = 169 + Width = 65 + Height = 57 + TabOrder = 18 + Visible = False + OnClick = Button31Click + end + object Button32: TButton + Left = 64 + Top = 169 + Width = 65 + Height = 57 + TabOrder = 19 + Visible = False + OnClick = Button32Click + end + object Button33: TButton + Left = 128 + Top = 169 + Width = 65 + Height = 57 + TabOrder = 20 + Visible = False + OnClick = Button33Click + end + object Button34: TButton + Left = 192 + Top = 169 + Width = 65 + Height = 57 + TabOrder = 21 + Visible = False + OnClick = Button34Click + end + object Button35: TButton + Left = 256 + Top = 169 + Width = 65 + Height = 57 + TabOrder = 22 + Visible = False + OnClick = Button35Click + end + object Button36: TButton + Left = 320 + Top = 169 + Width = 65 + Height = 57 + TabOrder = 23 + Visible = False + OnClick = Button36Click + end + object Button39: TButton + Left = 0 + Top = 225 + Width = 65 + Height = 57 + TabOrder = 24 + Visible = False + OnClick = Button39Click + end + object Button40: TButton + Left = 64 + Top = 225 + Width = 65 + Height = 57 + TabOrder = 25 + Visible = False + OnClick = Button40Click + end + object Button41: TButton + Left = 128 + Top = 225 + Width = 65 + Height = 57 + TabOrder = 26 + Visible = False + OnClick = Button41Click + end + object Button42: TButton + Left = 192 + Top = 225 + Width = 65 + Height = 57 + TabOrder = 27 + Visible = False + OnClick = Button42Click + end + object Button43: TButton + Left = 256 + Top = 225 + Width = 65 + Height = 57 + TabOrder = 28 + Visible = False + OnClick = Button43Click + end + object Button44: TButton + Left = 320 + Top = 225 + Width = 65 + Height = 57 + TabOrder = 29 + Visible = False + OnClick = Button44Click + end + object Button45: TButton + Left = 0 + Top = 281 + Width = 65 + Height = 57 + TabOrder = 30 + Visible = False + OnClick = Button45Click + end + object Button46: TButton + Left = 64 + Top = 281 + Width = 65 + Height = 57 + TabOrder = 31 + Visible = False + OnClick = Button46Click + end + object Button47: TButton + Left = 128 + Top = 281 + Width = 65 + Height = 57 + TabOrder = 32 + Visible = False + OnClick = Button47Click + end + object Button48: TButton + Left = 192 + Top = 281 + Width = 65 + Height = 57 + TabOrder = 33 + Visible = False + OnClick = Button48Click + end + object Button49: TButton + Left = 256 + Top = 281 + Width = 65 + Height = 57 + TabOrder = 34 + Visible = False + OnClick = Button49Click + end + object Button50: TButton + Left = 320 + Top = 281 + Width = 65 + Height = 57 + TabOrder = 35 + Visible = False + OnClick = Button50Click + end + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 1129 + Height = 104 + Align = alTop + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'WFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 140 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'WFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 78 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'WFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 93 + end + object v1OrderDate: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 114 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 57 + end + object v1Column1: TcxGridDBColumn + Caption = #20811#37325#19978#38480 + DataBinding.FieldName = 'MJKZD' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle2 + Width = 80 + end + object v1Column3: TcxGridDBColumn + Caption = #20811#37325#19979#38480 + DataBinding.FieldName = 'MJKZX' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle2 + Width = 74 + end + object v1Note: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 315 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid2: TcxGrid + Left = 388 + Top = 201 + Width = 253 + Height = 492 + Align = alLeft + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#31181#31867 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 88 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622 + DataBinding.FieldName = 'CDBeg' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 69 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQtyS' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = Tv2CDQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 87 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 949 + Top = 201 + Width = 180 + Height = 492 + Align = alClient + TabOrder = 5 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24050#32463#30331#35760#30340#27597#21367 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 155 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Panel5: TPanel + Left = 641 + Top = 201 + Width = 308 + Height = 492 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 6 + object Label3: TLabel + Left = 49 + Top = 27 + Width = 40 + Height = 19 + Caption = #27611#37325 + end + object Label4: TLabel + Left = 49 + Top = 70 + Width = 40 + Height = 19 + Caption = #38271#24230 + end + object Label5: TLabel + Left = 49 + Top = 114 + Width = 40 + Height = 19 + Caption = #24133#23485 + end + object Label6: TLabel + Left = 49 + Top = 157 + Width = 40 + Height = 19 + Caption = #29677#32452 + end + object Label7: TLabel + Left = 223 + Top = 69 + Width = 31 + Height = 19 + Caption = #65306'M' + end + object Label8: TLabel + Left = 223 + Top = 27 + Width = 42 + Height = 19 + Caption = #65306'Kg' + end + object Label9: TLabel + Left = 223 + Top = 110 + Width = 42 + Height = 19 + Caption = #65306'CM' + end + object Label10: TLabel + Left = 29 + Top = 313 + Width = 80 + Height = 19 + Caption = #23454#38469#20811#37325 + end + object Label11: TLabel + Left = 242 + Top = 312 + Width = 62 + Height = 19 + Caption = #65306'g/'#13217 + end + object Label12: TLabel + Left = 29 + Top = 274 + Width = 80 + Height = 19 + Caption = #30133#28857#25968#37327 + end + object Label13: TLabel + Left = 242 + Top = 272 + Width = 31 + Height = 19 + Caption = #65306'M' + end + object Label14: TLabel + Left = 40 + Top = 368 + Width = 11 + Height = 19 + Visible = False + end + object MJMaoZ: TEdit + Left = 96 + Top = 24 + Width = 121 + Height = 27 + ReadOnly = True + TabOrder = 0 + OnChange = MJMaoZChange + OnClick = MJMaoZClick + end + object MJLen: TEdit + Left = 96 + Top = 67 + Width = 121 + Height = 27 + ReadOnly = True + TabOrder = 1 + OnChange = MJMaoZChange + OnClick = MJLenClick + end + object MJFK: TEdit + Left = 96 + Top = 109 + Width = 121 + Height = 27 + ReadOnly = True + TabOrder = 2 + OnChange = MJMaoZChange + OnClick = MJFKClick + end + object MJBanZu: TEdit + Left = 96 + Top = 152 + Width = 121 + Height = 27 + ReadOnly = True + TabOrder = 3 + OnClick = MJBanZuClick + end + object BTPrint: TButton + Left = 175 + Top = 208 + Width = 89 + Height = 25 + Caption = #25171#21360#26465#30721 + TabOrder = 4 + OnClick = BTPrintClick + end + object Button38: TButton + Left = 223 + Top = 152 + Width = 41 + Height = 28 + Caption = #65294#65294#65294 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Button38Click + end + object MJSJKZ: TEdit + Left = 113 + Top = 310 + Width = 121 + Height = 27 + ReadOnly = True + TabOrder = 6 + OnClick = MJSJKZClick + end + object CDQty: TEdit + Tag = 99999 + Left = 113 + Top = 272 + Width = 121 + Height = 27 + ReadOnly = True + TabOrder = 7 + OnClick = MJSJKZClick + end + object BTAdd: TButton + Left = 49 + Top = 208 + Width = 47 + Height = 25 + Caption = #26032#22686 + TabOrder = 8 + OnClick = BTAddClick + end + object BTEdit: TButton + Left = 111 + Top = 208 + Width = 47 + Height = 25 + Caption = #20462#25913 + TabOrder = 9 + Visible = False + OnClick = BTEditClick + end + end + object cxStyleRepository1: TcxStyleRepository + Top = 56 + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 296 + Top = 128 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 328 + Top = 128 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 360 + Top = 128 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 400 + Top = 128 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 432 + Top = 128 + end + object ADOTmp: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 464 + Top = 128 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 536 + Top = 128 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 128 + ReportData = {} + end + object DataSource2: TDataSource + DataSet = CDS_MJCD + Left = 448 + Top = 264 + end + object CDS_MJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 480 + Top = 264 + end + object DataSource3: TDataSource + DataSet = CDS_MJID + Left = 1032 + Top = 256 + end + object CDS_MJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1000 + Top = 256 + end + object Timer1: TTimer + Interval = 100 + OnTimer = Timer1Timer + Left = 656 + Top = 392 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 152 + end +end diff --git a/盛纺贸易管理/U_MJManage.pas b/盛纺贸易管理/U_MJManage.pas new file mode 100644 index 0000000..5420861 --- /dev/null +++ b/盛纺贸易管理/U_MJManage.pas @@ -0,0 +1,1086 @@ +unit U_MJManage; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport, + RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, + cxGridPopupMenu, ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons; +{function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer):integer;stdcall;external 'JCYData.DLL'; +function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL';} + + +type + TfrmMJManage = class(TForm) + Panel1: TPanel; + MainId: TEdit; + Label1: TLabel; + Label2: TLabel; + Edit1: TEdit; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + ADOTmp: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel2: TPanel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1OrderDate: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + TBCD: TToolButton; + Panel3: TPanel; + Button1: TButton; + Button2: TButton; + Button3: TButton; + Button4: TButton; + Button5: TButton; + Button6: TButton; + Button7: TButton; + Button8: TButton; + Button9: TButton; + Button10: TButton; + Button11: TButton; + Button12: TButton; + Panel4: TPanel; + Button13: TButton; + Button14: TButton; + Button15: TButton; + Button16: TButton; + Button17: TButton; + Button18: TButton; + Button19: TButton; + Button20: TButton; + Button21: TButton; + Button22: TButton; + Button23: TButton; + Button24: TButton; + Button25: TButton; + Button26: TButton; + Button27: TButton; + Button28: TButton; + Button29: TButton; + Button30: TButton; + Button31: TButton; + Button32: TButton; + Button33: TButton; + Button34: TButton; + Button35: TButton; + Button36: TButton; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + DataSource2: TDataSource; + CDS_MJCD: TClientDataSet; + DataSource3: TDataSource; + CDS_MJID: TClientDataSet; + v2Column1: TcxGridDBColumn; + Button39: TButton; + Button40: TButton; + Button41: TButton; + Button42: TButton; + Button43: TButton; + Button44: TButton; + Button45: TButton; + Button46: TButton; + Button47: TButton; + Button48: TButton; + Button49: TButton; + Button50: TButton; + Panel5: TPanel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + MJMaoZ: TEdit; + MJLen: TEdit; + MJFK: TEdit; + MJBanZu: TEdit; + BTPrint: TButton; + Button38: TButton; + MJSJKZ: TEdit; + CDQty: TEdit; + Timer1: TTimer; + Label14: TLabel; + BTAdd: TButton; + BTEdit: TButton; + ADOQueryPrint: TADOQuery; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure MainIdKeyPress(Sender: TObject; var Key: Char); + procedure TBCloseClick(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBCDClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button13Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button14Click(Sender: TObject); + procedure Button15Click(Sender: TObject); + procedure Button16Click(Sender: TObject); + procedure Button17Click(Sender: TObject); + procedure Button18Click(Sender: TObject); + procedure Button19Click(Sender: TObject); + procedure Button20Click(Sender: TObject); + procedure Button21Click(Sender: TObject); + procedure Button22Click(Sender: TObject); + procedure Button23Click(Sender: TObject); + procedure Button24Click(Sender: TObject); + procedure Button25Click(Sender: TObject); + procedure Button26Click(Sender: TObject); + procedure Button27Click(Sender: TObject); + procedure Button28Click(Sender: TObject); + procedure Button29Click(Sender: TObject); + procedure Button30Click(Sender: TObject); + procedure Button31Click(Sender: TObject); + procedure Button32Click(Sender: TObject); + procedure Button33Click(Sender: TObject); + procedure Button34Click(Sender: TObject); + procedure Button35Click(Sender: TObject); + procedure Button36Click(Sender: TObject); + procedure Button38Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure MJMaoZClick(Sender: TObject); + procedure MJLenClick(Sender: TObject); + procedure MJFKClick(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Button9Click(Sender: TObject); + procedure Button10Click(Sender: TObject); + procedure Button11Click(Sender: TObject); + procedure MJBanZuClick(Sender: TObject); + procedure MJSJKZClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormClick(Sender: TObject); + procedure Button12Click(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure Button39Click(Sender: TObject); + procedure Button40Click(Sender: TObject); + procedure Button41Click(Sender: TObject); + procedure Button42Click(Sender: TObject); + procedure Button43Click(Sender: TObject); + procedure Button44Click(Sender: TObject); + procedure Button45Click(Sender: TObject); + procedure Button46Click(Sender: TObject); + procedure Button47Click(Sender: TObject); + procedure Button48Click(Sender: TObject); + procedure Button49Click(Sender: TObject); + procedure Button50Click(Sender: TObject); + procedure MJMaoZChange(Sender: TObject); + procedure BTAddClick(Sender: TObject); + procedure BTEditClick(Sender: TObject); + procedure BTPrintClick(Sender: TObject); + procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); + private + { Private declarations } + FInt,PState:Integer; + FColumn:String; + MValue:String; + procedure InitJP(); + procedure InitGrid(); + procedure InitCDGrid(); + procedure InitCDGridID(); + procedure AddCD(Fbtn:TButton); + procedure AddSL(Fbtn:TButton); + function SaveData():Boolean; + procedure BtnStatus(BSInt:Boolean); + public + { Public declarations } + end; + +var + frmMJManage: TfrmMJManage; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmMJManage.FormDestroy(Sender: TObject); +begin + frmMJManage:=nil; +end; + +procedure TfrmMJManage.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + + + + +procedure TfrmMJManage.MainIdKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + InitGrid(); + InitCDGridID(); + ADOQueryMain.First; + SSetWinData(ADOQueryMain,Panel5); + if CDS_MJID.IsEmpty then + begin + SClearData(Panel5,0); + end; + InitCDGrid(); + + end; +end; +procedure TfrmMJManage.InitGrid(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Main where MainID='''+Trim(MainId.Text)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_MJ); + SInitCDSData20(ADOQueryMain,Order_MJ); + MainId.Text:=''; +end; +procedure TfrmMJManage.InitCDGrid(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + if PState=1 then + sql.Add('select * from WFB_MJJY_CD where MJID='''' ') + else + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJCD); + SInitCDSData20(ADOQueryMain,CDS_MJCD); + //MainId.Text:=''; +end; +procedure TfrmMJManage.InitCDGridID(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where MainID='''+Trim(Order_MJ.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJID); + SInitCDSData20(ADOQueryMain,CDS_MJID); + //MainId.Text:=''; +end; + +procedure TfrmMJManage.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmMJManage.Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + fsj:string; +begin + FInt:=0; + //Tv1.DataController.FocusedRecordIndex; + //fsj:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; +end; + +procedure TfrmMJManage.TBCDClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCD'; + flagname:='޷IJõ'; + if ShowModal=1 then + begin + Self.InitJP(); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManage.FormShow(Sender: TObject); +begin + InitJP(); +end; +procedure TfrmMJManage.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD'' order by ZDYNO '); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ûжõ㣡','ʾ',0); + Exit; + end; + with ADOTmp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + for j:=0 to 32 do + begin + with Panel4 do + begin + TButton(Controls[j]).Visible:=True; + if Length(AA[j])>3 then + begin + + end; + TButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmMJManage.Button13Click(Sender: TObject); +begin + AddCD(Button13); +end; +procedure TfrmMJManage.AddCD(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TButton(Fbtn).Caption); + Post; + end; +end; +procedure TfrmMJManage.AddSL(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=1 then + begin + MJMaoZ.Text:=Trim(MJMaoZ.Text)+Trim(TButton(Fbtn).Caption); + end else + if FInt=2 then + begin + MJLen.Text:=Trim(MJLen.Text)+Trim(TButton(Fbtn).Caption); + end else + if FInt=3 then + begin + MJFK.Text:=Trim(MJFK.Text)+Trim(TButton(Fbtn).Caption); + end else + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; +end; + +procedure TfrmMJManage.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Tv2.OptionsSelection.CellSelect=True then + begin + if CDS_MJCD.IsEmpty then Exit; + CDS_MJCD.Delete; + end; + +end; + +procedure TfrmMJManage.Button14Click(Sender: TObject); +begin + AddCD(Button14); +end; + +procedure TfrmMJManage.Button15Click(Sender: TObject); +begin + AddCD(Button15); +end; + +procedure TfrmMJManage.Button16Click(Sender: TObject); +begin + AddCD(Button16); +end; + +procedure TfrmMJManage.Button17Click(Sender: TObject); +begin + AddCD(Button17); +end; + +procedure TfrmMJManage.Button18Click(Sender: TObject); +begin + AddCD(Button18); +end; + +procedure TfrmMJManage.Button19Click(Sender: TObject); +begin + AddCD(Button19); +end; + +procedure TfrmMJManage.Button20Click(Sender: TObject); +begin + AddCD(Button20); +end; + +procedure TfrmMJManage.Button21Click(Sender: TObject); +begin + AddCD(Button21); +end; + +procedure TfrmMJManage.Button22Click(Sender: TObject); +begin + AddCD(Button22); +end; + +procedure TfrmMJManage.Button23Click(Sender: TObject); +begin + AddCD(Button23); +end; + +procedure TfrmMJManage.Button24Click(Sender: TObject); +begin + AddCD(Button24); +end; + +procedure TfrmMJManage.Button25Click(Sender: TObject); +begin + AddCD(Button25); +end; + +procedure TfrmMJManage.Button26Click(Sender: TObject); +begin + AddCD(Button26); +end; + +procedure TfrmMJManage.Button27Click(Sender: TObject); +begin + AddCD(Button27); +end; + +procedure TfrmMJManage.Button28Click(Sender: TObject); +begin + AddCD(Button28); +end; + +procedure TfrmMJManage.Button29Click(Sender: TObject); +begin + AddCD(Button29); +end; + +procedure TfrmMJManage.Button30Click(Sender: TObject); +begin + AddCD(Button30); +end; + +procedure TfrmMJManage.Button31Click(Sender: TObject); +begin + AddCD(Button31); +end; + +procedure TfrmMJManage.Button32Click(Sender: TObject); +begin + AddCD(Button32); +end; + +procedure TfrmMJManage.Button33Click(Sender: TObject); +begin + AddCD(Button33); +end; + +procedure TfrmMJManage.Button34Click(Sender: TObject); +begin + AddCD(Button34); +end; + +procedure TfrmMJManage.Button35Click(Sender: TObject); +begin + AddCD(Button35); +end; + +procedure TfrmMJManage.Button36Click(Sender: TObject); +begin + AddCD(Button36); +end; + +procedure TfrmMJManage.Button38Click(Sender: TObject); +begin + FColumn:=''; + FInt:=0; + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBBZ'; + flagname:=''; + if ShowModal=1 then + begin + Self.MJBanZu.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManage.Button1Click(Sender: TObject); +begin + AddSL(Button1); +end; + +procedure TfrmMJManage.MJMaoZClick(Sender: TObject); +begin + FInt:=1; + FColumn:=''; +end; + +procedure TfrmMJManage.MJLenClick(Sender: TObject); +begin + FInt:=2; + FColumn:=''; +end; + +procedure TfrmMJManage.MJFKClick(Sender: TObject); +begin + FInt:=3; + FColumn:=''; +end; + +procedure TfrmMJManage.Button2Click(Sender: TObject); +begin + AddSL(Button2); +end; + +procedure TfrmMJManage.Button3Click(Sender: TObject); +begin + AddSL(Button3); +end; + +procedure TfrmMJManage.Button4Click(Sender: TObject); +begin + AddSL(Button4); +end; + +procedure TfrmMJManage.Button5Click(Sender: TObject); +begin + AddSL(Button5); +end; + +procedure TfrmMJManage.Button6Click(Sender: TObject); +begin + AddSL(Button6); +end; + +procedure TfrmMJManage.Button7Click(Sender: TObject); +begin + AddSL(Button7); +end; + +procedure TfrmMJManage.Button8Click(Sender: TObject); +begin + AddSL(Button8); +end; + +procedure TfrmMJManage.Button9Click(Sender: TObject); +begin + AddSL(Button9); +end; + +procedure TfrmMJManage.Button10Click(Sender: TObject); +begin + AddSL(Button10); +end; + +procedure TfrmMJManage.Button11Click(Sender: TObject); +begin + AddSL(Button11); +end; + +procedure TfrmMJManage.MJBanZuClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManage.MJSJKZClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManage.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + FInt:=4; +end; + +procedure TfrmMJManage.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + FInt:=4; + PState:=0; + InitCDGrid(); + with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + SSetWinData(ADOTmp,Panel5); + BtnStatus(False); +end; + +procedure TfrmMJManage.FormClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManage.Button12Click(Sender: TObject); +var + fsj:string; +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=1 then + begin + if Trim(MJMaoZ.Text)<>'' then + MJMaoZ.Text:=Copy(Trim(MJMaoZ.Text),1,Length(Trim(MJMaoZ.Text))-1); + end else + if FInt=2 then + begin + if Trim(MJLen.Text)<>'' then + MJLen.Text:=Copy(Trim(MJLen.Text),1,Length(Trim(MJLen.Text))-1); + end else + if FInt=3 then + begin + if Trim(MJFK.Text)<>'' then + MJFK.Text:=Copy(Trim(MJFK.Text),1,Length(Trim(MJFK.Text))-1); + end else + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + if Trim(CDS_MJCD.FieldByName(FColumn).AsString)<>'' then + begin + with CDS_MJCD do + begin + Edit; + if Length(CDS_MJCD.FieldByName(FColumn).AsString)=1 then + begin + FieldByName(FColumn).Value:=null ; + FieldByName('CDQty').Value:=0; + end + else + begin + FieldByName(FColumn).Value:=Copy(Trim(FieldByName(FColumn).AsString),1,Length(Trim(FieldByName(FColumn).AsString))-1); + FieldByName('CDQty').Value:=FieldByName(FColumn).Value; + end; + Post; + end; + //MValue:=TcxTextEdit(Tv2CDQty).EditingText; + //BTPrint.SetFocus; + end; + + + end; + end; +end; + +procedure TfrmMJManage.Timer1Timer(Sender: TObject); +begin + CDQty.Text:=Tv2.DataController.Summary.FooterSummaryTexts[0]; +end; + +procedure TfrmMJManage.Button39Click(Sender: TObject); +begin + AddCD(Button39); +end; + +procedure TfrmMJManage.Button40Click(Sender: TObject); +begin + AddCD(Button40); +end; + +procedure TfrmMJManage.Button41Click(Sender: TObject); +begin + AddCD(Button41); +end; + +procedure TfrmMJManage.Button42Click(Sender: TObject); +begin + AddCD(Button42); +end; + +procedure TfrmMJManage.Button43Click(Sender: TObject); +begin + AddCD(Button43); +end; + +procedure TfrmMJManage.Button44Click(Sender: TObject); +begin + AddCD(Button44); +end; + +procedure TfrmMJManage.Button45Click(Sender: TObject); +begin + AddCD(Button45); +end; + +procedure TfrmMJManage.Button46Click(Sender: TObject); +begin + AddCD(Button46); +end; + +procedure TfrmMJManage.Button47Click(Sender: TObject); +begin + AddCD(Button47); +end; + +procedure TfrmMJManage.Button48Click(Sender: TObject); +begin + AddCD(Button48); +end; + +procedure TfrmMJManage.Button49Click(Sender: TObject); +begin + AddCD(Button49); +end; + +procedure TfrmMJManage.Button50Click(Sender: TObject); +begin + AddCD(Button50); +end; + +procedure TfrmMJManage.MJMaoZChange(Sender: TObject); +var + KZSX,KZXX:string; +begin + if (Trim(MJMaoZ.Text)<>'') and (Trim(MJLen.Text)<>'') and (Trim(MJFK.Text)<>'') then + begin + MJSJKZ.Text:=FloatToStr(StrToFloat(MJMaoZ.Text)/(StrToFloat(MJLen.Text)*StrToFloat(MJFK.Text)/100)) ; + MJSJKZ.Text:=FloatToStr(SSWR(StrToFloat(MJSJKZ.Text)*1000)); + KZSX:=Trim(Order_MJ.fieldbyname('MJKZD').AsString); + KZXX:=Trim(Order_MJ.fieldbyname('MJKZX').AsString); + if (StrToFloat(MJSJKZ.Text)>=StrToFloat(KZXX)) and (StrToFloat(MJSJKZ.Text)<=StrToFloat(KZSX)) then + begin + Label14.Visible:=True; + Label14.Caption:='ĸ'; + end else + if StrToFloat(MJSJKZ.Text)StrToFloat(KZSX) then + begin + Label14.Visible:=True; + Label14.Caption:='ĸس>'+floattostr(StrToFloat(MJSJKZ.Text)-StrToFloat(KZSX))+'g/O'; + end; + end else + begin + MJSJKZ.Text:=''; + Label14.Caption:=''; + Label14.Visible:=False; + end; + +end; + +function TfrmMJManage.SaveData():Boolean; +var + maxno,FMJID:String; +begin + if PState=1 then + FMJID:='' + else if PState=2 then + FMJID:=Trim(CDS_MJID.fieldbyname('MJID').AsString) + else if PState<1 then Exit; + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where MJId='''+Trim(FMJID)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMJID)='' then + begin + Append; + if GetLSNo(ADOTmp,maxno,'','WFB_MJJY',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMJID); + Edit; + end; + FieldByName('MainId').value:=Trim(Order_MJ.fieldbyname('MainId').AsString); + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MJMaoZ').Value:=Trim(MJMaoZ.Text); + FieldByName('MJLen').Value:=Trim(MJLen.Text); + FieldByName('MJFK').Value:=Trim(MJFK.Text); + FieldByName('MJSJKZ').Value:=Trim(MJSJKZ.Text); + FieldByName('MJBanZu').Value:=Trim(MJBanZu.Text); + if Trim(FMJID)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTmp); + end; + Post; + end; + FMJID:=Trim(maxno); + ///ĸõ + with CDS_MJCD do + begin + First; + while not Eof do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + begin + if GetLSNo(ADOTmp,maxno,'MC','WFB_MJJY_CD',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_MJCD.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + Append + else + Edit; + FieldByName('MJId').Value:=Trim(FMJID); + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD',0); + Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('MCID').Value:=Trim(maxno); + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + InitCDGridID(); + CDS_MJID.Locate('MJID',FMJID,[]); + PState:=0; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmMJManage.BTAddClick(Sender: TObject); +begin + if PState=1 then + begin + if( (CDS_MJCD.IsEmpty=False) or (Trim(MJMaoZ.Text)<>'') or (Trim(MJLen.Text)<>'') or (Trim(MJFK.Text)<>'') ) then + if Application.MessageBox(PChar(' δӡǷҪ?'+#13+#13+'"(Y)"ǰݽᶪʧ'),'ʾ',32+4)<>IDYES then Exit; + end; + if Order_MJ.IsEmpty then Exit; + PState:=1; + InitCDGrid(); + SClearData(Panel5,0); + {Tv2.OptionsSelection.CellSelect:=True; + MJMaoZ.ReadOnly:=False; + MJLen.ReadOnly:=False; + MJFK.ReadOnly:=False; + Button38.Enabled:=True; } + BtnStatus(True); +end; + +procedure TfrmMJManage.BTEditClick(Sender: TObject); +begin + if CDS_MJID.IsEmpty then Exit; + PState:=2; +end; + +procedure TfrmMJManage.BTPrintClick(Sender: TObject); +var + fPrintFile:string; +begin + if Order_MJ.IsEmpty then Exit; + if Trim(MJMaoZ.Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end; + if Trim(MJLen.Text)='' then + begin + Application.MessageBox('ȲΪգ','ʾ',0); + Exit; + end; + if Trim(MJFK.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Trim(MJBanZu.Text)='' then + begin + Application.MessageBox('鲻Ϊգ','ʾ',0); + Exit; + end; + if PState=1 then + begin + if Application.MessageBox('ȷҪӡ𣿴ӡݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + end; + if SaveData() then + begin + //Application.MessageBox('ӡɹ','ʾ',0); + BtnStatus(False); + {Tv2.OptionsSelection.CellSelect:=False; + MJMaoZ.ReadOnly:=True; + MJLen.ReadOnly:=True; + MJFK.ReadOnly:=True; + Button38.Enabled:=False;} + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select RTrim(A.MJID) MJID,RTrim(A.MJSJKZ) MJSJKZ,RTrim(A.MJFK) MJFK,RTrim(B.OrderNo) OrderNo,RTrim(B.WFBCodeName) WFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; +end; +procedure TfrmMJManage.BtnStatus(BSInt:Boolean); +begin + Tv2.OptionsSelection.CellSelect:=BSInt; + MJMaoZ.ReadOnly:=not BSInt; + MJLen.ReadOnly:=not BSInt; + MJFK.ReadOnly:=not BSInt; + Button38.Enabled:=BSInt; +end; +procedure TfrmMJManage.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + try + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)<>'' then + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=mvalue; + CDS_MJCD.Post; + end else + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=0; + CDS_MJCD.Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQtyS').Value:=mvalue; + except + Application.MessageBox('Ƿ֣','ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_MJManageNew.dfm b/盛纺贸易管理/U_MJManageNew.dfm new file mode 100644 index 0000000..042e7a2 --- /dev/null +++ b/盛纺贸易管理/U_MJManageNew.dfm @@ -0,0 +1,1922 @@ +object frmMJManageNew: TfrmMJManageNew + Left = 33 + Top = 83 + Width = 1292 + Height = 773 + Caption = #27597#21367#30331#35760 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClick = FormClick + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 19 + object Panel1: TPanel + Left = 0 + Top = 30 + Width = 1284 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + Visible = False + object Label1: TLabel + Left = 143 + Top = 16 + Width = 80 + Height = 19 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 519 + Top = 16 + Width = 80 + Height = 19 + Caption = #25163#24037#24405#20837 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 29 + Top = 32 + Width = 8 + Height = 16 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 856 + Top = 16 + Width = 11 + Height = 19 + end + object MainId: TEdit + Left = 224 + Top = 14 + Width = 241 + Height = 27 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnKeyPress = MainIdKeyPress + end + object OrderNo: TEdit + Left = 607 + Top = 14 + Width = 241 + Height = 27 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1284 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_RCInspection.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = ToolButton1Click + end + object TBCD: TToolButton + Left = 63 + Top = 0 + Caption = #30133#28857#31649#29702 + ImageIndex = 132 + OnClick = TBCDClick + end + object TBClose: TToolButton + Left = 146 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 78 + Width = 1284 + Height = 174 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object v1Column4: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 47 + end + object v1Column11: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'SCOrder' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 45 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 84 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 116 + end + object v1Column12: TcxGridDBColumn + Caption = #23450#21367#38271 + DataBinding.FieldName = 'BigLen' + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 54 + end + object v1Column6: TcxGridDBColumn + Caption = #23450#21367#25968 + DataBinding.FieldName = 'BigCount' + Options.Focusing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 52 + end + object v1PRTMF: TcxGridDBColumn + Caption = #29983#20135#38376#24133 + DataBinding.FieldName = 'BigMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 66 + end + object v1Column5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 46 + end + object v1Column7: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 46 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 49 + end + object v1Column13: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 66 + end + object v1Column8: TcxGridDBColumn + Caption = #23433#25490#31859#25968 + DataBinding.FieldName = 'OrderQtyM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + Width = 81 + end + object v1Column9: TcxGridDBColumn + Caption = #24050#29983#20135#31859#25968 + DataBinding.FieldName = 'SCMQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 92 + end + object v1Column10: TcxGridDBColumn + Caption = #26410#29983#20135#31859#25968 + DataBinding.FieldName = 'WSCMQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = cxStyle5 + Styles.Header = cxStyle5 + Width = 95 + end + object v1Column1: TcxGridDBColumn + Caption = #21367#22343#37325#19978#38480 + DataBinding.FieldName = 'KZBig' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 82 + end + object v1Column3: TcxGridDBColumn + Caption = #21367#22343#37325#19979#38480 + DataBinding.FieldName = 'KZSmal' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid2: TcxGrid + Left = 844 + Top = 252 + Width = 242 + Height = 484 + Align = alLeft + TabOrder = 3 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#31181#31867 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 77 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 56 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 58 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = Tv2CDQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 47 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 1086 + Top = 252 + Width = 127 + Height = 484 + Align = alLeft + TabOrder = 4 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24050#30331#35760#27597#21367 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 120 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Panel5: TPanel + Left = 498 + Top = 252 + Width = 346 + Height = 484 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object Label3: TLabel + Left = 111 + Top = 28 + Width = 60 + Height = 29 + Caption = #27611#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 111 + Top = 92 + Width = 60 + Height = 29 + Caption = #38271#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 111 + Top = 155 + Width = 60 + Height = 29 + Caption = #24133#23485 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 111 + Top = 219 + Width = 60 + Height = 29 + Caption = #29677#32452 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 305 + Top = 95 + Width = 16 + Height = 29 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 305 + Top = 32 + Width = 32 + Height = 29 + Caption = 'Kg' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 305 + Top = 158 + Width = 32 + Height = 29 + Caption = 'CM' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 111 + Top = 345 + Width = 60 + Height = 29 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 281 + Top = 345 + Width = 62 + Height = 29 + Caption = 'g/'#13217 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 111 + Top = 283 + Width = 60 + Height = 29 + Caption = #30133#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 305 + Top = 286 + Width = 16 + Height = 29 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 21 + Top = 400 + Width = 180 + Height = 24 + Caption = 'aaaaaaaaaaaaaaa' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object MJMaoZ: TEdit + Left = 173 + Top = 24 + Width = 131 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + OnChange = MJMaoZChange + OnClick = MJMaoZClick + end + object MJLen: TEdit + Left = 173 + Top = 88 + Width = 131 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + OnChange = MJMaoZChange + OnClick = MJLenClick + end + object MJFK: TEdit + Left = 173 + Top = 152 + Width = 131 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + OnChange = MJMaoZChange + OnClick = MJFKClick + end + object MJBanZu: TEdit + Tag = 2 + Left = 173 + Top = 216 + Width = 131 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + OnClick = MJBanZuClick + end + object BTPrint: TButton + Left = 6 + Top = 164 + Width = 90 + Height = 50 + Caption = #25171#21360#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = BTPrintClick + end + object Button38: TButton + Left = 304 + Top = 220 + Width = 22 + Height = 28 + Caption = '....' + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = Button38Click + end + object MJSJKZ: TEdit + Left = 178 + Top = 343 + Width = 102 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + OnClick = MJSJKZClick + end + object CDQty: TEdit + Tag = 99999 + Left = 178 + Top = 280 + Width = 124 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + OnClick = MJSJKZClick + end + object BTAdd: TButton + Left = 6 + Top = 25 + Width = 90 + Height = 50 + Caption = #26032#22686 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = BTAddClick + end + object BTEdit: TButton + Left = 235 + Top = 404 + Width = 47 + Height = 25 + Caption = #20462#25913 + TabOrder = 9 + Visible = False + OnClick = BTEditClick + end + object Button5: TButton + Left = 6 + Top = 305 + Width = 90 + Height = 50 + Caption = #37325#26032#25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = Button5Click + end + end + object Panel3: TPanel + Left = 144 + Top = 33 + Width = 657 + Height = 172 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 6 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 80 + Height = 80 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 88 + Top = 3 + Width = 80 + Height = 80 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 172 + Top = 3 + Width = 80 + Height = 80 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 256 + Top = 3 + Width = 80 + Height = 80 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 340 + Top = 3 + Width = 80 + Height = 80 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 4 + Top = 87 + Width = 80 + Height = 80 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 88 + Top = 87 + Width = 80 + Height = 80 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 172 + Top = 87 + Width = 80 + Height = 80 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 256 + Top = 87 + Width = 80 + Height = 80 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 340 + Top = 87 + Width = 80 + Height = 80 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 424 + Top = 87 + Width = 80 + Height = 80 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 424 + Top = 3 + Width = 80 + Height = 80 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 536 + Top = 44 + Width = 104 + Height = 80 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 252 + Width = 498 + Height = 484 + Align = alLeft + TabOrder = 7 + object SpeedButton13: TSpeedButton + Left = 3 + Top = 0 + Width = 80 + Height = 80 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 85 + Top = 0 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 167 + Top = 0 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 249 + Top = 0 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 331 + Top = 0 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 413 + Top = 0 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton19: TSpeedButton + Left = 3 + Top = 82 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton20: TSpeedButton + Left = 85 + Top = 82 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 167 + Top = 82 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 249 + Top = 82 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 331 + Top = 82 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 413 + Top = 82 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 3 + Top = 165 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 85 + Top = 165 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton27: TSpeedButton + Left = 167 + Top = 165 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton28: TSpeedButton + Left = 249 + Top = 165 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton29: TSpeedButton + Left = 331 + Top = 165 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton30: TSpeedButton + Left = 413 + Top = 165 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton31: TSpeedButton + Left = 3 + Top = 248 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton32: TSpeedButton + Left = 85 + Top = 248 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton33: TSpeedButton + Left = 167 + Top = 248 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton34: TSpeedButton + Left = 249 + Top = 248 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton35: TSpeedButton + Left = 331 + Top = 248 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton36: TSpeedButton + Left = 413 + Top = 248 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton37: TSpeedButton + Left = 3 + Top = 332 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton38: TSpeedButton + Left = 85 + Top = 332 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton39: TSpeedButton + Left = 167 + Top = 332 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton40: TSpeedButton + Left = 249 + Top = 332 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton41: TSpeedButton + Left = 331 + Top = 332 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton42: TSpeedButton + Left = 413 + Top = 332 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object Panel6: TPanel + Left = 174 + Top = 263 + Width = 1035 + Height = 428 + TabOrder = 8 + Visible = False + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 1033 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #36873#21333 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 1000 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button2: TButton + Left = 144 + Top = 366 + Width = 65 + Height = 51 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Button3: TButton + Left = 776 + Top = 366 + Width = 65 + Height = 51 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button3Click + end + object cxGrid4: TcxGrid + Left = 3 + Top = 25 + Width = 1027 + Height = 330 + TabOrder = 3 + object TvSel: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = TvSelCellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object cxGridDBColumn2: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.OnChange = cxGridDBColumn2PropertiesChange + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle6 + Width = 84 + end + object vSelColumn3: TcxGridDBColumn + Caption = #29983#20135#24207#21495 + DataBinding.FieldName = 'SCOrder' + Options.Focusing = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 74 + end + object vSelColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle6 + Width = 149 + end + object vSelColumn4: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 76 + end + object vSelColumn6: TcxGridDBColumn + Caption = #23450#21367#38271 + DataBinding.FieldName = 'BigLen' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object vSelColumn5: TcxGridDBColumn + Caption = #23450#21367#25968 + DataBinding.FieldName = 'BigCount' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #29983#20135#38376#24133 + DataBinding.FieldName = 'BigFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle6 + Styles.Header = cxStyle1 + Width = 71 + end + object vSelColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + Width = 66 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle6 + Width = 43 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle6 + Width = 60 + end + object vSelColumn2: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + Styles.Content = cxStyle6 + Width = 38 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TvSel + end + end + end + object MovePanel1: TMovePanel + Left = 26 + Top = 254 + Width = 439 + Height = 299 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 9 + Visible = False + object Label17: TLabel + Left = 50 + Top = 47 + Width = 120 + Height = 29 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 237 + Top = 116 + Width = 30 + Height = 29 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 353 + Top = 55 + Width = 16 + Height = 29 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 353 + Top = 167 + Width = 16 + Height = 29 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 51 + Top = 116 + Width = 112 + Height = 29 + Caption = 'Label21' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 171 + Top = 47 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Edit1Click + end + object Button1: TButton + Left = 73 + Top = 223 + Width = 75 + Height = 49 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object Button4: TButton + Left = 299 + Top = 223 + Width = 75 + Height = 49 + Caption = #21462#28040 + TabOrder = 2 + OnClick = Button4Click + end + object Edit2: TEdit + Left = 171 + Top = 157 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Edit2Click + OnKeyPress = MainIdKeyPress + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 48 + Top = 40 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 296 + Top = 128 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 328 + Top = 128 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 360 + Top = 128 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 400 + Top = 128 + end + object ADOCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 432 + Top = 128 + end + object ADOTmp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 464 + Top = 128 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 536 + Top = 128 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 128 + ReportData = {} + end + object DataSource2: TDataSource + DataSet = CDS_MJCD + Left = 672 + Top = 136 + end + object CDS_MJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 632 + Top = 144 + end + object DataSource3: TDataSource + DataSet = CDS_MJID + Left = 1000 + Top = 296 + end + object CDS_MJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1016 + Top = 312 + end + object Timer1: TTimer + Interval = 100 + OnTimer = Timer1Timer + Left = 944 + Top = 320 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 592 + Top = 136 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end + object cxStyleRepository3: TcxStyleRepository + object cxStyle4: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object cxStyleRepository4: TcxStyleRepository + object cxStyle5: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object cxStyleRepository5: TcxStyleRepository + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 624 + Top = 432 + end +end diff --git a/盛纺贸易管理/U_MJManageNew.pas b/盛纺贸易管理/U_MJManageNew.pas new file mode 100644 index 0000000..85ef37b --- /dev/null +++ b/盛纺贸易管理/U_MJManageNew.pas @@ -0,0 +1,1621 @@ +unit U_MJManageNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport, + RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, + cxGridPopupMenu, ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons, + cxSplitter, cxCheckBox, MovePanel; +{function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer):integer;stdcall;external 'JCYData.DLL'; +function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL';} + + +type + TfrmMJManageNew = class(TForm) + Panel1: TPanel; + MainId: TEdit; + Label1: TLabel; + Label2: TLabel; + OrderNo: TEdit; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + ADOTmp: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ToolBar1: TToolBar; + TBClose: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + TBCD: TToolButton; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + DataSource2: TDataSource; + CDS_MJCD: TClientDataSet; + DataSource3: TDataSource; + CDS_MJID: TClientDataSet; + v2Column1: TcxGridDBColumn; + Panel5: TPanel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + Label13: TLabel; + MJMaoZ: TEdit; + MJLen: TEdit; + MJFK: TEdit; + MJBanZu: TEdit; + BTPrint: TButton; + Button38: TButton; + MJSJKZ: TEdit; + CDQty: TEdit; + Timer1: TTimer; + Label14: TLabel; + BTAdd: TButton; + BTEdit: TButton; + ADOQueryPrint: TADOQuery; + Label15: TLabel; + Label16: TLabel; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + ToolButton1: TToolButton; + Button5: TButton; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + SpeedButton29: TSpeedButton; + SpeedButton30: TSpeedButton; + SpeedButton31: TSpeedButton; + SpeedButton32: TSpeedButton; + SpeedButton33: TSpeedButton; + SpeedButton34: TSpeedButton; + SpeedButton35: TSpeedButton; + SpeedButton36: TSpeedButton; + SpeedButton37: TSpeedButton; + SpeedButton38: TSpeedButton; + SpeedButton39: TSpeedButton; + SpeedButton40: TSpeedButton; + SpeedButton41: TSpeedButton; + SpeedButton42: TSpeedButton; + Panel6: TPanel; + Panel10: TPanel; + Image2: TImage; + Button2: TButton; + Button3: TButton; + cxGrid4: TcxGrid; + TvSel: TcxGridDBTableView; + cxGridDBColumn2: TcxGridDBColumn; + vSelColumn1: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + vSelColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Edit1: TEdit; + Button1: TButton; + Button4: TButton; + Edit2: TEdit; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle4: TcxStyle; + v1Column10: TcxGridDBColumn; + cxStyleRepository4: TcxStyleRepository; + cxStyle5: TcxStyle; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + v1Column11: TcxGridDBColumn; + vSelColumn3: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + vSelColumn4: TcxGridDBColumn; + vSelColumn5: TcxGridDBColumn; + vSelColumn6: TcxGridDBColumn; + vSelColumn7: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure MainIdKeyPress(Sender: TObject; var Key: Char); + procedure TBCloseClick(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBCDClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button38Click(Sender: TObject); + procedure MJMaoZClick(Sender: TObject); + procedure MJLenClick(Sender: TObject); + procedure MJFKClick(Sender: TObject); + procedure MJBanZuClick(Sender: TObject); + procedure MJSJKZClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormClick(Sender: TObject); + procedure Button12Click(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure MJMaoZChange(Sender: TObject); + procedure BTAddClick(Sender: TObject); + procedure BTEditClick(Sender: TObject); + procedure BTPrintClick(Sender: TObject); + procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure TvSelCellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxGridDBColumn2PropertiesChange(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Edit1Click(Sender: TObject); + procedure Edit2Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + private + { Private declarations } + FInt,PState,PrintInt,SCInitGrid:Integer; + FColumn:String; + MValue,FCDName:String; + procedure InitJP(); + procedure InitGrid(); + procedure InitCDGrid(); + procedure InitCDGridID(); + procedure AddCD(Fbtn:TButton); + procedure AddSL(Fbtn:TButton); + function SaveData():Boolean; + procedure BtnStatus(BSInt:Boolean); + procedure AddSLNew(Fbtn:TSpeedButton); + procedure AddCDNew(Fbtn:TSpeedButton); + public + { Public declarations } + end; + +var + frmMJManageNew: TfrmMJManageNew; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp,U_iniParam; + +{$R *.dfm} + +procedure TfrmMJManageNew.FormDestroy(Sender: TObject); +begin + frmMJManageNew:=nil; +end; + +procedure TfrmMJManageNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + //DataLink_WFBProducttion.ADOLink.Connected:=False; + Action:=caFree; +end; +procedure TfrmMJManageNew.MainIdKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + InitGrid(); + InitCDGridID(); + ADOQueryMain.First; + SSetWinData(ADOQueryMain,Panel5); + if CDS_MJID.IsEmpty then + begin + SClearData(Panel5,0); + end; + InitCDGrid(); + + end; +end; +procedure TfrmMJManageNew.InitGrid(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + //sql.Add('select A.OrderNo,B.* from WFBOrder_Main A inner join WFBOrder_Sub B on A.MainId=B.MainId where A.MainID='''+Trim(MainId.Text)+''''); + { sql.Add('select A.OrderNo,B.* from WFBOrder_Main A inner join WFBOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' inner join WFBOrder_Main_Attachment C on C.MainId=A.MainId'); + sql.Add(' where not exists(select * from WFBOrder_Status D where D.MainId=A.MainId and D.OSFlag10=1)'); } + sql.Add(' exec P_ProductAnPai :begdate,:enddate,:pstate,:WSQl'); + Parameters.ParamByName('begdate').Value:=''; + Parameters.ParamByName('enddate').Value:=''; + Parameters.ParamByName('pstate').Value:=2; + Parameters.ParamByName('WSQl').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_MJ); + SInitCDSData20(ADOQueryMain,Order_MJ); + MainId.Text:=''; +end; +procedure TfrmMJManageNew.InitCDGrid(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + if PState=1 then + sql.Add('select * from WFB_MJJY_CD where MJID='''' ') + else + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJCD); + SInitCDSData20(ADOQueryMain,CDS_MJCD); + //MainId.Text:=''; +end; +procedure TfrmMJManageNew.InitCDGridID(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where SubID='''+Trim(Order_MJ.fieldbyname('SubID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJID); + SInitCDSData20(ADOQueryMain,CDS_MJID); + //MainId.Text:=''; +end; + +procedure TfrmMJManageNew.TBCloseClick(Sender: TObject); +var + maxno:string; +begin + WriteCxGrid('ĸϢ1',Tv1,'޷IJ'); + WriteCxGrid('ĸϢ2',TvSel,'޷IJ'); + if CDS_MJCD.IsEmpty=False then + begin + if Trim(CDS_MJCD.FieldByName('MCID').AsString)='' then + begin + //try + //ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete from WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+''''); + Execsql; + end; + with CDS_MJCD do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'LS','WFB_MJJY_CD_Temp',2,1)=False then + begin + // ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡõʱʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD_Temp where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD_Temp',0); + FieldByName('JTType').Value:=Trim(SCXFlag); + Post; + end; + Next; + end; + end; + close; + //ADOCmd.Connection.CommitTrans; + //ModalResult:=1; + //except + //ADOCmd.Connection.RollbackTrans; + //Application.MessageBox('ʱʧܣ','ʾ',0); + //end; + end else + begin + Close; + end; + end else + begin + Close; + end; + + + +end; + +procedure TfrmMJManageNew.Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + fsj:string; +begin + //FInt:=0; + //Tv1.DataController.FocusedRecordIndex; + //fsj:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; +end; + +procedure TfrmMJManageNew.TBCDClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCD'; + flagname:='޷IJõ'; + if ShowModal=1 then + begin + Self.InitJP(); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManageNew.FormShow(Sender: TObject); +begin + ReadCxGrid('ĸϢ1',Tv1,'޷IJ'); + ReadCxGrid('ĸϢ2',TvSel,'޷IJ'); + InitJP(); + InitGrid(); + with ADOTmp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD where MJID='''' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJCD); + SInitCDSData20(ADOQueryMain,CDS_MJCD); + PState:=1; + with ADOTmp do + begin + First; + while not Eof do + begin + with CDS_MJCD do + begin + Append; + FieldByName('CDName').Value:=ADOTmp.fieldbyname('CDName').Value; + FieldByName('CDBeg').Value:=ADOTmp.fieldbyname('CDBeg').Value; + FieldByName('CDEnd').Value:=ADOTmp.fieldbyname('CDEnd').Value; + FieldByName('CDQty').Value:=ADOTmp.fieldbyname('CDQty').Value; + Post; + end; + Next; + end; + end; + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + MJBanZu.Text:=Trim(ADOTmp.fieldbyname('BanZu').AsString); + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+''''); + ExecSQL; + end; + end; +end; +procedure TfrmMJManageNew.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD'' order by ZDYNO '); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ûжõ㣡','ʾ',0); + Exit; + end; + with ADOTmp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + if i>29 then + begin + i:=29; + end; + for j:=0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible:=True; + TSpeedButton(Controls[j]).Hint:=AA[j]; + if Length(AA[j])>4 then + begin + TSpeedButton(Controls[j]).Caption:=Copy(Trim(AA[j]),1,4)+#13+Copy(Trim(AA[j]),5,Length(AA[j])-4); + end else + TSpeedButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmMJManageNew.AddCD(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TButton(Fbtn).Caption); + Post; + end; +end; +procedure TfrmMJManageNew.AddCDNew(Fbtn:TSpeedButton); +begin + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TSpeedButton(Fbtn).Hint); + Post; + end; +end; +procedure TfrmMJManageNew.AddSL(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=1 then + begin + MJMaoZ.Text:=Trim(MJMaoZ.Text)+Trim(TButton(Fbtn).Caption); + end else + if FInt=2 then + begin + MJLen.Text:=Trim(MJLen.Text)+Trim(TButton(Fbtn).Caption); + end else + if FInt=3 then + begin + MJFK.Text:=Trim(MJFK.Text)+Trim(TButton(Fbtn).Caption); + end else + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; +end; +procedure TfrmMJManageNew.AddSLNew(Fbtn:TSpeedButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=1 then + begin + MJMaoZ.Text:=Trim(MJMaoZ.Text)+Trim(TSpeedButton(Fbtn).Caption); + MJMaoZ.SelectAll; + end else + if FInt=2 then + begin + MJLen.Text:=Trim(MJLen.Text)+Trim(TSpeedButton(Fbtn).Caption); + MJLen.SelectAll; + end else + if FInt=3 then + begin + MJFK.Text:=Trim(MJFK.Text)+Trim(TSpeedButton(Fbtn).Caption); + MJFK.SelectAll; + end else + if FInt=11 then + begin + if TSpeedButton(Fbtn).Tag=9 then Exit; + Edit1.Text:=Trim(Edit1.Text)+Trim(TSpeedButton(Fbtn).Caption); + Edit1.SelectAll; + end else + if FInt=12 then + begin + if TSpeedButton(Fbtn).Tag=9 then Exit; + Edit2.Text:=Trim(Edit2.Text)+Trim(TSpeedButton(Fbtn).Caption); + Edit2.SelectAll; + end;{ else + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; } +end; + +procedure TfrmMJManageNew.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + //if Tv2.OptionsSelection.CellSelect=True then + if CDS_MJCD.IsEmpty then Exit; + if CDS_MJCD.FieldByName('MJID').AsString='' then + begin + CDS_MJCD.Delete; + end; +end; + +procedure TfrmMJManageNew.Button38Click(Sender: TObject); +begin + FColumn:=''; + FInt:=0; + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBBZ'; + flagname:=''; + if ShowModal=1 then + begin + Self.MJBanZu.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManageNew.MJMaoZClick(Sender: TObject); +begin + FInt:=1; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNew.MJLenClick(Sender: TObject); +begin + FInt:=2; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNew.MJFKClick(Sender: TObject); +begin + FInt:=3; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNew.MJBanZuClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNew.MJSJKZClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNew.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + //DataLink_WFBProducttion.ADOLink.Connected:=False; + FInt:=4; + // if PState=1 then Exit; + InitCDGridID(); + //InitCDGrid(); + {with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + MJMaoZ.Text:=''; + MJLen.Text:=''; + MJFK.Text:=''; + MJSJKZ.Text:=''; + end else + SSetWinData(ADOTmp,Panel5); } +end; + +procedure TfrmMJManageNew.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MJCD.IsEmpty=False then + begin + if Trim(CDS_MJCD.fieldbyname('MJID').AsString)='' then + begin + Application.MessageBox('δ,!','ʾ',0); + Exit; + end; + end; + + FInt:=4; + PState:=0; + InitCDGrid(); + with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + MJMaoZ.Text:=''; + MJLen.Text:=''; + MJFK.Text:=''; + MJSJKZ.Text:=''; + end else + SSetWinData(ADOTmp,Panel5); + BtnStatus(False); + Label16.Caption:=''; +end; + + +procedure TfrmMJManageNew.FormClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNew.Button12Click(Sender: TObject); +var + fsj:string; +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=1 then + begin + if Trim(MJMaoZ.Text)<>'' then + MJMaoZ.Text:=Copy(Trim(MJMaoZ.Text),1,Length(Trim(MJMaoZ.Text))-1); + end else + if FInt=2 then + begin + if Trim(MJLen.Text)<>'' then + MJLen.Text:=Copy(Trim(MJLen.Text),1,Length(Trim(MJLen.Text))-1); + end else + if FInt=3 then + begin + if Trim(MJFK.Text)<>'' then + MJFK.Text:=Copy(Trim(MJFK.Text),1,Length(Trim(MJFK.Text))-1); + end else + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + if Trim(CDS_MJCD.FieldByName(FColumn).AsString)<>'' then + begin + with CDS_MJCD do + begin + Edit; + if Length(CDS_MJCD.FieldByName(FColumn).AsString)=1 then + begin + FieldByName(FColumn).Value:=null ; + FieldByName('CDQty').Value:=0; + end + else + begin + FieldByName(FColumn).Value:=Copy(Trim(FieldByName(FColumn).AsString),1,Length(Trim(FieldByName(FColumn).AsString))-1); + FieldByName('CDQty').Value:=FieldByName(FColumn).Value; + end; + Post; + end; + //MValue:=TcxTextEdit(Tv2CDQty).EditingText; + //BTPrint.SetFocus; + end; + + + end; + end; +end; + +procedure TfrmMJManageNew.Timer1Timer(Sender: TObject); +begin + CDQty.Text:=Tv2.DataController.Summary.FooterSummaryTexts[0]; +end; + +procedure TfrmMJManageNew.MJMaoZChange(Sender: TObject); +var + KZSX,KZXX,FMJMaoZ,FMJLen,FMJFK:string; +begin + if PState=0 then Exit; + if (Trim(MJMaoZ.Text)<>'') and (Trim(MJLen.Text)<>'') and (Trim(MJFK.Text)<>'') then + begin + MJSJKZ.Text:=FloatToStr(StrToFloat(MJMaoZ.Text)/(StrToFloat(MJLen.Text)*StrToFloat(MJFK.Text)/100)) ; + MJSJKZ.Text:=FloatToStr(SSWR(StrToFloat(MJSJKZ.Text)*1000)); + //KZSX:=Trim(Order_MJ.fieldbyname('MJKZD').AsString); + //KZXX:=Trim(Order_MJ.fieldbyname('MJKZX').AsString); + KZSX:=Trim(Order_MJ.fieldbyname('KZBig').AsString); + KZXX:=Trim(Order_MJ.fieldbyname('KZSmal').AsString); + if (StrToFloat(MJSJKZ.Text)>=StrToFloat(KZXX)) and (StrToFloat(MJSJKZ.Text)<=StrToFloat(KZSX)) then + begin + Label14.Visible:=True; + Label14.Caption:='ĸ'; + Label14.Font.Color:=clBlue; + end else + if StrToFloat(MJSJKZ.Text)StrToFloat(KZSX) then + begin + Label14.Visible:=True; + Label14.Caption:='ĸس>'+floattostr(StrToFloat(MJSJKZ.Text)-StrToFloat(KZSX))+'g/O'; + Label14.Font.Color:=clRed; + end; + end else + begin + MJSJKZ.Text:=''; + Label14.Caption:=''; + Label14.Visible:=False; + end; + +end; + +function TfrmMJManageNew.SaveData():Boolean; +var + maxno,FMJID,BZID:String; + FMJLen:Double; + FOrder:Integer; +begin + if PState=1 then + FMJID:='' + else if PState=2 then + FMJID:=Trim(CDS_MJID.fieldbyname('MJID').AsString) + else if PState<1 then Exit; + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where MJId='''+Trim(FMJID)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMJID)='' then + begin + Append; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select Max(Cast(MJID as int)) as MJIDInt from WFB_JYResult'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where JTType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + maxno:=Trim(ADOTmp.fieldbyname('MJIDInt').AsString); + + {if GetLSNo(ADOTmp,maxno,Trim(SCXFlag),'WFB_MJJY',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; } + end + else begin + maxno:=Trim(FMJID); + Edit; + end; + FieldByName('MainId').value:=Trim(Order_MJ.fieldbyname('MainId').AsString); + FieldByName('SubId').value:=Trim(Order_MJ.fieldbyname('SubId').AsString); + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MJMaoZ').Value:=Trim(MJMaoZ.Text); + FieldByName('MJLen').Value:=Trim(MJLen.Text); + FieldByName('MJFK').Value:=Trim(MJFK.Text); + FieldByName('MJSJKZ').Value:=Trim(MJSJKZ.Text); + FieldByName('MJBanZu').Value:=Trim(MJBanZu.Text); + if Trim(FMJID)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTmp); + end; + if Trim(SCXFlag)<>'' then + begin + FieldByName('JTType').Value:=Trim(SCXFlag); + end; + Post; + end; + FMJID:=Trim(maxno); + ///ĸõ + with CDS_MJCD do + begin + First; + while not Eof do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + begin + if GetLSNo(ADOTmp,maxno,'MC','WFB_MJJY_CD',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_MJCD.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + Append + else + Edit; + FieldByName('MJId').Value:=Trim(FMJID); + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD',0); + Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('MCID').Value:=Trim(maxno); + Next; + end; + end; + //Ա + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from WFB_BanZu where MJID='''+Trim(FMJID)+''''); + sql.Add(' and BanZu='''+Trim(MJBanZu.Text)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from WFB_BanZu where MJID='''+Trim(FMJID)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + FMJLen:=0; + end else + begin + FMJLen:=ADOTmp.fieldbyname('MJLen').Value; + end; + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where BanZu='''+Trim(MJBanZu.Text)+''''); + Open; + end; + with ADOTmp do + begin + First; + while not eof do + begin + if GetLSNo(ADOCmd,BZID,'BZ','WFB_BanZu',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_BanZu where 1<>1'); + open; + end; + with ADOCmd do + begin + Append; + FieldByName('BZID').Value:=Trim(BZID); + FieldByName('BanZu').Value:=Trim(MJBanZu.Text); + FieldByName('MJID').Value:=Trim(FMJID); + FieldByName('MJLen').Value:=StrToFloat(MJLen.Text)-FMJlen; + FieldByName('UserId').Value:=Trim(ADOTmp.fieldbyname('UserId').AsString); + FieldByName('UserName').Value:=Trim(ADOTmp.fieldbyname('UserName').AsString); + FieldByName('Filler').Value:=Trim(DName); + Post; + end; + Next; + end; + end; + end; + //Ա + with Order_MJ do + begin + Edit; + FieldByName('SCMQty').Value:=FieldByName('SCMQty').Value+Strtofloat(MJLen.Text); + Post; + end; + with Order_MJ do + begin + Edit; + FieldByName('WSCMQty').Value:=FieldByName('OrderQtyM').Value-FieldByName('SCMQty').Value; + Post; + end; + if ((Order_MJ.FieldByName('SCMQty').Value-Order_MJ.FieldByName('OrderQtyM').Value)/Order_MJ.FieldByName('OrderQtyM').Value )>=0 then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set SCStatus='''',SCOrder='''' '); + SQL.Add(' where SubId='''+Trim(Order_MJ.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('exec P_ProductAnPai_JY'); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + FOrder:=1; + with ADOTmp do + begin + First; + while not Eof do + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set SCOrder='''+Trim(IntToStr(FOrder))+''''); + SQL.Add(' where SubId='''+Trim(ADOTmp.FieldByName('SubId').Asstring)+''''); + ExecSQL; + end; + FOrder:=FOrder+1; + Next; + end; + end; + SCInitGrid:=1; + end; + end else + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set SCStatus='''' '); + SQL.Add(' where SubId='''+Trim(Order_MJ.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + InitCDGridID(); + CDS_MJID.Locate('MJID',FMJID,[]); + PState:=0; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmMJManageNew.BTAddClick(Sender: TObject); +begin + + if PState=1 then + begin + if( (CDS_MJCD.IsEmpty=False) or (Trim(MJMaoZ.Text)<>'') or (Trim(MJLen.Text)<>'') or (Trim(MJFK.Text)<>'') ) then + if Application.MessageBox(PChar(' δӡǷҪ?'+#13+#13+'"(Y)"ǰݽᶪʧ'),'ʾ',32+4)<>IDYES then Exit; + end; + if Order_MJ.IsEmpty then Exit; + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select BanZu from SY_User where UserId='''+Trim(DCode)+''''); + Open; + MJBanZu.Text:=Trim(Fieldbyname('BanZu').AsString); + end; + if Trim(MJBanZu.Text)='' then + begin + Application.MessageBox('Ϊգð飡','ʾ',0); + Exit; + end; + PState:=1; + InitCDGrid(); + SClearData(Panel5,0); + {Tv2.OptionsSelection.CellSelect:=True; + MJMaoZ.ReadOnly:=False; + MJLen.ReadOnly:=False; + MJFK.ReadOnly:=False; + Button38.Enabled:=True; } + BtnStatus(True); + + Label16.Caption:=''; +end; + +procedure TfrmMJManageNew.BTEditClick(Sender: TObject); +begin + if CDS_MJID.IsEmpty then Exit; + PState:=2; + Label16.Caption:='޸'; +end; + +procedure TfrmMJManageNew.BTPrintClick(Sender: TObject); +var + fPrintFile,FFMJFK,FFYDFK:string; +begin + if Order_MJ.IsEmpty then Exit; + if FInt=4 then + begin + if CDS_MJID.IsEmpty=False then + begin + Application.MessageBox('Ѵ룿볢ش','ʾ',0); + Exit; + end; + end; + if Trim(MJMaoZ.Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end; + if Trim(MJLen.Text)='' then + begin + Application.MessageBox('ȲΪգ','ʾ',0); + Exit; + end; + if Trim(MJFK.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + FFMJFK:=Trim(MJFK.Text); + FFYDFK:=Trim(Order_MJ.fieldbyname('BigMF').AsString); + if ((StrToFloat(FFMJFK)-StrToFloat(FFYDFK))/StrToFloat(FFYDFK))<-0.3 then + begin + Application.MessageBox('¼','ʾ',0); + Exit; + end; + if ((StrToFloat(FFMJFK)-StrToFloat(FFYDFK))/StrToFloat(FFYDFK))>0.3 then + begin + Application.MessageBox('¼','ʾ',0); + Exit; + end; + if Trim(MJBanZu.Text)='' then + begin + Application.MessageBox('鲻Ϊգ','ʾ',0); + Exit; + end; + Panel6.Visible:=True; + { if PState=1 then + begin + if Application.MessageBox('ȷҪӡ𣿴ӡݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + end; + if SaveData() then + begin + BtnStatus(False); + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select RTrim(A.MJID) MJID,RTrim(A.MJSJKZ) MJSJKZ,RTrim(A.MJFK) MJFK,RTrim(B.OrderNo) OrderNo,RTrim(B.WFBCodeName) WFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; + Label16.Caption:=''; + BTAdd.Click; } +end; +procedure TfrmMJManageNew.BtnStatus(BSInt:Boolean); +begin + Tv2.OptionsSelection.CellSelect:=BSInt; + MJMaoZ.ReadOnly:=not BSInt; + MJLen.ReadOnly:=not BSInt; + MJFK.ReadOnly:=not BSInt; + Button38.Enabled:=BSInt; +end; +procedure TfrmMJManageNew.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + try + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)<>'' then + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=mvalue; + CDS_MJCD.Post; + end else + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=0; + CDS_MJCD.Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQtyS').Value:=mvalue; + except + Application.MessageBox('Ƿ֣','ʾ',0); + end; +end; + +procedure TfrmMJManageNew.SpeedButton1Click(Sender: TObject); +begin + AddSLNew(TSpeedButton(Sender)); +end; + +procedure TfrmMJManageNew.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=1 then + begin + if Trim(MJMaoZ.Text)<>'' then + begin + MJMaoZ.Text:=Copy(Trim(MJMaoZ.Text),1,Length(Trim(MJMaoZ.Text))-1); + MJMaoZ.SelectAll; + end; + end else + if FInt=2 then + begin + if Trim(MJLen.Text)<>'' then + begin + MJLen.Text:=Copy(Trim(MJLen.Text),1,Length(Trim(MJLen.Text))-1); + MJLen.SelectAll; + end; + end else + if FInt=3 then + begin + if Trim(MJFK.Text)<>'' then + begin + MJFK.Text:=Copy(Trim(MJFK.Text),1,Length(Trim(MJFK.Text))-1); + MJFK.SelectAll; + end; + end else + if FInt=11 then + begin + if Trim(Edit1.Text)<>'' then + begin + Edit1.Text:=Copy(Trim(Edit1.Text),1,Length(Trim(Edit1.Text))-1); + Edit1.SelectAll; + end; + end else + if FInt=12 then + begin + if Trim(Edit2.Text)<>'' then + begin + Edit2.Text:=Copy(Trim(Edit2.Text),1,Length(Trim(Edit2.Text))-1); + Edit2.SelectAll; + end; + end;{ else + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + if Trim(CDS_MJCD.FieldByName(FColumn).AsString)<>'' then + begin + with CDS_MJCD do + begin + Edit; + if Length(CDS_MJCD.FieldByName(FColumn).AsString)=1 then + begin + FieldByName(FColumn).Value:=null ; + FieldByName('CDQty').Value:=0; + end + else + begin + FieldByName(FColumn).Value:=Copy(Trim(FieldByName(FColumn).AsString),1,Length(Trim(FieldByName(FColumn).AsString))-1); + FieldByName('CDQty').Value:=FieldByName(FColumn).Value; + end; + Post; + //Tv2.GetColumnByFieldName(FColumn).Selected:=True; + // Tv2.GetColumnByFieldName(FColumn).FocusWithSelection; + //(Tv2.GetColumnByFieldName(FColumn).Properties as TcxTextEditProperties).AutoSelect:=True; + end; + //MValue:=TcxTextEdit(Tv2CDQty).EditingText; + //BTPrint.SetFocus; + end; + + + end; + end;} +end; + +procedure TfrmMJManageNew.SpeedButton13Click(Sender: TObject); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + FCDName:=Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible:=True; + Label21.Caption:=Trim(FCDName); + FInt:=11; + Edit1.SetFocus; + Panel3.Visible:=True; + //AddCDNew(TSpeedButton(Sender)); +end; + +procedure TfrmMJManageNew.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel6).perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmMJManageNew.Image2Click(Sender: TObject); +begin + Panel6.Visible:=False; +end; + +procedure TfrmMJManageNew.Button3Click(Sender: TObject); +begin + Panel6.Visible:=False; +end; + +procedure TfrmMJManageNew.Button2Click(Sender: TObject); +var + fPrintFile:String; +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_JYResult where Cast(MJID as int)>'); + sql.Add(' (select isnull(Max(Cast(MJID as int)),0) from WFB_MJJY '); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where JTType='''+Trim(SCXFlag)+''''); + end; + sql.Add(')'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' and JTType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('δ鲻ܴӡǩ','ʾ',0); + Exit; + end; + if Order_MJ.Locate('SSel',True,[])=False then + begin + Application.MessageBox('δѡ¼','ʾ',0); + Exit; + end; + if PState=1 then + begin + if Application.MessageBox('ǷҪӡ룿ӡݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + Panel6.Visible:=False; + end; + + if SaveData() then + begin + BtnStatus(False); + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add(' select RTrim(A.MJID) MJID,RTrim(Cast(A.MJSJKZ As varchar(20))) MJSJKZ,RTrim(Cast(A.MJFK as varchar(20))) MJFK,RTrim(B.OrderNo) OrderNo,'); + sql.Add(' RTrim(Cast(A.MJMaoZ As varchar(20))) MJMaoZ,RTrim(Cast(A.MJLen As varchar(20))) MJLen,'); + sql.Add(' Rtrim(C.SWFBColor) SWFBColor,Rtrim(Cast(C.SWFBKZ as varchar(20))) SWFBKZ, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if SCInitGrid=1 then + begin + InitGrid(); + SCInitGrid:=0; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; + Label16.Caption:=''; + BTAdd.Click; +end; + +procedure TfrmMJManageNew.TvSelCellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + fsj:String; +begin + + { fsj:=Trim(Order_MJ.fieldbyname('SubId').AsString); + Order_MJ.DisableControls; + with Order_MJ do + begin + First; + while not Eof do + begin + if Trim(Order_MJ.fieldbyname('SubId').AsString)<>fsj then + begin + Edit; + FieldByName('SSel').Value:=False; + end; + Next; + end; + end; + Order_MJ.EnableControls; + Order_MJ.Locate('SubId',fsj,[]); } +end; + +procedure TfrmMJManageNew.cxGridDBColumn2PropertiesChange(Sender: TObject); +var + fsj:String; +begin + + fsj:=Trim(Order_MJ.fieldbyname('SubId').AsString); + Order_MJ.DisableControls; + with Order_MJ do + begin + First; + while not Eof do + begin + if Trim(Order_MJ.fieldbyname('SubId').AsString)<>fsj then + begin + Edit; + FieldByName('SSel').Value:=False; + end; + Next; + end; + end; + Order_MJ.EnableControls; + Order_MJ.Locate('SubId',fsj,[]); +end; + +procedure TfrmMJManageNew.Button1Click(Sender: TObject); +begin + + //MovePanel1.Visible:=True; + if Trim(Edit1.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(FCDName); + FieldByName('CDbeg').Value:=Trim(Edit1.Text); + FieldByName('CDEnd').Value:=Trim(Edit2.Text); + if Trim(Edit2.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; + Post; + end; + Edit1.Text:=''; + Edit2.Text:=''; + MovePanel1.Visible:=False; +end; + +procedure TfrmMJManageNew.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmMJManageNew.ToolButton1Click(Sender: TObject); +begin + InitGrid(); + InitJP(); +end; + +procedure TfrmMJManageNew.Edit1Click(Sender: TObject); +begin + FInt:=11; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNew.Edit2Click(Sender: TObject); +begin + FInt:=12; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNew.Button5Click(Sender: TObject); +var + fPrintFile:String; +begin + if CDS_MJID.IsEmpty then Exit; + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select RTrim(A.MJID) MJID,RTrim(A.MJSJKZ) MJSJKZ,RTrim(A.MJFK) MJFK,RTrim(B.OrderNo)+'' ش'' OrderNo,'); + sql.Add('RTrim(A.MJLen) MJLen,RTrim(A.MJMaoZ) MJMaoZ,'); + sql.Add('Rtrim(C.SWFBColor) SWFBColor,Rtrim(C.SWFBKZ) SWFBKZ, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmMJManageNew.SpeedButton49Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +end. diff --git a/盛纺贸易管理/U_MJManageNewFD1.dfm b/盛纺贸易管理/U_MJManageNewFD1.dfm new file mode 100644 index 0000000..7b89fda --- /dev/null +++ b/盛纺贸易管理/U_MJManageNewFD1.dfm @@ -0,0 +1,2054 @@ +object frmMJManageNewFD: TfrmMJManageNewFD + Left = 89 + Top = 0 + Width = 912 + Height = 705 + Caption = #25104#21697#26816#39564 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClick = FormClick + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = ToolButton1Click + end + object TBCD: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30133#28857#31649#29702 + ImageIndex = 132 + OnClick = TBCDClick + end + object TBClose: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid2: TcxGrid + Left = 817 + Top = 78 + Width = 403 + Height = 571 + Align = alLeft + TabOrder = 1 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 157 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle1 + Styles.Header = cxStyle1 + Width = 82 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Content = cxStyle1 + Styles.Header = cxStyle1 + Width = 81 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = Tv2CDQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + Width = 76 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 1220 + Top = 78 + Width = 146 + Height = 571 + Align = alLeft + TabOrder = 2 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = cxStyle4 + Styles.IncSearch = cxStyle4 + Styles.Selection = cxStyle4 + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24050#30331#35760 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle5 + Styles.Header = cxStyle5 + Width = 137 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 78 + Width = 601 + Height = 571 + Align = alLeft + TabOrder = 3 + object SpeedButton13: TSpeedButton + Left = 3 + Top = 0 + Width = 70 + Height = 70 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 77 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 151 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 225 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 299 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 373 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton19: TSpeedButton + Left = 447 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton20: TSpeedButton + Left = 521 + Top = 0 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 3 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 77 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 151 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 225 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 299 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 373 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton27: TSpeedButton + Left = 447 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton28: TSpeedButton + Left = 521 + Top = 74 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton29: TSpeedButton + Left = 3 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton30: TSpeedButton + Left = 77 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton31: TSpeedButton + Left = 151 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton32: TSpeedButton + Left = 225 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton33: TSpeedButton + Left = 299 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton34: TSpeedButton + Left = 373 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton35: TSpeedButton + Left = 447 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton36: TSpeedButton + Left = 521 + Top = 148 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton37: TSpeedButton + Left = 3 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton38: TSpeedButton + Left = 77 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton39: TSpeedButton + Left = 151 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton40: TSpeedButton + Left = 225 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton41: TSpeedButton + Left = 299 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton42: TSpeedButton + Left = 373 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton43: TSpeedButton + Left = 447 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton44: TSpeedButton + Left = 521 + Top = 222 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton45: TSpeedButton + Left = 3 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton46: TSpeedButton + Left = 77 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton47: TSpeedButton + Left = 151 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton48: TSpeedButton + Left = 225 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton50: TSpeedButton + Left = 299 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton51: TSpeedButton + Left = 373 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton52: TSpeedButton + Left = 447 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton53: TSpeedButton + Left = 521 + Top = 296 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton54: TSpeedButton + Left = 3 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton55: TSpeedButton + Left = 77 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton56: TSpeedButton + Left = 151 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton57: TSpeedButton + Left = 225 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton58: TSpeedButton + Left = 299 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton59: TSpeedButton + Left = 373 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton60: TSpeedButton + Left = 447 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton61: TSpeedButton + Left = 521 + Top = 370 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton62: TSpeedButton + Left = 3 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton63: TSpeedButton + Left = 77 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton64: TSpeedButton + Left = 151 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton65: TSpeedButton + Left = 225 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton66: TSpeedButton + Left = 299 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton67: TSpeedButton + Left = 373 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton68: TSpeedButton + Left = 447 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton69: TSpeedButton + Left = 521 + Top = 444 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton70: TSpeedButton + Left = 3 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton71: TSpeedButton + Left = 77 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton72: TSpeedButton + Left = 151 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton73: TSpeedButton + Left = 225 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton74: TSpeedButton + Left = 299 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton75: TSpeedButton + Left = 373 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton76: TSpeedButton + Left = 447 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton77: TSpeedButton + Left = 521 + Top = 518 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object MovePanel1: TMovePanel + Left = 136 + Top = 112 + Width = 313 + Height = 281 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 4 + Visible = False + object Label17: TLabel + Left = 29 + Top = 24 + Width = 88 + Height = 21 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 178 + Top = 59 + Width = 20 + Height = 19 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 264 + Top = 24 + Width = 22 + Height = 21 + Caption = #30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 264 + Top = 89 + Width = 22 + Height = 21 + Caption = #30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 29 + Top = 89 + Width = 84 + Height = 21 + Caption = 'Label21' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 264 + Top = 167 + Width = 22 + Height = 21 + Caption = #30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 29 + Top = 167 + Width = 92 + Height = 21 + Caption = #38271' '#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 124 + Top = 14 + Width = 131 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnChange = Edit2Change + OnClick = Edit1Click + end + object Button1: TButton + Left = 36 + Top = 221 + Width = 66 + Height = 43 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button1Click + end + object Button4: TButton + Left = 190 + Top = 221 + Width = 64 + Height = 42 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button4Click + end + object Edit2: TEdit + Left = 124 + Top = 79 + Width = 131 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnChange = Edit2Change + OnClick = Edit1Click + end + object CDQty: TEdit + Left = 124 + Top = 157 + Width = 131 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + end + end + object Panel1: TPanel + Left = 0 + Top = 30 + Width = 1366 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 5 + object Label1: TLabel + Left = 9 + Top = 16 + Width = 80 + Height = 19 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 280 + Top = 15 + Width = 11 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 864 + Top = 13 + Width = 42 + Height = 12 + Caption = 'Label16' + Visible = False + end + object APID: TEdit + Left = 88 + Top = 12 + Width = 185 + Height = 27 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = APIDKeyPress + end + object BTAdd: TButton + Left = 739 + Top = 8 + Width = 46 + Height = 25 + Caption = #26032#22686 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = BTAddClick + end + object BTEdit: TButton + Left = 819 + Top = 8 + Width = 38 + Height = 25 + Caption = #20462#25913 + TabOrder = 2 + Visible = False + OnClick = BTEditClick + end + end + object Panel3: TPanel + Left = 13 + Top = 394 + Width = 588 + Height = 154 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 6 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 70 + Height = 70 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 78 + Top = 3 + Width = 70 + Height = 70 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 152 + Top = 3 + Width = 70 + Height = 70 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 226 + Top = 3 + Width = 70 + Height = 70 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 300 + Top = 5 + Width = 70 + Height = 70 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 374 + Top = 5 + Width = 70 + Height = 70 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 5 + Top = 78 + Width = 70 + Height = 70 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 79 + Top = 78 + Width = 70 + Height = 70 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 153 + Top = 80 + Width = 70 + Height = 70 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 227 + Top = 80 + Width = 70 + Height = 70 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 301 + Top = 80 + Width = 70 + Height = 70 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 375 + Top = 80 + Width = 70 + Height = 70 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 456 + Top = 52 + Width = 89 + Height = 69 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object Panel2: TPanel + Left = 601 + Top = 78 + Width = 216 + Height = 571 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 7 + object Label9: TLabel + Left = 174 + Top = 79 + Width = 15 + Height = 22 + Caption = 'M' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 174 + Top = 136 + Width = 26 + Height = 22 + Caption = 'cm' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 174 + Top = 191 + Width = 24 + Height = 22 + Caption = 'Kg' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 17 + Top = 79 + Width = 40 + Height = 23 + Caption = #38271#24230 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label6: TLabel + Left = 17 + Top = 136 + Width = 40 + Height = 23 + Caption = #24133#23485 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label11: TLabel + Left = 17 + Top = 191 + Width = 40 + Height = 23 + Caption = #37325#37327 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 17 + Top = 290 + Width = 40 + Height = 23 + Caption = #27491#21697 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 114 + Top = 290 + Width = 40 + Height = 22 + Caption = #27425#21697 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 174 + Top = 18 + Width = 15 + Height = 22 + Caption = 'M' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label14: TLabel + Left = 17 + Top = 18 + Width = 40 + Height = 23 + Caption = #21407#30721 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 79 + Top = 348 + Width = 5 + Height = 22 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + Visible = False + end + object Label22: TLabel + Left = 174 + Top = 239 + Width = 36 + Height = 22 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label23: TLabel + Left = 17 + Top = 238 + Width = 40 + Height = 23 + Caption = #20811#37325 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object MJFK: TEdit + Left = 61 + Top = 127 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Edit1Click + end + object MJLen: TEdit + Left = 61 + Top = 70 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Edit1Click + end + object MJMaoZ: TEdit + Left = 61 + Top = 182 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Edit1Click + end + object BTPrint: TButton + Left = 56 + Top = 354 + Width = 105 + Height = 70 + Caption = #25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = BTPrintClick + end + object Button5: TButton + Left = 56 + Top = 458 + Width = 105 + Height = 70 + Caption = #37325#25171 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = Button5Click + end + object Edit3: TEdit + Left = 62 + Top = 280 + Width = 46 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Text = #8730 + OnClick = Edit3Click + end + object Edit4: TEdit + Left = 156 + Top = 280 + Width = 46 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + OnClick = Edit4Click + end + object MJQty1: TEdit + Left = 61 + Top = 9 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = Edit1Click + end + object MJSJKZ: TEdit + Left = 61 + Top = 229 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = Edit1Click + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 368 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 400 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 616 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 432 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 576 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 536 + end + object ADOTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 504 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 648 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 464 + ReportData = {} + end + object DataSource2: TDataSource + DataSet = CDS_MJCD + Left = 616 + Top = 48 + end + object CDS_MJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 656 + Top = 48 + end + object DataSource3: TDataSource + DataSet = CDS_MJID + Left = 1000 + Top = 296 + end + object CDS_MJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1016 + Top = 312 + end + object Timer1: TTimer + Interval = 100 + Left = 944 + Top = 320 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 48 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end + object cxStyleRepository3: TcxStyleRepository + object cxStyle4: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object cxStyleRepository4: TcxStyleRepository + object cxStyle5: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object cxStyleRepository5: TcxStyleRepository + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 656 + Top = 467 + end + object ADOQueryMainDSC: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + SQL.Strings = ( + 'select A.*,C.OrderNo,B.SWFBColor,B.SWFBHW,B.SWFBCodeName,' + ' B.SWFBCode,B.SWFBKZ,B.WKMS,B.KZBig,B.KZSmal,' + + ' SCMQty=(select isnull(Sum(MJLen),0) from WFB_MJJY WM wher' + + 'e WM.APId=A.APId and len(WM.MJID)>8),' + + ' Case when A.OrderQtyM-(select isnull(Sum(MJLen),0) from W' + + 'FB_MJJY WM where WM.APId=A.APId )>0 ' + + ' then A.OrderQtyM-(select isnull(Sum(MJLen),0) fr' + + 'om WFB_MJJY WM where WM.APId=A.APId ) else 0 end as WSCMQty' + 'from WFBOrder_Sub_AnPai A ' + 'inner join WFBOrder_Sub B on A.SubId=B.SubId' + 'inner join WFBOrder_Main C on A.MainId=C.MainId' + + 'where C.ChkStatus='#39#23457#26680#36890#36807#39' and RTrim(isnull(A.SCStatus,'#39#39'))<>'#39#24050#23436#25104#39 + + ' ' + 'and isnull(B.AnPaiChkStatus,'#39#39')='#39#23457#26680#36890#36807#39' and A.SCXDFlag=1' + '') + Left = 840 + Top = 144 + end +end diff --git a/盛纺贸易管理/U_MJManageNewFD1.pas b/盛纺贸易管理/U_MJManageNewFD1.pas new file mode 100644 index 0000000..04b40c1 --- /dev/null +++ b/盛纺贸易管理/U_MJManageNewFD1.pas @@ -0,0 +1,1450 @@ +unit U_MJManageNewFD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport, + RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, + cxGridPopupMenu, ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons, + cxSplitter, cxCheckBox, MovePanel; +{function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer):integer;stdcall;external 'JCYData.DLL'; +function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL';} + + +type + TfrmMJManageNewFD = class(TForm) + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + ADOTmp: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ToolBar1: TToolBar; + TBClose: TToolButton; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + TBCD: TToolButton; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + DataSource2: TDataSource; + CDS_MJCD: TClientDataSet; + DataSource3: TDataSource; + CDS_MJID: TClientDataSet; + v2Column1: TcxGridDBColumn; + Timer1: TTimer; + ADOQueryPrint: TADOQuery; + v2Column2: TcxGridDBColumn; + ToolButton1: TToolButton; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + SpeedButton29: TSpeedButton; + SpeedButton30: TSpeedButton; + SpeedButton31: TSpeedButton; + SpeedButton32: TSpeedButton; + SpeedButton33: TSpeedButton; + SpeedButton34: TSpeedButton; + SpeedButton35: TSpeedButton; + SpeedButton36: TSpeedButton; + SpeedButton37: TSpeedButton; + SpeedButton38: TSpeedButton; + SpeedButton39: TSpeedButton; + SpeedButton40: TSpeedButton; + SpeedButton41: TSpeedButton; + SpeedButton42: TSpeedButton; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Edit1: TEdit; + Button1: TButton; + Button4: TButton; + Edit2: TEdit; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle4: TcxStyle; + cxStyleRepository4: TcxStyleRepository; + cxStyle5: TcxStyle; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxGridPopupMenu2: TcxGridPopupMenu; + ADOQueryMainDSC: TADOQuery; + SpeedButton43: TSpeedButton; + SpeedButton44: TSpeedButton; + SpeedButton45: TSpeedButton; + SpeedButton46: TSpeedButton; + SpeedButton47: TSpeedButton; + SpeedButton48: TSpeedButton; + SpeedButton50: TSpeedButton; + SpeedButton51: TSpeedButton; + SpeedButton52: TSpeedButton; + SpeedButton53: TSpeedButton; + SpeedButton54: TSpeedButton; + SpeedButton55: TSpeedButton; + Panel1: TPanel; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + Label1: TLabel; + APID: TEdit; + Label2: TLabel; + BTAdd: TButton; + BTEdit: TButton; + Label16: TLabel; + SpeedButton56: TSpeedButton; + SpeedButton57: TSpeedButton; + SpeedButton58: TSpeedButton; + SpeedButton59: TSpeedButton; + SpeedButton60: TSpeedButton; + SpeedButton61: TSpeedButton; + SpeedButton62: TSpeedButton; + SpeedButton63: TSpeedButton; + SpeedButton64: TSpeedButton; + SpeedButton65: TSpeedButton; + SpeedButton66: TSpeedButton; + SpeedButton67: TSpeedButton; + SpeedButton68: TSpeedButton; + SpeedButton69: TSpeedButton; + SpeedButton70: TSpeedButton; + SpeedButton71: TSpeedButton; + SpeedButton72: TSpeedButton; + SpeedButton73: TSpeedButton; + SpeedButton74: TSpeedButton; + SpeedButton75: TSpeedButton; + SpeedButton76: TSpeedButton; + SpeedButton77: TSpeedButton; + Label7: TLabel; + CDQty: TEdit; + Label8: TLabel; + Panel2: TPanel; + Label9: TLabel; + MJFK: TEdit; + Label3: TLabel; + MJLen: TEdit; + Label4: TLabel; + MJMaoZ: TEdit; + Label5: TLabel; + Label6: TLabel; + Label11: TLabel; + BTPrint: TButton; + Button5: TButton; + Edit3: TEdit; + Label10: TLabel; + Edit4: TEdit; + Label12: TLabel; + Label13: TLabel; + Label14: TLabel; + MJQty1: TEdit; + Label15: TLabel; + Label22: TLabel; + Label23: TLabel; + MJSJKZ: TEdit; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBCDClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure MJMaoZClick(Sender: TObject); + procedure MJLenClick(Sender: TObject); + procedure MJFKClick(Sender: TObject); + procedure MJBanZuClick(Sender: TObject); + procedure MJSJKZClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormClick(Sender: TObject); + procedure Button12Click(Sender: TObject); + procedure BTAddClick(Sender: TObject); + procedure BTEditClick(Sender: TObject); + procedure BTPrintClick(Sender: TObject); + procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure cxGridDBColumn2PropertiesChange(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure APIDKeyPress(Sender: TObject; var Key: Char); + procedure Edit1Click(Sender: TObject); + procedure Edit2Change(Sender: TObject); + procedure Edit3Click(Sender: TObject); + procedure Edit4Click(Sender: TObject); + private + { Private declarations } + FInt,PState,PrintInt,SCInitGrid,FState:Integer; + FColumn,FBanZu,FAPID,FMainId,FSubId:String; + MValue,FCDName:String; + procedure InitJP(); + procedure InitCDGrid(); + procedure InitCDGridID(); + procedure AddCD(Fbtn:TButton); + procedure AddSL(Fbtn:TButton); + function SaveData():Boolean; + procedure BtnStatus(BSInt:Boolean); + procedure AddSLNew(Fbtn:TSpeedButton); + procedure AddCDNew(Fbtn:TSpeedButton); + procedure SavedataCK(); + public + { Public declarations } + end; + +var + frmMJManageNewFD: TfrmMJManageNewFD; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp,U_iniParam; + +{$R *.dfm} + +procedure TfrmMJManageNewFD.FormDestroy(Sender: TObject); +begin + frmMJManageNewFD:=nil; +end; + +procedure TfrmMJManageNewFD.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + //DataLink_WFBProducttion.ADOLink.Connected:=False; + Action:=caFree; +end; +procedure TfrmMJManageNewFD.InitCDGrid(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + if PState=1 then + sql.Add('select * from WFB_MJJY_CD where MJID='''' ') + else + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJCD); + SInitCDSData20(ADOQueryMain,CDS_MJCD); +end; +procedure TfrmMJManageNewFD.InitCDGridID(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where APID='''+Trim(FAPID)+''''); + if Trim(SCXFlag)<>'' then + sql.Add(' and JTType='''+Trim(SCXFlag)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJID); + SInitCDSData20(ADOQueryMain,CDS_MJID); +end; + +procedure TfrmMJManageNewFD.TBCloseClick(Sender: TObject); +var + maxno:string; +begin + if CDS_MJCD.IsEmpty=False then + begin + if Trim(CDS_MJCD.FieldByName('MCID').AsString)='' then + begin + //try + //ADOCmd.Connection.BeginTrans; + {with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete from WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+''''); + Execsql; + end; + with CDS_MJCD do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'LS','WFB_MJJY_CD_Temp',2,1)=False then + begin + // ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡõʱʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD_Temp where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD_Temp',0); + FieldByName('JTType').Value:=Trim(SCXFlag); + Post; + end; + Next; + end; + end; } + close; + //ADOCmd.Connection.CommitTrans; + //ModalResult:=1; + //except + //ADOCmd.Connection.RollbackTrans; + //Application.MessageBox('ʱʧܣ','ʾ',0); + //end; + end else + begin + Close; + end; + end else + begin + Close; + end; + + + +end; + +procedure TfrmMJManageNewFD.Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + fsj:string; +begin + //FInt:=0; + //Tv1.DataController.FocusedRecordIndex; + //fsj:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; +end; + +procedure TfrmMJManageNewFD.TBCDClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCD'; + flagname:='õ'; + fnote:=True; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + Self.InitJP(); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManageNewFD.FormShow(Sender: TObject); +begin + InitJP(); + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select BanZu from SY_User where UserId='''+Trim(DCode)+''''); + Open; + FBanZu:=Trim(Fieldbyname('BanZu').AsString); + end; + {if Trim(FBanZu)='' then + begin + Application.MessageBox('Ϊգð飡','ʾ',0); + Exit; + end; } + APID.SetFocus; +end; +procedure TfrmMJManageNewFD.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD'' order by ZDYNO '); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ûжõ㣡','ʾ',0); + Exit; + end; + with ADOTmp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + if i>63 then + begin + i:=63; + end; + for j:=0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible:=True; + TSpeedButton(Controls[j]).Hint:=AA[j]; + if Length(AA[j])>4 then + begin + TSpeedButton(Controls[j]).Caption:=Copy(Trim(AA[j]),1,4)+#13+Copy(Trim(AA[j]),5,Length(AA[j])-4); + end else + TSpeedButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmMJManageNewFD.AddCD(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TButton(Fbtn).Caption); + Post; + end; +end; +procedure TfrmMJManageNewFD.AddCDNew(Fbtn:TSpeedButton); +begin + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TSpeedButton(Fbtn).Hint); + Post; + end; +end; +procedure TfrmMJManageNewFD.AddSL(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; +end; +procedure TfrmMJManageNewFD.AddSLNew(Fbtn:TSpeedButton); +begin + if PState<1 then Exit; + if Trim(FAPID)='' then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=11 then + begin + if TSpeedButton(Fbtn).Tag=9 then Exit; + Edit1.Text:=Trim(Edit1.Text)+Trim(TSpeedButton(Fbtn).Caption); + Edit1.SelectAll; + end else + if FInt=12 then + begin + if TSpeedButton(Fbtn).Tag=9 then Exit; + Edit2.Text:=Trim(Edit2.Text)+Trim(TSpeedButton(Fbtn).Caption); + Edit2.SelectAll; + end;{ else + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; } +end; + +procedure TfrmMJManageNewFD.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + //if Tv2.OptionsSelection.CellSelect=True then + if CDS_MJCD.IsEmpty then Exit; + + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_MJCD.Delete; + end; + +end; + +procedure TfrmMJManageNewFD.MJMaoZClick(Sender: TObject); +begin + FInt:=1; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNewFD.MJLenClick(Sender: TObject); +begin + FInt:=2; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNewFD.MJFKClick(Sender: TObject); +begin + FInt:=3; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNewFD.MJBanZuClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNewFD.MJSJKZClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNewFD.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + //DataLink_WFBProducttion.ADOLink.Connected:=False; + FInt:=4; + // if PState=1 then Exit; + InitCDGridID(); + //InitCDGrid(); + {with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + MJMaoZ.Text:=''; + MJLen.Text:=''; + MJFK.Text:=''; + MJSJKZ.Text:=''; + end else + SSetWinData(ADOTmp,Panel5); } +end; + +procedure TfrmMJManageNewFD.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MJCD.IsEmpty=False then + begin + if Trim(CDS_MJCD.fieldbyname('MJID').AsString)='' then + begin + Application.MessageBox('δ,!','ʾ',0); + Exit; + end; + end; + + FInt:=4; + PState:=0; + InitCDGrid(); + with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + MJFK.Text:=Trim(ADOTmp.fieldbyname('MJFK').AsString); + //MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); + MJLen.Text:=Trim(ADOTmp.fieldbyname('MJLen').AsString); + MJQty1.Text:=Trim(ADOTmp.fieldbyname('MJQty1').AsString); + MJMaoZ.Text:=Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); + Label15.Caption:=Trim(CDS_MJID.fieldbyname('MJID').AsString); + if Trim(ADOTmp.fieldbyname('MJType').AsString)='Ʒ' then + begin + Edit3.Text:=''; + Edit4.Text:=''; + end else + begin + Edit4.Text:=''; + Edit3.Text:=''; + end; + BtnStatus(False); + Label16.Caption:=''; +end; + + +procedure TfrmMJManageNewFD.FormClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNewFD.Button12Click(Sender: TObject); +var + fsj:string; +begin + if PState<1 then Exit; + if Trim(FAPID)='' then Exit; + if FInt=4 then Exit; + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + if Trim(CDS_MJCD.FieldByName(FColumn).AsString)<>'' then + begin + with CDS_MJCD do + begin + Edit; + if Length(CDS_MJCD.FieldByName(FColumn).AsString)=1 then + begin + FieldByName(FColumn).Value:=null ; + FieldByName('CDQty').Value:=0; + end + else + begin + FieldByName(FColumn).Value:=Copy(Trim(FieldByName(FColumn).AsString),1,Length(Trim(FieldByName(FColumn).AsString))-1); + FieldByName('CDQty').Value:=FieldByName(FColumn).Value; + end; + Post; + end; + end; + + + end; + end; +end; + +function TfrmMJManageNewFD.SaveData():Boolean; +var + maxno,FMJID,BZID:String; + FMJLen:Double; + FOrder:Integer; +begin + if PState=1 then + FMJID:='' + else if PState=2 then + FMJID:=Trim(CDS_MJID.fieldbyname('MJID').AsString) + else if PState<1 then Exit; + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where MJId='''+Trim(FMJID)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMJID)='' then + begin + Append; + if GetLSNo(ADOTmp,maxno,Trim(SCXFlag),'WFB_MJJY',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMJID); + Edit; + end; + FieldByName('MainId').value:=Trim(FMainId); + FieldByName('SubId').value:=Trim(FSubId); + FieldByName('APId').value:=Trim(FAPID); + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MJStr2').Value:='δ'; + FieldByName('MJBanZu').Value:=Trim(FBanZu); + if Trim(MJLen.Text)<>'' then + begin + FieldByName('MJLen').Value:=StrToFloat(MJLen.Text); + end; + if Trim(MJQty1.Text)<>'' then + begin + FieldByName('MJQty1').Value:=StrToFloat(MJQty1.Text); + end; + if Trim(MJFK.Text)<>'' then + begin + FieldByName('MJFK').Value:=StrToFloat(MJFK.Text); + end; + if Trim(MJMaoZ.Text)<>'' then + begin + FieldByName('MJMaoZ').Value:=StrToFloat(MJMaoZ.Text); + end; + if Trim(MJSJKZ.Text)<>'' then + begin + FieldByName('MJSJKZ').Value:=StrToFloat(MJSJKZ.Text); + end; + if Trim(Edit3.Text)<>'' then + begin + FieldByName('MJType').Value:='Ʒ'; + end; + if Trim(Edit4.Text)<>'' then + begin + FieldByName('MJType').Value:='Ʒ'; + end; + FieldByName('MJTypeOther').Value:=Trim(Label9.Caption); + FieldByName('MJStr1').Value:=Trim(Label13.Caption); + {if Trim(MJSJKZ.Text)<>'' then + begin + FieldByName('MJSJKZ').Value:=StrToFloat(MJSJKZ.Text); + end; } + if Trim(FMJID)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTmp); + end; + if Trim(SCXFlag)<>'' then + begin + FieldByName('JTType').Value:=Trim(SCXFlag); + end; + Post; + + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('UPdate WFB_MJJY Set MJXH=(select max(MJXH)+1 from WFB_MJJY A where A.APID=WFB_MJJY.APID)'); + sql.Add(' where MJID='''+Trim(maxno)+''''); + ExecSQL; + end; + FMJID:=Trim(maxno); + ///ĸõ + with CDS_MJCD do + begin + First; + while not Eof do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + begin + if GetLSNo(ADOTmp,maxno,'MC','WFB_MJJY_CD',5,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_MJCD.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + Append + else + Edit; + FieldByName('MJId').Value:=Trim(FMJID); + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD',0); + Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('MCID').Value:=Trim(maxno); + Next; + end; + end; + with CDS_MJID do + begin + Append; + FieldByName('MJID').Value:=Trim(FMJID); + Post; + end; + //SavedataCK(); + ADOCmd.Connection.CommitTrans; + Result:=True; + PState:=0; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmMJManageNewFD.BTAddClick(Sender: TObject); +begin + if Trim(Label2.Caption)='' then Exit; + PState:=1; + InitCDGridID(); + InitCDGrid(); + BtnStatus(True); + Label16.Caption:=''; +end; + +procedure TfrmMJManageNewFD.BTEditClick(Sender: TObject); +begin + if CDS_MJID.IsEmpty then Exit; + PState:=2; + Label16.Caption:='޸'; +end; + +procedure TfrmMJManageNewFD.BTPrintClick(Sender: TObject); +var + fPrintFile:String; + mvalue:Double; +begin + if Trim(FAPID)='' then Exit; + if FInt=4 then + begin + if CDS_MJID.IsEmpty=False then + begin + Application.MessageBox('Ѵ룿볢ش','ʾ',0); + Exit; + end; + end; + if Trim(MJLen.Text)='' then + begin + Application.MessageBox('ȲΪ!','ʾ',0); + Exit; + end; + if TryStrToFloat(MJLen.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + {if Trim(MJQty1.Text)='' then + begin + Application.MessageBox('ԭ벻Ϊ!','ʾ',0); + Exit; + end; } + if Trim(MJQty1.Text)<>'' then + begin + if TryStrToFloat(MJQty1.Text,mvalue)=False then + begin + Application.MessageBox('ԭ¼!','ʾ',0); + Exit; + end; + end; + + if Trim(MJFK.Text)<>'' then + begin + if TryStrToFloat(MJFK.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + if Trim(MJMaoZ.Text)<>'' then + begin + if TryStrToFloat(MJMaoZ.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + if Trim(MJSJKZ.Text)<>'' then + begin + if TryStrToFloat(MJSJKZ.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + {if Trim(MJSJKZ.Text)<>'' then + begin + if TryStrToFloat(MJSJKZ.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; } + if PState=1 then + begin + if Application.MessageBox('ǷҪӡ룿ӡݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + end; + if SaveData() then + begin + //BtnStatus(False); + MJFK.Text:=''; + //MJSJKZ.Text:=''; + MJLen.Text:=''; + MJMaoZ.Text:=''; + MJQty1.Text:=''; + MJSJKZ.Text:=''; + Label15.Caption:=''; + end; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.MJID,A.MJXH,Qty=A.MJLen,QtyUnit=A.MJTypeOther,B.orderNo,D.GangNo,PRTColorEng=E.Note,'); + sql.Add(' MPRTCodeNameEng=(select Top 1 F.CYEName from CP_YDang F where F.CYNo=B.OrdDefStr1),C.SLbName'); + sql.Add(',B.MPRTCF,C.SOrddefstr4,C.*,A.* '); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' inner join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; + Label16.Caption:=''; + BTAdd.Click; +end; +procedure TfrmMJManageNewFD.SavedataCK(); +var + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + //if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(FSubId); + FieldByName('APID').Value:=Trim(FAPID); + FieldByName('MJID').Value:=Trim(CDS_MJID.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOTmp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + if Trim(MJMaoZ.Text)<>'' then + begin + FieldByName('KGQty').Value:=StrToFloat(MJMaoZ.Text); + end; + if Trim(MJLen.Text)<>'' then + begin + FieldByName('Qty').Value:=StrToFloat(MJLen.Text); + end; + FieldByName('QtyUnit').Value:=Trim(Label9.Caption); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOTmp); + if Trim(Edit3.Text)<>'' then + begin + FieldByName('CPType').Value:='Ʒ'; + end; + if Trim(Edit4.Text)<>'' then + begin + FieldByName('CPType').Value:='Ʒ'; + end; + Post; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_MJID.fieldbyname('MJID').AsString); + if Trim(MJMaoZ.Text)<>'' then + begin + FieldByName('KCKGQty').Value:=StrToFloat(MJMaoZ.Text); + end; + if Trim(MJLen.Text)<>'' then + begin + FieldByName('KCQty').Value:=StrToFloat(MJLen.Text); + end; + FieldByName('KCQtyUnit').Value:=Trim(Label9.Caption); + Post; + end; +end; +procedure TfrmMJManageNewFD.BtnStatus(BSInt:Boolean); +begin + // Tv2.OptionsSelection.CellSelect:=BSInt; +end; +procedure TfrmMJManageNewFD.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + try + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)<>'' then + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=mvalue; + CDS_MJCD.Post; + end else + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=0; + CDS_MJCD.Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQtyS').Value:=mvalue; + except + Application.MessageBox('Ƿ֣','ʾ',0); + end; +end; + +procedure TfrmMJManageNewFD.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmMJManageNewFD.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmMJManageNewFD.SpeedButton13Click(Sender: TObject); +var + i:Integer; +begin + if Trim(Label2.Caption)='' then Exit; + if Label2.Visible=False then Exit; + {with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from Order_JYResult where APID='''+Trim(FAPID)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ŷδ¼,ܼ!','ʾ',0); + Exit; + end; } + if Trim(CDS_MJCD.fieldbyname('MJID').AsString)<>'' then + begin + BTAdd.Click; + end; + if Trim(Label15.Caption)<>'' then + begin + MJFK.Text:=''; + //MJSJKZ.Text:=''; + MJLen.Text:=''; + MJMaoZ.Text:=''; + MJQty1.Text:=''; + MJSJKZ.Text:=''; + Label15.Caption:=''; + + end; + if Trim(FAPID)='' then Exit; + FCDName:=Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible:=True; + Label21.Caption:=Trim(FCDName); + FInt:=11; + Edit1.SetFocus; + //CDQty.SetFocus; + Panel3.Visible:=True; + with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(Edit1.Name); + end; + end; + end; + +end; + +procedure TfrmMJManageNewFD.cxGridDBColumn2PropertiesChange(Sender: TObject); +var + fsj:String; +begin + + fsj:=Trim(Order_MJ.fieldbyname('SubId').AsString); + Order_MJ.DisableControls; + with Order_MJ do + begin + First; + while not Eof do + begin + if Trim(Order_MJ.fieldbyname('SubId').AsString)<>fsj then + begin + Edit; + FieldByName('SSel').Value:=False; + end; + Next; + end; + end; + Order_MJ.EnableControls; + Order_MJ.Locate('SubId',fsj,[]); +end; + +procedure TfrmMJManageNewFD.Button1Click(Sender: TObject); +var + mvalue:Double; +begin + { if Trim(Edit1.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; } + if Trim(Edit1.Text)<>'' then + begin + if Trim(Edit2.Text)<>'' then + begin + if StrToFloat(Edit2.Text)'' then + begin + if TryStrToFloat(CDQty.Text,mvalue)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + end; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(FCDName); + FieldByName('CDbeg').Value:=Trim(Edit1.Text); + FieldByName('CDEnd').Value:=Trim(Edit2.Text); + if Trim(CDQty.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(CDQty.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; + {if Trim(Edit2.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; } + + Post; + end; + Edit1.Text:=''; + Edit2.Text:=''; + CDQty.Text:=''; + MovePanel1.Visible:=False; + Panel3.Visible:=False; +end; + +procedure TfrmMJManageNewFD.Button4Click(Sender: TObject); +begin + Edit1.Text:=''; + Edit2.Text:=''; + CDQty.Text:=''; + MovePanel1.Visible:=False; + Panel3.Visible:=False; +end; + +procedure TfrmMJManageNewFD.ToolButton1Click(Sender: TObject); +begin + //InitGrid(); + InitJP(); +end; + +procedure TfrmMJManageNewFD.Button5Click(Sender: TObject); +var + fPrintFile:String; +begin + if CDS_MJID.IsEmpty then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.MJID,A.MJXH,Qty=A.MJLen,QtyUnit=A.MJTypeOther,B.orderNo,D.GangNo,PRTColorEng=E.Note,'); + sql.Add(' MPRTCodeNameEng=(select Top 1 F.CYEName from CP_YDang F where F.CYNo=B.OrdDefStr1),C.SLbName'); + sql.Add(',B.MPRTCF,C.SOrddefstr4,C.*,A.* '); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' inner join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmMJManageNewFD.SpeedButton49Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmMJManageNewFD.APIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where APID='''+Trim(APID.Text)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + Label2.Visible:=True; + Label2.Caption:=Trim(ADOTmp.fieldbyname('GangNo').AsString); + FAPID:=Trim(APID.Text); + FMainId:=Trim(ADOTmp.fieldbyname('MainId').AsString); + FSubId:=Trim(ADOTmp.fieldbyname('SubId').AsString); + Label9.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString); + Label13.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); + Label19.Caption:=Trim(Label9.Caption); + Label20.Caption:=Trim(Label9.Caption); + Label7.Caption:=Trim(Label9.Caption); + end else + begin + Application.MessageBox('!','ʾ',0); + Label2.Visible:=False; + Label2.Caption:=''; + APID.Text:=''; + FAPID:=''; + FMainId:=''; + FSubId:=''; + Exit; + end; + {if Trim(SCXFlag)<>Trim(ADOTmp.fieldbyname('AOrdDefNote29').AsString) then + begin + APID.Text:=''; + if Application.MessageBox('̨뵱ǰ̨һ,'+#13+'Ƿ飿','ʾ',32+4)<>IDYES then + begin + Label2.Visible:=False; + Label2.Caption:=''; + FAPID:=''; + FMainId:=''; + FSubId:=''; + Exit; + end; + + end; } + APID.Text:=''; + BTAdd.Click; + end; +end; + +procedure TfrmMJManageNewFD.Edit1Click(Sender: TObject); +var + i:Integer; +begin + Panel3.Visible:=True; + with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; +end; + +procedure TfrmMJManageNewFD.Edit2Change(Sender: TObject); +var + mvalue:Double; +begin + if Trim(Edit1.Text)<>'' then + begin + if TryStrToFloat(Edit1.Text,mvalue)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + end else + begin + Exit; + end; + if Trim(Edit2.Text)<>'' then + begin + if TryStrToFloat(Edit2.Text,mvalue)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + end else + begin + Exit; + end; + CDQty.Text:=FloatToStr(StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text)); +end; + +procedure TfrmMJManageNewFD.Edit3Click(Sender: TObject); +begin + if Trim(Edit3.Text)='' then + begin + Edit3.Text:=''; + Edit4.Text:=''; + end else + begin + Edit3.Text:=''; + Edit4.Text:=''; + end; +end; + +procedure TfrmMJManageNewFD.Edit4Click(Sender: TObject); +begin + if Trim(Edit4.Text)='' then + begin + Edit4.Text:=''; + Edit3.Text:=''; + end else + begin + Edit4.Text:=''; + Edit3.Text:=''; + end; +end; + +end. diff --git a/盛纺贸易管理/U_MJManageNewFDNew.dfm b/盛纺贸易管理/U_MJManageNewFDNew.dfm new file mode 100644 index 0000000..22870a8 --- /dev/null +++ b/盛纺贸易管理/U_MJManageNewFDNew.dfm @@ -0,0 +1,3020 @@ +object frmMJManageNewFDNewSF: TfrmMJManageNewFDNewSF + Left = 282 + Top = 142 + Width = 1366 + Height = 738 + Caption = #25104#21697#26816#39564 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClick = FormClick + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid3: TcxGrid + Left = 829 + Top = 75 + Width = 521 + Height = 624 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v3Column2 + end + item + Kind = skSum + Column = v3Column4 + end + item + Kind = skSum + Column = v3Column5 + end + item + Format = #21367#25968':0' + Kind = skCount + Column = cxGridDBColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = cxStyle4 + Styles.IncSearch = cxStyle4 + Styles.Selection = cxStyle4 + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Content = cxStyle5 + Styles.Header = cxStyle5 + Width = 103 + end + object v3Column1: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + SortIndex = 0 + SortOrder = soDescending + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 40 + end + object v3Column2: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + Width = 42 + end + object v3Column4: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Content = cxStyle5 + Styles.Footer = cxStyle5 + Styles.Header = cxStyle5 + Width = 50 + end + object v3Column5: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Footer = cxStyle3 + Styles.Header = cxStyle3 + Width = 50 + end + object v3Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Content = cxStyle5 + Styles.Header = cxStyle5 + Width = 44 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 75 + Width = 397 + Height = 624 + Align = alLeft + TabOrder = 1 + object SpeedButton13: TSpeedButton + Left = 7 + Top = 3 + Width = 50 + Height = 50 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 63 + Top = 3 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 119 + Top = 3 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 175 + Top = 3 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 231 + Top = 3 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 287 + Top = 3 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 343 + Top = 3 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 7 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 63 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 119 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 175 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 231 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton29: TSpeedButton + Left = 287 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton30: TSpeedButton + Left = 343 + Top = 61 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton31: TSpeedButton + Left = 7 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton32: TSpeedButton + Left = 63 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton33: TSpeedButton + Left = 119 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton34: TSpeedButton + Left = 175 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton37: TSpeedButton + Left = 231 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton38: TSpeedButton + Left = 287 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton39: TSpeedButton + Left = 343 + Top = 119 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton40: TSpeedButton + Left = 7 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton41: TSpeedButton + Left = 63 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton42: TSpeedButton + Left = 119 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton45: TSpeedButton + Left = 175 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton46: TSpeedButton + Left = 231 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton47: TSpeedButton + Left = 287 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton48: TSpeedButton + Left = 343 + Top = 177 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton50: TSpeedButton + Left = 7 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton51: TSpeedButton + Left = 63 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton54: TSpeedButton + Left = 119 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton55: TSpeedButton + Left = 175 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton56: TSpeedButton + Left = 231 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton57: TSpeedButton + Left = 287 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton58: TSpeedButton + Left = 343 + Top = 234 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton59: TSpeedButton + Left = 7 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton62: TSpeedButton + Left = 63 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton63: TSpeedButton + Left = 119 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton64: TSpeedButton + Left = 175 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton65: TSpeedButton + Left = 231 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton66: TSpeedButton + Left = 287 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton67: TSpeedButton + Left = 343 + Top = 290 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton70: TSpeedButton + Left = 7 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton71: TSpeedButton + Left = 63 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton72: TSpeedButton + Left = 119 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton73: TSpeedButton + Left = 175 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton74: TSpeedButton + Left = 231 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton75: TSpeedButton + Left = 287 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton19: TSpeedButton + Left = 343 + Top = 346 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton20: TSpeedButton + Left = 7 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton27: TSpeedButton + Left = 63 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton28: TSpeedButton + Left = 119 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton35: TSpeedButton + Left = 175 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton36: TSpeedButton + Left = 231 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton43: TSpeedButton + Left = 287 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton44: TSpeedButton + Left = 343 + Top = 402 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton52: TSpeedButton + Left = 7 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton53: TSpeedButton + Left = 63 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton60: TSpeedButton + Left = 119 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton61: TSpeedButton + Left = 175 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton68: TSpeedButton + Left = 231 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton69: TSpeedButton + Left = 287 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton76: TSpeedButton + Left = 343 + Top = 458 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton77: TSpeedButton + Left = 7 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton78: TSpeedButton + Left = 63 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton79: TSpeedButton + Left = 119 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton80: TSpeedButton + Left = 175 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton81: TSpeedButton + Left = 231 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton82: TSpeedButton + Left = 287 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton83: TSpeedButton + Left = 343 + Top = 671 + Width = 50 + Height = 50 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object Panel2: TPanel + Left = 397 + Top = 75 + Width = 232 + Height = 624 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label9: TLabel + Left = 150 + Top = 109 + Width = 17 + Height = 23 + Caption = 'M' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + OnClick = Label9Click + end + object Label3: TLabel + Left = 150 + Top = 322 + Width = 26 + Height = 23 + Caption = 'cm' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 150 + Top = 233 + Width = 29 + Height = 23 + Caption = 'KG' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 8 + Top = 105 + Width = 40 + Height = 23 + Caption = #38271#24230 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label6: TLabel + Left = 8 + Top = 318 + Width = 40 + Height = 23 + Caption = #20840#24133 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label11: TLabel + Left = 8 + Top = 237 + Width = 40 + Height = 23 + Caption = #27611#37325 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 8 + Top = 442 + Width = 40 + Height = 23 + Caption = #27491#21697 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 91 + Top = 442 + Width = 40 + Height = 23 + Caption = #27425#21697 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 358 + Top = 54 + Width = 17 + Height = 23 + Caption = 'M' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label14: TLabel + Left = 239 + Top = 66 + Width = 60 + Height = 23 + Caption = #21407#25968#37327 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + Visible = False + end + object Label15: TLabel + Left = 70 + Top = 270 + Width = 6 + Height = 23 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + Visible = False + end + object Label22: TLabel + Left = 150 + Top = 361 + Width = 37 + Height = 23 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label23: TLabel + Left = 8 + Top = 360 + Width = 40 + Height = 23 + Caption = #20811#37325 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label27: TLabel + Left = 8 + Top = 277 + Width = 40 + Height = 23 + Caption = #36192#36865 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label28: TLabel + Left = 299 + Top = 298 + Width = 40 + Height = 23 + Caption = #22810#25340 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label26: TLabel + Left = 8 + Top = 491 + Width = 40 + Height = 23 + Caption = #20986#32440 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label29: TLabel + Left = 240 + Top = 22 + Width = 58 + Height = 23 + Caption = #26588' '#21495 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + Visible = False + end + object Label30: TLabel + Left = 8 + Top = 149 + Width = 40 + Height = 23 + Caption = #30382#37325 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label31: TLabel + Left = 150 + Top = 193 + Width = 29 + Height = 23 + Caption = 'KG' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label32: TLabel + Left = 8 + Top = 193 + Width = 40 + Height = 23 + Caption = #20928#37325 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label33: TLabel + Left = 150 + Top = 149 + Width = 29 + Height = 23 + Caption = 'KG' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label34: TLabel + Left = 91 + Top = 487 + Width = 40 + Height = 23 + Caption = #20221#25968 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label36: TLabel + Left = 8 + Top = 17 + Width = 40 + Height = 23 + Caption = #21367#21495 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label37: TLabel + Left = 8 + Top = 61 + Width = 40 + Height = 23 + Caption = #32568#21495 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label38: TLabel + Left = 8 + Top = 400 + Width = 40 + Height = 23 + Caption = #31995#25968 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label40: TLabel + Left = 229 + Top = 502 + Width = 20 + Height = 23 + Caption = #21253 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + Visible = False + end + object MJFK: TEdit + Left = 53 + Top = 309 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnChange = MJFKChange + OnClick = Edit1Click + OnKeyPress = MJstr3KeyPress + end + object MJLen: TEdit + Left = 53 + Top = 96 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnChange = MJLenChange + OnClick = Edit1Click + OnExit = MJLenExit + OnKeyPress = MJstr3KeyPress + end + object MJMaoZ: TEdit + Left = 53 + Top = 226 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnChange = MJMaoZChange + OnClick = Edit1Click + OnExit = MJMaoZExit + OnKeyPress = MJstr3KeyPress + end + object BTPrint: TButton + Left = 25 + Top = 526 + Width = 79 + Height = 42 + Caption = #25552#20132 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = BTPrintClick + end + object Button5: TButton + Left = 116 + Top = 523 + Width = 81 + Height = 45 + Caption = #37325#25171 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 15 + Visible = False + OnClick = Button5Click + end + object Edit3: TEdit + Left = 49 + Top = 436 + Width = 41 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Text = #8730 + OnClick = Edit3Click + OnKeyPress = MJstr3KeyPress + end + object Edit4: TEdit + Left = 129 + Top = 432 + Width = 40 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 12 + OnClick = Edit4Click + OnKeyPress = MJstr3KeyPress + end + object MJQty1: TEdit + Left = 261 + Top = 49 + Width = 90 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = Edit1Click + OnKeyPress = MJstr3KeyPress + end + object MJSJKZ: TEdit + Left = 53 + Top = 351 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnChange = MJFKChange + OnClick = Edit1Click + OnKeyPress = MJstr3KeyPress + end + object MJQty2: TEdit + Left = 53 + Top = 268 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Edit1Click + OnKeyPress = MJstr3KeyPress + end + object Edit5: TEdit + Left = 344 + Top = 288 + Width = 39 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 13 + OnClick = Edit5Click + OnKeyPress = MJstr3KeyPress + end + object Edit6: TEdit + Left = 49 + Top = 481 + Width = 41 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 14 + Text = #8730 + OnClick = Edit6Click + OnKeyPress = MJstr3KeyPress + end + object MJstr3: TEdit + Left = 261 + Top = 9 + Width = 90 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = Edit1Click + OnKeyPress = MJstr3KeyPress + end + object MJQty3: TEdit + Left = 53 + Top = 140 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnChange = MJQty4Change + OnClick = Edit1Click + OnExit = MJQty3Exit + OnKeyPress = MJstr3KeyPress + end + object MJQty4: TEdit + Left = 53 + Top = 184 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnChange = MJQty4Change + OnClick = Edit1Click + OnExit = MJQty4Exit + OnKeyPress = MJQty4KeyPress + end + object ComboBox1: TComboBox + Left = 129 + Top = 479 + Width = 40 + Height = 44 + Style = csDropDownList + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = 'Times New Roman' + Font.Style = [fsBold] + ItemHeight = 36 + ItemIndex = 0 + ParentFont = False + TabOrder = 16 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object MJStr4: TEdit + Left = 53 + Top = 52 + Width = 89 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnClick = Edit1Click + OnKeyPress = MJstr3KeyPress + end + object mjxh: TEdit + Left = 53 + Top = 7 + Width = 88 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 17 + end + object MKXS: TEdit + Left = 53 + Top = 392 + Width = 89 + Height = 41 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 18 + OnChange = MKXSChange + OnClick = Edit1Click + OnExit = MJQty3Exit + OnKeyPress = MJstr3KeyPress + end + object ComboBox2: TComboBox + Left = 141 + Top = 9 + Width = 86 + Height = 41 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemHeight = 33 + ItemIndex = 1 + ParentFont = False + TabOrder = 19 + Text = #39068#33394 + Items.Strings = ( + #32568#21495 + #39068#33394) + end + object Edit10: TEdit + Left = 244 + Top = 492 + Width = 40 + Height = 44 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -36 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 20 + Visible = False + OnClick = Edit10Click + OnKeyPress = MJstr3KeyPress + end + end + object Panel3: TPanel + Left = 9 + Top = 420 + Width = 383 + Height = 231 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 70 + Height = 70 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 78 + Top = 3 + Width = 70 + Height = 70 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 152 + Top = 3 + Width = 70 + Height = 70 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 226 + Top = 3 + Width = 70 + Height = 70 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 4 + Top = 75 + Width = 70 + Height = 70 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 78 + Top = 75 + Width = 70 + Height = 70 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 152 + Top = 75 + Width = 70 + Height = 70 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 226 + Top = 75 + Width = 70 + Height = 70 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 4 + Top = 150 + Width = 70 + Height = 70 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 78 + Top = 150 + Width = 70 + Height = 70 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 152 + Top = 150 + Width = 70 + Height = 70 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -33 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 226 + Top = 150 + Width = 70 + Height = 70 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 303 + Top = 81 + Width = 65 + Height = 57 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object Panel4: TPanel + Left = 0 + Top = 0 + Width = 1350 + Height = 75 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object Panel5: TPanel + Left = 2 + Top = 2 + Width = 1346 + Height = 71 + Align = alClient + TabOrder = 0 + object Panel6: TPanel + Left = 1 + Top = 31 + Width = 1344 + Height = 39 + Align = alClient + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object Label1: TLabel + Left = 9 + Top = 13 + Width = 84 + Height = 20 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 527 + Top = 7 + Width = 36 + Height = 17 + Caption = #33457#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 1162 + Top = 11 + Width = 42 + Height = 12 + Caption = 'Label16' + Visible = False + end + object Label24: TLabel + Left = 297 + Top = 7 + Width = 54 + Height = 17 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label25: TLabel + Left = 437 + Top = 7 + Width = 36 + Height = 17 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label35: TLabel + Left = 814 + Top = 13 + Width = 84 + Height = 20 + Caption = #33258#21160#27611#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label39: TLabel + Left = 937 + Top = 13 + Width = 42 + Height = 20 + Caption = #37325#25171 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 690 + Top = 13 + Width = 84 + Height = 20 + Caption = #33258#21160#38271#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label43: TLabel + Left = 608 + Top = 7 + Width = 36 + Height = 17 + Caption = #33394#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object APID: TEdit + Left = 89 + Top = 9 + Width = 184 + Height = 28 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnClick = APIDClick + OnKeyPress = APIDKeyPress + end + object BTAdd: TButton + Left = 1323 + Top = 4 + Width = 46 + Height = 25 + Caption = #26032#22686 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = BTAddClick + end + object BTEdit: TButton + Left = 1324 + Top = 28 + Width = 33 + Height = 25 + Caption = #20462#25913 + TabOrder = 2 + Visible = False + OnClick = BTEditClick + end + object Button3: TButton + Left = 289 + Top = 47 + Width = 63 + Height = 25 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = Button3Click + end + object Edit7: TEdit + Left = 786 + Top = 10 + Width = 27 + Height = 28 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Text = #8730 + OnClick = Edit7Click + end + object Button6: TButton + Left = 226 + Top = 45 + Width = 63 + Height = 25 + Caption = #36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = Button6Click + end + object Edit8: TEdit + Left = 907 + Top = 10 + Width = 29 + Height = 28 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + OnClick = Edit8Click + end + object Button7: TButton + Left = 1131 + Top = 40 + Width = 93 + Height = 38 + Caption = #23436#25104 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = Button7Click + end + object Edit11: TEdit + Left = 661 + Top = 10 + Width = 28 + Height = 28 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Text = #8730 + OnClick = Edit11Click + end + end + object ToolBar1: TToolBar + Left = 1 + Top = 1 + Width = 1344 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = ToolButton1Click + end + object TBCD: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30133#28857#31649#29702 + ImageIndex = 132 + OnClick = TBCDClick + end + object TBClose: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object Panel9: TPanel + Left = 213 + Top = 0 + Width = 185 + Height = 30 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + Visible = False + object Label41: TLabel + Left = 5 + Top = 9 + Width = 52 + Height = 12 + Caption = #21367#21495#26597#35810 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit9: TEdit + Tag = 1 + Left = 60 + Top = 5 + Width = 121 + Height = 20 + TabOrder = 0 + OnClick = MJXHCXClick + end + end + end + end + end + object MovePanel1: TMovePanel + Left = 3 + Top = 78 + Width = 390 + Height = 214 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 5 + Visible = False + object Label17: TLabel + Left = 29 + Top = 48 + Width = 36 + Height = 17 + Caption = #20010#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 338 + Top = 220 + Width = 54 + Height = 17 + Caption = #20844#26020#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label19: TLabel + Left = 8 + Top = 4 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label20: TLabel + Left = 464 + Top = 219 + Width = 22 + Height = 20 + Caption = 'KG' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label21: TLabel + Left = 317 + Top = 49 + Width = 70 + Height = 17 + Caption = 'Label21' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 274 + Top = 47 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 161 + Top = 48 + Width = 36 + Height = 17 + Caption = #38271#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 64 + Top = 40 + Width = 73 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnChange = Edit2Change + OnClick = Edit1Click + end + object Button1: TButton + Left = 76 + Top = 121 + Width = 66 + Height = 43 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button1Click + end + object Button4: TButton + Left = 202 + Top = 121 + Width = 64 + Height = 42 + Caption = #20851#38381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button4Click + end + object Edit2: TEdit + Left = 388 + Top = 212 + Width = 73 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnChange = Edit2Change + OnClick = Edit1Click + end + object CDQty: TEdit + Left = 196 + Top = 40 + Width = 73 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = Edit1Click + end + object RadioGroup1: TRadioGroup + Left = 388 + Top = 91 + Width = 389 + Height = 185 + Columns = 2 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [] + Items.Strings = ( + '0-3"' + '3"-6"' + '6"-9"' + #8805'9"' + #30772#27934 + '1'#31859#20869#36830#32493#20986#29616#29781#30133) + ParentFont = False + TabOrder = 5 + Visible = False + end + object Button2: TButton + Left = 390 + Top = 165 + Width = 75 + Height = 42 + Caption = #21462#28040#36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = Button2Click + end + end + object Panel7: TPanel + Left = 629 + Top = 75 + Width = 200 + Height = 624 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 6 + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 196 + Height = 165 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = Tv2CDQty + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Footer = cxStyle3 + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 61 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20010#25968 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = tv2CDWZPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Content = cxStyle1 + Styles.Header = cxStyle1 + Width = 48 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #38271#24230 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = Tv2CDQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + Width = 61 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #36131#20219#20154 + DataBinding.FieldName = 'CDReason' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 60 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object Panel8: TPanel + Left = 2 + Top = 167 + Width = 196 + Height = 40 + Align = alBottom + Caption = 'A<=25 2533' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -17 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + end + object AOrdDefNote1: TRichEdit + Left = 2 + Top = 207 + Width = 196 + Height = 225 + Align = alBottom + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ScrollBars = ssVertical + TabOrder = 2 + end + object Panel1: TPanel + Left = 2 + Top = 432 + Width = 196 + Height = 190 + Align = alBottom + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + object Label55: TLabel + Left = 6 + Top = 19 + Width = 60 + Height = 19 + Caption = #24635#21367#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label56: TLabel + Left = 6 + Top = 104 + Width = 60 + Height = 19 + Caption = #24635#20928#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label45: TLabel + Left = 6 + Top = 61 + Width = 60 + Height = 19 + Caption = #24635#38271#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label44: TLabel + Left = 6 + Top = 146 + Width = 60 + Height = 19 + Caption = #24635#27611#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 608 + Top = 8 + PixelsPerInch = 96 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 417 + Top = 70 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 664 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 8 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + CommandTimeout = 600 + Parameters = <> + Left = 456 + Top = 67 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 528 + Top = 4 + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 636 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 497 + Top = 69 + ReportData = {} + end + object DataSource2: TDataSource + DataSet = CDS_MJCD + Left = 692 + end + object CDS_MJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 748 + end + object DataSource3: TDataSource + DataSet = CDS_MJID + Left = 965 + Top = 300 + end + object CDS_MJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 996 + Top = 302 + end + object Timer1: TTimer + Interval = 100 + Left = 934 + Top = 300 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 720 + end + object cxStyleRepository2: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle3: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end + object cxStyleRepository3: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle4: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object cxStyleRepository4: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle5: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object cxStyleRepository5: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 564 + Top = 643 + end + object ADOQueryMainDSC: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + SQL.Strings = ( + 'select A.*,C.OrderNo,B.SWFBColor,B.SWFBHW,B.SWFBCodeName,' + ' B.SWFBCode,B.SWFBKZ,B.WKMS,B.KZBig,B.KZSmal,' + + ' SCMQty=(select isnull(Sum(MJLen),0) from WFB_MJJY WM wher' + + 'e WM.APId=A.APId and len(WM.MJID)>8),' + + ' Case when A.OrderQtyM-(select isnull(Sum(MJLen),0) from W' + + 'FB_MJJY WM where WM.APId=A.APId )>0 ' + + ' then A.OrderQtyM-(select isnull(Sum(MJLen),0) fr' + + 'om WFB_MJJY WM where WM.APId=A.APId ) else 0 end as WSCMQty' + 'from WFBOrder_Sub_AnPai A ' + 'inner join WFBOrder_Sub B on A.SubId=B.SubId' + 'inner join WFBOrder_Main C on A.MainId=C.MainId' + + 'where C.ChkStatus='#39#23457#26680#36890#36807#39' and RTrim(isnull(A.SCStatus,'#39#39'))<>'#39#24050#23436#25104#39 + + ' ' + 'and isnull(B.AnPaiChkStatus,'#39#39')='#39#23457#26680#36890#36807#39' and A.SCXDFlag=1' + '') + Left = 804 + Top = 144 + end + object RM3: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 4 + ReportData = {} + end + object ADOTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 383 + Top = 67 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 778 + Top = 4 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 448 + Top = 21 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 538 + Top = 69 + end + object ADOQuery2: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 843 + Top = 14 + end +end diff --git a/盛纺贸易管理/U_MJManageNewFDNew.pas b/盛纺贸易管理/U_MJManageNewFDNew.pas new file mode 100644 index 0000000..a0d68ae --- /dev/null +++ b/盛纺贸易管理/U_MJManageNewFDNew.pas @@ -0,0 +1,3135 @@ +unit U_MJManageNewFDNew; + +interface + +uses + Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls, + Forms, Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport, + RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu, + ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons, cxSplitter, cxCheckBox, + MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, + dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, + dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, + dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, + dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, + dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, + dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, + dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, + dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, + dxSkinXmas2008Blue, dxSkinscxPCPainter; + {function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS232U.DLL'; + function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS232U.DLL'; + + function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer;IsMessage:integer):integer;stdcall;external 'JCYData.DLL'; + function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL'; + function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS323C.DLL'; + function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS323C.DLL'; + + function GetCommData(fhandle:hwnd;var defnum1,defnum2:double;var fisjz:integer):integer;stdcall;external 'JZCRS323C.DLL'; + + function CommOpen1301(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS323C.DLL'; + function CommClose1301(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS323C.DLL'; + + function GetCommData1301(fhandle:hwnd;var defnum1,defnum2:double;var fisjz:integer):integer;stdcall;external 'JZCRS323C.DLL'; } + +type + TfrmMJManageNewFDNewSF = class(TForm) + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + RMDBMain: TRMDBDataSet; + RM2: TRMGridReport; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + DataSource2: TDataSource; + CDS_MJCD: TClientDataSet; + DataSource3: TDataSource; + CDS_MJID: TClientDataSet; + Timer1: TTimer; + ADOQueryPrint: TADOQuery; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton29: TSpeedButton; + SpeedButton30: TSpeedButton; + SpeedButton31: TSpeedButton; + SpeedButton32: TSpeedButton; + SpeedButton33: TSpeedButton; + SpeedButton34: TSpeedButton; + SpeedButton37: TSpeedButton; + SpeedButton38: TSpeedButton; + SpeedButton39: TSpeedButton; + SpeedButton40: TSpeedButton; + SpeedButton41: TSpeedButton; + SpeedButton42: TSpeedButton; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle4: TcxStyle; + cxStyleRepository4: TcxStyleRepository; + cxStyle5: TcxStyle; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxGridPopupMenu2: TcxGridPopupMenu; + ADOQueryMainDSC: TADOQuery; + SpeedButton45: TSpeedButton; + SpeedButton46: TSpeedButton; + SpeedButton47: TSpeedButton; + SpeedButton48: TSpeedButton; + SpeedButton50: TSpeedButton; + SpeedButton51: TSpeedButton; + SpeedButton54: TSpeedButton; + SpeedButton55: TSpeedButton; + SpeedButton56: TSpeedButton; + SpeedButton57: TSpeedButton; + SpeedButton58: TSpeedButton; + SpeedButton59: TSpeedButton; + SpeedButton62: TSpeedButton; + SpeedButton63: TSpeedButton; + SpeedButton64: TSpeedButton; + SpeedButton65: TSpeedButton; + SpeedButton66: TSpeedButton; + SpeedButton67: TSpeedButton; + SpeedButton70: TSpeedButton; + SpeedButton71: TSpeedButton; + SpeedButton72: TSpeedButton; + SpeedButton73: TSpeedButton; + SpeedButton74: TSpeedButton; + SpeedButton75: TSpeedButton; + Panel2: TPanel; + Label9: TLabel; + MJFK: TEdit; + Label3: TLabel; + MJLen: TEdit; + Label4: TLabel; + MJMaoZ: TEdit; + Label5: TLabel; + Label6: TLabel; + Label11: TLabel; + BTPrint: TButton; + Button5: TButton; + Edit3: TEdit; + Label10: TLabel; + Edit4: TEdit; + Label12: TLabel; + Label13: TLabel; + Label14: TLabel; + MJQty1: TEdit; + Label15: TLabel; + Label22: TLabel; + Label23: TLabel; + MJSJKZ: TEdit; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + v3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + Label27: TLabel; + MJQty2: TEdit; + Label28: TLabel; + Edit5: TEdit; + Label26: TLabel; + Edit6: TEdit; + Label29: TLabel; + MJstr3: TEdit; + Label30: TLabel; + MJQty3: TEdit; + Label31: TLabel; + Label32: TLabel; + MJQty4: TEdit; + Label33: TLabel; + Panel4: TPanel; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Label7: TLabel; + Label8: TLabel; + Edit1: TEdit; + Button1: TButton; + Button4: TButton; + Edit2: TEdit; + CDQty: TEdit; + RadioGroup1: TRadioGroup; + Button2: TButton; + Panel5: TPanel; + Panel6: TPanel; + Label1: TLabel; + Label2: TLabel; + Label16: TLabel; + Label24: TLabel; + Label25: TLabel; + APID: TEdit; + BTAdd: TButton; + BTEdit: TButton; + ToolBar1: TToolBar; + ToolButton1: TToolButton; + TBCD: TToolButton; + TBClose: TToolButton; + Panel7: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Panel8: TPanel; + Button3: TButton; + AOrdDefNote1: TRichEdit; + Label34: TLabel; + ComboBox1: TComboBox; + Edit7: TEdit; + Label35: TLabel; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + SpeedButton35: TSpeedButton; + SpeedButton36: TSpeedButton; + SpeedButton43: TSpeedButton; + SpeedButton44: TSpeedButton; + SpeedButton52: TSpeedButton; + SpeedButton53: TSpeedButton; + SpeedButton60: TSpeedButton; + SpeedButton61: TSpeedButton; + SpeedButton68: TSpeedButton; + SpeedButton69: TSpeedButton; + SpeedButton76: TSpeedButton; + SpeedButton77: TSpeedButton; + SpeedButton78: TSpeedButton; + SpeedButton79: TSpeedButton; + SpeedButton80: TSpeedButton; + SpeedButton81: TSpeedButton; + SpeedButton82: TSpeedButton; + SpeedButton83: TSpeedButton; + v3Column4: TcxGridDBColumn; + Button6: TButton; + Label36: TLabel; + MJStr4: TEdit; + Label37: TLabel; + v3Column5: TcxGridDBColumn; + Label38: TLabel; + RM3: TRMGridReport; + Label39: TLabel; + Edit8: TEdit; + mjxh: TEdit; + ADOTmp: TADOQuery; + MKXS: TEdit; + ADOQueryCmd: TADOQuery; + ADOQueryTemp: TADOQuery; + Button7: TButton; + ADOQuery1: TADOQuery; + Panel9: TPanel; + Label41: TLabel; + Edit9: TEdit; + ComboBox2: TComboBox; + Label40: TLabel; + Edit10: TEdit; + Label42: TLabel; + Edit11: TEdit; + Label43: TLabel; + ADOQuery2: TADOQuery; + Panel1: TPanel; + Label55: TLabel; + Label56: TLabel; + Label45: TLabel; + Label44: TLabel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBCDClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure MJMaoZClick(Sender: TObject); + procedure MJLenClick(Sender: TObject); + procedure MJFKClick(Sender: TObject); + procedure MJBanZuClick(Sender: TObject); + procedure MJSJKZClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure FormClick(Sender: TObject); + procedure Button12Click(Sender: TObject); + procedure BTAddClick(Sender: TObject); + procedure BTEditClick(Sender: TObject); + procedure BTPrintClick(Sender: TObject); + procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure cxGridDBColumn2PropertiesChange(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure APIDKeyPress(Sender: TObject; var Key: Char); + procedure Edit1Click(Sender: TObject); + procedure Edit2Change(Sender: TObject); + procedure Edit3Click(Sender: TObject); + procedure Edit4Click(Sender: TObject); + procedure Edit5Click(Sender: TObject); + procedure Edit6Click(Sender: TObject); + procedure MJstr3KeyPress(Sender: TObject; var Key: Char); + procedure MJQty3Exit(Sender: TObject); + procedure MJMaoZExit(Sender: TObject); + procedure Label9Click(Sender: TObject); + procedure MJLenExit(Sender: TObject); + procedure MJQty4Exit(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure MJQty4Change(Sender: TObject); + procedure MJMaoZChange(Sender: TObject); + procedure APIDClick(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure MJFKChange(Sender: TObject); + procedure Edit7Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure MJQty4KeyPress(Sender: TObject; var Key: Char); + procedure MKXSChange(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure MJQty2Change(Sender: TObject); + procedure Edit8Click(Sender: TObject); + procedure MJLenChange(Sender: TObject); + procedure tv2CDWZPropertiesEditValueChanged(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + procedure Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure Button7Click(Sender: TObject); + procedure MJXHCXChange(Sender: TObject); + procedure MJXHCXClick(Sender: TObject); + procedure Edit10Click(Sender: TObject); + procedure Edit11Click(Sender: TObject); + private + { Private declarations } + FInt, PState, PrintInt, SCInitGrid, FState, FCK: Integer; + FColumn, FBanZu, FAPID, FMainId, FSubId, FFFMJID, FOrderUnit: string; + MValue, FCDName: string; + FZDJH: Double; + FConPerson2, FconDefstr2, FconDefstr3, FConNo, FKHConNO: string; + isCommopen, IsJsMessage: boolean; + fxsType, FStyleNo, FConid, FMPrtCode: string; + FOrdDate: TDateTime; + procedure InitJP(); + procedure InitCDGrid(); + procedure InitCDGridID(); + procedure AddCD(Fbtn: TButton); + procedure AddSL(Fbtn: TButton); + function SaveData(): Boolean; + procedure BtnStatus(BSInt: Boolean); + procedure AddSLNew(Fbtn: TSpeedButton); + procedure AddCDNew(Fbtn: TSpeedButton); + procedure SavedataCK(); + procedure PrtData(FMJID: string); + procedure OpenCom(DllName: string); + procedure CloseCom(DllName: string); + procedure On1201(var Message: Tmessage); message 1201; // ӳ + procedure On1301(var Message: Tmessage); message 1301; // + public + fmanage: string; + { Public declarations } + + end; + +var + frmMJManageNewFDNewSF: TfrmMJManageNewFDNewSF; + newh, newh1: hwnd; + +implementation + +uses + U_DataLink, U_Fun, U_ZDYHelp, U_iniParam, U_ClothHCList; + +{$R *.dfm} + +procedure TfrmMJManageNewFDNewSF.CloseCom(DllName: string); +type + TMyFunc = function(sCommName: PAnsiChar): HWND; stdcall; +var + Tf1: TMyFunc; + Tp1: TFarProc; + Th1: Thandle; +begin + Th1 := LoadLibrary(Pchar(trim(DllName))); + if Th1 > 0 then + begin + try + Tp1 := GetProcAddress(Th1, 'CommClose'); + if Tp1 <> nil then + begin + Tf1 := TMyFunc(Tp1); + newh1 := Tf1('Comm1'); + end + else + begin + + end; + finally + // FreeLibrary(Th1); + end; + end + else + begin + application.MessageBox(Pchar('Ҳ ' + trim(DllName) + ' ļ'), 'ʾ'); + end; +end; + +procedure TfrmMJManageNewFDNewSF.OpenCom(DllName: string); +type + TMyFunc = function(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): HWND; stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th: Thandle; +begin + //closeCom(FComFile); + Th := LoadLibrary(Pchar(trim(DllName))); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'CommOpen'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh := Tf(self.Handle, 'Comm1', 500, 1); + if newh < 1 then + begin + application.MessageBox(Pchar('򿪴ʧܣ'), 'ʾ'); + end + else + IsCommOpen := true; + end + else + begin + IsCommOpen := false; + end; + finally + // FreeLibrary(Th); + end; + end + else + begin + IsCommOpen := false; + application.MessageBox(Pchar('Ҳ ' + trim(DllName) + ' ļ'), 'ʾ'); + end; +end; + +procedure TfrmMJManageNewFDNewSF.FormDestroy(Sender: TObject); +begin + frmMJManageNewFDNewSF := nil; +end; + +procedure TfrmMJManageNewFDNewSF.On1201(var Message: Tmessage); +var + i1, i2: integer; + unitname: string; + fdata: double; +begin + i1 := Message.WParam; + i2 := Message.LParam; + if IsJsMessage then + begin + if trim(Edit7.Text) = '' then + begin + MJMaoZ.Text := format('%.1f', [i1 / 100000]); + //IF i2=0 then Label9.Caption:='M' else Label9.Caption:='Y'; + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.On1301(var Message: Tmessage); +var + i1, i2: integer; + unitname: string; + fdata: double; +begin + i1 := Message.WParam; + i2 := Message.LParam; + if IsJsMessage then + begin + if trim(Edit11.Text) = '' then + begin + if (MKXS.Text <> '0') and (MKXS.Text <> '') then + MJLen.Text := format('%.1f', [i1 / 100000]) + else + MJLen.Text := format('%.0f', [i1 / 100000]); + if i2 = 0 then + Label9.Caption := 'M' + else + Label9.Caption := 'Y'; + end; + end; +{ + //Edit1.Text:= floattostr(i1 *i2 /100000 ); + IF IsJsMessage then + MJMaoZ.Text:= floattostr(i1 *i2 /100000 ); } +end; + +procedure TfrmMJManageNewFDNewSF.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if isCommopen then + begin + closeCom(DllName); + closeCom(JCYDLL); + end; + Action := caFree; +end; + +procedure TfrmMJManageNewFDNewSF.InitCDGrid(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + if PState = 1 then + sql.Add('select * from WFB_MJJY_CD where MJID='''' ') + else + sql.Add('select * from WFB_MJJY_CD where MJID=''' + Trim(CDS_MJID.fieldbyname('MJID').AsString) + ''''); + Open; + end; + SCreateCDS20(ADOQuery1, CDS_MJCD); + SInitCDSData20(ADOQuery1, CDS_MJCD); +end; + +procedure TfrmMJManageNewFDNewSF.InitCDGridID(); +begin +// with ADOQueryMain do +// begin +// Filtered := False; +// Close; +// SQL.Clear; +// sql.Add('select A.*,A.MJXH MJXHCX '); +// sql.Add('from WFB_MJJY A where APID=''' + Trim(FAPID) + ''''); +//// if Trim(SCXFlag) <> '' then +//// sql.Add(' and JTType=''' + Trim(SCXFlag) + ''''); +// //sql.Add(' and Filler='''+Trim(DName)+''''); +// Open; +// end; +// SCreateCDS20(ADOQueryMain, CDS_MJID); +// SInitCDSData20(ADOQueryMain, CDS_MJID); +// CDS_MJID.last; + with ADOQueryMain do + begin + Close; + Filtered := False; + SQL.Clear; + sql.Add('select A.MJID,A.MJXH,A.MJLen,A.MJMaoZ,A.MJQty4,A.MJType,A.MJXH as MJXHCX '); //Top 200 + sql.Add('from WFB_MJJY A with(nolock) '); + sql.Add('where APID=''' + Trim(FAPID) + ''''); + // if Trim(SCXFlag)<>'' then + // sql.Add(' and JTType='''+Trim(SCXFlag)+''''); + //sql.Add(' and Filler='''+Trim(DName)+''''); + sql.Add('order by A.FillTime desc '); + Open; + end; + SCreateCDS20(ADOQueryMain, CDS_MJID); + SInitCDSData20(ADOQueryMain, CDS_MJID); +// Label55.caption := ''; +// with ADOTmp do +// begin +// Close; +// sql.Clear; +// sql.Add('select COUNT(MJID) as SMJXH from WFB_MJJY where APID=''' + Trim(FAPID) + ''' '); +// Open; +// end; +// Label55.caption := 'ܾ' + Trim(ADOTmp.fieldbyname('SMJXH').AsString); +// Label45.caption := ''; +// with ADOTmp do +// begin +// Close; +// sql.Clear; +// sql.Add('select sum(MJlen) as SMJlen from WFB_MJJY where APID=''' + Trim(FAPID) + ''' '); +// Open; +// end; +// Label45.caption := 'ܳȣ' + Trim(ADOTmp.fieldbyname('SMJlen').AsString); +// Label56.caption := ''; +// with ADOTmp do +// begin +// Close; +// sql.Clear; +// sql.Add('select sum(MJQty4) as SMJQty4 from WFB_MJJY where APID=''' + Trim(FAPID) + ''' '); +// Open; +// end; +// Label56.caption := 'ܾأ' + Trim(ADOTmp.fieldbyname('SMJQty4').AsString); +// Label44.caption := ''; +// with ADOTmp do +// begin +// Close; +// sql.Clear; +// sql.Add('select sum(MJMaoZ) as SMJMaoZ from WFB_MJJY where APID=''' + Trim(FAPID) + ''' '); +// Open; +// end; +// Label44.caption := 'ëأ' + Trim(ADOTmp.fieldbyname('SMJMaoZ').AsString); + +end; + +procedure TfrmMJManageNewFDNewSF.TBCloseClick(Sender: TObject); +var + maxno: string; +begin + if CDS_MJCD.IsEmpty = False then + begin + if Trim(CDS_MJCD.FieldByName('MCID').AsString) = '' then + begin + //try + //ADOCmd.Connection.BeginTrans; + {with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete from WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+''''); + Execsql; + end; + with CDS_MJCD do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'LS','WFB_MJJY_CD_Temp',2,1)=False then + begin + // ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡõʱʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD_Temp where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD_Temp',0); + FieldByName('JTType').Value:=Trim(SCXFlag); + Post; + end; + Next; + end; + end; } + close; + //ADOCmd.Connection.CommitTrans; + //ModalResult:=1; + //except + //ADOCmd.Connection.RollbackTrans; + //Application.MessageBox('ʱʧܣ','ʾ',0); + //end; + end + else + begin + Close; + end; + end + else + begin + Close; + end; +end; + +procedure TfrmMJManageNewFDNewSF.TBCDClick(Sender: TObject); +begin + try + frmZDYHelp := TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag := 'WFBCD'; + flagname := 'õ'; + fnote := True; + V1Note.Caption := 'Ӣ'; + if ShowModal = 1 then + begin + Self.InitJP(); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManageNewFDNewSF.FormShow(Sender: TObject); +begin + InitJP(); + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select BanZu from SY_User where UserId=''' + Trim(DCode) + ''''); + Open; + FBanZu := Trim(Fieldbyname('BanZu').AsString); + end; + {if Trim(FBanZu)='' then + begin + Application.MessageBox('Ϊգð飡','ʾ',0); + Exit; + end; } + APID.SetFocus; + {if CommOpen(frmMJManageNewFDNewSF.Handle,pchar(PortNoStr),500,1)<1 then + begin + FCK:=1; + showmessage('ڴʧ!'); + end else + begin + FCk:=9; + end;} + if trim(Edit7.Text) = '' then + IsJsMessage := true; + + if trim(fmanage) <> 'Ȩ' then + begin + {if CommOpen(self.Handle,pchar(trim('com4')),500,1)<1 then + begin + showmessage(''); + end + else + begin + end;} + OpenCom(DllName); + OpenCom(JCYDLL); + Edit7.Visible := true; + Label35.Visible := true; + end; +end; + +procedure TfrmMJManageNewFDNewSF.InitJP(); +var + AA: array[0..100] of string; + i, j: Integer; +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD'' order by ZDYNO '); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ûжõ㣡', 'ʾ', 0); + Exit; + end; + with ADOTmp do + begin + First; + i := 0; + while not Eof do + begin + AA[i] := Trim(fieldbyname('ZDYName').AsString); + i := i + 1; + Next; + end; + end; + i := i - 1; + if i > 69 then + begin + i := 69; + end; + for j := 0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible := True; + TSpeedButton(Controls[j]).Hint := AA[j]; + if Length(AA[j]) > 4 then + begin + TSpeedButton(Controls[j]).Caption := Copy(Trim(AA[j]), 1, 4) + #13 + Copy(Trim(AA[j]), 5, Length(AA[j]) - 4); + end + else + TSpeedButton(Controls[j]).Caption := AA[j]; + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.AddCD(Fbtn: TButton); +begin + if PState < 1 then + Exit; + if Order_MJ.IsEmpty then + Exit; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value := Trim(TButton(Fbtn).Caption); + Post; + end; +end; + +procedure TfrmMJManageNewFDNewSF.AddCDNew(Fbtn: TSpeedButton); +begin + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value := Trim(TSpeedButton(Fbtn).Hint); + Post; + end; +end; + +procedure TfrmMJManageNewFDNewSF.AddSL(Fbtn: TButton); +begin + if PState < 1 then + Exit; + if Order_MJ.IsEmpty then + Exit; + + //if MJMaoZ.Focused then + if FInt = 4 then + Exit; + if CDS_MJCD.IsEmpty = False then + begin + FColumn := Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn) <> '' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value := Trim(FieldByName(FColumn).AsString) + Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString) <> '' then + Fieldbyname('CDQty').Value := Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.AddSLNew(Fbtn: TSpeedButton); +begin + if PState < 1 then + Exit; + if Trim(FAPID) = '' then + Exit; + + //if MJMaoZ.Focused then + if FInt = 4 then + Exit; + if FInt = 11 then + begin + if TSpeedButton(Fbtn).Tag = 9 then + Exit; + Edit1.Text := Trim(Edit1.Text) + Trim(TSpeedButton(Fbtn).Caption); + Edit1.SelectAll; + end + else if FInt = 12 then + begin + if TSpeedButton(Fbtn).Tag = 9 then + Exit; + Edit2.Text := Trim(Edit2.Text) + Trim(TSpeedButton(Fbtn).Caption); + Edit2.SelectAll; + end; { else + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; } +end; + +procedure TfrmMJManageNewFDNewSF.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + //if Tv2.OptionsSelection.CellSelect=True then + if CDS_MJCD.IsEmpty then + Exit; + if Application.MessageBox('ȷҪɾ', 'ʾ', 32 + 4) <> IDYES then + Exit; + + if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then + begin + CDS_MJCD.Delete; + end + else + begin + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('delete from WFB_MJJY_CD where MCID=''' + Trim(CDS_MJCD.fieldbyname('MCID').AsString) + ''''); + execsql; + end; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('update WFB_MJJY SET ZCDName=dbo.F_Get_Order_SubStr(MJID,''QDHZ'')'); + sql.Add(' where MJID=''' + Trim(CDS_MJCD.fieldbyname('MJID').AsString) + ''''); + execsql; + end; +end; + +procedure TfrmMJManageNewFDNewSF.MJMaoZClick(Sender: TObject); +begin + FInt := 1; + FColumn := ''; + panel3.Visible := True; +end; + +procedure TfrmMJManageNewFDNewSF.MJLenClick(Sender: TObject); +begin + FInt := 2; + FColumn := ''; + panel3.Visible := True; +end; + +procedure TfrmMJManageNewFDNewSF.MJFKClick(Sender: TObject); +begin + FInt := 3; + FColumn := ''; + panel3.Visible := True; +end; + +procedure TfrmMJManageNewFDNewSF.MJBanZuClick(Sender: TObject); +begin + FInt := 4; +end; + +procedure TfrmMJManageNewFDNewSF.MJSJKZClick(Sender: TObject); +begin + FInt := 4; +end; + +procedure TfrmMJManageNewFDNewSF.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + + FInt := 4; + InitCDGridID(); + +end; + +procedure TfrmMJManageNewFDNewSF.Tv3CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MJCD.IsEmpty = False then + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then + begin + Application.MessageBox('δ,!', 'ʾ', 0); + Exit; + end; + end; + + FInt := 4; + // PState:=0; + PState := 2; + InitCDGrid(); + with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID=''' + Trim(CDS_MJID.fieldbyname('MJID').AsString) + ''''); + Open; + end; + MJFK.Text := Trim(ADOTmp.fieldbyname('MJFK').AsString); + MJSJKZ.Text := Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); + MJstr4.Text := Trim(ADOTmp.fieldbyname('MJstr4').AsString); + MJXH.Text := Trim(ADOTmp.fieldbyname('MJXH').AsString); + MJQty1.Text := Trim(ADOTmp.fieldbyname('MJQty1').AsString); + MJQty2.Text := Trim(ADOTmp.fieldbyname('MJQty2').AsString); + MJMaoZ.Text := Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); + Label15.Caption := Trim(CDS_MJID.fieldbyname('MJID').AsString); + MJLen.Text := Trim(ADOTmp.fieldbyname('MJLen').AsString); + if trim(ADOTmp.fieldbyname('DJType').AsString) <> '' then + ComBoBox2.Text := trim(ADOTmp.fieldbyname('DJType').AsString) + else + ComBoBox2.Text := '׺'; + if Trim(ADOTmp.fieldbyname('MJType').AsString) = 'Ʒ' then + begin + Edit3.Text := ''; + Edit4.Text := ''; + Edit5.Text := ''; + end + else if Trim(ADOTmp.fieldbyname('MJType').AsString) = 'Ʒ' then + begin + Edit4.Text := ''; + Edit3.Text := ''; + Edit5.Text := ''; + end + else if Trim(ADOTmp.fieldbyname('MJType').AsString) = '' then + begin + Edit4.Text := ''; + Edit3.Text := ''; + Edit5.Text := ''; + end; + BtnStatus(False); + Label16.Caption := ''; +end; + +procedure TfrmMJManageNewFDNewSF.FormClick(Sender: TObject); +begin + FInt := 4; +end; + +procedure TfrmMJManageNewFDNewSF.Button12Click(Sender: TObject); +var + fsj: string; +begin + if PState < 1 then + Exit; + if Trim(FAPID) = '' then + Exit; + if FInt = 4 then + Exit; + begin + FColumn := Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn) <> '' then + begin + if Trim(CDS_MJCD.FieldByName(FColumn).AsString) <> '' then + begin + with CDS_MJCD do + begin + Edit; + if Length(CDS_MJCD.FieldByName(FColumn).AsString) = 1 then + begin + FieldByName(FColumn).Value := null; + FieldByName('CDQty').Value := 0; + end + else + begin + FieldByName(FColumn).Value := Copy(Trim(FieldByName(FColumn).AsString), 1, Length(Trim(FieldByName(FColumn).AsString)) - 1); + FieldByName('CDQty').Value := FieldByName(FColumn).Value; + end; + Post; + end; + end; + end; + end; +end; + +function TfrmMJManageNewFDNewSF.SaveData(): Boolean; +var + maxno, FMJID, BZID, strsql, FTM, FTMID, FCD, FMZ, FKHZ, FKHY: string; + FMJLen: Double; + FOrder, i: Integer; + DETM, FDECD, FDEHX: string; + CRID: Integer; + MaxCkNo, MaxCkSubNo, DBID: string; +begin + if PState = 1 then + FMJID := '' + else if PState = 2 then + FMJID := Trim(CDS_MJID.fieldbyname('MJID').AsString) + else if PState < 1 then + begin + BTPrint.Enabled := true; + Exit; + end; + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * '); + sql.Add('from WFB_MJJY A where MJId=''' + Trim(FMJID) + ''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMJID) = '' then + begin + Append; + if GetLSNo(ADOTmp, maxno, Trim(SCXFlag), 'WFB_MJJY', 5, 1) = False then + begin + ADOCmd.Connection.RollbackTrans; + BTPrint.Enabled := true; + Application.MessageBox('ˮ쳣', 'ʾ', 0); + exit; + end; + end + else + begin + maxno := Trim(FMJID); + Edit; + end; + FKHZ := Copy(Trim(FStyleNo), 1, 3); + FKHY := Copy(Trim(FStyleNo), 5, 7); + if (FOrderUnit <> 'KG') and (FOrderUnit <> 'Kg') and (FOrderUnit <> 'kg') then + begin + if Pos('.', Trim(MJLen.Text)) = 0 then + begin + if Length(Trim(MJLen.Text)) = 1 then + FCD := '0' + Trim(MJLen.Text) + '0000' + else + FCD := Trim(MJLen.Text) + '0000'; + end + else + begin + if Length(Copy(Trim(MJLen.Text), 1, Pos('.', Trim(MJLen.Text)) - 1)) = 1 then + FCD := '0' + trim(MJLen.Text) + '0000' + else + FCD := Trim(MJLen.Text) + '0000'; + FCD := Copy(Trim(FCD), 1, Pos('.', Trim(FCD)) - 1) + Copy(Trim(FCD), Pos('.', Trim(FCD)) + 1, 3); + end; + end + else + begin + if Pos('.', Trim(MJQty4.Text)) = 0 then + begin + if Length(Trim(MJQty4.Text)) = 1 then + FCD := '0' + Trim(MJQty4.Text) + '0000' + else + FCD := Trim(MJQty4.Text) + '0000'; + end + else + begin + if Length(Copy(Trim(MJQty4.Text), 1, Pos('.', Trim(MJQty4.Text)) - 1)) = 1 then + FCD := '0' + Trim(MJQty4.Text) + '0000' + else + FCD := Trim(MJQty4.Text) + '0000'; + FCD := Copy(Trim(FCD), 1, Pos('.', Trim(FCD)) - 1) + Copy(Trim(FCD), Pos('.', Trim(FCD)) + 1, 3); + end; + end; + FCD := Copy(Trim(FCD), 1, 4); + FMZ := '0000' + trim(MJXH.Text); + FMZ := Copy(Trim(FMZ), Length(FMZ) - 3, Length(FMZ)); + FTM := trim(FKHZ) + trim(FKHY) + copy(Trim(Label2.Caption) + Trim(Label43.Caption), 1, 3) + '0' + trim(FCD) + trim(MJStr4.Text) + trim(FMZ); + FieldByName('TM').Value := Trim(FTM); + FieldByName('MZ').Value := Trim(FMZ); + + FDEHX := '00000000' + Trim(Label2.Caption); + FDEHX := Copy(Trim(FDEHX), Length(FDEHX) - 7, Length(FDEHX)); + if Pos('.', Trim(MJMaoZ.Text)) = 0 then + begin + if Length(Trim(MJMaoZ.Text)) = 1 then + FDECD := '0' + Trim(MJMaoZ.Text) + '0000' + else + FDECD := Trim(MJMaoZ.Text) + '0000'; + end + else + begin + if Length(Copy(Trim(MJMaoZ.Text), 1, Pos('.', Trim(MJMaoZ.Text)) - 1)) = 1 then + FDECD := '0' + Trim(MJMaoZ.Text) + '0000' + else + FDECD := Trim(MJMaoZ.Text) + '0000'; + FDECD := Copy(Trim(FDECD), 1, Pos('.', Trim(FDECD)) - 1) + Copy(Trim(FDECD), Pos('.', Trim(FDECD)) + 1, 3); + end; + FDECD := Copy(Trim(FDECD), 1, 4); + DETM := formatdatetime('yy', now) + trim(FKHConNo) + '@' + trim(FStyleNo) + Trim(FDEHX) + Trim(Label43.Caption) + '@' + trim(FDECD); + FieldByName('DETM').Value := Trim(DETM); + FieldByName('MainId').value := Trim(FMainId); + FieldByName('SubId').value := Trim(FSubId); + FieldByName('APId').value := Trim(FAPID); + FieldByName('MJID').Value := Trim(maxno); + FieldByName('WCStatus').Value := ''; + if Trim(FMJID) = '' then + begin + FieldByName('MJStr2').Value := 'δ'; + end; + FieldByName('MJBanZu').Value := Trim(FBanZu); + FieldByName('MJstr3').Value := Trim(MJstr3.Text); + FieldByName('MJstr4').Value := Trim(MJstr4.Text); + FieldByName('mjxh').Value := strtointdef(trim(mjxh.Text), 0); + Fieldbyname('ConID').Value := trim(FConid); + FieldByName('MJTypeOther').Value := Trim(Label9.Caption); + FieldByName('MJStr1').Value := Trim(Label13.Caption); + FieldByName('MJLen').Value := StrToFloatdef(trim(MJLen.Text), 0); + FieldByName('MJQty1').Value := StrToFloatdef(trim(MJQty1.Text), 0); + FieldByName('MJQty2').Value := StrToFloatdef(trim(MJQty2.Text), 0); + FieldByName('MJQty3').Value := StrToFloatdef(trim(MJQty3.Text), 0); + FieldByName('MJQty4').Value := StrToFloatdef(trim(MJQty4.Text), 0); + FieldByName('MKXS').Value := StrToFloatdef(trim(MKXS.Text), 0); + FieldByName('DJType').Value := trim(Combobox2.Text); + FieldByName('MJFK').Value := StrToFloatdef(trim(MJFK.Text), 0); + FieldByName('MJSJKZ').Value := StrToFloatdef(trim(MJSJKZ.Text), 0); + FieldByName('MJMaoZ').Value := StrToFloatdef(trim(MJMaoZ.Text), 0); + //FieldByName('baoNO').Value:=NULL; + //FieldByName('baoID').Value:=NULL; + if Trim(Edit3.Text) <> '' then + begin + FieldByName('MJType').Value := 'Ʒ'; + end; + if Trim(Edit4.Text) <> '' then + begin + FieldByName('MJType').Value := 'Ʒ'; + end; + if Trim(Edit5.Text) <> '' then + begin + FieldByName('MJType').Value := 'ƴ'; + end; + FieldByName('Filler').Value := Trim(DName); + if Trim(FMJID) <> '' then + begin + FieldByName('Editer').Value := Trim(DName); + FieldByName('EditTime').Value := SGetServerDateTime(ADOTmp); + end; + if Trim(SCXFlag) <> '' then + begin + FieldByName('JTType').Value := Trim(SCXFlag); + end; + Post; + end; + if PState = 1 then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where '); + sql.add('X.mainiD=WFB_MJJY.mainID and X.subID=WFB_MJJY.subID '); + if ComboBox2.Text = '׺' then + sql.add('and X.APId=WFB_MJJY.APID and X.MJstr4=WFB_MJJY.Mjstr4 '); + sql.Add('and X.MJID<>WFB_MJJY.MJID '); + sql.add(' ),0)'); + sql.Add(' where MJID=''' + Trim(maxno) + ''''); + execsql; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select MJXH from WFB_MJJY '); + sql.Add('where MJID=''' + Trim(maxno) + ''''); + open; + if not IsEmpty then + begin + MJXH.Text := fieldbyname('mjxh').AsString; + end; + end; + end; + + FMJID := Trim(maxno); + FFFMJID := Trim(maxno); + ///ĸõ + with CDS_MJCD do + begin + First; + while not Eof do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then + begin + if GetLSNo(ADOTmp, maxno, 'MC', 'WFB_MJJY_CD', 5, 1) = False then + begin + ADOCmd.Connection.RollbackTrans; + BTPrint.Enabled := true; + Application.MessageBox('ȡˮʧܣ', 'ʾ', 0); + Exit; + end; + end + else + begin + maxno := Trim(CDS_MJCD.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID=''' + Trim(maxno) + ''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then + Append + else + Edit; + FieldByName('MJId').Value := Trim(FMJID); + FieldByName('MCID').Value := Trim(maxno); + SSetSaveDataCDSNew(ADOCmd, Tv2, CDS_MJCD, 'WFB_MJJY_CD', 0); + Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('MCID').Value := Trim(maxno); + Next; + end; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('update WFB_MJJY SET ZCDName=dbo.F_Get_Order_SubStr(MJID,''QDHZ'')'); + sql.Add(' where MJID=''' + Trim(FMJID) + ''''); + execsql; + end; + //Ʒ + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID=''' + trim(FMJID) + ''' and CRFlag like ''%%'''); + Open; + end; + if ADOQueryCmd.IsEmpty then + begin + with ADOQuery2 do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID := ADOQuery2.fieldbyname('CRID').Value; + with ADOQuery2 do + begin + Close; + sql.Clear; + SQL.add('select * from CK_BanCP_CR'); + sql.Add(' where CRID=''' + trim(IntToStr(CRID)) + ''''); + Open; + end; + if ADOQuery2.IsEmpty = false then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID := ADOQuery1.fieldbyname('CRID').Value; + end; + if GetLSNo(ADOQuery2, MaxCkNo, 'JK', 'CK_BanCP_CR', 5, 1) = False then + begin + BTPrint.Enabled := true; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ', 'ʾ', 0); + Exit; + end; + end + else + begin + MaxCkNo := trim(ADOQueryCmd.fieldbyname('BCID').AsString); + CRID := ADOQueryCmd.fieldbyname('CRID').Value; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID=''' + trim(FMJID) + ''' and CRFlag like ''%%'''); + Open; + end; + with ADOQueryCmd do + begin + if isempty then + begin + Append; + end + else + edit; + FieldByName('BCID').Value := Trim(MaxCkNo); + FieldByName('MainId').value := Trim(FMainId); + FieldByName('SubId').value := Trim(FSubId); + FieldByName('APId').value := Trim(FAPID); + FieldByName('MJID').Value := Trim(FMJID); + FieldByName('CRFlagQty').Value := 0; + FieldByName('AOrdDefStr1').Value := Trim(MJStr4.Text); + FieldByName('MJXH').Value := Trim(mjxh.Text); + FieldByName('CRFlag').Value := ''; + FieldByName('CRID').Value := CRID; + if MJMaoZ.Text = '' then + FieldByName('KGQty').Value := '0' + else + begin + FieldByName('KGQty').Value := MJMaoZ.Text; + end; + if MJQty4.Text = '' then + FieldByName('MJQty4').Value := '0' + else + begin + FieldByName('MJQty4').Value := MJQty4.Text; + end; + if MJLen.Text = '' then + FieldByName('Qty').Value := '0' + else + begin + FieldByName('Qty').Value := MJLen.Text; + end; + FieldByName('QtyUnit').Value := Trim(Label9.Caption); + if Trim(Edit3.Text) <> '' then + begin + FieldByName('CPType').Value := 'Ʒ'; + end; + if Trim(Edit4.Text) <> '' then + begin + FieldByName('CPType').Value := 'Ʒ'; + end; + if Trim(Edit5.Text) <> '' then + begin + FieldByName('CPType').Value := 'ƴ'; + end; + FieldByName('Filler').Value := Trim(DName); + FieldByName('ConPerson2').Value := Trim(FConPerson2); + FieldByName('conDefstr2').Value := Trim(FconDefstr2); + FieldByName('conDefstr3').Value := Trim(FconDefstr3); + FieldByName('ConNo').Value := Trim(FConNo); + FieldByName('KHConNO').Value := Trim(FKHConNO); + FieldByName('StyleNo').Value := Trim(FStyleNo); + FieldByName('ConID').Value := trim(FConid); + Post; + end; + + //Ʒ + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID=''' + trim(FMJID) + ''' and CRFlag like ''%%'''); + Open; + end; + with ADOQueryCmd do + begin + if isempty then + begin + Append; + end + else + edit; + FieldByName('BCID').Value := 'CK' + Trim(MaxCkNo); + FieldByName('MainId').value := Trim(FMainId); + FieldByName('SubId').value := Trim(FSubId); + FieldByName('APId').value := Trim(FAPID); + FieldByName('MJID').Value := Trim(FMJID); + FieldByName('CRFlagQty').Value := 0; + FieldByName('AOrdDefStr1').Value := Trim(MJStr4.Text); + FieldByName('MJXH').Value := Trim(mjxh.Text); + FieldByName('CRFlag').Value := ''; + FieldByName('CRID').Value := CRID; + if MJMaoZ.Text = '' then + FieldByName('KGQty').Value := '0' + else + begin + FieldByName('KGQty').Value := MJMaoZ.Text; + end; + if MJQty4.Text = '' then + FieldByName('MJQty4').Value := '0' + else + begin + FieldByName('MJQty4').Value := MJQty4.Text; + end; + if MJLen.Text = '' then + FieldByName('Qty').Value := '0' + else + begin + FieldByName('Qty').Value := MJLen.Text; + end; + FieldByName('QtyUnit').Value := Trim(Label9.Caption); + if Trim(Edit3.Text) <> '' then + begin + FieldByName('CPType').Value := 'Ʒ'; + end; + if Trim(Edit4.Text) <> '' then + begin + FieldByName('CPType').Value := 'Ʒ'; + end; + if Trim(Edit5.Text) <> '' then + begin + FieldByName('CPType').Value := 'ƴ'; + end; + FieldByName('Filler').Value := Trim(DName); + FieldByName('ConPerson2').Value := Trim(FConPerson2); + FieldByName('conDefstr2').Value := Trim(FconDefstr2); + FieldByName('conDefstr3').Value := Trim(FconDefstr3); + FieldByName('ConNo').Value := Trim(FConNo); + FieldByName('KHConNO').Value := Trim(FKHConNO); + FieldByName('StyleNo').Value := Trim(FStyleNo); + FieldByName('ConID').Value := trim(FConid); + Post; + end; + //Ʒ + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where MJID=''' + trim(FMJID) + ''' '); + Open; + end; + with ADOQueryCmd do + begin + if isempty then + begin + Append; + end + else + edit; + FieldByName('BCID').Value := Trim(MaxCkNo); + FieldByName('CRID').Value := CRID; + FieldByName('MJID').Value := Trim(FMJID); + FieldByName('KCKGQty').Value := CDS_MJID.fieldbyname('MJMaoZ').AsFloat; + FieldByName('KCQty').Value := CDS_MJID.fieldbyname('MJLen').AsFloat; + FieldByName('KCQtyUnit').Value := Label9.Caption; + Post; + end; + PState := 0; + ADOCmd.Connection.CommitTrans; + Result := True; + except + ; + Result := False; + BTPrint.Enabled := true; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ', 'ʾ', 0); + end; +end; + +procedure TfrmMJManageNewFDNewSF.BTAddClick(Sender: TObject); +begin + if Trim(Label24.Caption) = '' then + Exit; + PState := 1; + InitCDGridID(); + InitCDGrid(); //õ + BtnStatus(True); + Label16.Caption := ''; +end; + +procedure TfrmMJManageNewFDNewSF.BTEditClick(Sender: TObject); +begin + if CDS_MJID.IsEmpty then + Exit; + PState := 2; + Label16.Caption := '޸'; +end; + +procedure TfrmMJManageNewFDNewSF.BTPrintClick(Sender: TObject); +var + fPrintFile: string; + mvalue: Double; + i: Integer; +begin + BTPrint.Enabled := false; + if combobox2.Text = '' then + begin + application.MessageBox('ѡ', 'ʾ'); + BTPrint.Enabled := true; + exit; + end; + if Trim(FAPID) = '' then + begin + BTPrint.Enabled := true; + Exit; + end; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select D.LBName,D.NLBName,C.PRTOrderQty,'); + sql.add('SumJZ=(select Sum(E.MJQty4) from WFB_MJJY E where E.APID=A.SPID) '); + sql.Add('from CK_SXPB_CR A with(nolock) '); + sql.Add('left join JYOrder_Main D with(nolock) on D.Mainid=A.OrdMainidCK '); + sql.add('left join JYOrderCon_Sub C with(nolock) on C.Subid=A.ConCKID '); + SQL.Add('left join JYOrderCon_Main B with(nolock) on B.Mainid=C.MainId '); + SQL.Add(' where A.SPId=''' + Trim(FAPID) + ''''); + Open; + if not IsEmpty then + begin + if Trim(ADOQueryPrint.fieldbyname('LBName').AsString) = '' then + begin + BTPrint.Enabled := true; + application.MessageBox('ûþǩܴ', 'ʾϢ', 0); + exit; + end; + if Edit10.Text <> '' then + begin + if Trim(ADOQueryPrint.fieldbyname('NLBName').AsString) = '' then + begin + BTPrint.Enabled := true; + application.MessageBox('ûðǩܴ', 'ʾϢ', 0); + exit; + end; + end; + end; + end; + if FInt = 4 then + begin + if CDS_MJID.IsEmpty = False then + begin + BTPrint.Enabled := true; + Application.MessageBox('Ѵ룿볢ش', 'ʾ', 0); + Exit; + end; + end; + + if trim(Label9.Caption) = '' then + begin + BTPrint.Enabled := true; + Application.MessageBox('ȵλΪ!', 'ʾ', 0); + Exit; + end; + if Trim(MJQty1.Text) <> '' then + begin + if TryStrToFloat(MJQty1.Text, mvalue) = False then + begin + BTPrint.Enabled := true; + Application.MessageBox('ԭ¼!', 'ʾ', 0); + Exit; + end; + end; + if MJLen.Text = '' then + MJLen.Text := '0'; + if MJQty3.Text = '' then + MJQty3.Text := '0'; + if MJQty4.Text = '' then + MJQty4.Text := '0'; + if MJMaoZ.Text = '' then + MJMaoZ.Text := '0'; + if trim(MJQty4.Text) = '' then + begin + BTPrint.Enabled := true; + Application.MessageBox('زΪ!', 'ʾ', 0); + Exit; + end; + if strtofloat(MJQty4.Text) >= 100 then + begin + BTPrint.Enabled := true; + Application.MessageBox('زܳ200KG', 'ʾ', 0); + Exit; + end; + + if StrToFloat(MJMaoZ.Text) >= 100 then + begin + BTPrint.Enabled := true; + application.MessageBox('ﲻܳ200KG', 'ʾϢ', 0); + exit; + end; + if FZDJH > 0 then + begin + if strtofloatdef(trim(MJXH.Text), 0) > FZDJH then + begin + BTPrint.Enabled := true; + application.MessageBox('ã', 'ʾϢ', 0); + exit; + end; + end; + if Trim(MJFK.Text) <> '' then + begin + if TryStrToFloat(MJFK.Text, mvalue) = False then + begin + BTPrint.Enabled := true; + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJMaoZ.Text) <> '' then + begin + if TryStrToFloat(MJMaoZ.Text, mvalue) = False then + begin + BTPrint.Enabled := true; + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJSJKZ.Text) <> '' then + begin + if TryStrToFloat(MJSJKZ.Text, mvalue) = False then + begin + BTPrint.Enabled := true; + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJQty2.Text) <> '' then + begin + if TryStrToFloat(MJQty2.Text, mvalue) = False then + begin + BTPrint.Enabled := true; + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if strtofloatdef(trim(MJQty4.Text), 0) < 0.00 then + begin + BTPrint.Enabled := true; + application.MessageBox('С0', 'ʾϢ', 0); + exit; + end; + if strtofloatdef(trim(MJLen.Text), 0) < 0.00 then + begin + BTPrint.Enabled := true; + application.MessageBox('ȲС0', 'ʾϢ', 0); + exit; + end; + if strtofloatdef(trim(MKXS.Text), 0) <> 0.00 then + begin + if strtofloatdef(trim(MJLen.Text), 0) < 0.01 then + begin + BTPrint.Enabled := true; + application.MessageBox('ȲΪգ', 'ʾϢ', 0); + exit; + end; + end; + if strtofloatdef(trim(MJLen.Text), 0) > 300.00 then + begin + BTPrint.Enabled := true; + application.MessageBox('Ȳܴ300', 'ʾϢ', 0); + exit; + end; + if MJStr4.Text = '' then + begin + if application.MessageBox('ȷûи׺', 'ʾ', 1) = 2 then + begin + BTPrint.Enabled := true; + exit; + end; + end + else + begin + if application.MessageBox('ȷҪӡ', 'ʾ', 1) = 2 then + begin + BTPrint.Enabled := true; + exit; + end; + end; + with ADOCmd do + begin + Close; + SQL.Clear; + // sql.Add('select Top 1 A.MJXH '); + sql.Add('select MAX(A.MJXH) as MJXH '); + sql.Add('from WFB_MJJY A where 1=1'); + if Trim(ComBoBox2.Text) = 'ɫ' then + sql.Add(' and A.Subid=''' + trim(FSubId) + ''' '); + if Trim(ComBoBox2.Text) = '׺' then + sql.Add(' and APID=''' + Trim(FAPID) + ''''); +// sql.Add(' order by A.MJID desc'); + Open; + end; + mjxh.Text := IntToStr(ADOCmd.fieldbyname('MJXH').asinteger + 1); + if SaveData() then + begin + MJLen.Text := ''; + MJMaoZ.Text := ''; + MJQty1.Text := ''; + MJQty2.Text := ''; + Label15.Caption := ''; + MJQty4.Text := ''; + Edit3.Text := ''; + Edit4.Text := ''; + Edit5.Text := ''; + MJFK.Text := ''; + MJSJKZ.Text := ''; + MJXH.Text := inttostr(strTointdef(trim(MJXH.Text), 0) + 1); + end; + if Trim(Edit6.Text) = '' then + begin + PrtData(FFFMJID); + end; + Label16.Caption := ''; + BTAdd.Click; + BTPrint.Enabled := true; + MJMaoZ.SetFocus; +end; + +procedure TfrmMJManageNewFDNewSF.PrtData(FMJID: string); +var + fPrintFile, fPrintFile1, fPrintFile2: string; + Txt, Txt1, Txt2, Txt3, Txt4, fImagePath, fImagePath1, fImagePath2, fImagePath3, fImagePath4: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,G.ConNo,GangNo=A.MJStr4,A.MJStr4,isnull(C.styleNo,F.StyleNo) StyleNo,G.KHConNo,G.ConLBName,G.ConNLBName'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.FBQName '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F with(nolock) where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,isnull(C.PRTColorEng,F.SOrdDefStr4) OrdPRTColorEng,F.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,D.PiQty '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.add(',F.XHNo,F.PRTMF,F.PRTKZ,F.PRTCodeName,F.PRTCode,G.CustomerNoName,C.*,A.*,B.Filltime ZDDate'); + sql.add(',CDQty=isnull((select SUM(CDqty) from WFB_MJJY_CD X with(nolock) where X.MJID=A.MJID),0) '); + sql.add(',SumQty=isnull((select SUM(CDBeg) from WFB_MJJY_CD X with(nolock) where X.MJID=A.MJID),0) '); + sql.Add(',TLen=cast(MJLen as varchar(10))'); + sql.Add(',FLen=substring(cast(MJLen as varchar(10)),1,LEN(MJLen)-3)+'',''+RIGHT(cast(MJLen as varchar(10)),2)'); + sql.Add(' from WFB_MJJY A with(nolock)'); + sql.Add(' inner join JYOrder_Main B with(nolock) On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C with(nolock) on A.SubId=C.SubId'); + // sql.Add(' left join KH_Zdy E with(nolock) on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join CK_SXPB_CR D with(nolock) on D.SPId=A.APId '); + sql.add(' left join JYOrderCon_Sub F with(nolock) on F.Subid=A.ConID'); + sql.add(' left join JYOrderCon_Main G with(nolock) on G.Mainid=F.Mainid'); + SQL.Add(' where A.MJID=''' + Trim(FMJID) + ''''); + Open; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + ; + BTPrint.Enabled := true; + //ADOCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + sleep(500); + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt1 := '32' + copy(Label24.Caption, 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath1 := ExtractFilePath(Application.ExeName) + 'image\temp1.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath1) then + DeleteFile(fImagePath1); + Makebar(pchar(Txt1), Length(Txt1), 3, 3, 0, PChar(fImagePath1), 4); + except + ; + // BTPrint.Enabled:=true; + //ADOCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt2 := 'NWJ01.100;' + Trim(ADOQueryPrint.fieldbyname('styleNo').AsString) + ';801;' + Trim(ADOQueryPrint.fieldbyname('PRTHX').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJQty4').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + ';' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\temp2.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath2) then + DeleteFile(fImagePath2); + Makebar(pchar(Txt2), Length(Txt2), 3, 3, 0, PChar(fImagePath2), 4); + except + ; + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt3 := '32' + copy(Label24.Caption, 3, 4) + '20200101' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath3 := ExtractFilePath(Application.ExeName) + 'image\temp3.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath3) then + DeleteFile(fImagePath3); + Makebar(pchar(Txt3), Length(Txt3), 3, 3, 0, PChar(fImagePath3), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt4 := '{"A":"' + Trim(ADOQueryPrint.fieldbyname('KHConNO').AsString) + '","B":"' + Trim(ADOQueryPrint.fieldbyname('StyleNo').AsString) + '","C":"' + Trim(ADOQueryPrint.fieldbyname('mjqty4').AsString) + '","D":"' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + '","E":"' + Trim(ADOQueryPrint.fieldbyname('mjstr4').AsString) + '","F":"' + RightStr(('10000' + trim(ADOQueryPrint.fieldbyName('MJXH').AsString)), 4) + '"}'; + fImagePath4 := ExtractFilePath(Application.ExeName) + 'image\temp4.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath4) then + DeleteFile(fImagePath4); + Makebar(pchar(Txt4), Length(Txt4), 3, 3, 0, PChar(fImagePath4), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + ExportFtErpFile(Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf', ADOQueryCmd); + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE3'] := fImagePath3; + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := trim(Txt3); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); + //RM2.ShowReport; + RM2.PrintReport; + end + else + begin + BTPrint.Enabled := true; + //ADOCmd.Connection.RollbackTrans; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString)), 'ʾ', 0); + end; + sleep(500); + if Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) <> '' then + begin + ExportFtErpFile(Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) + '.rmf', ADOQueryCmd); + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('FBQName').AsString) + '.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := '32' + copy(Label24.Caption, 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; + RM3.LoadFromFile(fPrintFile); + RM3.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); + //RM3.ShowReport; + RM3.PrintReport; + end + else + begin + BTPrint.Enabled := true; + //ADOCmd.Connection.RollbackTrans; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('FBQName').AsString)), 'ʾ', 0); + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.SavedataCK(); +var + CRID: Integer; + MaxCkNo, MaxCkSubNo: string; +begin + //if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID := ADOCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOCmd, MaxCkNo, 'JR', 'CK_BanCP_CR', 5, 1) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ', 'ʾ', 0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value := Trim(FMainId); + FieldByName('SubId').Value := Trim(FSubId); + FieldByName('APID').Value := Trim(FAPID); + FieldByName('MJID').Value := Trim(CDS_MJID.fieldbyname('MJId').AsString); + FieldByName('BCID').Value := Trim(MaxCkNo); + FieldByName('CRTime').Value := SGetServerDateTime(ADOTmp); + FieldByName('CRFlag').Value := ''; + FieldByName('CRType').Value := ''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value := CRID; + if Trim(MJMaoZ.Text) <> '' then + begin + FieldByName('KGQty').Value := StrToFloat(MJMaoZ.Text); + end; + if Trim(MJLen.Text) <> '' then + begin + FieldByName('Qty').Value := StrToFloat(MJLen.Text); + end; + FieldByName('QtyUnit').Value := Trim(Label9.Caption); + FieldByName('Filler').Value := Trim(DName); + FieldByName('FillTime').Value := SGetServerDateTime(ADOTmp); + if Trim(Edit3.Text) <> '' then + begin + FieldByName('CPType').Value := 'Ʒ'; + end; + if Trim(Edit4.Text) <> '' then + begin + FieldByName('CPType').Value := 'Ʒ'; + end; + Post; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('CRID').Value := CRID; + FieldByName('BCID').Value := Trim(MaxCkNo); + FieldByName('MJID').Value := Trim(CDS_MJID.fieldbyname('MJID').AsString); + if Trim(MJMaoZ.Text) <> '' then + begin + FieldByName('KCKGQty').Value := StrToFloat(MJMaoZ.Text); + end; + if Trim(MJLen.Text) <> '' then + begin + FieldByName('KCQty').Value := StrToFloat(MJLen.Text); + end; + FieldByName('KCQtyUnit').Value := Trim(Label9.Caption); + Post; + end; +end; + +procedure TfrmMJManageNewFDNewSF.BtnStatus(BSInt: Boolean); +begin + // Tv2.OptionsSelection.CellSelect:=BSInt; +end; + +procedure TfrmMJManageNewFDNewSF.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + try + mvalue := TcxTextEdit(Sender).EditingText; + if Trim(mvalue) <> '' then + begin + mvalue := '0'; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value := mvalue; + except + Application.MessageBox('Ƿ֣', 'ʾ', 0); + end; +end; + +procedure TfrmMJManageNewFDNewSF.SpeedButton1Click(Sender: TObject); +var + fsj: string; +begin + fsj := Trim(TSpeedButton(Sender).Hint); + if Trim(fsj) = '' then + Exit; + fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := fsj + Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmMJManageNewFDNewSF.SpeedButton12Click(Sender: TObject); +var + fsj: string; +begin + fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj) = '' then + Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := Copy(fsj, 1, Length(fsj) - 1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmMJManageNewFDNewSF.SpeedButton13Click(Sender: TObject); +var + i: Integer; +begin + if Trim(Label24.Caption) = '' then + Exit; + if Label24.Visible = False then + Exit; + {with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from Order_JYResult where APID='''+Trim(FAPID)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ŷδ¼,ܼ!','ʾ',0); + Exit; + end; } + if Trim(CDS_MJCD.fieldbyname('MJID').AsString) <> '' then + begin + BTAdd.Click; + end; + if Trim(Label15.Caption) <> '' then + begin + //MJFK.Text:=''; + //MJSJKZ.Text:=''; + MJLen.Text := ''; + MJMaoZ.Text := ''; + MJQty1.Text := ''; + //MJSJKZ.Text:=''; + Label15.Caption := ''; + + end; + if Trim(FAPID) = '' then + Exit; + FCDName := Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible := True; + Label21.Caption := Trim(FCDName); + FInt := 11; + Edit1.SetFocus; + //CDQty.SetFocus; + Panel3.Visible := True; + PState := 1; + with Panel3 do + begin + for i := 0 to ControlCount - 1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint := Trim(Edit1.Name); + end; + end; + end; + +end; + +procedure TfrmMJManageNewFDNewSF.cxGridDBColumn2PropertiesChange(Sender: TObject); +var + fsj: string; +begin + + fsj := Trim(Order_MJ.fieldbyname('SubId').AsString); + Order_MJ.DisableControls; + with Order_MJ do + begin + First; + while not Eof do + begin + if Trim(Order_MJ.fieldbyname('SubId').AsString) <> fsj then + begin + Edit; + FieldByName('SSel').Value := False; + end; + Next; + end; + end; + Order_MJ.EnableControls; + Order_MJ.Locate('SubId', fsj, []); +end; + +procedure TfrmMJManageNewFDNewSF.Button1Click(Sender: TObject); +var + mvalue: Double; + maxno: string; +begin + { if Trim(Edit1.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; } + {if Trim(Edit1.Text)<>'' then + begin + if Trim(Edit2.Text)<>'' then + begin + if StrToFloat(Edit2.Text) '' then + begin + if TryStrToFloat(CDQty.Text, mvalue) = False then + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value := Trim(FCDName); + if Edit1.Text = '' then + FieldByName('CDbeg').Value := 0 + else + FieldByName('CDbeg').Value := Trim(Edit1.Text); + if Edit2.Text = '' then + FieldByName('CDEnd').Value := 0 + else + FieldByName('CDEnd').Value := Trim(Edit2.Text); + fieldbyname('CDReason').Value := trim(DName); + {if RadioGroup1.ItemIndex>-1 then + FieldByName('KouFenType').Value:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + if RadioGroup1.ItemIndex>-1 then + begin + if RadioGroup1.ItemIndex<3 then + begin + FieldByName('KouFenQty').Value:=RadioGroup1.ItemIndex+1; + end + else + begin + FieldByName('KouFenQty').Value:=4; + end; + end;} + //IF Trim(FCDName)='' then + FieldByName('KouFenQty').Value := 0; + if CDQty.Text = '' then + FieldByName('CDQty').Value := 0 + else + FieldByName('CDQty').Value := trim(CDQty.Text); + Post; + end; + Edit1.Text := ''; + Edit2.Text := ''; + CDQty.Text := ''; + MovePanel1.Visible := False; + Panel3.Visible := False; + //if FInt=4 then + //begin + with CDS_MJCD do + begin + First; + while not Eof do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then + begin + if GetLSNo(ADOCmd, maxno, 'MC', 'WFB_MJJY_CD', 5, 1) = False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ', 'ʾ', 0); + Exit; + end; + end + else + begin + maxno := Trim(CDS_MJCD.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID=''' + Trim(maxno) + ''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then + Append + else + Edit; + FieldByName('MJId').Value := Trim(CDS_MJID.fieldbyname('MJID').AsString); + FieldByName('MCID').Value := Trim(maxno); + SSetSaveDataCDSNew(ADOCmd, Tv2, CDS_MJCD, 'WFB_MJJY_CD', 0); + Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('MCID').Value := Trim(maxno); + + Next; + end; + end; + //end; +end; + +procedure TfrmMJManageNewFDNewSF.Button4Click(Sender: TObject); +begin + Edit1.Text := ''; + Edit2.Text := ''; + CDQty.Text := ''; + MovePanel1.Visible := False; + Panel3.Visible := False; +end; + +procedure TfrmMJManageNewFDNewSF.ToolButton1Click(Sender: TObject); +begin + //InitGrid(); + InitJP(); +end; + +procedure TfrmMJManageNewFDNewSF.Button5Click(Sender: TObject); +var + fPrintFile: string; + i: Integer; + mvalue: Double; +begin + if CDS_MJID.IsEmpty then + Exit; + + if PState <> 2 then + exit; + if trim(Label9.Caption) = '' then + begin + Application.MessageBox('ȵλΪ!', 'ʾ', 0); + Exit; + end; + if Trim(MJQty1.Text) <> '' then + begin + if TryStrToFloat(MJQty1.Text, mvalue) = False then + begin + Application.MessageBox('ԭ¼!', 'ʾ', 0); + Exit; + end; + end; + + if Trim(MJFK.Text) <> '' then + begin + if TryStrToFloat(MJFK.Text, mvalue) = False then + begin + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJMaoZ.Text) <> '' then + begin + if TryStrToFloat(MJMaoZ.Text, mvalue) = False then + begin + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJSJKZ.Text) <> '' then + begin + if TryStrToFloat(MJSJKZ.Text, mvalue) = False then + begin + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if Trim(MJQty2.Text) <> '' then + begin + if TryStrToFloat(MJQty2.Text, mvalue) = False then + begin + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + end; + if strtofloatdef(trim(MJQty4.Text), 0) < 0.00 then + begin + application.MessageBox('С0', 'ʾϢ', 0); + exit; + end; + if strtofloatdef(trim(MJLen.Text), 0) < 0.00 then + begin + application.MessageBox('ȲС0', 'ʾϢ', 0); + exit; + end; + + if SaveData() then + begin + MJLen.Text := ''; + MJMaoZ.Text := ''; + MJQty1.Text := ''; + MJQty2.Text := ''; + //MJSJKZ.Text:=''; + Label15.Caption := ''; + //MJQty3.Text:=''; + MJQty4.Text := ''; + Edit3.Text := ''; + Edit4.Text := ''; + Edit5.Text := ''; + FInt := 0; + end; + if Trim(Edit6.Text) = '' then + begin + PrtData(FFFMJID); + end; + Label16.Caption := ''; + BTAdd.Click; + Edit8.Text := ''; + Button5.Visible := false; + MJLen.SetFocus; +end; + +procedure TfrmMJManageNewFDNewSF.SpeedButton49Click(Sender: TObject); +begin + Panel3.Visible := False; +end; + +procedure TfrmMJManageNewFDNewSF.APIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + fxsType := ''; + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select C.Subid,A.*,B.MPRTBZNote,B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,B.xs,B.xsType,B.MPRTKaiJian '); + sql.Add(',B.MPRTMF,B.MPRTKZ,isnull(B.LengUnit,E.OrderUnit) LengUnit,E.OrderUnit,B.SCYaoSu,B.BZNote,D.ConPerson2,D.conDefstr2,D.conDefstr3,D.ConNo,D.KHConNO,'); + SQL.Add('OrderNoM=B.OrderNo,isnull(E.StyleNo,C.StyleNo) StyleNo,D.OrdDate,'); + SQL.Add('PRTColor=isnull(E.PRTColor,E.PRTColorENG),B.MPrtCode, '); + SQL.Add('E.PRTHX,B.PiZhong,E.PRTColorNo,E.PRTColorEng,E.ZDJH,'); + sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK '); + if ComBoBox2.Text = '׺' then + sql.Add(' and X.APID=A.SPID and isnull(X.MJStr4,'''')=''' + trim(MJStr4.Text) + ''''); + sql.add('),0) '); + sql.Add('from CK_SXPB_CR A '); + SQL.Add('inner join JYOrder_Main B on A.OrdMainIDCK=B.MainId '); + sql.Add('left join JYOrder_Sub E on A.OrdSubidCK=E.Subid '); + sql.add('left join JYOrderCon_Sub C on C.Subid=A.ConCKID '); + sql.add('left join JYOrderCon_Main D on D.Mainid=C.Mainid '); + sql.Add('where A.SPID=''' + Trim(APID.Text) + ''''); +// ShowMessage(sql.Text); + Open; + end; + if ADOTmp.IsEmpty = False then + begin + FOrdDate := ADOTmp.fieldbyname('OrdDate').AsDateTime; + Label2.Visible := True; + Label2.Caption := Trim(ADOTmp.fieldbyname('PRTHX').AsString); + Label9.Visible := True; + Label9.Caption := trim(ADOTmp.fieldbyname('LengUnit').AsString); + + Label24.Visible := True; + Label24.Caption := Trim(ADOTmp.fieldbyname('OrderNoM').AsString); + Label25.Visible := True; + Label25.Caption := Trim(ADOTmp.fieldbyname('PRTColor').AsString); + Label43.Visible := true; + Label43.Caption := Trim(ADOTmp.fieldbyname('PRTColorEng').AsString); + FAPID := Trim(APID.Text); + FMainId := Trim(ADOTmp.fieldbyname('OrdMainIDCK').AsString); + FSubId := Trim(ADOTmp.fieldbyname('OrdsubIDCK').AsString); + FZDJH := StrToFloatDef(ADOTmp.fieldbyname('ZDJH').AsString, 0); + FOrderUnit := trim(ADOTmp.fieldbyname('OrderUnit').AsString); + FConPerson2 := Trim(ADOTmp.fieldbyname('ConPerson2').AsString); + FconDefstr2 := Trim(ADOTmp.fieldbyname('conDefstr2').AsString); + FconDefstr3 := Trim(ADOTmp.fieldbyname('conDefstr3').AsString); + FConNo := Trim(ADOTmp.fieldbyname('ConNo').AsString); + FKHConNO := Trim(ADOTmp.fieldbyname('KHConNO').AsString); + FStyleNo := trim(ADOTmp.fieldbyname('StyleNo').AsString); + FConID := trim(ADOTmp.fieldbyname('Subid').AsString); + FMPrtCode := Trim(ADOTmp.fieldbyname('MPrtCode').AsString); + MJXH.Text := Trim(ADOTmp.fieldbyname('maxRoll').AsString); + MKXS.Text := Trim(ADOTmp.fieldbyname('Xs').AsString); + MJstr4.Text := Trim(ADOTmp.fieldbyname('RCgangNO').AsString); + fxsType := Trim(ADOTmp.fieldbyname('xsType').AsString); + AOrdDefNote1.Text := 'Ҫ:' + Trim(ADOTmp.fieldbyname('Note').AsString) + #13 + 'ŷ:' + Trim(ADOTmp.fieldbyname('MPRTMF').AsString) + #13 + ':' + Trim(ADOTmp.fieldbyname('MPRTKZ').AsString) + #13 + 'Ҫ:' + Trim(ADOTmp.fieldbyname('SCYaoSu').AsString) + #13 + 'װҪ:' + Trim(ADOTmp.fieldbyname('BZNote').AsString); + if ADOTmp.fieldbyname('PiZhong').AsFloat = 0 then + MJQty3.Text := '' + else + MJQty3.Text := Trim(ADOTmp.fieldbyname('PiZhong').AsString); + Label19.Caption := Label9.Caption; + Label20.Caption := Label9.Caption; + Label7.Caption := Label9.Caption; + end + else + begin + Application.MessageBox('!', 'ʾ', 0); + Label2.Visible := False; + Label2.Caption := ''; + APID.Text := ''; + FAPID := ''; + FMainId := ''; + FSubId := ''; + AOrdDefNote1.Text := ''; + Exit; + end; + + APID.Text := ''; + BTAdd.Click; + BTPrint.Enabled := true; + MJLen.SetFocus; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit1Click(Sender: TObject); +var + i: Integer; +begin + Panel3.Visible := True; + with Panel3 do + begin + for i := 0 to ControlCount - 1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name); + end; + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit2Change(Sender: TObject); +var + mvalue: Double; +begin + if Trim(Edit1.Text) <> '' then + begin + if TryStrToFloat(Edit1.Text, mvalue) = False then + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end + else + begin + Exit; + end; + if Trim(Edit2.Text) <> '' then + begin + if TryStrToFloat(Edit2.Text, mvalue) = False then + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + end + else + begin + Exit; + end; + if trim(MKXS.Text) = '' then + exit; + CDQty.Text := FloatToStr(StrToFloat(Edit2.Text) * strtofloat(MKXS.Text)); +end; + +procedure TfrmMJManageNewFDNewSF.Edit3Click(Sender: TObject); +begin + if Trim(Edit3.Text) = '' then + begin + Edit3.Text := ''; + Edit4.Text := ''; + Edit5.Text := ''; + end + else + begin + Edit3.Text := ''; + Edit4.Text := ''; + Edit5.Text := ''; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit4Click(Sender: TObject); +begin + if Trim(Edit4.Text) = '' then + begin + Edit4.Text := ''; + Edit3.Text := ''; + Edit5.Text := ''; + end + else + begin + Edit4.Text := ''; + Edit3.Text := ''; + Edit5.Text := ''; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit5Click(Sender: TObject); +begin + if Trim(Edit5.Text) = '' then + begin + Edit5.Text := ''; + Edit3.Text := ''; + Edit4.Text := ''; + end + else + begin + Edit5.Text := ''; + Edit3.Text := ''; + Edit4.Text := ''; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit6Click(Sender: TObject); +begin + if Trim(Edit6.Text) = '' then + begin + Edit6.Text := ''; + end + else + begin + Edit6.Text := ''; + end; +end; + +procedure TfrmMJManageNewFDNewSF.MJstr3KeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + Key := #0; + SelectNext(ActiveControl as TWinControl, True, True); + end; +end; + +procedure TfrmMJManageNewFDNewSF.MJQty3Exit(Sender: TObject); +begin + { if (trim(MJMaoZ.Text)='') and (trim(MJQty4.Text)='') then exit; + if (trim(MJMaoZ.Text)='') and (trim(MJQty3.Text)='') then exit; + if (trim(MJQty4.Text)='') and (trim(MJQty3.Text)='') then exit; + + if (trim(MJQty3.Text)='') then exit; + + if (trim(MJQty4.Text)<>'') then + begin + MJMaoZ.Text:=floattostr(strtofloatdef(trim(MJQty3.Text),0)+strtofloatdef(trim(MJQty4.Text),0) ); + exit; + end; + } +end; + +procedure TfrmMJManageNewFDNewSF.MJMaoZExit(Sender: TObject); +begin +{ if (trim(MJMaoZ.Text)='') and (trim(MJQty4.Text)='') then exit; + if (trim(MJMaoZ.Text)='') and (trim(MJQty3.Text)='') then exit; + if (trim(MJQty4.Text)='') and (trim(MJQty3.Text)='') then exit; + + if (trim(MJQty3.Text)='') then exit; + + if (trim(MJMaoZ.Text)<>'') then + begin + MJQty4.Text:=floattostr(strtofloatdef(trim(MJMaoZ.Text),0)-strtofloatdef(trim(MJQty3.Text),0) ); + exit; + end; } +end; + +procedure TfrmMJManageNewFDNewSF.Label9Click(Sender: TObject); +begin + {if application.MessageBox('ȷҪλ','ʾ',1)=2 then exit; + if trim(Label9.Caption)='M' then + begin + Label9.Caption:='Y'; + //Label19.Caption:='Y'; + //Label20.Caption:='Y'; + Label7.Caption:='Y'; + end + else + begin + Label9.Caption:='M'; + //Label19.Caption:='M'; + //Label20.Caption:='M'; + Label7.Caption:='M'; + end; } +end; + +procedure TfrmMJManageNewFDNewSF.MJLenExit(Sender: TObject); +begin + MJQty3.OnExit(self); +end; + +procedure TfrmMJManageNewFDNewSF.MJQty4Exit(Sender: TObject); +begin + if (trim(MJMaoZ.Text) = '') and (trim(MJQty4.Text) = '') then + exit; + if (trim(MJMaoZ.Text) = '') and (trim(MJQty3.Text) = '') then + exit; + if (trim(MJQty4.Text) = '') and (trim(MJQty3.Text) = '') then + exit; + + if (trim(MJQty3.Text) = '') then + exit; + + if (trim(MJQty4.Text) <> '') then + begin + MJMaoZ.Text := floattostr(strtofloatdef(trim(MJQty3.Text), 0) + strtofloatdef(trim(MJQty4.Text), 0)); + exit; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Button2Click(Sender: TObject); +begin + RadioGroup1.ItemIndex := -1; +end; + +procedure TfrmMJManageNewFDNewSF.MJQty4Change(Sender: TObject); +var + FReal: Double; +begin + if Trim(MJQty4.Text) = '' then + begin + // MJLen.Text:=''; + MJMaoZ.Text := ''; + Exit; + end; + if TryStrToFloat(MJQty4.Text, FReal) = False then + Exit; + if Trim(MJQty3.Text) <> '' then + begin + if TryStrToFloat(MJQty3.Text, FReal) = True then + MJMaoZ.Text := FloatToStr(StrToFloat(MJQty4.Text) + StrToFloat(MJQty3.Text)); + end + else + begin + MJMaoZ.Text := MJQty4.Text; + end; + + if trim(fxsType) = 'ػ㳤' then + begin + if MKXS.Text <> '0' then + begin + MJLen.Text := format('%.1f', [StrToFloatdef(trim(MJQty4.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + //MJMaoZ.Text:=FloatToStr(StrToFloatdef(trim(MJQty4.Text),0)+StrToFloatdef(trim(MJQty3.Text),0)); + end + else + begin + MJLen.Text := format('%.0f', [StrToFloatdef(trim(MJQty4.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.MJMaoZChange(Sender: TObject); +var + FReal: Double; +begin + //if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit; + if Trim(MJMaoZ.Text) = '' then + begin + //MJLen.Text:=''; + MJQty4.Text := ''; + Exit; + end; + if TryStrToFloat(MJMaoZ.Text, FReal) = False then + Exit; + if Trim(MJQty3.Text) <> '' then + begin + if TryStrToFloat(MJQty3.Text, FReal) = False then + Exit; + MJQty4.Text := FloatToStr(StrToFloat(MJMaoZ.Text) - StrToFloat(MJQty3.Text)); + end + else + begin + MJQty4.Text := MJMaoZ.Text; + end; + if trim(fxsType) = 'ػ㳤' then + begin + if MKXS.Text <> '0' then + begin + MJLen.Text := format('%.1f', [StrToFloatdef(trim(MJQty4.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + // MJMaoZ.Text:=FloatToStr(StrToFloatdef(trim(MJQty4.Text),0)+StrToFloatdef(trim(MJQty3.Text),0)); + end + else + begin + MJLen.Text := format('%.0f', [StrToFloatdef(trim(MJQty4.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.APIDClick(Sender: TObject); +var + i: Integer; +begin + Panel3.Visible := True; + with Panel3 do + begin + for i := 0 to ControlCount - 1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name); + end; + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Button3Click(Sender: TObject); +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select C.Subid,A.*,B.MPRTBZNote,B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,B.xs,B.xsType,B.MPRTKaiJian '); + sql.Add(',B.MPRTMF,B.MPRTKZ,B.LengUnit,B.SCYaoSu,B.BZNote,C.StyleNo,'); + SQL.Add('OrderNoM=(select OrderNo from JYOrder_Main X where X.Mainid=A.OrdMainIDCK),'); + SQL.Add('isnull(E.PRTHX,E.PRTColorNo) PRTHX,E.PRTColorNo,'); + sql.Add('PiZhong=(select PiZhong from JYOrder_Main X where X.Mainid=A.OrdMainIDCK),'); + sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK and X.MJStr4=A.RCGangNo),0)'); + sql.Add('from CK_SXPB_CR A'); + SQL.Add('inner join JYOrder_Main B on A.OrdMainIDCK=B.MainId'); + sql.Add(' left join JYOrder_Sub C on C.Subid=A.OrdSubidCK '); + sql.Add('where SPID=''' + Trim(APID.Text) + ''''); + Open; + end; + if ADOTmp.IsEmpty = False then + begin + Label2.Visible := True; + Label2.Caption := Trim(ADOTmp.fieldbyname('PRTHX').AsString); + Label9.Visible := True; + Label9.Caption := Trim(ADOTmp.fieldbyname('LengUnit').AsString); + Label24.Visible := True; + Label24.Caption := Trim(ADOTmp.fieldbyname('OrderNoM').AsString); + Label25.Visible := True; + Label25.Caption := Trim(ADOTmp.fieldbyname('PRTColor').AsString); + FAPID := Trim(APID.Text); + FStyleNo := Trim(ADOTmp.fieldbyname('StyleNo').AsString); + FMainId := Trim(ADOTmp.fieldbyname('MainId').AsString); + FSubId := Trim(ADOTmp.fieldbyname('SubId').AsString); + MJXH.Text := Trim(ADOTmp.fieldbyname('maxRoll').AsString); + AOrdDefNote1.Text := 'Ҫ:' + Trim(ADOTmp.fieldbyname('Note').AsString) + #13 + 'ŷ:' + Trim(ADOTmp.fieldbyname('MPRTMF').AsString) + #13 + ':' + Trim(ADOTmp.fieldbyname('MPRTKZ').AsString) + #13 + 'Ҫ:' + Trim(ADOTmp.fieldbyname('SCYaoSu').AsString) + #13 + 'װҪ:' + Trim(ADOTmp.fieldbyname('BZNote').AsString); + if ADOTmp.fieldbyname('PiZhong').AsFloat = 0 then + MJQty3.Text := '' + else + MJQty3.Text := Trim(ADOTmp.fieldbyname('PiZhong').AsString); + Label13.Caption := Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); + MJFK.Text := Trim(ADOTmp.fieldbyname('JYMF').AsString); + MJSJKZ.Text := Trim(ADOTmp.fieldbyname('JYKZ').AsString); + MKXS.Text := Trim(ADOTmp.fieldbyname('ZSXS').AsString); + MJstr4.Text := Trim(ADOTmp.fieldbyname('RCGangNo').AsString); + Label19.Caption := Label9.Caption; + Label20.Caption := Label9.Caption; + Label7.Caption := Label9.Caption; + end + else + begin + Application.MessageBox('!', 'ʾ', 0); + Label2.Visible := False; + Label2.Caption := ''; + APID.Text := ''; + FAPID := ''; + FMainId := ''; + FSubId := ''; + AOrdDefNote1.Text := ''; + MJStr4.Text := ''; + Exit; + end; + // MJXH.Text:='1'; + APID.Text := ''; + BTAdd.Click; + MJMaoZ.SetFocus; +end; + +procedure TfrmMJManageNewFDNewSF.MJFKChange(Sender: TObject); +var + FReal: Double; +begin + // if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit; + + if TryStrToFloat(MJQty4.Text, FReal) = False then + Exit; + if Trim(MJSJKZ.Text) = '' then + Exit; + if TryStrToFloat(MJSJKZ.Text, FReal) = False then + begin + Exit; + end; + if Trim(MJFK.Text) = '' then + Exit; + if TryStrToFloat(MJFK.Text, FReal) = False then + begin + Exit; + end; + if StrToFloat(MJSJKZ.Text) * StrToFloat(MJFK.Text) = 0 then + Exit; + { IF trim(MKXS.Text)='' then + begin + if Trim(Label9.Caption)='M' then + begin + //MJLen.Text:=FloatToStr(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)); + MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)]); + end else + begin + MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936]); + //MJLen.Text:=FloatToStr(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936); + //MJLen.Text:=floatToStr(Round(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936)); + end; + end;} +end; + +procedure TfrmMJManageNewFDNewSF.Edit7Click(Sender: TObject); +begin + if Trim(Edit7.Text) = '' then + begin + Edit7.Text := ''; + // if not IsCommOpen then OpenCom(DllName); + IsJsMessage := true; + end + else + begin + Edit7.Text := ''; + IsJsMessage := true; + MJMaoZ.Text := '0'; + MJQty4.Text := '0'; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Button6Click(Sender: TObject); +begin + frmClothHCList := TfrmClothHCList.create(self); + with frmClothHCList do + begin + fType := '10'; + if showmodal = 1 then + begin + APID.Text := trim(Order_Main.fieldbyname('APID').asstring); + Button3.Click; + end; + free; + end; +end; + +procedure TfrmMJManageNewFDNewSF.MJQty4KeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + BTPrint.Click; + end; +end; + +procedure TfrmMJManageNewFDNewSF.MKXSChange(Sender: TObject); +begin + if Trim(MJQty3.Text) = '' then + begin + Exit; + end; + if trim(MJMaoZ.Text) = '' then + begin + exit; + end; + if trim(MKXS.Text) = '' then + begin + exit; + end; + MJQty4.Text := FloatToStr(StrToFloat(MJMaoZ.Text) - StrToFloat(MJQty3.Text)); + MJLen.Text := format('%.1f', [StrToFloatdef(trim(MJQty4.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + //MJQty4.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]); + //MJMaoZ.Text:=FloatToStr(StrToFloat(MJQty4.Text)+StrToFloat(MJQty3.Text)); +end; + +procedure TfrmMJManageNewFDNewSF.FormCreate(Sender: TObject); +begin + IsCommopen := false; + IsJsMessage := false; +end; + +procedure TfrmMJManageNewFDNewSF.MJQty2Change(Sender: TObject); +var + FReal: double; +begin + {IF trim(fxsType)='ػ㳤'then + begin + if MKXS.Text<>'0' then + begin + MJLen.Text:=format('%.0f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]); + // MJMaoZ.Text:=FloatToStr(StrToFloatdef(trim(MJQty4.Text),0)+StrToFloatdef(trim(MJQty3.Text),0)); + end; + end; } + if trim(MKXS.Text) <> '' then + begin + if TryStrToFloat(MKXS.Text, FReal) = true then + begin + MJLen.Text := format('%.0f', [StrToFloatdef(trim(MJQty4.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + MJLen.Text := format('%.0f', [StrToFloatdef(trim(MJLen.Text), 0) - StrToFloatdef(trim(MJQty2.Text), 0)]); + end; + end + else + begin + if Trim(MJSJKZ.Text) = '' then + Exit; + if TryStrToFloat(MJSJKZ.Text, FReal) = False then + begin + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + if Trim(MJFK.Text) = '' then + Exit; + if TryStrToFloat(MJFK.Text, FReal) = False then + begin + Application.MessageBox('¼!', 'ʾ', 0); + Exit; + end; + if StrToFloat(MJSJKZ.Text) * StrToFloat(MJFK.Text) = 0 then + Exit; + if Trim(Label9.Caption) = 'M' then + begin + MJLen.Text := format('%.0f', [StrToFloat(MJQty4.Text) * 1000 * 100 / StrToFloat(MJSJKZ.Text) / StrToFloat(MJFK.Text)]); + MJLen.Text := format('%.0f', [StrToFloatdef(trim(MJLen.Text), 0) - StrToFloatdef(trim(MJQty2.Text), 0)]); + end + else + begin + MJLen.Text := format('%.0f', [StrToFloat(MJQty4.Text) * 1000 * 100 / StrToFloat(MJSJKZ.Text) / StrToFloat(MJFK.Text) * 1.0936]); + MJLen.Text := format('%.0f', [StrToFloatdef(trim(MJLen.Text), 0) - StrToFloatdef(trim(MJQty2.Text), 0)]); + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit8Click(Sender: TObject); +begin + if Trim(Edit8.Text) = '' then + begin + Edit8.Text := ''; + Button5.Visible := true; + end + else + begin + Edit8.Text := ''; + Button5.Visible := false; + end; +end; + +procedure TfrmMJManageNewFDNewSF.MJLenChange(Sender: TObject); +begin + if trim(fxsType) = 'Ȼ㾻' then + begin + MJQty4.Text := format('%.1f', [StrToFloatdef(trim(MJLen.Text), 0) * StrToFloatdef(trim(MKXS.Text), 0)]); + MJMaoZ.Text := FloatToStr(StrToFloatdef(trim(MJQty4.Text), 0) + StrToFloatdef(trim(MJQty3.Text), 0)); + end; +end; + +procedure TfrmMJManageNewFDNewSF.tv2CDWZPropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + try + mvalue := TcxTextEdit(Sender).EditingText; + if Trim(mvalue) <> '' then + begin + mvalue := '0'; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDBeg').Value := mvalue; + except + Application.MessageBox('Ƿ֣', 'ʾ', 0); + end; +end; + +procedure TfrmMJManageNewFDNewSF.v2Column2PropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + try + mvalue := TcxTextEdit(Sender).EditingText; + if Trim(mvalue) <> '' then + begin + mvalue := '0'; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDend').Value := mvalue; + except + Application.MessageBox('Ƿ֣', 'ʾ', 0); + end; +end; + +procedure TfrmMJManageNewFDNewSF.Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + {if application.MessageBox('ȷҪɾ','ʾ',1)=2 then exit; + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + CDS_MJID.EnableControls; + Application.MessageBox('Ѳݲɾ!','ʾ',0); + Exit; + end else + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + sql.Add('delete WFB_MJJY_CD where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + end; + CDS_MJID.Delete;} +end; + +procedure TfrmMJManageNewFDNewSF.Button7Click(Sender: TObject); +begin + if CDS_MJID.IsEmpty then + exit; + with CDS_MJID do + begin + first; + while not eof do + begin + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('update WFB_MJJY set WCStatus='''' '); + sql.add('where MJID=''' + trim(CDS_MJID.fieldbyname('MJID').asstring) + ''''); + execsql; + end; + with CDS_MJID do + begin + edit; + fieldbyname('WCStatus').AsString := ''; + end; + next; + end; + end; + application.MessageBox('ɹ', 'ʾ'); +end; + +procedure TfrmMJManageNewFDNewSF.MJXHCXChange(Sender: TObject); +begin + //SDofilter10(CDS_MJID,SGetFilters(Panel1,1,2)); +end; + +procedure TfrmMJManageNewFDNewSF.MJXHCXClick(Sender: TObject); +var + i: Integer; +begin + Panel3.Visible := True; + with Panel3 do + begin + for i := 0 to ControlCount - 1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name); + end; + end; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit10Click(Sender: TObject); +begin + if Trim(Edit10.Text) = '' then + begin + Edit10.Text := ''; + end + else + begin + Edit10.Text := ''; + end; +end; + +procedure TfrmMJManageNewFDNewSF.Edit11Click(Sender: TObject); +begin + if Trim(Edit11.Text) = '' then + begin + Edit11.Text := ''; + // if not IsCommOpen then OpenCom(DllName); + IsJsMessage := true; + end + else + begin + Edit11.Text := ''; + IsJsMessage := true; + MJLen.Text := '0'; + end; +end; + +end. + diff --git a/盛纺贸易管理/U_MJManageNewFDNew1.dfm b/盛纺贸易管理/U_MJManageNewFDNew1.dfm new file mode 100644 index 0000000..8e5c0f5 --- /dev/null +++ b/盛纺贸易管理/U_MJManageNewFDNew1.dfm @@ -0,0 +1,1967 @@ +object frmMJManageNewFDNew: TfrmMJManageNewFDNew + Left = 68 + Top = -26 + Width = 1280 + Height = 754 + HorzScrollBar.Position = 85 + Caption = #25104#21697#26816#39564 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClick = FormClick + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = -85 + Top = 0 + Width = 1365 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = ToolButton1Click + end + object TBCD: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30133#28857#31649#29702 + ImageIndex = 132 + OnClick = TBCDClick + end + object TBClose: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid2: TcxGrid + Left = 626 + Top = 78 + Width = 330 + Height = 620 + Align = alLeft + TabOrder = 1 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 98 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle1 + Styles.Header = cxStyle1 + Width = 76 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Content = cxStyle1 + Styles.Header = cxStyle1 + Width = 75 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = Tv2CDQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + Width = 73 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 956 + Top = 78 + Width = 324 + Height = 620 + Align = alLeft + TabOrder = 2 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = cxStyle4 + Styles.IncSearch = cxStyle4 + Styles.Selection = cxStyle4 + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle5 + Styles.Header = cxStyle5 + Width = 146 + end + object v3Column3: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'MJType' + Options.Editing = False + Styles.Content = cxStyle5 + Styles.Header = cxStyle5 + Width = 48 + end + object v3Column1: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle4 + Styles.Header = cxStyle4 + Width = 49 + end + object v3Column2: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + Width = 60 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object ScrollBox1: TScrollBox + Left = -85 + Top = 78 + Width = 483 + Height = 620 + Align = alLeft + TabOrder = 3 + object SpeedButton13: TSpeedButton + Left = 7 + Top = 3 + Width = 70 + Height = 70 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 86 + Top = 3 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 166 + Top = 3 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 245 + Top = 3 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 325 + Top = 3 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 404 + Top = 3 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 7 + Top = 77 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 86 + Top = 77 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 166 + Top = 77 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 245 + Top = 77 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 325 + Top = 77 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 404 + Top = 77 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton29: TSpeedButton + Left = 7 + Top = 151 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton30: TSpeedButton + Left = 86 + Top = 151 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton31: TSpeedButton + Left = 166 + Top = 151 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton32: TSpeedButton + Left = 245 + Top = 151 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton33: TSpeedButton + Left = 325 + Top = 151 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton34: TSpeedButton + Left = 404 + Top = 151 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton37: TSpeedButton + Left = 7 + Top = 225 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton38: TSpeedButton + Left = 86 + Top = 225 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton39: TSpeedButton + Left = 166 + Top = 225 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton40: TSpeedButton + Left = 245 + Top = 225 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton41: TSpeedButton + Left = 325 + Top = 225 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton42: TSpeedButton + Left = 404 + Top = 225 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton45: TSpeedButton + Left = 7 + Top = 299 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton46: TSpeedButton + Left = 86 + Top = 299 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton47: TSpeedButton + Left = 166 + Top = 299 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton48: TSpeedButton + Left = 245 + Top = 299 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton50: TSpeedButton + Left = 325 + Top = 299 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton51: TSpeedButton + Left = 404 + Top = 299 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton54: TSpeedButton + Left = 7 + Top = 373 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton55: TSpeedButton + Left = 86 + Top = 373 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton56: TSpeedButton + Left = 166 + Top = 373 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton57: TSpeedButton + Left = 245 + Top = 373 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton58: TSpeedButton + Left = 325 + Top = 373 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton59: TSpeedButton + Left = 404 + Top = 373 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton62: TSpeedButton + Left = 7 + Top = 447 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton63: TSpeedButton + Left = 86 + Top = 447 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton64: TSpeedButton + Left = 166 + Top = 447 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton65: TSpeedButton + Left = 245 + Top = 447 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton66: TSpeedButton + Left = 325 + Top = 447 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton67: TSpeedButton + Left = 404 + Top = 447 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton70: TSpeedButton + Left = 7 + Top = 521 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton71: TSpeedButton + Left = 86 + Top = 521 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton72: TSpeedButton + Left = 166 + Top = 521 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton73: TSpeedButton + Left = 245 + Top = 521 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton74: TSpeedButton + Left = 325 + Top = 521 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton75: TSpeedButton + Left = 404 + Top = 521 + Width = 70 + Height = 70 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object MovePanel1: TMovePanel + Left = 1 + Top = 112 + Width = 313 + Height = 281 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 4 + Visible = False + object Label17: TLabel + Left = 29 + Top = 24 + Width = 88 + Height = 21 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 178 + Top = 59 + Width = 20 + Height = 19 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 264 + Top = 24 + Width = 22 + Height = 21 + Caption = #30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 264 + Top = 89 + Width = 22 + Height = 21 + Caption = #30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 29 + Top = 89 + Width = 84 + Height = 21 + Caption = 'Label21' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 264 + Top = 167 + Width = 22 + Height = 21 + Caption = #30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 29 + Top = 167 + Width = 92 + Height = 21 + Caption = #38271' '#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 124 + Top = 14 + Width = 131 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnChange = Edit2Change + OnClick = Edit1Click + end + object Button1: TButton + Left = 36 + Top = 221 + Width = 66 + Height = 43 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button1Click + end + object Button4: TButton + Left = 190 + Top = 221 + Width = 64 + Height = 42 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button4Click + end + object Edit2: TEdit + Left = 124 + Top = 79 + Width = 131 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnChange = Edit2Change + OnClick = Edit1Click + end + object CDQty: TEdit + Left = 124 + Top = 157 + Width = 131 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + end + end + object Panel1: TPanel + Left = -85 + Top = 30 + Width = 1365 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 5 + object Label1: TLabel + Left = 9 + Top = 16 + Width = 80 + Height = 19 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 592 + Top = 15 + Width = 42 + Height = 20 + Caption = #32568#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 1088 + Top = 13 + Width = 42 + Height = 12 + Caption = 'Label16' + Visible = False + end + object Label24: TLabel + Left = 296 + Top = 15 + Width = 63 + Height = 20 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label25: TLabel + Left = 448 + Top = 15 + Width = 42 + Height = 20 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object APID: TEdit + Left = 88 + Top = 12 + Width = 185 + Height = 27 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = APIDKeyPress + end + object BTAdd: TButton + Left = 1211 + Top = 8 + Width = 46 + Height = 25 + Caption = #26032#22686 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = BTAddClick + end + object BTEdit: TButton + Left = 1155 + Top = 8 + Width = 38 + Height = 25 + Caption = #20462#25913 + TabOrder = 2 + Visible = False + OnClick = BTEditClick + end + end + object Panel2: TPanel + Left = 398 + Top = 78 + Width = 228 + Height = 620 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 6 + object Label9: TLabel + Left = 182 + Top = 79 + Width = 15 + Height = 22 + Caption = 'M' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 182 + Top = 136 + Width = 26 + Height = 22 + Caption = 'cm' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 182 + Top = 191 + Width = 24 + Height = 22 + Caption = 'Kg' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 25 + Top = 79 + Width = 40 + Height = 23 + Caption = #38271#24230 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label6: TLabel + Left = 25 + Top = 136 + Width = 40 + Height = 23 + Caption = #24133#23485 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label11: TLabel + Left = 25 + Top = 191 + Width = 40 + Height = 23 + Caption = #37325#37327 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 25 + Top = 341 + Width = 40 + Height = 23 + Caption = #27491#21697 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 122 + Top = 341 + Width = 40 + Height = 22 + Caption = #27425#21697 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 182 + Top = 18 + Width = 15 + Height = 22 + Caption = 'M' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label14: TLabel + Left = 25 + Top = 18 + Width = 40 + Height = 23 + Caption = #21407#30721 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 87 + Top = 348 + Width = 5 + Height = 22 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + Visible = False + end + object Label22: TLabel + Left = 182 + Top = 239 + Width = 36 + Height = 22 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label23: TLabel + Left = 25 + Top = 238 + Width = 40 + Height = 23 + Caption = #20811#37325 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label27: TLabel + Left = 25 + Top = 287 + Width = 40 + Height = 23 + Caption = #36192#36865 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label28: TLabel + Left = 25 + Top = 392 + Width = 40 + Height = 22 + Caption = #30041#26679 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label26: TLabel + Left = 121 + Top = 392 + Width = 40 + Height = 22 + Caption = #20986#32440 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object MJFK: TEdit + Left = 69 + Top = 127 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Edit1Click + end + object MJLen: TEdit + Left = 69 + Top = 70 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Edit1Click + end + object MJMaoZ: TEdit + Left = 69 + Top = 182 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Edit1Click + end + object BTPrint: TButton + Left = 11 + Top = 456 + Width = 83 + Height = 54 + Caption = #25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = BTPrintClick + end + object Button5: TButton + Left = 131 + Top = 456 + Width = 83 + Height = 54 + Caption = #37325#25171 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = Button5Click + end + object Edit3: TEdit + Left = 70 + Top = 331 + Width = 46 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Text = #8730 + OnClick = Edit3Click + end + object Edit4: TEdit + Left = 164 + Top = 331 + Width = 46 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + OnClick = Edit4Click + end + object MJQty1: TEdit + Left = 69 + Top = 9 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = Edit1Click + end + object MJSJKZ: TEdit + Left = 69 + Top = 229 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = Edit1Click + end + object MJQty2: TEdit + Left = 69 + Top = 278 + Width = 110 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + OnClick = Edit1Click + end + object Edit5: TEdit + Left = 70 + Top = 382 + Width = 46 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + OnClick = Edit5Click + end + object Edit6: TEdit + Left = 166 + Top = 382 + Width = 46 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Text = #8730 + OnClick = Edit6Click + end + end + object Panel3: TPanel + Left = -43 + Top = 402 + Width = 383 + Height = 231 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 7 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 70 + Height = 70 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 78 + Top = 3 + Width = 70 + Height = 70 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 152 + Top = 3 + Width = 70 + Height = 70 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 226 + Top = 3 + Width = 70 + Height = 70 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 4 + Top = 75 + Width = 70 + Height = 70 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 78 + Top = 75 + Width = 70 + Height = 70 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 152 + Top = 75 + Width = 70 + Height = 70 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 226 + Top = 75 + Width = 70 + Height = 70 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 4 + Top = 150 + Width = 70 + Height = 70 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 78 + Top = 150 + Width = 70 + Height = 70 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 152 + Top = 150 + Width = 70 + Height = 70 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 226 + Top = 150 + Width = 70 + Height = 70 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 303 + Top = 81 + Width = 65 + Height = 57 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 368 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 400 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 616 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 432 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 576 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 536 + end + object ADOTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 504 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 648 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 464 + ReportData = {} + end + object DataSource2: TDataSource + DataSet = CDS_MJCD + Left = 816 + end + object CDS_MJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 768 + end + object DataSource3: TDataSource + DataSet = CDS_MJID + Left = 1000 + Top = 296 + end + object CDS_MJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1016 + Top = 312 + end + object Timer1: TTimer + Interval = 100 + Left = 944 + Top = 320 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 720 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end + object cxStyleRepository3: TcxStyleRepository + object cxStyle4: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object cxStyleRepository4: TcxStyleRepository + object cxStyle5: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object cxStyleRepository5: TcxStyleRepository + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 616 + Top = 587 + end + object ADOQueryMainDSC: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + SQL.Strings = ( + 'select A.*,C.OrderNo,B.SWFBColor,B.SWFBHW,B.SWFBCodeName,' + ' B.SWFBCode,B.SWFBKZ,B.WKMS,B.KZBig,B.KZSmal,' + + ' SCMQty=(select isnull(Sum(MJLen),0) from WFB_MJJY WM wher' + + 'e WM.APId=A.APId and len(WM.MJID)>8),' + + ' Case when A.OrderQtyM-(select isnull(Sum(MJLen),0) from W' + + 'FB_MJJY WM where WM.APId=A.APId )>0 ' + + ' then A.OrderQtyM-(select isnull(Sum(MJLen),0) fr' + + 'om WFB_MJJY WM where WM.APId=A.APId ) else 0 end as WSCMQty' + 'from WFBOrder_Sub_AnPai A ' + 'inner join WFBOrder_Sub B on A.SubId=B.SubId' + 'inner join WFBOrder_Main C on A.MainId=C.MainId' + + 'where C.ChkStatus='#39#23457#26680#36890#36807#39' and RTrim(isnull(A.SCStatus,'#39#39'))<>'#39#24050#23436#25104#39 + + ' ' + 'and isnull(B.AnPaiChkStatus,'#39#39')='#39#23457#26680#36890#36807#39' and A.SCXDFlag=1' + '') + Left = 840 + Top = 144 + end +end diff --git a/盛纺贸易管理/U_MJManageNewFDNew1.pas b/盛纺贸易管理/U_MJManageNewFDNew1.pas new file mode 100644 index 0000000..837a689 --- /dev/null +++ b/盛纺贸易管理/U_MJManageNewFDNew1.pas @@ -0,0 +1,1532 @@ +unit U_MJManageNewFDNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport, + RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, + cxGridPopupMenu, ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons, + cxSplitter, cxCheckBox, MovePanel; +{function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer):integer;stdcall;external 'JCYData.DLL'; +function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL';} + + +type + TfrmMJManageNewFDNew = class(TForm) + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + ADOTmp: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ToolBar1: TToolBar; + TBClose: TToolButton; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + TBCD: TToolButton; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + DataSource2: TDataSource; + CDS_MJCD: TClientDataSet; + DataSource3: TDataSource; + CDS_MJID: TClientDataSet; + v2Column1: TcxGridDBColumn; + Timer1: TTimer; + ADOQueryPrint: TADOQuery; + v2Column2: TcxGridDBColumn; + ToolButton1: TToolButton; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton29: TSpeedButton; + SpeedButton30: TSpeedButton; + SpeedButton31: TSpeedButton; + SpeedButton32: TSpeedButton; + SpeedButton33: TSpeedButton; + SpeedButton34: TSpeedButton; + SpeedButton37: TSpeedButton; + SpeedButton38: TSpeedButton; + SpeedButton39: TSpeedButton; + SpeedButton40: TSpeedButton; + SpeedButton41: TSpeedButton; + SpeedButton42: TSpeedButton; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Edit1: TEdit; + Button1: TButton; + Button4: TButton; + Edit2: TEdit; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle4: TcxStyle; + cxStyleRepository4: TcxStyleRepository; + cxStyle5: TcxStyle; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxGridPopupMenu2: TcxGridPopupMenu; + ADOQueryMainDSC: TADOQuery; + SpeedButton45: TSpeedButton; + SpeedButton46: TSpeedButton; + SpeedButton47: TSpeedButton; + SpeedButton48: TSpeedButton; + SpeedButton50: TSpeedButton; + SpeedButton51: TSpeedButton; + SpeedButton54: TSpeedButton; + SpeedButton55: TSpeedButton; + Panel1: TPanel; + Label1: TLabel; + APID: TEdit; + Label2: TLabel; + BTAdd: TButton; + BTEdit: TButton; + Label16: TLabel; + SpeedButton56: TSpeedButton; + SpeedButton57: TSpeedButton; + SpeedButton58: TSpeedButton; + SpeedButton59: TSpeedButton; + SpeedButton62: TSpeedButton; + SpeedButton63: TSpeedButton; + SpeedButton64: TSpeedButton; + SpeedButton65: TSpeedButton; + SpeedButton66: TSpeedButton; + SpeedButton67: TSpeedButton; + SpeedButton70: TSpeedButton; + SpeedButton71: TSpeedButton; + SpeedButton72: TSpeedButton; + SpeedButton73: TSpeedButton; + SpeedButton74: TSpeedButton; + SpeedButton75: TSpeedButton; + Label7: TLabel; + CDQty: TEdit; + Label8: TLabel; + Panel2: TPanel; + Label9: TLabel; + MJFK: TEdit; + Label3: TLabel; + MJLen: TEdit; + Label4: TLabel; + MJMaoZ: TEdit; + Label5: TLabel; + Label6: TLabel; + Label11: TLabel; + BTPrint: TButton; + Button5: TButton; + Edit3: TEdit; + Label10: TLabel; + Edit4: TEdit; + Label12: TLabel; + Label13: TLabel; + Label14: TLabel; + MJQty1: TEdit; + Label15: TLabel; + Label22: TLabel; + Label23: TLabel; + MJSJKZ: TEdit; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + v3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + Label24: TLabel; + Label25: TLabel; + v3Column3: TcxGridDBColumn; + Label27: TLabel; + MJQty2: TEdit; + Label28: TLabel; + Edit5: TEdit; + Label26: TLabel; + Edit6: TEdit; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBCDClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure MJMaoZClick(Sender: TObject); + procedure MJLenClick(Sender: TObject); + procedure MJFKClick(Sender: TObject); + procedure MJBanZuClick(Sender: TObject); + procedure MJSJKZClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormClick(Sender: TObject); + procedure Button12Click(Sender: TObject); + procedure BTAddClick(Sender: TObject); + procedure BTEditClick(Sender: TObject); + procedure BTPrintClick(Sender: TObject); + procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure cxGridDBColumn2PropertiesChange(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure APIDKeyPress(Sender: TObject; var Key: Char); + procedure Edit1Click(Sender: TObject); + procedure Edit2Change(Sender: TObject); + procedure Edit3Click(Sender: TObject); + procedure Edit4Click(Sender: TObject); + procedure Edit5Click(Sender: TObject); + procedure Edit6Click(Sender: TObject); + private + { Private declarations } + FInt,PState,PrintInt,SCInitGrid,FState:Integer; + FColumn,FBanZu,FAPID,FMainId,FSubId:String; + MValue,FCDName:String; + procedure InitJP(); + procedure InitCDGrid(); + procedure InitCDGridID(); + procedure AddCD(Fbtn:TButton); + procedure AddSL(Fbtn:TButton); + function SaveData():Boolean; + procedure BtnStatus(BSInt:Boolean); + procedure AddSLNew(Fbtn:TSpeedButton); + procedure AddCDNew(Fbtn:TSpeedButton); + procedure SavedataCK(); + public + { Public declarations } + end; + +var + frmMJManageNewFDNew: TfrmMJManageNewFDNew; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp,U_iniParam; + +{$R *.dfm} + +procedure TfrmMJManageNewFDNew.FormDestroy(Sender: TObject); +begin + frmMJManageNewFDNew:=nil; +end; + +procedure TfrmMJManageNewFDNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + //DataLink_WFBProducttion.ADOLink.Connected:=False; + Action:=caFree; +end; +procedure TfrmMJManageNewFDNew.InitCDGrid(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + if PState=1 then + sql.Add('select * from WFB_MJJY_CD where MJID='''' ') + else + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJCD); + SInitCDSData20(ADOQueryMain,CDS_MJCD); +end; +procedure TfrmMJManageNewFDNew.InitCDGridID(); +begin + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where APID='''+Trim(FAPID)+''''); + if Trim(SCXFlag)<>'' then + sql.Add(' and JTType='''+Trim(SCXFlag)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_MJID); + SInitCDSData20(ADOQueryMain,CDS_MJID); +end; + +procedure TfrmMJManageNewFDNew.TBCloseClick(Sender: TObject); +var + maxno:string; +begin + if CDS_MJCD.IsEmpty=False then + begin + if Trim(CDS_MJCD.FieldByName('MCID').AsString)='' then + begin + //try + //ADOCmd.Connection.BeginTrans; + {with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete from WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+''''); + Execsql; + end; + with CDS_MJCD do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'LS','WFB_MJJY_CD_Temp',2,1)=False then + begin + // ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡõʱʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD_Temp where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD_Temp',0); + FieldByName('JTType').Value:=Trim(SCXFlag); + Post; + end; + Next; + end; + end; } + close; + //ADOCmd.Connection.CommitTrans; + //ModalResult:=1; + //except + //ADOCmd.Connection.RollbackTrans; + //Application.MessageBox('ʱʧܣ','ʾ',0); + //end; + end else + begin + Close; + end; + end else + begin + Close; + end; + + + +end; + +procedure TfrmMJManageNewFDNew.Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + fsj:string; +begin + //FInt:=0; + //Tv1.DataController.FocusedRecordIndex; + //fsj:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; +end; + +procedure TfrmMJManageNewFDNew.TBCDClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCD'; + flagname:='õ'; + fnote:=True; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + Self.InitJP(); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmMJManageNewFDNew.FormShow(Sender: TObject); +begin + InitJP(); + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select BanZu from SY_User where UserId='''+Trim(DCode)+''''); + Open; + FBanZu:=Trim(Fieldbyname('BanZu').AsString); + end; + {if Trim(FBanZu)='' then + begin + Application.MessageBox('Ϊգð飡','ʾ',0); + Exit; + end; } + APID.SetFocus; +end; +procedure TfrmMJManageNewFDNew.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD'' order by ZDYNO '); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ûжõ㣡','ʾ',0); + Exit; + end; + with ADOTmp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + if i>63 then + begin + i:=63; + end; + for j:=0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible:=True; + TSpeedButton(Controls[j]).Hint:=AA[j]; + if Length(AA[j])>4 then + begin + TSpeedButton(Controls[j]).Caption:=Copy(Trim(AA[j]),1,4)+#13+Copy(Trim(AA[j]),5,Length(AA[j])-4); + end else + TSpeedButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmMJManageNewFDNew.AddCD(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TButton(Fbtn).Caption); + Post; + end; +end; +procedure TfrmMJManageNewFDNew.AddCDNew(Fbtn:TSpeedButton); +begin + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(TSpeedButton(Fbtn).Hint); + Post; + end; +end; +procedure TfrmMJManageNewFDNew.AddSL(Fbtn:TButton); +begin + if PState<1 then Exit; + if Order_MJ.IsEmpty then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; +end; +procedure TfrmMJManageNewFDNew.AddSLNew(Fbtn:TSpeedButton); +begin + if PState<1 then Exit; + if Trim(FAPID)='' then Exit; + + //if MJMaoZ.Focused then + if FInt=4 then Exit; + if FInt=11 then + begin + if TSpeedButton(Fbtn).Tag=9 then Exit; + Edit1.Text:=Trim(Edit1.Text)+Trim(TSpeedButton(Fbtn).Caption); + Edit1.SelectAll; + end else + if FInt=12 then + begin + if TSpeedButton(Fbtn).Tag=9 then Exit; + Edit2.Text:=Trim(Edit2.Text)+Trim(TSpeedButton(Fbtn).Caption); + Edit2.SelectAll; + end;{ else + if CDS_MJCD.IsEmpty=False then + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + with CDS_MJCD do + begin + Edit; + FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption); + if Trim(fieldbyname('CDQtyS').AsString)<>'' then + Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString); + Post; + end; + end; + end; } +end; + +procedure TfrmMJManageNewFDNew.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + //if Tv2.OptionsSelection.CellSelect=True then + if CDS_MJCD.IsEmpty then Exit; + + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_MJCD.Delete; + end; + +end; + +procedure TfrmMJManageNewFDNew.MJMaoZClick(Sender: TObject); +begin + FInt:=1; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNewFDNew.MJLenClick(Sender: TObject); +begin + FInt:=2; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNewFDNew.MJFKClick(Sender: TObject); +begin + FInt:=3; + FColumn:=''; + panel3.Visible:=True; +end; + +procedure TfrmMJManageNewFDNew.MJBanZuClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNewFDNew.MJSJKZClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNewFDNew.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + //DataLink_WFBProducttion.ADOLink.Connected:=False; + FInt:=4; + // if PState=1 then Exit; + InitCDGridID(); + //InitCDGrid(); + {with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + MJMaoZ.Text:=''; + MJLen.Text:=''; + MJFK.Text:=''; + MJSJKZ.Text:=''; + end else + SSetWinData(ADOTmp,Panel5); } +end; + +procedure TfrmMJManageNewFDNew.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_MJCD.IsEmpty=False then + begin + if Trim(CDS_MJCD.fieldbyname('MJID').AsString)='' then + begin + Application.MessageBox('δ,!','ʾ',0); + Exit; + end; + end; + + FInt:=4; + PState:=0; + InitCDGrid(); + with ADOTmp do + begin + close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + MJFK.Text:=Trim(ADOTmp.fieldbyname('MJFK').AsString); + //MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); + MJLen.Text:=Trim(ADOTmp.fieldbyname('MJLen').AsString); + MJQty1.Text:=Trim(ADOTmp.fieldbyname('MJQty1').AsString); + MJQty2.Text:=Trim(ADOTmp.fieldbyname('MJQty2').AsString); + MJMaoZ.Text:=Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); + Label15.Caption:=Trim(CDS_MJID.fieldbyname('MJID').AsString); + if Trim(ADOTmp.fieldbyname('MJType').AsString)='Ʒ' then + begin + Edit3.Text:=''; + Edit4.Text:=''; + Edit5.Text:=''; + end else + if Trim(ADOTmp.fieldbyname('MJType').AsString)='Ʒ' then + begin + Edit4.Text:=''; + Edit3.Text:=''; + Edit5.Text:=''; + end else + if Trim(ADOTmp.fieldbyname('MJType').AsString)='' then + begin + Edit4.Text:=''; + Edit3.Text:=''; + Edit5.Text:=''; + end; + BtnStatus(False); + Label16.Caption:=''; +end; + + +procedure TfrmMJManageNewFDNew.FormClick(Sender: TObject); +begin + FInt:=4; +end; + +procedure TfrmMJManageNewFDNew.Button12Click(Sender: TObject); +var + fsj:string; +begin + if PState<1 then Exit; + if Trim(FAPID)='' then Exit; + if FInt=4 then Exit; + begin + FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(FColumn)<>'' then + begin + if Trim(CDS_MJCD.FieldByName(FColumn).AsString)<>'' then + begin + with CDS_MJCD do + begin + Edit; + if Length(CDS_MJCD.FieldByName(FColumn).AsString)=1 then + begin + FieldByName(FColumn).Value:=null ; + FieldByName('CDQty').Value:=0; + end + else + begin + FieldByName(FColumn).Value:=Copy(Trim(FieldByName(FColumn).AsString),1,Length(Trim(FieldByName(FColumn).AsString))-1); + FieldByName('CDQty').Value:=FieldByName(FColumn).Value; + end; + Post; + end; + end; + + + end; + end; +end; + +function TfrmMJManageNewFDNew.SaveData():Boolean; +var + maxno,FMJID,BZID:String; + FMJLen:Double; + FOrder:Integer; +begin + if PState=1 then + FMJID:='' + else if PState=2 then + FMJID:=Trim(CDS_MJID.fieldbyname('MJID').AsString) + else if PState<1 then Exit; + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where MJId='''+Trim(FMJID)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMJID)='' then + begin + Append; + if GetLSNo(ADOTmp,maxno,Trim(SCXFlag),'WFB_MJJY',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMJID); + Edit; + end; + FieldByName('MainId').value:=Trim(FMainId); + FieldByName('SubId').value:=Trim(FSubId); + FieldByName('APId').value:=Trim(FAPID); + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MJStr2').Value:='δ'; + FieldByName('MJBanZu').Value:=Trim(FBanZu); + if Trim(MJLen.Text)<>'' then + begin + FieldByName('MJLen').Value:=StrToFloat(MJLen.Text); + end; + if Trim(MJQty1.Text)<>'' then + begin + FieldByName('MJQty1').Value:=StrToFloat(MJQty1.Text); + end; + if Trim(MJQty2.Text)<>'' then + begin + FieldByName('MJQty2').Value:=StrToFloat(MJQty2.Text); + end; + if Trim(MJFK.Text)<>'' then + begin + FieldByName('MJFK').Value:=StrToFloat(MJFK.Text); + end; + if Trim(MJMaoZ.Text)<>'' then + begin + FieldByName('MJMaoZ').Value:=StrToFloat(MJMaoZ.Text); + end; + if Trim(MJSJKZ.Text)<>'' then + begin + FieldByName('MJSJKZ').Value:=StrToFloat(MJSJKZ.Text); + end; + if Trim(Edit3.Text)<>'' then + begin + FieldByName('MJType').Value:='Ʒ'; + end; + if Trim(Edit4.Text)<>'' then + begin + FieldByName('MJType').Value:='Ʒ'; + end; + if Trim(Edit5.Text)<>'' then + begin + FieldByName('MJType').Value:=''; + end; + FieldByName('MJTypeOther').Value:=Trim(Label9.Caption); + FieldByName('MJStr1').Value:=Trim(Label13.Caption); + {if Trim(MJSJKZ.Text)<>'' then + begin + FieldByName('MJSJKZ').Value:=StrToFloat(MJSJKZ.Text); + end; } + if Trim(FMJID)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTmp); + end; + if Trim(SCXFlag)<>'' then + begin + FieldByName('JTType').Value:=Trim(SCXFlag); + end; + Post; + + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('UPdate WFB_MJJY Set MJXH=(select max(MJXH)+1 from WFB_MJJY A where A.APID=WFB_MJJY.APID'); + if Trim(Edit3.Text)<>'' then + begin + sql.Add(' and A.MJType=''Ʒ'' )'); + end; + if Trim(Edit4.Text)<>'' then + begin + sql.Add(' and A.MJType=''Ʒ'' )'); + end; + if Trim(Edit5.Text)<>'' then + begin + sql.Add(' and A.MJType='''' )'); + end; + sql.Add(' where MJID='''+Trim(maxno)+''''); + ExecSQL; + end; + FMJID:=Trim(maxno); + ///ĸõ + with CDS_MJCD do + begin + First; + while not Eof do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + begin + if GetLSNo(ADOTmp,maxno,'MC','WFB_MJJY_CD',5,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_MJCD.fieldbyname('MCID').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY_CD '); + sql.Add(' where MCID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then + Append + else + Edit; + FieldByName('MJId').Value:=Trim(FMJID); + FieldByName('MCID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD',0); + Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('MCID').Value:=Trim(maxno); + Next; + end; + end; + with CDS_MJID do + begin + Append; + FieldByName('MJID').Value:=Trim(FMJID); + Post; + end; + //SavedataCK(); + ADOCmd.Connection.CommitTrans; + Result:=True; + PState:=0; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmMJManageNewFDNew.BTAddClick(Sender: TObject); +begin + if Trim(Label2.Caption)='' then Exit; + PState:=1; + InitCDGridID(); + InitCDGrid(); + BtnStatus(True); + Label16.Caption:=''; +end; + +procedure TfrmMJManageNewFDNew.BTEditClick(Sender: TObject); +begin + if CDS_MJID.IsEmpty then Exit; + PState:=2; + Label16.Caption:='޸'; +end; + +procedure TfrmMJManageNewFDNew.BTPrintClick(Sender: TObject); +var + fPrintFile:String; + mvalue:Double; +begin + if Trim(FAPID)='' then Exit; + if FInt=4 then + begin + if CDS_MJID.IsEmpty=False then + begin + Application.MessageBox('Ѵ룿볢ش','ʾ',0); + Exit; + end; + end; + if Trim(MJLen.Text)='' then + begin + Application.MessageBox('ȲΪ!','ʾ',0); + Exit; + end; + if TryStrToFloat(MJLen.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + {if Trim(MJQty1.Text)='' then + begin + Application.MessageBox('ԭ벻Ϊ!','ʾ',0); + Exit; + end; } + if Trim(MJQty1.Text)<>'' then + begin + if TryStrToFloat(MJQty1.Text,mvalue)=False then + begin + Application.MessageBox('ԭ¼!','ʾ',0); + Exit; + end; + end; + + if Trim(MJFK.Text)<>'' then + begin + if TryStrToFloat(MJFK.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + if Trim(MJMaoZ.Text)<>'' then + begin + if TryStrToFloat(MJMaoZ.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + if Trim(MJSJKZ.Text)<>'' then + begin + if TryStrToFloat(MJSJKZ.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + if Trim(MJQty2.Text)<>'' then + begin + if TryStrToFloat(MJQty2.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; + {if Trim(MJSJKZ.Text)<>'' then + begin + if TryStrToFloat(MJSJKZ.Text,mvalue)=False then + begin + Application.MessageBox('¼!','ʾ',0); + Exit; + end; + end; } + if PState=1 then + begin + if Application.MessageBox('ǷҪӡ룿ӡݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + end; + if SaveData() then + begin + //BtnStatus(False); + MJFK.Text:=''; + //MJSJKZ.Text:=''; + MJLen.Text:=''; + MJMaoZ.Text:=''; + MJQty1.Text:=''; + MJQty2.Text:=''; + MJSJKZ.Text:=''; + Label15.Caption:=''; + Edit3.Text:=''; + + end; + if Trim(Edit6.Text)='' then + begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.MJID,A.MJXH,QtyUnit=A.MJTypeOther,B.orderNo,GangNo=D.AOrddefStr1,PRTColorEng=E.Note '); + sql.Add(',case when MJQty2>0 then Cast(MJLen as varchar(20))+''+''+Cast(MJQty2 as varchar(20)) else Cast(MJLen as varchar(20)) end as Qty '); + sql.Add(',MPRTCodeNameEng=(select Top 1 F.CYEName from CP_YDang F where F.CYNo=B.OrdDefStr1),C.SLbName'); + sql.Add(',B.MPRTCF,C.SOrddefstr4,C.*,A.* '); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; + end; + + Label16.Caption:=''; + BTAdd.Click; +end; +procedure TfrmMJManageNewFDNew.SavedataCK(); +var + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; +begin + //if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(FSubId); + FieldByName('APID').Value:=Trim(FAPID); + FieldByName('MJID').Value:=Trim(CDS_MJID.fieldbyname('MJId').AsString); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOTmp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + //FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + if Trim(MJMaoZ.Text)<>'' then + begin + FieldByName('KGQty').Value:=StrToFloat(MJMaoZ.Text); + end; + if Trim(MJLen.Text)<>'' then + begin + FieldByName('Qty').Value:=StrToFloat(MJLen.Text); + end; + FieldByName('QtyUnit').Value:=Trim(Label9.Caption); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOTmp); + if Trim(Edit3.Text)<>'' then + begin + FieldByName('CPType').Value:='Ʒ'; + end; + if Trim(Edit4.Text)<>'' then + begin + FieldByName('CPType').Value:='Ʒ'; + end; + Post; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('MJID').Value:=Trim(CDS_MJID.fieldbyname('MJID').AsString); + if Trim(MJMaoZ.Text)<>'' then + begin + FieldByName('KCKGQty').Value:=StrToFloat(MJMaoZ.Text); + end; + if Trim(MJLen.Text)<>'' then + begin + FieldByName('KCQty').Value:=StrToFloat(MJLen.Text); + end; + FieldByName('KCQtyUnit').Value:=Trim(Label9.Caption); + Post; + end; +end; +procedure TfrmMJManageNewFDNew.BtnStatus(BSInt:Boolean); +begin + // Tv2.OptionsSelection.CellSelect:=BSInt; +end; +procedure TfrmMJManageNewFDNew.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue:string; +begin + try + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)<>'' then + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=mvalue; + CDS_MJCD.Post; + end else + begin + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQty').Value:=0; + CDS_MJCD.Post; + end; + CDS_MJCD.Edit; + CDS_MJCD.FieldByName('CDQtyS').Value:=mvalue; + except + Application.MessageBox('Ƿ֣','ʾ',0); + end; +end; + +procedure TfrmMJManageNewFDNew.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmMJManageNewFDNew.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmMJManageNewFDNew.SpeedButton13Click(Sender: TObject); +var + i:Integer; +begin + if Trim(Label2.Caption)='' then Exit; + if Label2.Visible=False then Exit; + {with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from Order_JYResult where APID='''+Trim(FAPID)+''''); + Open; + end; + if ADOTmp.IsEmpty then + begin + Application.MessageBox('ŷδ¼,ܼ!','ʾ',0); + Exit; + end; } + if Trim(CDS_MJCD.fieldbyname('MJID').AsString)<>'' then + begin + BTAdd.Click; + end; + if Trim(Label15.Caption)<>'' then + begin + MJFK.Text:=''; + //MJSJKZ.Text:=''; + MJLen.Text:=''; + MJMaoZ.Text:=''; + MJQty1.Text:=''; + MJSJKZ.Text:=''; + Label15.Caption:=''; + + end; + if Trim(FAPID)='' then Exit; + FCDName:=Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible:=True; + Label21.Caption:=Trim(FCDName); + FInt:=11; + Edit1.SetFocus; + //CDQty.SetFocus; + Panel3.Visible:=True; + with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(Edit1.Name); + end; + end; + end; + +end; + +procedure TfrmMJManageNewFDNew.cxGridDBColumn2PropertiesChange(Sender: TObject); +var + fsj:String; +begin + + fsj:=Trim(Order_MJ.fieldbyname('SubId').AsString); + Order_MJ.DisableControls; + with Order_MJ do + begin + First; + while not Eof do + begin + if Trim(Order_MJ.fieldbyname('SubId').AsString)<>fsj then + begin + Edit; + FieldByName('SSel').Value:=False; + end; + Next; + end; + end; + Order_MJ.EnableControls; + Order_MJ.Locate('SubId',fsj,[]); +end; + +procedure TfrmMJManageNewFDNew.Button1Click(Sender: TObject); +var + mvalue:Double; +begin + { if Trim(Edit1.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; } + if Trim(Edit1.Text)<>'' then + begin + if Trim(Edit2.Text)<>'' then + begin + if StrToFloat(Edit2.Text)'' then + begin + if TryStrToFloat(CDQty.Text,mvalue)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + end; + with CDS_MJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(FCDName); + FieldByName('CDbeg').Value:=Trim(Edit1.Text); + FieldByName('CDEnd').Value:=Trim(Edit2.Text); + if Trim(CDQty.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(CDQty.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; + {if Trim(Edit2.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; } + + Post; + end; + Edit1.Text:=''; + Edit2.Text:=''; + CDQty.Text:=''; + MovePanel1.Visible:=False; + Panel3.Visible:=False; +end; + +procedure TfrmMJManageNewFDNew.Button4Click(Sender: TObject); +begin + Edit1.Text:=''; + Edit2.Text:=''; + CDQty.Text:=''; + MovePanel1.Visible:=False; + Panel3.Visible:=False; +end; + +procedure TfrmMJManageNewFDNew.ToolButton1Click(Sender: TObject); +begin + //InitGrid(); + InitJP(); +end; + +procedure TfrmMJManageNewFDNew.Button5Click(Sender: TObject); +var + fPrintFile:String; +begin + if CDS_MJID.IsEmpty then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.MJID,A.MJXH,QtyUnit=A.MJTypeOther,B.orderNo,GangNo=D.AOrddefStr1,PRTColorEng=E.Note,'); + sql.Add(' MPRTCodeNameEng=(select Top 1 F.CYEName from CP_YDang F where F.CYNo=B.OrdDefStr1),C.SLbName'); + sql.Add(',case when MJQty2>0 then Cast(MJLen as varchar(20))+''+''+Cast(MJQty2 as varchar(20)) else Cast(MJLen as varchar(20)) end as Qty '); + sql.Add(',B.MPRTCF,C.SOrddefstr4,C.*,A.* '); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + if Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('SLbName').AsString)+'.rmf' + else + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨӢıǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmMJManageNewFDNew.SpeedButton49Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmMJManageNewFDNew.APIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select A.*, '); + SQL.Add('OrderNoM=(select OrderNo from JYOrder_Main B where B.Mainid=A.MainId),'); + SQL.Add('PRTColor=(select PRTColor from JYOrder_Sub B where B.Subid=A.Subid) '); + sql.Add('from JYOrder_Sub_AnPai A'); + sql.Add('where APID='''+Trim(APID.Text)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + Label2.Visible:=True; + Label2.Caption:=Trim(ADOTmp.fieldbyname('AOrddefStr1').AsString); + Label24.Visible:=True; + Label24.Caption:=Trim(ADOTmp.fieldbyname('OrderNoM').AsString); + Label25.Visible:=True; + Label25.Caption:=Trim(ADOTmp.fieldbyname('PRTColor').AsString); + FAPID:=Trim(APID.Text); + FMainId:=Trim(ADOTmp.fieldbyname('MainId').AsString); + FSubId:=Trim(ADOTmp.fieldbyname('SubId').AsString); + Label9.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString); + Label13.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); + Label19.Caption:=Trim(Label9.Caption); + Label20.Caption:=Trim(Label9.Caption); + Label7.Caption:=Trim(Label9.Caption); + end else + begin + Application.MessageBox('!','ʾ',0); + Label2.Visible:=False; + Label2.Caption:=''; + APID.Text:=''; + FAPID:=''; + FMainId:=''; + FSubId:=''; + Exit; + end; + {if Trim(SCXFlag)<>Trim(ADOTmp.fieldbyname('AOrdDefNote29').AsString) then + begin + APID.Text:=''; + if Application.MessageBox('̨뵱ǰ̨һ,'+#13+'Ƿ飿','ʾ',32+4)<>IDYES then + begin + Label2.Visible:=False; + Label2.Caption:=''; + FAPID:=''; + FMainId:=''; + FSubId:=''; + Exit; + end; + + end; } + APID.Text:=''; + BTAdd.Click; + end; +end; + +procedure TfrmMJManageNewFDNew.Edit1Click(Sender: TObject); +var + i:Integer; +begin + Panel3.Visible:=True; + with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; +end; + +procedure TfrmMJManageNewFDNew.Edit2Change(Sender: TObject); +var + mvalue:Double; +begin + if Trim(Edit1.Text)<>'' then + begin + if TryStrToFloat(Edit1.Text,mvalue)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + end else + begin + Exit; + end; + if Trim(Edit2.Text)<>'' then + begin + if TryStrToFloat(Edit2.Text,mvalue)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + end else + begin + Exit; + end; + CDQty.Text:=FloatToStr(StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text)); +end; + +procedure TfrmMJManageNewFDNew.Edit3Click(Sender: TObject); +begin + if Trim(Edit3.Text)='' then + begin + Edit3.Text:=''; + Edit4.Text:=''; + Edit5.Text:=''; + end else + begin + Edit3.Text:=''; + Edit4.Text:=''; + Edit5.Text:=''; + end; +end; + +procedure TfrmMJManageNewFDNew.Edit4Click(Sender: TObject); +begin + if Trim(Edit4.Text)='' then + begin + Edit4.Text:=''; + Edit3.Text:=''; + Edit5.Text:=''; + end else + begin + Edit4.Text:=''; + Edit3.Text:=''; + Edit5.Text:=''; + end; +end; + +procedure TfrmMJManageNewFDNew.Edit5Click(Sender: TObject); +begin + if Trim(Edit5.Text)='' then + begin + Edit5.Text:=''; + Edit3.Text:=''; + Edit4.Text:=''; + end else + begin + Edit5.Text:=''; + Edit3.Text:=''; + Edit4.Text:=''; + end; +end; + +procedure TfrmMJManageNewFDNew.Edit6Click(Sender: TObject); +begin + if Trim(Edit6.Text)='' then + begin + Edit6.Text:=''; + end else + begin + Edit6.Text:=''; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ModulePromptList.dfm b/盛纺贸易管理/U_ModulePromptList.dfm new file mode 100644 index 0000000..cbdab77 --- /dev/null +++ b/盛纺贸易管理/U_ModulePromptList.dfm @@ -0,0 +1,179 @@ +object frmModulePromptList: TfrmModulePromptList + Left = 126 + Top = 142 + Width = 1065 + Height = 547 + Caption = #25105#30340#31649#23478 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1049 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1049 + Height = 41 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Panel2: TPanel + Left = 664 + Top = 2 + Width = 383 + Height = 37 + Align = alRight + BevelOuter = bvNone + Caption = #25552#31034#65306#21452#20987#25171#24320#22788#29702#20449#24687#30028#38754 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 73 + Width = 1049 + Height = 436 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.FontBlue + object v1Column5: TcxGridDBColumn + Caption = #24453#22788#29702#20107#39033 + DataBinding.FieldName = 'ModuleName' + HeaderAlignmentHorz = taCenter + Width = 235 + end + object v1Column1: TcxGridDBColumn + Caption = #22788#29702#20154 + DataBinding.FieldName = 'DName' + HeaderAlignmentHorz = taCenter + Width = 107 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 1128 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 1168 + Top = 8 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 815 + Top = 7 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 506 + Top = 195 + end +end diff --git a/盛纺贸易管理/U_ModulePromptList.pas b/盛纺贸易管理/U_ModulePromptList.pas new file mode 100644 index 0000000..cd44210 --- /dev/null +++ b/盛纺贸易管理/U_ModulePromptList.pas @@ -0,0 +1,223 @@ +unit U_ModulePromptList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, cxPC; + +type + TfrmModulePromptList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column5: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column1: TcxGridDBColumn; + Panel2: TPanel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxPageControl1Change(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + fDConString_link1:string; + procedure InitGrid(); + procedure InitForm(); + procedure InitDllEvt(FromFile:String;FormID:Integer;Para:String;FormType:Integer; Title: String; + Def1: String; Def2: String; Def3: String; Def4: String; Def5: String; + Def6: String; Def7: String; Def8: String; Def9: String; Def10: string); + { Private declarations } + public + { Public declarations } + userID,username:string; + end; + +var + frmModulePromptList: TfrmModulePromptList; + +implementation +uses + U_DataLink,U_Fun; +type + TMyF = function( + App: TApplication; //Ӧó (Delphi) + FormH: HWND; //ڵĸھ (PB) + FormID: Integer; //ҪdllйܴId; ֻһܴڣFormIDĬΪ0 + Language: Integer; //0=Delphi; 1=PB + WinStyle: Integer; //0=Ӵ; 1ͨ (PBжΪͨ) + UID: PChar; //ûId + UName: PChar; //û + Para: PChar; + Title: PChar; + Defstr1: PChar; + Defstr2: PChar; + Defstr3: PChar; + Defstr4: PChar; + Defstr5: PChar; + Defstr6: PChar; + Defstr7: PChar; + Defstr8: PChar; + Defstr9: PChar; + Defstr10: PChar; + Datalink: PChar + ): HWND; stdcall; +var + TP: FARPROC; + Tf: TMyF; +{$R *.dfm} + +procedure TfrmModulePromptList.FormDestroy(Sender: TObject); +begin + frmModulePromptList:=nil; +end; + +procedure TfrmModulePromptList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmModulePromptList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('б',Tv1,'ҵĹܼ'); +end; + +procedure TfrmModulePromptList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add(' exec P_Chk_Tishi :DName,:DCode'); + Parameters.ParamByName('DName').Value:=Trim(DName); + Parameters.ParamByName('DCode').Value:=Trim(DCode); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + +end; + +procedure TfrmModulePromptList.InitForm(); +begin + fDConString_link1:=Trim(DConString); + ReadCxGrid('б',Tv1,'ҵĹܼ'); + InitGrid(); +end; + +procedure TfrmModulePromptList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmModulePromptList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmModulePromptList.cxPageControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmModulePromptList.InitDllEvt(FromFile:String;FormID:Integer;Para:String;FormType:Integer; Title: String; + Def1: String; Def2: String; Def3: String; Def4: String; Def5: String; + Def6: String; Def7: String; Def8: String; Def9: String; Def10: string); +var + Th: HMODULE; +begin + Th := LoadLibrary(PChar(FromFile)); + if Th > 0 then + begin + TP := GetProcAddress(Th, 'GetDllForm'); + if TP <> nil then + begin + Tf := TMyF(Tp); + Tf(Application, 0, FormID, 0, FormType, PChar(DCode), PChar(DName), PChar(Para), PChar(Title), + PChar(Def1), PChar(Def2),PChar(Def3),PChar(Def4),PChar(Def5), + PChar(Def6),PChar(Def7),PChar(Def8),PChar(Def9),PChar(Def10), + pchar(fDConString_link1)); + end; + end + else + begin + Application.MessageBox(PChar('򲻿ļ' + FromFile + ''), '', MB_ICONERROR); + end; +end; + + +procedure TfrmModulePromptList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_ModuleSub where ModuleId='''+Trim(Order_Main.fieldbyname('ModuleId').AsString)+''''); + sql.Add(' and ModuleSubId='''+Trim(Order_Main.fieldbyname('ModuleSubId').AsString)+''''); + Open; + end; + IF (trim(Order_Main.FieldByName('ModuleId').AsString)='05' ) and (trim(Order_Main.FieldByName('ModuleSubId').AsString)='04' ) then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrder_Sub_AnPai SET Aordflag10=1 where Aordflag10=0 '); + execsql; + end; + end; + IF not ADOQueryTemp.IsEmpty then + begin + InitDllEvt(Trim(ADOQueryTemp.FieldByName('formFile').AsString), + ADOQueryTemp.FieldByName('FormID').AsInteger, + Trim(ADOQueryTemp.FieldByName('FormPara').AsString), + ADOQueryTemp.FieldByName('FormType').AsInteger, + Trim(ADOQueryTemp.FieldByName('Formname').AsString), + + Trim(ADOQueryTemp.FieldByName('FormPara1').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara2').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara3').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara4').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara5').AsString), + + Trim(ADOQueryTemp.FieldByName('FormPara6').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara7').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara8').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara9').AsString), + Trim(ADOQueryTemp.FieldByName('FormPara10').AsString), + ); + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderAttachment.dfm b/盛纺贸易管理/U_OrderAttachment.dfm new file mode 100644 index 0000000..78503bc --- /dev/null +++ b/盛纺贸易管理/U_OrderAttachment.dfm @@ -0,0 +1,666 @@ +object frmOrderAttachment: TfrmOrderAttachment + Left = 123 + Top = 69 + Width = 1019 + Height = 650 + Caption = #29983#20135#35745#21010#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 1011 + Height = 300 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label1: TLabel + Left = 44 + Top = 11 + Width = 69 + Height = 16 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 44 + Top = 39 + Width = 68 + Height = 16 + Caption = #29983#20135#32447#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 372 + Top = 11 + Width = 69 + Height = 16 + Caption = #32534' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 372 + Top = 39 + Width = 68 + Height = 16 + Caption = #35746#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 44 + Top = 70 + Width = 85 + Height = 16 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 60 + Top = 95 + Width = 36 + Height = 12 + Caption = #21253#35013#65306 + end + object Label12: TLabel + Left = 60 + Top = 119 + Width = 36 + Height = 12 + Caption = #21787#22836#65306 + end + object Label13: TLabel + Left = 44 + Top = 141 + Width = 85 + Height = 16 + Caption = #36136#37327#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 60 + Top = 173 + Width = 36 + Height = 12 + Caption = #24067#38754#65306 + end + object Label15: TLabel + Left = 60 + Top = 195 + Width = 36 + Height = 12 + Caption = #25163#24863#65306 + end + object Label16: TLabel + Left = 60 + Top = 217 + Width = 36 + Height = 12 + Caption = #21560#27700#65306 + end + object Label17: TLabel + Left = 188 + Top = 217 + Width = 48 + Height = 12 + Caption = #33394#29282#24230#65306 + end + object Label18: TLabel + Left = 300 + Top = 217 + Width = 36 + Height = 12 + Caption = #20998#20999#65306 + end + object Label19: TLabel + Left = 44 + Top = 244 + Width = 85 + Height = 16 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 583 + Top = 175 + Width = 85 + Height = 16 + Caption = #31614#21457#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 583 + Top = 239 + Width = 68 + Height = 16 + Caption = #31614#21457#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 583 + Top = 8 + Width = 51 + Height = 16 + Caption = #22791#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 735 + Top = 216 + Width = 111 + Height = 35 + Caption = #22791#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 912 + Top = 47 + Width = 41 + Height = 12 + Hint = 'clRed' + AutoSize = False + Color = clRed + ParentColor = False + OnClick = Label8Click + end + object Label9: TLabel + Left = 912 + Top = 63 + Width = 41 + Height = 12 + Hint = 'clOlive' + AutoSize = False + Color = clOlive + ParentColor = False + OnClick = Label8Click + end + object Label10: TLabel + Left = 912 + Top = 79 + Width = 41 + Height = 12 + Hint = 'clBlue' + AutoSize = False + Color = clBlue + ParentColor = False + OnClick = Label8Click + end + object Label22: TLabel + Left = 912 + Top = 95 + Width = 41 + Height = 12 + Hint = 'clFuchsia' + AutoSize = False + Color = clFuchsia + ParentColor = False + OnClick = Label8Click + end + object Label24: TLabel + Left = 912 + Top = 110 + Width = 41 + Height = 12 + Hint = 'clBlack' + AutoSize = False + Color = clBlack + ParentColor = False + OnClick = Label8Click + end + object Customnoname: TEdit + Left = 106 + Top = 8 + Width = 99 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + end + object SCXName: TEdit + Left = 106 + Top = 36 + Width = 99 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + end + object OrderCode: TEdit + Left = 438 + Top = 8 + Width = 119 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + end + object OrderNo: TEdit + Left = 438 + Top = 36 + Width = 119 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + end + object ADefStr3: TEdit + Tag = 9 + Left = 94 + Top = 92 + Width = 247 + Height = 20 + TabOrder = 4 + OnDblClick = ADefStr3DblClick + end + object ADefStr4: TEdit + Tag = 9 + Left = 94 + Top = 116 + Width = 463 + Height = 20 + TabOrder = 5 + OnDblClick = ADefStr4DblClick + end + object ADefStr5: TEdit + Tag = 9 + Left = 94 + Top = 170 + Width = 247 + Height = 20 + TabOrder = 6 + OnDblClick = ADefStr5DblClick + end + object ADefStr6: TEdit + Tag = 9 + Left = 94 + Top = 192 + Width = 79 + Height = 20 + TabOrder = 7 + OnDblClick = ADefStr6DblClick + end + object ADefStr7: TEdit + Tag = 9 + Left = 94 + Top = 214 + Width = 79 + Height = 20 + TabOrder = 8 + OnDblClick = ADefStr7DblClick + end + object ADefStr8: TEdit + Tag = 9 + Left = 238 + Top = 214 + Width = 47 + Height = 20 + TabOrder = 9 + OnDblClick = ADefStr8DblClick + end + object ADefStr9: TEdit + Tag = 9 + Left = 334 + Top = 214 + Width = 223 + Height = 20 + TabOrder = 10 + OnDblClick = ADefStr9DblClick + end + object QFDate: TDateTimePicker + Tag = 9 + Left = 583 + Top = 197 + Width = 126 + Height = 24 + Date = 41143.565024953710000000 + Time = 41143.565024953710000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + end + object QFPerson: TEdit + Tag = 9 + Left = 585 + Top = 258 + Width = 127 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 12 + end + object BegRKDate: TDateTimePicker + Left = 94 + Top = 264 + Width = 143 + Height = 24 + Date = 41143.565024953710000000 + Time = 41143.565024953710000000 + ShowCheckbox = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 13 + end + object ADefStr10: TRichEdit + Tag = 9 + Left = 584 + Top = 29 + Width = 321 + Height = 121 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 14 + end + end + object cxGrid5: TcxGrid + Left = 0 + Top = 329 + Width = 1011 + Height = 284 + Align = alClient + TabOrder = 1 + object TvSub: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = TvSubColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object vSubColumn3: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 31 + end + object vSubColumn4: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 92 + end + object vSubColumn6: TcxGridDBColumn + Caption = #21407#26009#37197#27604 + DataBinding.FieldName = 'YLPBStr' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 72 + end + object vSubColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 70 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 64 + end + object vSubColumn5: TcxGridDBColumn + Caption = #33457#32441 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 58 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #24133#23485'(cm)' + DataBinding.FieldName = 'FSWFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 69 + end + object vSubColumn1: TcxGridDBColumn + Caption = #20811#37325'g/'#13217 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 73 + end + object TvSubColumn1: TcxGridDBColumn + Caption = #35746#36141#25968#37327'(KG)' + DataBinding.FieldName = 'OrdQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 92 + end + object vSubColumn8: TcxGridDBColumn + Caption = #21367#22343#37325#19979#38480 + DataBinding.FieldName = 'KZSmal' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 73 + end + object vSubColumn9: TcxGridDBColumn + Caption = #21367#22343#37325#19978#38480 + DataBinding.FieldName = 'KZBig' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 70 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvSub + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1011 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + Visible = False + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object DataSource1: TDataSource + DataSet = CDS_Sub + Left = 368 + Top = 448 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 352 + Top = 480 + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 456 + Top = 445 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 496 + Top = 445 + end + object ADOQuery1: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 536 + Top = 445 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid5 + PopupMenus = <> + Left = 248 + Top = 464 + end + object ADOQuery2: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 616 + Top = 453 + end +end diff --git a/盛纺贸易管理/U_OrderAttachment.pas b/盛纺贸易管理/U_OrderAttachment.pas new file mode 100644 index 0000000..7c91ac3 --- /dev/null +++ b/盛纺贸易管理/U_OrderAttachment.pas @@ -0,0 +1,543 @@ +unit U_OrderAttachment; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, + cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + ComCtrls, ToolWin, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu; + +type + TfrmOrderAttachment = class(TForm) + Panel1: TPanel; + Label1: TLabel; + Customnoname: TEdit; + Label2: TLabel; + SCXName: TEdit; + Label3: TLabel; + OrderCode: TEdit; + Label4: TLabel; + OrderNo: TEdit; + Label5: TLabel; + Label11: TLabel; + ADefStr3: TEdit; + Label12: TLabel; + ADefStr4: TEdit; + Label13: TLabel; + Label14: TLabel; + ADefStr5: TEdit; + Label15: TLabel; + ADefStr6: TEdit; + Label16: TLabel; + ADefStr7: TEdit; + Label17: TLabel; + ADefStr8: TEdit; + Label18: TLabel; + ADefStr9: TEdit; + Label19: TLabel; + cxGrid5: TcxGrid; + TvSub: TcxGridDBTableView; + vSubColumn3: TcxGridDBColumn; + vSubColumn4: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + TvSubColumn1: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + Label20: TLabel; + Label21: TLabel; + QFDate: TDateTimePicker; + QFPerson: TEdit; + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + vSubColumn1: TcxGridDBColumn; + DataSource1: TDataSource; + CDS_Sub: TClientDataSet; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + vSubColumn5: TcxGridDBColumn; + vSubColumn6: TcxGridDBColumn; + vSubColumn7: TcxGridDBColumn; + BegRKDate: TDateTimePicker; + cxGridPopupMenu1: TcxGridPopupMenu; + vSubColumn8: TcxGridDBColumn; + vSubColumn9: TcxGridDBColumn; + Label6: TLabel; + ADefStr10: TRichEdit; + ADOQuery2: TADOQuery; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label22: TLabel; + Label24: TLabel; + procedure ADefStr3DblClick(Sender: TObject); + procedure ADefStr4DblClick(Sender: TObject); + procedure ADefStr5DblClick(Sender: TObject); + procedure ADefStr6DblClick(Sender: TObject); + procedure ADefStr9DblClick(Sender: TObject); + procedure ADefStr7DblClick(Sender: TObject); + procedure ADefStr8DblClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure Label8Click(Sender: TObject); + private + { Private declarations } + procedure SaveJiangYe(); + public + + { Public declarations } + FAMainId:string; + end; + +var + frmOrderAttachment: TfrmOrderAttachment; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_GetPGJBInList,U_ZDYHelpSel; + +{$R *.dfm} + +procedure TfrmOrderAttachment.ADefStr3DblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='CPBZ'; + flagname:='װ'; + if ShowModal=1 then + begin + Self.ADefStr3.Text:=Self.ADefStr3.Text+Trim(ReturnStr); + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderAttachment.ADefStr4DblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='CPMT'; + flagname:='ͷ'; + if ShowModal=1 then + begin + Self.ADefStr4.Text:=Self.ADefStr4.Text+Trim(ReturnStr); + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderAttachment.ADefStr5DblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='CPBM'; + flagname:=''; + if ShowModal=1 then + begin + Self.ADefStr5.Text:=Self.ADefStr5.Text+Trim(ReturnStr); + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderAttachment.ADefStr6DblClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CPFeel'; + flagname:='ָ'; + if ShowModal=1 then + begin + Self.ADefStr6.Text:=Trim(ClientDataSet1.fieldbyname('zdyname').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderAttachment.ADefStr9DblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='CPFX'; + flagname:=''; + if ShowModal=1 then + begin + Self.ADefStr9.Text:=Self.ADefStr9.Text+Trim(ReturnStr); + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderAttachment.ADefStr7DblClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CPXS'; + flagname:='ˮ'; + if ShowModal=1 then + begin + Self.ADefStr7.Text:=Trim(ClientDataSet1.fieldbyname('zdyname').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderAttachment.ADefStr8DblClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CPSLD'; + flagname:='ɫζ'; + if ShowModal=1 then + begin + Self.ADefStr8.Text:=Trim(ClientDataSet1.fieldbyname('zdyname').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderAttachment.FormShow(Sender: TObject); +begin + ReadCxGrid('޷IJƻ1',TvSub,'ָʾ'); + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec P_WFBOrder_ListAtt :begdate,:endate,:MainId'); + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FAMainId); + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + Open; + end; + // SCreateCDS20(ADOQuery1,Order_Sub); + //SInitCDSData20(ADOQuery1,Order_Sub); + + SCSHDataWTag(ADOQuery1,Panel1); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from WFBOrder_Main_Attachment where MainId='''+Trim(FAMainId)+''''); + Open; + end; + if ADOQuery1.IsEmpty then + begin + Label7.Caption:='δ'; + Label7.Font.Color:=clRed; + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select Top 1* from WFBOrder_Main_Attachment '); + Open; + end; + if ADOQuery1.IsEmpty=False then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from WFBOrder_Main_Attachment order by FillTime desc '); + Open; + end; + with ADOQuery1 do + begin + ADefStr3.Text:=Trim(fieldbyname('ADefStr3').AsString); + ADefStr4.Text:=Trim(fieldbyname('ADefStr4').AsString); + ADefStr5.Text:=Trim(fieldbyname('ADefStr5').AsString); + ADefStr6.Text:=Trim(fieldbyname('ADefStr6').AsString); + ADefStr7.Text:=Trim(fieldbyname('ADefStr7').AsString); + ADefStr8.Text:=Trim(fieldbyname('ADefStr8').AsString); + ADefStr9.Text:=Trim(fieldbyname('ADefStr9').AsString); + + end; + end; + end else + begin + Label7.Caption:=''; + Label7.Font.Color:=clBlue; + if Trim(ADOQuery1.fieldbyname('ADefStr11').AsString)='clBlue' then + begin + ADefStr10.Font.Color:=clBlue; + end else + if Trim(ADOQuery1.fieldbyname('ADefStr11').AsString)='clRed' then + begin + ADefStr10.Font.Color:=clRed; + end else + if Trim(ADOQuery1.fieldbyname('ADefStr11').AsString)='clOlive' then + begin + ADefStr10.Font.Color:=clOlive; + end else + if Trim(ADOQuery1.fieldbyname('ADefStr11').AsString)='clFuchsia' then + begin + ADefStr10.Font.Color:=clFuchsia; + end else + begin + ADefStr10.Font.Color:=clBlack; + end; + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Main_Attachment where MainId='''+Trim(FAMainId)+''''); + Open; + end; + if ADOCmd.IsEmpty then + begin + QFPerson.Text:=Trim(DName); + QFDate.DateTime:=SGetServerDate(ADOQuery1); + end; + with ADOQuery1 do + begin + Close; + SQL.Clear; + SQL.Add('select A.*,Case when OrdUnit=''K'' then A.SOrdQty'); + SQL.Add(' else A.SOrdQty*A.SWFBKZ*1.00/1000 end as OrdQty,'); + sql.Add(' Case when B.OrderType=''Ʒ'' then A.SWFBFK2 else A.SWFBFK end as FSWFBFK, '); + sql.add('YLPBStr=dbo.F_Get_WFBOrder_SubStr(A.SubId,''YLPB'')'); + SQL.Add('from WFBOrder_Sub A'); + SQL.Add('inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' where A.MainId='''+Trim(FAMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Sub); + SInitCDSData20(ADOQuery1,CDS_Sub); +end; + +procedure TfrmOrderAttachment.TBSaveClick(Sender: TObject); +var + maxnno:String; +begin + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Main_Attachment where MainId='''+Trim(FAMainId)+''''); + Open; + end; + with ADOCmd do + begin + if ADOCmd.IsEmpty then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQuery1); + end; + FieldByName('MainId').value:=Trim(FAMainId); + FieldByName('ADefStr11').Value:=Trim(ADefStr10.Hint); + SSetsavedata(ADOCmd,'WFBOrder_Main_Attachment',Panel1,9); + Post; + end; + with CDS_Sub do + begin + First; + while not Eof do + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBOrder_Sub where SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + with ADOCmd do + begin + Edit; + if Trim(CDS_Sub.fieldbyname('SOrderMQty').AsString)<>'' then + FieldByName('SOrderMQty').Value:=CDS_Sub.fieldbyname('SOrderMQty').AsString; + FieldByName('SNote').Value:=CDS_Sub.fieldbyname('SNote').AsString; + Post; + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + SaveJiangYe(); + Application.MessageBox('ɹ','ʾ',0); + Label7.Caption:=''; + Label7.Font.Color:=clBlue; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +procedure TfrmOrderAttachment.SaveJiangYe(); +var + maxno,maxnosub:string; +begin + try + ADOCmd.Connection.BeginTrans; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.MainId,A.SWFBColor from WFBOrder_Sub A inner join WFBOrder_Main_Attachment B'); + sql.Add(' on A.MainId=B.MainId where A.MainId='''+Trim(FAMainId)+''''); + sql.Add(' group by A.MainId,A.SWFBColor'); + Open; + end; + with ADOQuery1 do + begin + First; + while not Eof do + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_MainIdColor_JiangYe where MainId='''+Trim(FAMainId)+''''); + sql.Add(' and SWFBColor='''+Trim(ADOQuery1.fieldbyname('SWFBColor').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty then + begin + if GetLSNo(ADOCmd,maxno,'MC','WFBYCL_MainIdColor_JiangYe',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϱʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('select * from WFBYCL_MainIdColor_JiangYe where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MCID').Value:=Trim(maxno); + FieldByName('MainId').Value:=Trim(FAMainId); + FieldByName('SWFBColor').Value:=Trim(ADOQuery1.fieldbyname('SWFBColor').AsString); + Post; + end; + end else + begin + maxno:=Trim(ADOTemp.fieldbyname('MCID').AsString); + end; + with ADOQuery2 do + begin + Close; + sql.Clear; + sql.Add('exec P_JiangLiaoListMainIdColor :MainId,:SWFBColor,:WSQl'); + Parameters.ParamByName('MainId').Value:=Trim(FAMainId); + Parameters.ParamByName('SWFBColor').Value:=Trim(ADOQuery1.fieldbyname('SWFBColor').AsString); + Parameters.ParamByName('WSQl').Value:=''; + Open; + end; + with ADOQuery2 do + begin + First; + while not Eof do + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_JiangYe where MainId='''+Trim(FAMainId)+''''); + sql.Add(' and SWFBColor='''+Trim(ADOQuery1.fieldbyname('SWFBColor').AsString)+''''); + sql.Add(' and YCLCode='''+Trim(ADOQuery2.fieldbyname('YCLCode').AsString)+''''); + Open; + end; + if Trim(ADOTemp.fieldbyname('YJID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxnosub,'YJ','WFBYCL_JiangYe',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡϱʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxnosub:=Trim(ADOTemp.fieldbyname('YJID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_JiangYe where YJID='''+Trim(maxnosub)+''''); + open; + end; + with ADOCmd do + begin + if Trim(ADOTemp.fieldbyname('YJID').AsString)='' then + Append + else + Edit; + FieldByName('MCID').Value:=Trim(maxno); + FieldByName('YJID').Value:=Trim(maxnosub); + FieldByName('MainId').Value:=Trim(FAMainId); + FieldByName('SWFBColor').Value:=Trim(ADOQuery1.fieldbyname('SWFBColor').AsString); + FieldByName('YCLCode').Value:=Trim(ADOQuery2.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(ADOQuery2.fieldbyname('YCLName').AsString); + FieldByName('YGQty').Value:=Trim(ADOQuery2.fieldbyname('YGQty').AsString); + Post; + end; + Next; + end; + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ϱʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderAttachment.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('޷IJƻ1',TvSub,'ָʾ'); + Close; +end; + +procedure TfrmOrderAttachment.Label8Click(Sender: TObject); +begin + ADefStr10.Font.Color:=TLabel(Sender).Color; + ADefStr10.Hint:=TLabel(Sender).Hint; +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPut.dfm b/盛纺贸易管理/U_OrderInPut.dfm new file mode 100644 index 0000000..ab97788 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut.dfm @@ -0,0 +1,1589 @@ +object frmOrderInPut: TfrmOrderInPut + Left = 132 + Top = 86 + Width = 1096 + Height = 734 + Caption = #25351#31034#21333#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1080 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1080 + Height = 481 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 34 + Top = 16 + Width = 70 + Height = 13 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 414 + Top = 107 + Width = 74 + Height = 13 + Caption = #26579' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 226 + Top = 16 + Width = 72 + Height = 13 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 614 + Top = 16 + Width = 70 + Height = 13 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 414 + Top = 16 + Width = 74 + Height = 13 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 34 + Top = 77 + Width = 74 + Height = 13 + Caption = #38376' '#24133#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 226 + Top = 77 + Width = 74 + Height = 13 + Caption = #20811' '#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 414 + Top = 48 + Width = 70 + Height = 13 + Caption = #20135#21697#21517#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 614 + Top = 48 + Width = 74 + Height = 13 + Caption = #35268' '#26684#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 809 + Top = 166 + Width = 130 + Height = 13 + Caption = #24037#33402#21450#20854#23427#35201#27714'>>>>' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 34 + Top = 226 + Width = 70 + Height = 13 + Caption = #23545#33394#20809#28304#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 226 + Top = 226 + Width = 74 + Height = 13 + Caption = #32553' '#29575#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 414 + Top = 226 + Width = 74 + Height = 13 + Caption = #25197' '#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 614 + Top = 226 + Width = 68 + Height = 13 + Caption = 'PH '#20540#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 614 + Top = 107 + Width = 70 + Height = 13 + Caption = #21518#25972#29702#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 226 + Top = 107 + Width = 72 + Height = 13 + Caption = #22383' '#24067' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 34 + Top = 107 + Width = 70 + Height = 13 + Caption = #21407#26009#24037#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 553 + Top = 520 + Width = 70 + Height = 13 + Caption = #25253#20851#21517#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label19: TLabel + Left = 34 + Top = 314 + Width = 70 + Height = 13 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 226 + Top = 165 + Width = 74 + Height = 13 + Caption = #30701' '#30721#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 414 + Top = 78 + Width = 74 + Height = 13 + Caption = #33337' '#26679#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 414 + Top = 286 + Width = 74 + Height = 13 + Caption = #23553' '#26465#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 414 + Top = 256 + Width = 70 + Height = 13 + Caption = #20854#20182#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 34 + Top = 455 + Width = 70 + Height = 13 + Caption = #29305#21035#25552#31034#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 34 + Top = 48 + Width = 70 + Height = 13 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 226 + Top = 48 + Width = 70 + Height = 13 + Caption = #20135#21697#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 226 + Top = 135 + Width = 70 + Height = 13 + Caption = #25968#37327#28322#30701#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 34 + Top = 196 + Width = 74 + Height = 13 + Caption = #24178' '#30952#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 226 + Top = 196 + Width = 74 + Height = 13 + Caption = #28287' '#30952#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 414 + Top = 196 + Width = 70 + Height = 13 + Caption = #27838#33394#29282#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 614 + Top = 196 + Width = 70 + Height = 13 + Caption = #27700#27927#29282#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label32: TLabel + Left = 34 + Top = 499 + Width = 72 + Height = 13 + Caption = #25239' '#36215' '#29699#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label33: TLabel + Left = 34 + Top = 257 + Width = 98 + Height = 13 + Caption = #38750#27695#28418#33394#29282#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 414 + Top = 499 + Width = 72 + Height = 13 + Caption = #38459' '#29123' '#24615#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label35: TLabel + Left = 375 + Top = 554 + Width = 74 + Height = 13 + Caption = #27454' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label36: TLabel + Left = 946 + Top = 42 + Width = 14 + Height = 91 + Caption = #26631#13#10' '#13#10#31614#13#10#13#10#20869#13#10#13#10#23481 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + OnDblClick = Label36DblClick + end + object Label37: TLabel + Left = 950 + Top = 193 + Width = 14 + Height = 91 + Caption = #21787#13#10#13#10#22836#13#10#13#10#20869#13#10#13#10#23481 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + OnDblClick = Label37DblClick + end + object Label38: TLabel + Left = 244 + Top = 529 + Width = 74 + Height = 13 + Caption = #28907' '#37329#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label39: TLabel + Left = 34 + Top = 286 + Width = 70 + Height = 13 + Caption = #22383#24067#20132#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label40: TLabel + Left = 226 + Top = 286 + Width = 70 + Height = 13 + Caption = #36827#20179#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label41: TLabel + Left = 414 + Top = 164 + Width = 72 + Height = 13 + Caption = #36319' '#21333' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 34 + Top = 386 + Width = 70 + Height = 13 + Caption = #29983#20135#25552#31034#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label43: TLabel + Left = 34 + Top = 134 + Width = 72 + Height = 13 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label44: TLabel + Left = 554 + Top = 550 + Width = 70 + Height = 13 + Caption = #20844#21496#21488#22836#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label45: TLabel + Left = 226 + Top = 255 + Width = 70 + Height = 13 + Caption = #25104#20221#27604#20363#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label46: TLabel + Left = 801 + Top = 342 + Width = 70 + Height = 13 + Caption = #20462#25913#22791#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label47: TLabel + Left = 414 + Top = 134 + Width = 74 + Height = 13 + Caption = #32568' '#26679#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label48: TLabel + Left = 34 + Top = 165 + Width = 74 + Height = 13 + Caption = #27491' '#30721#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label49: TLabel + Left = 801 + Top = 321 + Width = 70 + Height = 13 + Caption = #20462#25913#27425#25968#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label50: TLabel + Left = 614 + Top = 139 + Width = 70 + Height = 13 + Caption = #32568#26679#20132#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label51: TLabel + Left = 614 + Top = 165 + Width = 70 + Height = 13 + Caption = #33337#26679#20132#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label52: TLabel + Left = 613 + Top = 286 + Width = 74 + Height = 13 + Caption = #28907' '#37329#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Tag = 2 + Left = 105 + Top = 13 + Width = 108 + Height = 18 + TabOrder = 0 + end + object ConNo: TEdit + Tag = 2 + Left = 295 + Top = 13 + Width = 108 + Height = 18 + TabOrder = 1 + OnKeyPress = ConNoKeyPress + end + object RanFactory: TBtnEditC + Tag = 2 + Left = 488 + Top = 103 + Width = 106 + Height = 21 + Hint = 'Factory/'#26579#21378 + ReadOnly = True + TabOrder = 2 + OnBtnUpClick = YCLFactoryBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 681 + Top = 12 + Width = 109 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 3 + end + object CustomerNoName: TBtnEditC + Tag = 2 + Left = 488 + Top = 12 + Width = 106 + Height = 21 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 4 + OnBtnUpClick = CustomerNoNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTMF: TBtnEditC + Tag = 2 + Left = 105 + Top = 73 + Width = 108 + Height = 21 + Hint = 'MPRTMF/'#38376#24133 + TabOrder = 5 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTKZ: TBtnEditC + Tag = 2 + Left = 295 + Top = 73 + Width = 108 + Height = 21 + Hint = 'MPRTKZ/'#20811#37325 + TabOrder = 6 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTCodeName: TBtnEditC + Tag = 2 + Left = 488 + Top = 43 + Width = 106 + Height = 21 + ReadOnly = True + TabOrder = 7 + OnBtnUpClick = MPRTCodeNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTSpec: TBtnEditC + Tag = 2 + Left = 681 + Top = 43 + Width = 109 + Height = 21 + Hint = 'MPRTSpec/'#35268#26684 + TabOrder = 8 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTDuiSeGY: TBtnEditC + Tag = 2 + Left = 105 + Top = 222 + Width = 108 + Height = 21 + Hint = 'MPRTDuiSeGY/'#23545#33394#20809#28304 + ReadOnly = True + TabOrder = 9 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTSL: TBtnEditC + Tag = 2 + Left = 295 + Top = 222 + Width = 108 + Height = 21 + Hint = 'MPRTSL/'#32553#29575 + ReadOnly = True + TabOrder = 10 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTNiuDu: TBtnEditC + Tag = 2 + Left = 488 + Top = 222 + Width = 106 + Height = 21 + Hint = 'MPRTNiuDu/'#25197#24230 + ReadOnly = True + TabOrder = 11 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTPH: TBtnEditC + Tag = 2 + Left = 681 + Top = 222 + Width = 109 + Height = 21 + Hint = 'MPRTPH/PH'#20540 + ReadOnly = True + TabOrder = 12 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object HZLFactory: TBtnEditC + Tag = 2 + Left = 681 + Top = 103 + Width = 109 + Height = 21 + Hint = 'Factory/'#21518#25972#29702#21378 + ReadOnly = True + TabOrder = 13 + OnBtnUpClick = YCLFactoryBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object PBFactory: TBtnEditC + Tag = 2 + Left = 294 + Top = 103 + Width = 108 + Height = 21 + Hint = 'Factory/'#22383#24067#21378 + ReadOnly = True + TabOrder = 14 + OnBtnUpClick = YCLFactoryBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object YCLFactory: TBtnEditC + Tag = 2 + Left = 105 + Top = 103 + Width = 108 + Height = 21 + Hint = 'Factory/'#21407#26009#24037#21378 + ReadOnly = True + TabOrder = 15 + OnBtnUpClick = YCLFactoryBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTZHName: TEdit + Tag = 2 + Left = 626 + Top = 517 + Width = 300 + Height = 18 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 16 + Visible = False + end + object MPRTKaiJian: TBtnEditC + Tag = 2 + Left = 356 + Top = 160 + Width = 47 + Height = 21 + Hint = 'MPRTKaiJian/'#24320#21098 + TabOrder = 17 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTChuanY: TBtnEditC + Tag = 2 + Left = 488 + Top = 74 + Width = 303 + Height = 21 + Hint = 'MPRTChuanY/'#33337#26679 + ReadOnly = True + TabOrder = 18 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTYaoFeng: TBtnEditC + Tag = 2 + Left = 488 + Top = 282 + Width = 104 + Height = 21 + Hint = 'MPRTYaoFeng/'#23553#26465#25346#38057 + ReadOnly = True + TabOrder = 19 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTJiBenNote: TBtnEditC + Tag = 2 + Left = 488 + Top = 251 + Width = 300 + Height = 21 + Hint = 'MPRTJiBenNote/'#22522#26412#35201#27714 + ReadOnly = True + TabOrder = 20 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTTeBieNote: TBtnEditC + Tag = 2 + Left = 100 + Top = 446 + Width = 685 + Height = 21 + Hint = 'MPRTTeBieNote/'#21253#35013#29305#21035#25552#31034 + ReadOnly = True + TabOrder = 21 + OnBtnUpClick = MPRTSCTeBieNoteBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object DLYDate: TDateTimePicker + Tag = 2 + Left = 105 + Top = 43 + Width = 108 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 22 + end + object MPRTCode: TBtnEditC + Tag = 2 + Left = 295 + Top = 43 + Width = 108 + Height = 21 + Hint = 'MPRTCode/'#20135#21697#32534#21495 + ReadOnly = True + TabOrder = 23 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTQtyNote: TBtnEditC + Tag = 2 + Left = 294 + Top = 131 + Width = 108 + Height = 21 + Hint = 'MPRTQtyNote/'#25968#37327#35828#26126 + ReadOnly = True + TabOrder = 24 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTColorLaoDu1: TBtnEditC + Tag = 2 + Left = 105 + Top = 192 + Width = 106 + Height = 21 + Hint = 'MPRTColorLaoDu1/'#24178#30952 + ReadOnly = True + TabOrder = 25 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTColorLaoDu2: TBtnEditC + Tag = 2 + Left = 295 + Top = 192 + Width = 108 + Height = 21 + Hint = 'MPRTColorLaoDu2/'#28287#30952 + ReadOnly = True + TabOrder = 26 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTColorLaoDu3: TBtnEditC + Tag = 2 + Left = 488 + Top = 192 + Width = 106 + Height = 21 + Hint = 'MPRTColorLaoDu3/'#27838#33394#29282#24230 + ReadOnly = True + TabOrder = 27 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTColorLaoDu4: TBtnEditC + Tag = 2 + Left = 681 + Top = 192 + Width = 109 + Height = 21 + Hint = 'MPRTColorLaoDu4/'#27700#27927#29282#24230 + ReadOnly = True + TabOrder = 28 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTKQiQiu: TBtnEditC + Tag = 2 + Left = 105 + Top = 495 + Width = 106 + Height = 21 + Hint = 'MPRTKQiQiu/'#25239#36215#29699 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ReadOnly = True + TabOrder = 29 + Visible = False + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTDingPoLv: TBtnEditC + Tag = 2 + Left = 121 + Top = 252 + Width = 92 + Height = 21 + Hint = 'MPRTDingPoLv/'#39030#30772#29575 + ReadOnly = True + TabOrder = 30 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTZuRanXing: TBtnEditC + Tag = 2 + Left = 488 + Top = 495 + Width = 106 + Height = 21 + Hint = 'MPRTZuRanXing/'#38459#29123#24615 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ReadOnly = True + TabOrder = 31 + Visible = False + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTKuanNO: TBtnEditC + Tag = 2 + Left = 449 + Top = 549 + Width = 106 + Height = 21 + Hint = 'MPRTKuanNO/'#27454#21495 + TabOrder = 32 + Visible = False + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTTangJin: TBtnEditC + Tag = 2 + Left = 312 + Top = 524 + Width = 104 + Height = 21 + Hint = 'MPRTTangJin/'#28907#37329 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ReadOnly = True + TabOrder = 33 + Visible = False + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object OrdDefDate1: TDateTimePicker + Tag = 2 + Left = 105 + Top = 282 + Width = 108 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 34 + end + object OrdDefDate2: TDateTimePicker + Tag = 2 + Left = 295 + Top = 282 + Width = 108 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 35 + end + object OrdPerson1: TBtnEditC + Tag = 2 + Left = 488 + Top = 159 + Width = 107 + Height = 21 + Hint = 'OrdPerson1/'#36319#21333#21592 + TabOrder = 36 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object OrdPerson2: TBtnEditC + Tag = 2 + Left = 105 + Top = 130 + Width = 108 + Height = 21 + Hint = 'OrdPerson2/'#19994#21153#21592 + TabOrder = 37 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object LBNameNote: TMemo + Tag = 2 + Left = 797 + Top = 12 + Width = 142 + Height = 145 + TabOrder = 38 + end + object MaiTouNote: TMemo + Tag = 2 + Left = 797 + Top = 183 + Width = 146 + Height = 121 + TabOrder = 39 + end + object SYRName: TBtnEditC + Tag = 2 + Left = 625 + Top = 546 + Width = 301 + Height = 21 + Hint = 'SYRName/'#20844#21496#21488#22836 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 40 + Visible = False + OnBtnUpClick = SYRNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTBZNote: TMemo + Tag = 2 + Left = 104 + Top = 312 + Width = 686 + Height = 62 + Hint = 'MPRTBZNote/'#21253#35013#35201#27714 + ScrollBars = ssVertical + TabOrder = 41 + OnDblClick = MPRTBZNoteDblClick + end + object MPRTSCTeBieNote: TMemo + Tag = 2 + Left = 104 + Top = 381 + Width = 686 + Height = 62 + Hint = 'MPRTSCTeBieNote/'#29983#20135#29305#21035#25552#31034 + ScrollBars = ssVertical + TabOrder = 42 + OnDblClick = MPRTSCTeBieNoteDblClick + end + object CPCFBi: TEdit + Tag = 2 + Left = 295 + Top = 251 + Width = 108 + Height = 18 + TabOrder = 43 + end + object orddefnote1: TMemo + Tag = 2 + Left = 798 + Top = 360 + Width = 239 + Height = 113 + ScrollBars = ssVertical + TabOrder = 44 + Visible = False + end + object orddefstr1: TBtnEditC + Tag = 2 + Left = 488 + Top = 130 + Width = 107 + Height = 21 + Hint = 'orddefstr1/'#32568#26679 + ReadOnly = True + TabOrder = 45 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object orddefstr2: TEdit + Tag = 2 + Left = 295 + Top = 160 + Width = 61 + Height = 18 + TabOrder = 46 + end + object orddefstr4: TBtnEditC + Tag = 2 + Left = 166 + Top = 160 + Width = 46 + Height = 21 + Hint = 'ZMTYPE/'#27491#30721 + TabOrder = 47 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object orddefstr3: TEdit + Tag = 2 + Left = 105 + Top = 160 + Width = 61 + Height = 18 + TabOrder = 48 + end + object EditCnt: TcxCurrencyEdit + Tag = 2 + Left = 867 + Top = 316 + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = '#' + Style.BorderStyle = ebsSingle + TabOrder = 49 + Visible = False + Width = 79 + end + object OrdDefDate3: TDateTimePicker + Tag = 2 + Left = 681 + Top = 134 + Width = 109 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 50 + end + object OrdDefDate4: TDateTimePicker + Tag = 2 + Left = 681 + Top = 165 + Width = 109 + Height = 21 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 51 + end + object Orddefnote2: TBtnEditC + Tag = 2 + Left = 683 + Top = 282 + Width = 104 + Height = 21 + Hint = 'TJIn/'#28907#37329 + ReadOnly = True + TabOrder = 52 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 510 + Width = 1080 + Height = 26 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 104 + OnClick = ToolButton3Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 536 + Width = 1080 + Height = 158 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column5: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'PRTKuanNO' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1SOrddefstr1: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 103 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 115 + end + object v1Column4: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1SOrddefstr2: TcxGridDBColumn + Caption = #30830#35748#33394#21345 + DataBinding.FieldName = 'SOrddefstr2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 87 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 82 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1OrderUnitPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 77 + end + object v1Column2: TcxGridDBColumn + Caption = #20986#36135#25968#37327#21333#20301 + DataBinding.FieldName = 'Sorddefstr9' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1OrderUnitPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 98 + end + object v1Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 161 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1008 + Top = 181 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1008 + Top = 141 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 1016 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 1000 + Top = 352 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1016 + Top = 125 + end +end diff --git a/盛纺贸易管理/U_OrderInPut.pas b/盛纺贸易管理/U_OrderInPut.pas new file mode 100644 index 0000000..18576ba --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut.pas @@ -0,0 +1,1290 @@ +unit U_OrderInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxCurrencyEdit; + +type + TfrmOrderInPut = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + OrderNo: TEdit; + Label7: TLabel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + v1PRTColor: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + v1PRTOrderQty: TcxGridDBColumn; + Label10: TLabel; + ConNo: TEdit; + RanFactory: TBtnEditC; + v1XHNo: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1SOrddefstr1: TcxGridDBColumn; + v1SOrddefstr2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + Label3: TLabel; + Label14: TLabel; + Label12: TLabel; + Label13: TLabel; + OrdDate: TDateTimePicker; + CustomerNoName: TBtnEditC; + MPRTMF: TBtnEditC; + MPRTKZ: TBtnEditC; + Label2: TLabel; + MPRTCodeName: TBtnEditC; + Label6: TLabel; + MPRTSpec: TBtnEditC; + Label4: TLabel; + Label5: TLabel; + MPRTDuiSeGY: TBtnEditC; + Label11: TLabel; + MPRTSL: TBtnEditC; + Label9: TLabel; + MPRTNiuDu: TBtnEditC; + Label8: TLabel; + MPRTPH: TBtnEditC; + Label15: TLabel; + HZLFactory: TBtnEditC; + Label16: TLabel; + PBFactory: TBtnEditC; + Label17: TLabel; + YCLFactory: TBtnEditC; + Label18: TLabel; + MPRTZHName: TEdit; + Label19: TLabel; + Label20: TLabel; + MPRTKaiJian: TBtnEditC; + Label21: TLabel; + MPRTChuanY: TBtnEditC; + Label22: TLabel; + MPRTYaoFeng: TBtnEditC; + Label23: TLabel; + MPRTJiBenNote: TBtnEditC; + Label24: TLabel; + MPRTTeBieNote: TBtnEditC; + Label25: TLabel; + DLYDate: TDateTimePicker; + Label26: TLabel; + MPRTCode: TBtnEditC; + Label27: TLabel; + MPRTQtyNote: TBtnEditC; + Label28: TLabel; + Label29: TLabel; + Label30: TLabel; + Label31: TLabel; + MPRTColorLaoDu1: TBtnEditC; + MPRTColorLaoDu2: TBtnEditC; + MPRTColorLaoDu3: TBtnEditC; + MPRTColorLaoDu4: TBtnEditC; + Label32: TLabel; + Label33: TLabel; + Label34: TLabel; + MPRTKQiQiu: TBtnEditC; + MPRTDingPoLv: TBtnEditC; + MPRTZuRanXing: TBtnEditC; + Label35: TLabel; + MPRTKuanNO: TBtnEditC; + Label36: TLabel; + Label37: TLabel; + Label38: TLabel; + MPRTTangJin: TBtnEditC; + Label39: TLabel; + OrdDefDate1: TDateTimePicker; + Label40: TLabel; + OrdDefDate2: TDateTimePicker; + Label41: TLabel; + OrdPerson1: TBtnEditC; + Label42: TLabel; + Label43: TLabel; + OrdPerson2: TBtnEditC; + LBNameNote: TMemo; + MaiTouNote: TMemo; + Label44: TLabel; + SYRName: TBtnEditC; + MPRTBZNote: TMemo; + MPRTSCTeBieNote: TMemo; + CPCFBi: TEdit; + Label45: TLabel; + v1Column1: TcxGridDBColumn; + Label46: TLabel; + orddefnote1: TMemo; + orddefstr1: TBtnEditC; + Label47: TLabel; + orddefstr2: TEdit; + orddefstr4: TBtnEditC; + orddefstr3: TEdit; + Label48: TLabel; + Label49: TLabel; + EditCnt: TcxCurrencyEdit; + v1Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + Label50: TLabel; + Label51: TLabel; + OrdDefDate3: TDateTimePicker; + OrdDefDate4: TDateTimePicker; + Orddefnote2: TBtnEditC; + Label52: TLabel; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure RanFactoryBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure MPRTCodeNameBtnUpClick(Sender: TObject); + procedure NoteDblClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure OrdDefStr2BtnUpClick(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton3Click(Sender: TObject); + procedure YCLFactoryBtnUpClick(Sender: TObject); + procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); + procedure Label36DblClick(Sender: TObject); + procedure Label37DblClick(Sender: TObject); + procedure SYRNameBtnUpClick(Sender: TObject); + procedure MPRTBZNoteDblClick(Sender: TObject); + procedure MPRTSCTeBieNoteDblClick(Sender: TObject); + private + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + function SaveDataSubOne():Boolean; + function SaveDataMain():Boolean; + function SaveDataSubMore():Boolean; + { Private declarations } + public + PState,CopyInt,PriceFlag:Integer; + FMainId,FFMainId,FOrderNo:String; + FXS:Integer; + { Public declarations } + end; + +var + frmOrderInPut: TfrmOrderInPut; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ZdyAttachment; + +{$R *.dfm} + +procedure TfrmOrderInPut.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾ¼AA',Tv1,'ָʾ'); +end; + +procedure TfrmOrderInPut.InitData(); +begin + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=OrdDate.DateTime; + OrdDefDate1.DateTime:=OrdDate.DateTime; + OrdDefDate2.DateTime:=OrdDate.DateTime; + OrdDefDate3.DateTime:=OrdDate.DateTime; + OrdDefDate4.DateTime:=OrdDate.DateTime; + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrder_Sub where 1=1 '); + //sql.Add('exec P_View_OrderSub :begdate,:enddate,:WSQl'); + //Parameters.ParamByName('begdate').Value:='2010-10-10'; + // Parameters.ParamByName('enddate').Value:='2050-12-24'; + if PState=1 then + begin + sql.Add(' and MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' and 1<>1'); + end; + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,ScrollBox1,2); + if PState=0 then + begin + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=OrdDate.DateTime; + OrdDefDate1.DateTime:=OrdDate.DateTime; + OrdDefDate2.DateTime:=OrdDate.DateTime; + OrdDefDate3.DateTime:=OrdDate.DateTime; + OrdDefDate4.DateTime:=OrdDate.DateTime; + end + else + begin + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + //OrdPerson1.Text:=Trim(DName); + OrderNo.Text:=''; + orddefnote1.Text:=''; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + +procedure TfrmOrderInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin +end; + +procedure TfrmOrderInPut.FormShow(Sender: TObject); +begin + readCxGrid('ָʾ¼AA',Tv1,'ָʾ'); + {if PriceFlag=99 then + begin + v1PRTPrice.Visible:=False; + v1PRTPrice.Hidden:=True; + end;} + if PState=1 then + begin + Label46.Visible:=true; + orddefnote1.Visible:=true; + Label49.Visible:=true; + EditCnt.Visible:=true; + end; + InitData(); +end; + +function TfrmOrderInPut.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'JM','JYOrder_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrder_Main',ScrollBox1,2); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + //FieldByName('Note').Value:=Trim(Note.Text); + FieldByName('LBNameNote').Value:=Trim(LBNameNote.Text); + FieldByName('MaiTouNote').Value:=MaiTouNote.Text; + FieldByName('editcnt').Value:=strtointdef(trim(editcnt.Text),0); + Post; + end; + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where orderno='''+Trim(OrderNo.Text)+''''); + Open; + end; + if ADOCmd.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ظ!','ʾ',0); + Exit; + end; + FMainId:=Trim(maxno); + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + if Trim(fieldbyname('PRTOrderQty').AsString)='' then + begin + fieldbyname('PRTOrderQty').Value:=0 + end; + if Trim(fieldbyname('PRTPrice').AsString)='' then + begin + fieldbyname('PRTPrice').Value:=0 + end; + FieldByName('Sorddefstr10').Value:=Order_Sub.FieldByName('Sorddefstr10').AsString; + FieldByName('OrderNo').Value:=Trim(orderNo.Text); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +function TfrmOrderInPut.SaveDataMain():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + maxno:=Trim(FFMainId); + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrder_Main',ScrollBox1,2); + if PState=1 then + begin + FieldByName('OrdUpDate').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + FMainId:=Trim(maxno); + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +function TfrmOrderInPut.SaveDataSubOne():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + //First; + //while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + //Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmOrderInPut.SaveDataSubMore():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmOrderInPut.TBSaveClick(Sender: TObject); +begin + OrdDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + + if Order_Sub.Locate('SOrddefstr1',null,[])=True then + begin + Application.MessageBox('ɫŲΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('SOrddefstr1','',[])=True then + begin + Application.MessageBox('ɫŲΪ!','ʾ',0); + Exit; + end; + + + if PState=1 then + begin + if Trim(OrderNo.Text)<>Trim(FOrderNo) then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where MainId='''+Trim(FMainId)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѲݣܸĶ!','ʾ',0); + Exit; + end; + end; + end; + { if PState=1 then + begin + if trim(orddefnote1.Text)='' then + begin + Application.MessageBox('޸ıעϢΪ!','ʾ',0); + Exit; + end; + end; } + + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmOrderInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + // MainType:=Trim(DName); + fnote:=True; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.ToolButton1Click(Sender: TObject); +var + i:Integer; +begin + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪ!','ʾ',0); + Exit; + end; + i:=Order_Sub.RecordCount; + i:=i+1; + CopyAddRow(Tv1,Order_Sub); + with Order_Sub do + begin + Edit; + FieldByName('XHNO').Value:=IntToStr(i); + // FieldByName('SOrddefstr1').Value:=IntToStr(i); + { if i<9 then + FieldByName('SOrddefstr1').Value:='0'+Trim(IntToStr(i)) + else + FieldByName('SOrddefstr1').Value:=Trim(IntToStr(i)); } + FieldByName('PRTColor').Value:=''; + FieldByName('PRTOrderQty').Value:=null; + FieldByName('PRTPrice').Value:=0; + //FieldByName('PRTPrice').Value:=null; + FieldByName('SOrddefstr4').Value:=null; + FieldByName('SOrddefstr2').Value:=null; + FieldByName('SOrddefstr10').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPut.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMX where OrdSubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ϲɾ!','ʾ',0); + Exit; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѻزֲɾ!','ʾ',0); + Exit; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; + { if Order_Sub.IsEmpty then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + end; } +end; + +procedure TfrmOrderInPut.RanFactoryBtnUpClick(Sender: TObject); +begin + {try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + JGFactoryName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + JGFactoryName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } +end; + +procedure TfrmOrderInPut.CustomerNoNameBtnUpClick(Sender: TObject); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomerNoName'; + flagname:='ͻ'; + if Trim(DParameters1)<>'Ȩ' then + MainType:=Trim(DName); + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + // condefstr10.Text:=Trim(CDS_HZ.fieldbyname('ZDYNameZ').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmOrderInPut.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmOrderInPut.MPRTCodeNameBtnUpClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCodeName'; + flagname:='Ʒ'; + //fnote:=True; + //V1Note.Caption:='Ʒ'; + if ShowModal=1 then + begin + MPRTCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //MPRTCode.Text:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.NoteDblClick(Sender: TObject); +begin + {try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='OrdNote'; + flagname:='עҪ'; + if ShowModal=1 then + begin + Note.Text:=Note.Text+frmZDYHelpSel.ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end;} +end; + +procedure TfrmOrderInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +var + mvalues:string; +begin + mvalues:=tv1.Columns[tv1.Controller.FocusedColumn.index].DataBinding.FieldName; + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName(mvalues).Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='۸λ'; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; + + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.OrdDefStr2BtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='OrdDefStr2' then + begin + //flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + end; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='MPRTCode' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrder_Main where MPRTCode='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' order by FillTime desc'); + Open; + end; + MPRTCodeName.Text:=ADOTemp.fieldbyname('MPRTCodeName').AsString; + MPRTMF.Text:=ADOTemp.fieldbyname('MPRTMF').AsString; + MPRTKZ.Text:=ADOTemp.fieldbyname('MPRTKZ').AsString; + MPRTSpec.Text:=ADOTemp.fieldbyname('MPRTSpec').AsString; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.ConNoKeyPress(Sender: TObject; var Key: Char); +var + ConMainId:string; +begin + if Key=#13 then + begin + + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_main where conNO='''+Trim(connO.Text)+''' and status=''1'' '); + Open; + end; + if ADOTemp.IsEmpty then + begin + Application.MessageBox('ͬûˣָʾ!','ʾ',0); + Exit; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + Open; + end; + if ADOTemp.RecordCount>1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where ConNo='''+Trim(ConNo.Text)+''''); + Open; + end; + if ADOTemp.IsEmpty then Exit; + end else + if ADOTemp.RecordCount=1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + Open; + end; + end; + begin + ConNo.Text:=Trim(ADOTemp.fieldbyname('ConNo').AsString); + //OrdDefStr1.Text:=Trim(ADOTemp.fieldbyname('ConDefStr1').AsString); + MPRTCodeName.Text:=Trim(ADOTemp.fieldbyname('MPRTCodeName').AsString); + MPRTZHName.Text:=Trim(ADOTemp.fieldbyname('CPZHName').AsString); + MPRTMF.Text:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); + MPRTKZ.Text:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); + MPRTChuanY.Text:=Trim(ADOTemp.fieldbyname('ChuanYangNote').AsString); + MPRTQtyNote.Text:=Trim(ADOTemp.fieldbyname('QtyNote').AsString); + CustomerNoName.Text:=Trim(ADOTemp.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOTemp.fieldbyname('CustomerNo').AsString); + DLYDate.DateTime:=ADOTemp.fieldbyname('DLYDate').Value; + ConMainId:=Trim(ADOTemp.fieldbyname('MainId').AsString); + // ConGS:=Trim(ADOTemp.fieldbyname('SYRName').AsString); + //OrdDefStr2.Text:=Trim(ADOTemp.fieldbyname('ConDefStr2').AsString); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select A.*,ColorName=(select ZdyName from KH_Zdy B where B.Note=A.PRTColor and B.Type=''OrdColor'' ) '); + SQL.Add(' from JYOrderCon_Sub A where MainId='''+Trim(ConMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('SOrdDefStr4').Value:=Trim(ADOTemp.fieldbyname('SOrdDefStr4').AsString); + FieldByName('SOrdDefStr3').Value:=Trim(ADOTemp.fieldbyname('SOrdDefStr3').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit').AsString); + FieldByName('PRTHX').Value:=Trim(ADOTemp.fieldbyname('PRTHX').AsString); + FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); + FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('SUBID').AsString); + + Post; + end; + Next; + end; + end; + end; + + end; +end; + +procedure TfrmOrderInPut.ToolButton3Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + OneKeyPost(Tv1,Order_Sub); +end; + +procedure TfrmOrderInPut.YCLFactoryBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + //MainType:=TEdit(Sender).Name; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +procedure TfrmOrderInPut.Label36DblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='LbNameNote'; + flagname:='ǩ'; + if ShowModal=1 then + begin + ClientDataSet1.DisableControls; + //LBNameNote.Text:=''; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if ClientDataSet1.FieldByName('SSel').AsBoolean=True then + begin + if Trim(Self.LBNameNote.Text)='' then + begin + Self.LBNameNote.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end else + begin + Self.LBNameNote.Text:=Self.LBNameNote.Text+#13+#10+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + + end; + Next; + end; + end; + ClientDataSet1.EnableControls; + end; + end; + finally + end; +end; + +procedure TfrmOrderInPut.Label37DblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='MaitouNote'; + flagname:='ͷ'; + if ShowModal=1 then + begin + ClientDataSet1.DisableControls; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if ClientDataSet1.FieldByName('SSel').AsBoolean=True then + begin + if Trim(Self.MaitouNote.Text)='' then + begin + Self.MaitouNote.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end else + begin + Self.MaitouNote.Text:=Self.MaitouNote.Text+#13+#10+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + + end; + Next; + end; + end; + ClientDataSet1.EnableControls; + end; + end; + finally + end; +end; + +procedure TfrmOrderInPut.SYRNameBtnUpClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='˾̧ͷ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=false; + TBDel.Visible:=false; + TBSave.Visible:=false; + end; + if ShowModal=1 then + begin + SYRName.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut.MPRTBZNoteDblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; + i:integer; +begin + fsj:=Trim(TMemo(Sender).Hint); + FWZ:=Pos('/',fsj); + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + MPRTBZNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTBZNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPut.MPRTSCTeBieNoteDblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; + i:integer; +begin + fsj:=Trim(TMemo(Sender).Hint); + FWZ:=Pos('/',fsj); + i:=1; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + MPRTSCTeBieNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTSCTeBieNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +end. diff --git a/盛纺贸易管理/U_OrderInPutJZC.dfm b/盛纺贸易管理/U_OrderInPutJZC.dfm new file mode 100644 index 0000000..5d28697 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutJZC.dfm @@ -0,0 +1,727 @@ +object frmOrderInPutJZC: TfrmOrderInPutJZC + Left = 152 + Top = 74 + Width = 950 + Height = 656 + Caption = #25351#31034#21333#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 942 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 942 + Height = 300 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 26 + Top = 15 + Width = 66 + Height = 12 + Caption = #35746' '#21333' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 694 + Top = 15 + Width = 65 + Height = 12 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 247 + Top = 15 + Width = 66 + Height = 12 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 470 + Top = 15 + Width = 67 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 26 + Top = 44 + Width = 65 + Height = 12 + Caption = #20013#25991#21517#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 247 + Top = 44 + Width = 67 + Height = 12 + Caption = #35268' '#26684#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 470 + Top = 44 + Width = 67 + Height = 12 + Caption = #38376' '#24133#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 694 + Top = 44 + Width = 67 + Height = 12 + Caption = #20811' '#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 26 + Top = 69 + Width = 106 + Height = 12 + Caption = #24037#33402#35201#27714#35201#27714'>>>>' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 26 + Top = 92 + Width = 66 + Height = 12 + Caption = #33394' '#29282' '#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 694 + Top = 92 + Width = 68 + Height = 12 + Caption = 'PH '#20540#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 470 + Top = 92 + Width = 67 + Height = 12 + Caption = #25197' '#24230#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 247 + Top = 92 + Width = 67 + Height = 12 + Caption = #32553' '#29575#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 26 + Top = 117 + Width = 110 + Height = 12 + Caption = #21378' '#21830'>>>>' + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Tag = 2 + Left = 97 + Top = 12 + Width = 136 + Height = 18 + TabOrder = 0 + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 762 + Top = 11 + Width = 136 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 317 + Top = 12 + Width = 136 + Height = 18 + TabOrder = 2 + OnKeyPress = ConNoKeyPress + end + object CustomerNoName: TBtnEditC + Tag = 2 + Left = 538 + Top = 11 + Width = 136 + Height = 20 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 3 + OnBtnUpClick = CustomerNoNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTCodeName: TBtnEditC + Tag = 2 + Left = 97 + Top = 40 + Width = 136 + Height = 20 + Hint = 'MPRTCode' + ReadOnly = True + TabOrder = 4 + OnBtnUpClick = MPRTCodeNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTSpec: TBtnEditC + Tag = 2 + Left = 317 + Top = 40 + Width = 136 + Height = 20 + Hint = 'MPRTSpec/'#35268#26684 + TabOrder = 5 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTMF: TBtnEditC + Tag = 2 + Left = 538 + Top = 40 + Width = 136 + Height = 20 + Hint = 'MPRTMF/'#38376#24133 + TabOrder = 6 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTKZ: TBtnEditC + Tag = 2 + Left = 762 + Top = 40 + Width = 136 + Height = 20 + Hint = 'MPRTKZ/'#20811#37325 + TabOrder = 7 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BtnEditC1: TBtnEditC + Tag = 2 + Left = 97 + Top = 88 + Width = 136 + Height = 20 + Hint = 'MPRTCode' + ReadOnly = True + TabOrder = 8 + OnBtnUpClick = MPRTCodeNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BtnEditC2: TBtnEditC + Tag = 2 + Left = 317 + Top = 88 + Width = 136 + Height = 20 + Hint = 'MPRTCode' + ReadOnly = True + TabOrder = 9 + OnBtnUpClick = MPRTCodeNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BtnEditC3: TBtnEditC + Tag = 2 + Left = 538 + Top = 88 + Width = 136 + Height = 20 + Hint = 'MPRTCode' + ReadOnly = True + TabOrder = 10 + OnBtnUpClick = MPRTCodeNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object BtnEditC4: TBtnEditC + Tag = 2 + Left = 762 + Top = 88 + Width = 136 + Height = 20 + Hint = 'MPRTCode' + ReadOnly = True + TabOrder = 11 + OnBtnUpClick = MPRTCodeNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object cxGrid2: TcxGrid + Left = 26 + Top = 137 + Width = 207 + Height = 105 + TabOrder = 12 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object Tv2Column1: TcxGridDBColumn + Caption = #21407#26009#21378 + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 203 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 247 + Top = 137 + Width = 207 + Height = 105 + TabOrder = 13 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn1: TcxGridDBColumn + Caption = #22383#24067#21378 + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 203 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid4: TcxGrid + Left = 470 + Top = 137 + Width = 207 + Height = 105 + TabOrder = 14 + object Tv4: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn2: TcxGridDBColumn + Caption = #26579#21378 + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 203 + end + end + object cxGridLevel3: TcxGridLevel + GridView = Tv4 + end + end + object cxGrid5: TcxGrid + Left = 694 + Top = 137 + Width = 207 + Height = 105 + TabOrder = 15 + object Tv5: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn3: TcxGridDBColumn + Caption = #21152#24037#21378 + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 203 + end + end + object cxGridLevel4: TcxGridLevel + GridView = Tv5 + end + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 329 + Width = 942 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 2 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 104 + OnClick = ToolButton3Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 358 + Width = 942 + Height = 261 + Align = alClient + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end + item + Format = '0' + Position = spFooter + Column = v1PRTPrice + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1SOrddefstr1: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 103 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 88 + end + object v1Column4: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 54 + end + object v1SOrddefstr2: TcxGridDBColumn + Caption = #30830#35748#33394#21345 + DataBinding.FieldName = 'SOrddefstr2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 76 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1OrderUnitPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 68 + end + object v1PriceUnit: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1PriceUnitPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 76 + end + object v1Column2: TcxGridDBColumn + Caption = #20215#26684#26465#27454 + DataBinding.FieldName = 'SOrddefstr3' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 86 + end + object v1Column1: TcxGridDBColumn + Caption = #26631#31614#35774#32622 + DataBinding.FieldName = 'SLbName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 134 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1008 + Top = 181 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1008 + Top = 141 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 1016 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 1000 + Top = 352 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1016 + Top = 125 + end +end diff --git a/盛纺贸易管理/U_OrderInPutJZC.pas b/盛纺贸易管理/U_OrderInPutJZC.pas new file mode 100644 index 0000000..e1755dd --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutJZC.pas @@ -0,0 +1,1090 @@ +unit U_OrderInPutJZC; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils; + +type + TfrmOrderInPutJZC = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + Label3: TLabel; + OrderNo: TEdit; + OrdDate: TDateTimePicker; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + v1PRTColor: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + v1PRTOrderQty: TcxGridDBColumn; + Label10: TLabel; + ConNo: TEdit; + Label14: TLabel; + CustomerNoName: TBtnEditC; + v1XHNo: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1SOrddefstr1: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + v1SOrddefstr2: TcxGridDBColumn; + Label2: TLabel; + MPRTCodeName: TBtnEditC; + Label6: TLabel; + MPRTSpec: TBtnEditC; + Label12: TLabel; + MPRTMF: TBtnEditC; + Label13: TLabel; + MPRTKZ: TBtnEditC; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + Label4: TLabel; + Label5: TLabel; + BtnEditC1: TBtnEditC; + Label7: TLabel; + BtnEditC2: TBtnEditC; + Label9: TLabel; + BtnEditC3: TBtnEditC; + Label11: TLabel; + BtnEditC4: TBtnEditC; + cxGrid2: TcxGrid; + cxGridLevel1: TcxGridLevel; + Tv2: TcxGridDBTableView; + Tv2Column1: TcxGridDBColumn; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + cxGrid4: TcxGrid; + Tv4: TcxGridDBTableView; + cxGridDBColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + cxGrid5: TcxGrid; + Tv5: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + Label8: TLabel; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure JGFactoryNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure OrdDefStr3BtnUpClick(Sender: TObject); + procedure MPRTCodeNameBtnUpClick(Sender: TObject); + procedure NoteDblClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure jKeyPress(Sender: TObject; var Key: Char); + procedure OrdDefStr2BtnUpClick(Sender: TObject); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton3Click(Sender: TObject); + private + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + function SaveDataSubOne():Boolean; + function SaveDataMain():Boolean; + function SaveDataSubMore():Boolean; + { Private declarations } + public + PState,CopyInt,PriceFlag:Integer; + FMainId,FFMainId,FOrderNo:String; + FXS:Integer; + { Public declarations } + end; + +var + frmOrderInPutJZC: TfrmOrderInPutJZC; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel; + +{$R *.dfm} + +procedure TfrmOrderInPutJZC.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾ¼',Tv1,'ָʾ'); +end; + +procedure TfrmOrderInPutJZC.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrder_Sub '); + if PState=1 then + begin + sql.Add('where MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' where 1<>1'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,ScrollBox1,2); + if PState=0 then + begin + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=SGetServerDateTime(ADOTemp); + OrdPerson1.Text:=Trim(DName); + end else + begin + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + OrdPerson1.Text:=Trim(DName); + OrderNo.Text:=''; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + +procedure TfrmOrderInPutJZC.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin +end; + +procedure TfrmOrderInPutJZC.FormShow(Sender: TObject); +begin + readCxGrid('ָʾ¼',Tv1,'ָʾ'); + if PriceFlag=99 then + begin + v1PRTPrice.Visible:=False; + v1PRTPrice.Hidden:=True; + end; + InitData(); +end; + +function TfrmOrderInPutJZC.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'JM','JYOrder_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrder_Main',ScrollBox1,2); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('Note').Value:=Trim(Note.Text); + Post; + end; + FMainId:=Trim(maxno); + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where orderno='''+Trim(OrderNo.Text)+''''); + Open; + end; + if ADOCmd.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ظ!','ʾ',0); + Exit; + end; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + if Trim(fieldbyname('PRTOrderQty').AsString)='' then + begin + fieldbyname('PRTOrderQty').Value:=0 + end; + if Trim(fieldbyname('PRTPrice').AsString)='' then + begin + fieldbyname('PRTPrice').Value:=0 + end; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + {if Trim(Order_Sub.FieldByName('PRTPrice').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add('where MainId='''+Trim(FMainId)+''''); + SQL.Add(' and CRType=''ӦտǼ'' '); + SQL.Add(' and YFType=''Զ'' '); + Open; + end; + if ADOTemp.RecordCount=1 then + begin + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR set Price='+Order_Sub.FieldByName('PRTPrice').AsString); + sql.Add(',BZType='''+Trim(Order_Sub.FieldByName('PriceUnit').AsString)+''''); + SQL.Add(' where YFID='''+Trim(ADOTemp.fieldbyname('YFID').AsString)+''''); + ExecSQL; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); + SQL.Add(' where YFID='''+Trim(ADOTemp.fieldbyname('YFID').AsString)+''''); + ExecSQL; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_KC Set KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' ,KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+ADOTemp.fieldbyname('CRID').AsString); + ExecSQL; + end; + end; + + end; } + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutJZC.SaveDataMain():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + maxno:=Trim(FFMainId); + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrder_Main',ScrollBox1,2); + if PState=1 then + begin + FieldByName('OrdUpDate').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + FMainId:=Trim(maxno); + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutJZC.SaveDataSubOne():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + //First; + //while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + //Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +function TfrmOrderInPutJZC.SaveDataSubMore():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmOrderInPutJZC.TBSaveClick(Sender: TObject); +begin + OrdDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(OrdDefStr1.Text)='' then + begin + Application.MessageBox('˾ŲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PRTColor',null,[])=True then + begin + Application.MessageBox('ɫΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('SOrddefstr4',null,[])=True then + begin + Application.MessageBox('ӢɫΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('SLbName',null,[])=True then + begin + Application.MessageBox('ǩΪ!','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + if PState=1 then + begin + if Trim(OrderNo.Text)<>Trim(FOrderNo) then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where MainId='''+Trim(FMainId)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѲݣܸĶ!','ʾ',0); + Exit; + end; + end; + end; + + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmOrderInPutJZC.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + MainType:=Trim(DName); + fnote:=True; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.ToolButton1Click(Sender: TObject); +var + i:Integer; +begin + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪ!','ʾ',0); + Exit; + end; + i:=Order_Sub.RecordCount; + i:=i+1; + CopyAddRow(Tv1,Order_Sub); + with Order_Sub do + begin + Edit; + FieldByName('XHNO').Value:=IntToStr(i); + if i<9 then + FieldByName('SOrddefstr1').Value:='0'+Trim(IntToStr(i)) + else + FieldByName('SOrddefstr1').Value:=Trim(IntToStr(i)); + FieldByName('PRTColor').Value:=''; + FieldByName('PRTOrderQty').Value:=null; + //FieldByName('PRTPrice').Value:=null; + // FieldByName('SOrddefstr1').Value:=null; + FieldByName('SOrddefstr2').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPutJZC.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LLMX where OrdSubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ϲɾ!','ʾ',0); + Exit; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('ѻزֲɾ!','ʾ',0); + Exit; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; + { if Order_Sub.IsEmpty then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + end; } +end; + +procedure TfrmOrderInPutJZC.JGFactoryNameBtnUpClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + JGFactoryName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + JGFactoryName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.CustomerNoNameBtnUpClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomerNoName'; + flagname:='ͻ'; + if Trim(DParameters1)<>'Ȩ' then + MainType:=Trim(DName); + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmOrderInPutJZC.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with Order_Sub do + begin + Edit; + FieldByName('SLbName').Value:=labname; + FieldByName('SLbInt').Value:=LabInt; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + +end; + +procedure TfrmOrderInPutJZC.OrdDefStr3BtnUpClick(Sender: TObject); +begin +try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='maitou'; + flagname:='ͷ'; + if ShowModal=1 then + begin + OrdDefStr3.Text:=OrdDefStr3.Text+frmZDYHelpSel.ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPutJZC.MPRTCodeNameBtnUpClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTCodeName'; + flagname:='Ʒ'; + if ShowModal=1 then + begin + MPRTCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + MPRTCodeName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.NoteDblClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='OrdNote'; + flagname:='עҪ'; + if ShowModal=1 then + begin + Note.Text:=Note.Text+frmZDYHelpSel.ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPutJZC.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='۸λ'; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; + + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.jKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CP_YDang where CYNo like '''+'%'+Trim(OrdDefStr1.Text)+'%'+''''); + Open; + end; + if ADOTemp.RecordCount=1 then + begin + MPRTCodeName.Text:=Trim(ADOTemp.fieldbyname('CYName').AsString); + MPRTCF.Text:=Trim(ADOTemp.fieldbyname('CYECF').AsString); + MPRTSpec.Text:=Trim(ADOTemp.fieldbyname('CYSpec').AsString); + MPRTMF.Text:=Trim(ADOTemp.fieldbyname('CYMF').AsString); + MPRTKZ.Text:=Trim(ADOTemp.fieldbyname('CYKZ').AsString); + end else + if ADOTemp.RecordCount>1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from CP_YDang where CYNo='''+Trim(OrdDefStr1.Text)+''''); + Open; + end; + if ADOTemp.RecordCount=1 then + begin + MPRTCodeName.Text:=Trim(ADOTemp.fieldbyname('CYName').AsString); + MPRTCF.Text:=Trim(ADOTemp.fieldbyname('CYECF').AsString); + MPRTSpec.Text:=Trim(ADOTemp.fieldbyname('CYSpec').AsString); + MPRTMF.Text:=Trim(ADOTemp.fieldbyname('CYMF').AsString); + MPRTKZ.Text:=Trim(ADOTemp.fieldbyname('CYKZ').AsString); + end; + end; + + end; +end; + +procedure TfrmOrderInPutJZC.OrdDefStr2BtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='OrdDefStr2' then + begin + //flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + end; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutJZC.ConNoKeyPress(Sender: TObject; var Key: Char); +var + ConMainId:string; +begin + if Key=#13 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + Open; + end; + if ADOTemp.RecordCount>1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where ConNo='''+Trim(ConNo.Text)+''''); + Open; + end; + if ADOTemp.IsEmpty then Exit; + end else + if ADOTemp.RecordCount=1 then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCon_Main where ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); + Open; + end; + end; + begin + ConNo.Text:=Trim(ADOTemp.fieldbyname('ConNo').AsString); + OrdDefStr1.Text:=Trim(ADOTemp.fieldbyname('ConDefStr1').AsString); + MPRTCF.Text:=Trim(ADOTemp.fieldbyname('MPRTCF').AsString); + MPRTSpec.Text:=Trim(ADOTemp.fieldbyname('MPRTSpec').AsString); + MPRTMF.Text:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); + MPRTKZ.Text:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); + CustomerNoName.Text:=Trim(ADOTemp.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOTemp.fieldbyname('CustomerNo').AsString); + ConMainId:=Trim(ADOTemp.fieldbyname('MainId').AsString); + // ConGS:=Trim(ADOTemp.fieldbyname('SYRName').AsString); + OrdDefStr2.Text:=Trim(ADOTemp.fieldbyname('ConDefStr2').AsString); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select A.*,ColorName=(select ZdyName from KH_Zdy B where B.Note=A.PRTColor and B.Type=''OrdColor'' ) '); + SQL.Add(' from JYOrderCon_Sub A where MainId='''+Trim(ConMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('SOrdDefStr4').Value:=Trim(ADOTemp.fieldbyname('SOrdDefStr4').AsString); + FieldByName('SOrdDefStr3').Value:=Trim(ADOTemp.fieldbyname('SOrdDefStr3').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit').AsString); + FieldByName('PRTHX').Value:=Trim(ADOTemp.fieldbyname('PRTHX').AsString); + FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); + Post; + end; + Next; + end; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from CP_YDang where CYNO='''+Trim(OrdDefStr1.Text)+''''); + Open; + end; + MPRTCodeName.Text:=Trim(ADOTemp.fieldbyname('CYName').AsString); + {with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from KH_Zdy where Note='''+Trim(ConGS)+''' and type=''OrdDefStr2'' '); + Open; + end; + OrdDefStr2.Text:=Trim(ADOTemp.fieldbyname('ZdyName').AsString); } + end; + + end; +end; + +procedure TfrmOrderInPutJZC.ToolButton3Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + OneKeyPost(Tv1,Order_Sub); +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPutNew.dfm b/盛纺贸易管理/U_OrderInPutNew.dfm new file mode 100644 index 0000000..628c497 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutNew.dfm @@ -0,0 +1,2155 @@ +object frmOrderInPutNew: TfrmOrderInPutNew + Left = 58 + Top = 45 + Width = 1185 + Height = 670 + Caption = #25351#31034#21333#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1177 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1177 + Height = 295 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 15 + Width = 60 + Height = 12 + Caption = #32534' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 955 + Top = 47 + Width = 67 + Height = 12 + Caption = #20195' '#21495#65306 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 927 + Top = 15 + Width = 65 + Height = 12 + Caption = #19979#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 469 + Top = 49 + Width = 52 + Height = 12 + Caption = #29983#20135#32447#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 708 + Top = 47 + Width = 52 + Height = 12 + Caption = #32593#32467#26500#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 956 + Top = 148 + Width = 15 + Height = 98 + Caption = #27880#13#10#13#10#24847#13#10#13#10#20107#13#10#13#10#39033 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 469 + Top = 15 + Width = 53 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 708 + Top = 15 + Width = 52 + Height = 12 + Caption = #21040#36798#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 972 + Top = 51 + Width = 39 + Height = 12 + Caption = #20811#37325#65306 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label10: TLabel + Left = 1004 + Top = 51 + Width = 67 + Height = 12 + Caption = #33457' '#32441#65306 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label11: TLabel + Left = 1020 + Top = 48 + Width = 23 + Height = 15 + Caption = 'g/'#13217 + Enabled = False + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label14: TLabel + Left = 982 + Top = 51 + Width = 53 + Height = 12 + Caption = #24133' '#23485#65306 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label15: TLabel + Left = 1018 + Top = 47 + Width = 18 + Height = 15 + Caption = 'cm' + Enabled = False + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 24 + Top = 45 + Width = 65 + Height = 12 + Caption = #39044#20272#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 252 + Top = 49 + Width = 65 + Height = 12 + Caption = #35745#20215#21333#20301#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 23 + Top = 68 + Width = 1140 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label20: TLabel + Left = 23 + Top = 116 + Width = 1146 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label21: TLabel + Left = 25 + Top = 88 + Width = 34 + Height = 12 + Caption = 'ETA'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 257 + Top = 90 + Width = 34 + Height = 12 + Caption = 'ETD'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 491 + Top = 89 + Width = 39 + Height = 12 + Caption = #35013#26588#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 711 + Top = 88 + Width = 53 + Height = 12 + Caption = #20837' '#24211#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 966 + Top = 89 + Width = 39 + Height = 12 + Caption = #29983#20135#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 221 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 165 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 238 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 455 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 400 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 472 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 936 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label32: TLabel + Left = 881 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 950 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 23 + Top = 278 + Width = 1152 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label7: TLabel + Left = 766 + Top = 140 + Width = 15 + Height = 98 + Caption = #25171#13#10#13#10#21253#13#10#13#10#35814#13#10#13#10#32454 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label40: TLabel + Left = 23 + Top = 140 + Width = 15 + Height = 98 + Caption = #35814#13#10#13#10#13#10#13#10#13#10#13#10#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label41: TLabel + Left = 252 + Top = 15 + Width = 66 + Height = 12 + Caption = #35746' '#21333' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Left = 314 + Top = 13 + Width = 115 + Height = 18 + Enabled = False + TabOrder = 0 + end + object OrderDate: TDateTimePicker + Left = 993 + Top = 12 + Width = 120 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 1 + end + object WFBCodeName: TcxButtonEdit + Left = 962 + Top = 43 + Enabled = False + ParentShowHint = False + Properties.BeepOnError = True + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBCodeNamePropertiesButtonClick + Properties.OnChange = WFBCodeNamePropertiesChange + ShowHint = False + TabOrder = 2 + Visible = False + OnKeyDown = WFBCodeNameKeyDown + Width = 111 + end + object SCXName: TcxButtonEdit + Left = 519 + Top = 45 + Hint = 'FactoryNo1' + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = SCXNamePropertiesButtonClick + Properties.OnChange = SCXNamePropertiesChange + ShowHint = False + TabOrder = 3 + OnKeyDown = WFBCodeNameKeyDown + Width = 130 + end + object WJGName: TcxButtonEdit + Left = 757 + Top = 42 + Hint = 'FactoryNo2' + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WJGNamePropertiesButtonClick + Properties.OnChange = WJGNamePropertiesChange + ShowHint = False + TabOrder = 4 + OnKeyDown = WFBCodeNameKeyDown + Width = 117 + end + object CustomNoName: TcxButtonEdit + Left = 519 + Top = 12 + Hint = 'CustomerNo' + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = CustomNoNamePropertiesButtonClick + Properties.OnChange = CustomNoNamePropertiesChange + ShowHint = False + TabOrder = 5 + OnKeyDown = WFBCodeNameKeyDown + Width = 129 + end + object Note: TRichEdit + Left = 973 + Top = 126 + Width = 140 + Height = 152 + Enabled = False + TabOrder = 6 + end + object ArrivalPortName: TcxButtonEdit + Left = 757 + Top = 12 + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = ArrivalPortNamePropertiesButtonClick + Properties.OnChange = ArrivalPortNamePropertiesChange + ShowHint = False + TabOrder = 7 + OnKeyDown = WFBCodeNameKeyDown + Width = 117 + end + object WFBKZ: TEdit + Left = 962 + Top = 48 + Width = 101 + Height = 18 + Enabled = False + TabOrder = 8 + Visible = False + OnChange = OrdQtyChange + OnKeyPress = OrdQtyKeyPress + end + object WFBHW: TEdit + Left = 990 + Top = 48 + Width = 48 + Height = 18 + Enabled = False + TabOrder = 9 + Visible = False + end + object WFBFK: TEdit + Left = 967 + Top = 48 + Width = 92 + Height = 18 + Enabled = False + TabOrder = 10 + Visible = False + OnKeyPress = OrdQtyKeyPress + end + object OrdQty: TEdit + Left = 86 + Top = 42 + Width = 62 + Height = 18 + Enabled = False + ReadOnly = True + TabOrder = 11 + OnKeyPress = OrdQtyKeyPress + end + object OrdUnit: TComboBox + Left = 149 + Top = 42 + Width = 53 + Height = 20 + Style = csDropDownList + Ctl3D = False + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentCtl3D = False + ParentFont = False + TabOrder = 12 + OnChange = OrdQtyChange + Items.Strings = ( + #13199 + #13217) + end + object ETADate: TDateTimePicker + Left = 57 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 13 + OnChange = ETADateChange + end + object ETDDate: TDateTimePicker + Left = 291 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 14 + end + object ZGDate: TDateTimePicker + Left = 527 + Top = 85 + Width = 123 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 15 + end + object BegRKDate: TDateTimePicker + Left = 762 + Top = 85 + Width = 115 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 16 + OnChange = BegRKDateChange + end + object BegSCDate: TDateTimePicker + Left = 1000 + Top = 85 + Width = 113 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 17 + end + object Day1: TEdit + Left = 184 + Top = 87 + Width = 35 + Height = 18 + Enabled = False + TabOrder = 18 + OnChange = Day1Change + OnKeyPress = OrdQtyKeyPress + end + object Day2: TEdit + Left = 418 + Top = 87 + Width = 35 + Height = 18 + Enabled = False + TabOrder = 19 + OnChange = Day2Change + OnKeyPress = OrdQtyKeyPress + end + object Day3: TEdit + Left = 899 + Top = 87 + Width = 35 + Height = 18 + Enabled = False + TabOrder = 20 + OnChange = Day3Change + OnKeyPress = OrdQtyKeyPress + end + object cxGrid4: TcxGrid + Left = 784 + Top = 128 + Width = 169 + Height = 151 + PopupMenu = PopupMenu1 + TabOrder = 21 + object TVDB: TcxGridDBTableView + PopupMenu = PopupMenu1 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21253#25968#37327 + DataBinding.FieldName = 'BSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 48 + end + object VDBColumn1: TcxGridDBColumn + Caption = #21367#25968#37327 + DataBinding.FieldName = 'JSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 49 + end + object VDBColumn2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DBUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 55 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TVDB + end + end + object cxGrid5: TcxGrid + Left = 40 + Top = 127 + Width = 722 + Height = 154 + PopupMenu = PopupMenu1 + TabOrder = 22 + object TvSub: TcxGridDBTableView + PopupMenu = PopupMenu2 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = TvSubColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + object vSubColumn3: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 31 + end + object vSubColumn9: TcxGridDBColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 37 + end + object vSubColumn4: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = vSubColumn4PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 82 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 48 + end + object vSubColumn2: TcxGridDBColumn + Caption = #33457#32441 + DataBinding.FieldName = 'SWFBHW' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn2PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 51 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20811#37325'g/'#13217 + DataBinding.FieldName = 'SWFBKZ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 64 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #24133#23485'cm' + DataBinding.FieldName = 'SWFBFK' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 52 + end + object TvSubColumn1: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SOrdQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = TvSubColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 61 + end + object vSubColumn5: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 64 + end + object vSubColumn6: TcxGridDBColumn + Caption = #21367#22343#37325#19979#38480 + DataBinding.FieldName = 'KZSmal' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 75 + end + object vSubColumn7: TcxGridDBColumn + Caption = #21367#22343#37325#19978#38480 + DataBinding.FieldName = 'KZBig' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 73 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvSub + end + end + object PanZDY: TPanel + Left = 907 + Top = 120 + Width = 151 + Height = 153 + TabOrder = 23 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 142 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 129 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 40 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object OrderCode: TEdit + Left = 83 + Top = 13 + Width = 118 + Height = 18 + Enabled = False + TabOrder = 24 + end + object BZ: TcxButtonEdit + Left = 314 + Top = 45 + BeepOnEnter = False + Enabled = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = BZPropertiesButtonClick + Properties.OnChange = BZPropertiesChange + TabOrder = 25 + OnKeyDown = WFBCodeNameKeyDown + Width = 118 + end + end + object ScrollBox2: TScrollBox + Left = 0 + Top = 324 + Width = 1177 + Height = 309 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 809 + Top = 31 + Width = 366 + Height = 276 + Align = alLeft + TabOrder = 0 + object Tv3: TcxGridDBBandedTableView + PopupMenu = PopupMenu4 + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceQ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v3Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20854#23427 + Styles.Header = DataLink_WFBProducttion.TextSHuangSe + Width = 400 + end> + object v3Column1: TcxGridDBBandedColumn + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v3Column2: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v3Column3: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v3Column4: TcxGridDBBandedColumn + Caption = #29992#37327 + DataBinding.FieldName = 'YLQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 49 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v3Column5: TcxGridDBBandedColumn + Caption = #21333#20301 + DataBinding.FieldName = 'YLUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 37 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v3Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v3Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v3Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 32 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v3Column9: TcxGridDBBandedColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + HeaderAlignmentHorz = taCenter + Width = 35 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid2: TcxGrid + Left = 425 + Top = 31 + Width = 384 + Height = 276 + Align = alLeft + TabOrder = 1 + object Tv2: TcxGridDBBandedTableView + PopupMenu = PopupMenu4 + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceF + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v2Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #36741#21161#21407#26009 + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 428 + end> + object v2Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 63 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v2Column2: TcxGridDBBandedColumn + Caption = #32791#29575#8240 + DataBinding.FieldName = 'YLSHQ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v2Column3: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v2Column4: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 35 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v2Column5: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 58 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v2Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 70 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v2Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v2Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 32 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v2Column9: TcxGridDBBandedColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 34 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 31 + Width = 425 + Height = 276 + Align = alLeft + TabOrder = 2 + object Tv1: TcxGridDBBandedTableView + PopupMenu = PopupMenu4 + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceZ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20027#35201#21407#26009 + Styles.Header = DataLink_WFBProducttion.FontBlue + Width = 487 + end> + object v1Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 72 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column2: TcxGridDBBandedColumn + Caption = #37197#27604'%' + DataBinding.FieldName = 'YLPB' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 38 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v1Column3: TcxGridDBBandedColumn + Caption = #25439#32791'%' + DataBinding.FieldName = 'YLSH' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v1Column4: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v1Column5: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v1Column6: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column7: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object v1Column8: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v1Column9: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = DataLink_WFBProducttion.FoneRed + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v1Column10: TcxGridDBBandedColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 35 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1175 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object TBPrint: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #25171#21360#35831#36141#21333 + ImageIndex = 96 + OnClick = TBPrintClick + end + end + object Panel1: TPanel + Left = 1152 + Top = -16 + Width = 825 + Height = 297 + TabOrder = 4 + Visible = False + object cxGrid6: TcxGrid + Left = 11 + Top = 32 + Width = 299 + Height = 209 + PopupMenu = PopupMenu1 + TabOrder = 0 + object Tvsel: TcxGridDBTableView + PopupMenu = PopupMenu3 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSel + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object vselColumn1: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 42 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 61 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #33457#32441 + DataBinding.FieldName = 'SWFBHW' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn2PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 51 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #20811#37325'g/'#13217 + DataBinding.FieldName = 'SWFBKZ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 72 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #24133#23485'cm' + DataBinding.FieldName = 'SWFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 52 + end + end + object cxGridLevel5: TcxGridLevel + GridView = Tvsel + end + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 823 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #36873#21333 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 789 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button2: TButton + Left = 64 + Top = 251 + Width = 65 + Height = 25 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button2Click + end + object Button3: TButton + Left = 168 + Top = 251 + Width = 49 + Height = 25 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button3Click + end + object cxGrid7: TcxGrid + Left = 312 + Top = 32 + Width = 505 + Height = 257 + TabOrder = 4 + object TVKCSel: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource4 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'DefStr1' + end + item + Format = 'DefStr2' + Column = v1ShortName + end + item + Format = 'RollUnit' + Column = v1UnitName + end + item + Format = 'YCLCode' + Column = v1P_ChnName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Quantity + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object TVKCSelColumn1: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taRightJustify + Width = 39 + end + object v1P_ChnName: TcxGridDBColumn + Tag = 2 + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v1ShortName: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 68 + end + object v1Quantity: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 70 + end + object VKCSelColumn2: TcxGridDBColumn + Caption = #39044#35745#29992#37327 + DataBinding.FieldName = 'YJYL' + HeaderAlignmentHorz = taCenter + Width = 57 + end + object VKCSelColumn1: TcxGridDBColumn + Caption = #39044#35745#24211#23384 + DataBinding.FieldName = 'YJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 65 + end + object v1UnitName: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 45 + end + end + object cxGridLevel6: TcxGridLevel + GridView = TVKCSel + end + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 704 + Top = 309 + end + object DataSourceZ: TDataSource + DataSet = Order_SubZ + Left = 296 + Top = 440 + end + object Order_SubZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 256 + Top = 440 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 760 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 8 + end + object ADOQuery1: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 784 + Top = 309 + end + object PopupMenu1: TPopupMenu + Left = 544 + Top = 253 + object N1: TMenuItem + Caption = #22686#34892 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #21024#34892 + OnClick = N2Click + end + end + object DataSource3: TDataSource + DataSet = CDS_DB + Left = 544 + Top = 200 + end + object CDS_DB: TClientDataSet + Aggregates = <> + Params = <> + Left = 480 + Top = 224 + end + object Order_SubF: TClientDataSet + Aggregates = <> + Params = <> + Left = 696 + Top = 496 + end + object DataSourceF: TDataSource + DataSet = Order_SubF + Left = 656 + Top = 496 + end + object Order_SubQ: TClientDataSet + Aggregates = <> + Params = <> + Left = 1096 + Top = 440 + end + object DataSourceQ: TDataSource + DataSet = Order_SubQ + Left = 1096 + Top = 472 + end + object ADOQueryQG: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 480 + Top = 309 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryQG + Left = 448 + Top = 320 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 392 + Top = 312 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 456 + Top = 312 + end + object PopupMenu2: TPopupMenu + Left = 128 + Top = 237 + object MenuItem1: TMenuItem + Caption = #22686#34892 + OnClick = MenuItem1Click + end + object MenuItem2: TMenuItem + Caption = #21024#34892 + OnClick = MenuItem2Click + end + object N3: TMenuItem + Caption = #20840#36873 + OnClick = N3Click + end + object N4: TMenuItem + Caption = #20840#24323 + OnClick = N4Click + end + end + object DataSource1: TDataSource + DataSet = CDS_Sub + Left = 112 + Top = 200 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 96 + Top = 232 + end + object DSSel: TDataSource + DataSet = CDS_Sel + Left = 440 + Top = 376 + end + object CDS_Sel: TClientDataSet + Aggregates = <> + Params = <> + Left = 424 + Top = 408 + end + object ADOCMD: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 688 + Top = 309 + end + object PopupMenu3: TPopupMenu + Left = 528 + Top = 445 + object MenuItem3: TMenuItem + Caption = #20840#36873 + OnClick = MenuItem3Click + end + object MenuItem4: TMenuItem + Caption = #20840#24323 + OnClick = MenuItem4Click + end + end + object CDS_KCSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 712 + Top = 432 + end + object DataSource4: TDataSource + DataSet = CDS_KCSel + Left = 672 + Top = 432 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 160 + Top = 454 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 160 + Top = 494 + end + object cxGridPopupMenu3: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 160 + Top = 534 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 120 + Top = 502 + end + object cxGridPopupMenu5: TcxGridPopupMenu + Grid = cxGrid5 + PopupMenus = <> + Left = 120 + Top = 465 + end + object PopupMenu4: TPopupMenu + Left = 216 + Top = 477 + object MenuItem7: TMenuItem + Caption = #20840#36873 + OnClick = MenuItem7Click + end + object MenuItem8: TMenuItem + Caption = #20840#24323 + OnClick = MenuItem8Click + end + end +end diff --git a/盛纺贸易管理/U_OrderInPutNew.pas b/盛纺贸易管理/U_OrderInPutNew.pas new file mode 100644 index 0000000..078d860 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutNew.pas @@ -0,0 +1,2945 @@ +unit U_OrderInPutNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar, cxGridBandedTableView, + cxGridDBBandedTableView, Menus, RM_Common, RM_Class, RM_e_Xls, + RM_GridReport, RM_System, RM_Dataset, cxCheckBox, cxGridCustomPopupMenu, + cxGridPopupMenu; + +type + TfrmOrderInPutNew = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + OrderNo: TEdit; + OrderDate: TDateTimePicker; + Label5: TLabel; + Label6: TLabel; + Label8: TLabel; + ADOTemp: TADOQuery; + DataSourceZ: TDataSource; + Order_SubZ: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + WFBCodeName: TcxButtonEdit; + SCXName: TcxButtonEdit; + WJGName: TcxButtonEdit; + ADOQuery1: TADOQuery; + Label12: TLabel; + CustomNoName: TcxButtonEdit; + Note: TRichEdit; + Label13: TLabel; + ArrivalPortName: TcxButtonEdit; + Label9: TLabel; + WFBKZ: TEdit; + Label10: TLabel; + WFBHW: TEdit; + Label11: TLabel; + Label14: TLabel; + WFBFK: TEdit; + Label15: TLabel; + Label16: TLabel; + OrdQty: TEdit; + OrdUnit: TComboBox; + Label17: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + ETADate: TDateTimePicker; + Label22: TLabel; + ETDDate: TDateTimePicker; + Label23: TLabel; + ZGDate: TDateTimePicker; + Label24: TLabel; + BegRKDate: TDateTimePicker; + Label25: TLabel; + BegSCDate: TDateTimePicker; + Day1: TEdit; + Label26: TLabel; + Label27: TLabel; + Label28: TLabel; + Day2: TEdit; + Label29: TLabel; + Label30: TLabel; + Label31: TLabel; + Day3: TEdit; + Label18: TLabel; + Label32: TLabel; + Label33: TLabel; + Label4: TLabel; + Label7: TLabel; + cxGrid4: TcxGrid; + TVDB: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + VDBColumn1: TcxGridDBColumn; + VDBColumn2: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + DataSource3: TDataSource; + CDS_DB: TClientDataSet; + Order_SubF: TClientDataSet; + DataSourceF: TDataSource; + Order_SubQ: TClientDataSet; + DataSourceQ: TDataSource; + ScrollBox2: TScrollBox; + cxGrid3: TcxGrid; + Tv3: TcxGridDBBandedTableView; + v3Column1: TcxGridDBBandedColumn; + v3Column2: TcxGridDBBandedColumn; + v3Column3: TcxGridDBBandedColumn; + v3Column4: TcxGridDBBandedColumn; + v3Column5: TcxGridDBBandedColumn; + cxGridLevel2: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBBandedTableView; + v2Column1: TcxGridDBBandedColumn; + v2Column2: TcxGridDBBandedColumn; + v2Column3: TcxGridDBBandedColumn; + v2Column4: TcxGridDBBandedColumn; + v2Column5: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBBandedTableView; + v1Column1: TcxGridDBBandedColumn; + v1Column2: TcxGridDBBandedColumn; + v1Column3: TcxGridDBBandedColumn; + v1Column4: TcxGridDBBandedColumn; + v1Column5: TcxGridDBBandedColumn; + v1Column6: TcxGridDBBandedColumn; + cxGrid1Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + TBPrint: TToolButton; + v1Column7: TcxGridDBBandedColumn; + v2Column6: TcxGridDBBandedColumn; + v3Column6: TcxGridDBBandedColumn; + v1Column8: TcxGridDBBandedColumn; + v2Column7: TcxGridDBBandedColumn; + v3Column7: TcxGridDBBandedColumn; + v1Column9: TcxGridDBBandedColumn; + v2Column8: TcxGridDBBandedColumn; + v3Column8: TcxGridDBBandedColumn; + ADOQueryQG: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + RMXLSExport1: TRMXLSExport; + Label40: TLabel; + cxGrid5: TcxGrid; + TvSub: TcxGridDBTableView; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + TvSubColumn1: TcxGridDBColumn; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + DataSource1: TDataSource; + CDS_Sub: TClientDataSet; + vSubColumn2: TcxGridDBColumn; + Label41: TLabel; + OrderCode: TEdit; + vSubColumn3: TcxGridDBColumn; + Panel1: TPanel; + cxGrid6: TcxGrid; + Tvsel: TcxGridDBTableView; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridLevel5: TcxGridLevel; + vselColumn1: TcxGridDBColumn; + Panel10: TPanel; + Image2: TImage; + Button2: TButton; + Button3: TButton; + DSSel: TDataSource; + CDS_Sel: TClientDataSet; + ADOCMD: TADOQuery; + vSubColumn4: TcxGridDBColumn; + PopupMenu3: TPopupMenu; + MenuItem3: TMenuItem; + MenuItem4: TMenuItem; + vSubColumn5: TcxGridDBColumn; + vSubColumn6: TcxGridDBColumn; + vSubColumn7: TcxGridDBColumn; + BZ: TcxButtonEdit; + cxGrid7: TcxGrid; + TVKCSel: TcxGridDBTableView; + v1P_ChnName: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1ShortName: TcxGridDBColumn; + v1Quantity: TcxGridDBColumn; + v1UnitName: TcxGridDBColumn; + cxGridLevel6: TcxGridLevel; + TVKCSelColumn1: TcxGridDBColumn; + VKCSelColumn1: TcxGridDBColumn; + CDS_KCSel: TClientDataSet; + DataSource4: TDataSource; + VKCSelColumn2: TcxGridDBColumn; + vSubColumn9: TcxGridDBColumn; + v1Column10: TcxGridDBBandedColumn; + N3: TMenuItem; + N4: TMenuItem; + cxGridPopupMenu1: TcxGridPopupMenu; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + cxGridPopupMenu4: TcxGridPopupMenu; + cxGridPopupMenu5: TcxGridPopupMenu; + v2Column9: TcxGridDBBandedColumn; + v3Column9: TcxGridDBBandedColumn; + PopupMenu4: TPopupMenu; + MenuItem7: TMenuItem; + MenuItem8: TMenuItem; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure CustomNoNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesChange(Sender: TObject); + procedure SCXNamePropertiesChange(Sender: TObject); + procedure WJGNamePropertiesChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure Day1Change(Sender: TObject); + procedure OrdQtyKeyPress(Sender: TObject; var Key: Char); + procedure Day2Change(Sender: TObject); + procedure Day3Change(Sender: TObject); + procedure ETADateChange(Sender: TObject); + procedure BegRKDateChange(Sender: TObject); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure v1Column2PropertiesEditValueChanged(Sender: TObject); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + procedure OrdQtyChange(Sender: TObject); + procedure v3Column4PropertiesEditValueChanged(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure MenuItem1Click(Sender: TObject); + procedure MenuItem2Click(Sender: TObject); + procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxGridDBColumn2PropertiesEditValueChanged(Sender: TObject); + procedure TvSubColumn1PropertiesEditValueChanged(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure vSubColumn4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure MenuItem3Click(Sender: TObject); + procedure MenuItem4Click(Sender: TObject); + procedure vSubColumn5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesChange(Sender: TObject); + procedure TBChkOkClick(Sender: TObject); + procedure TBChkNoClick(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure N3Click(Sender: TObject); + procedure N4Click(Sender: TObject); + procedure MenuItem7Click(Sender: TObject); + procedure MenuItem8Click(Sender: TObject); + private + MInt,ChkInt,CloInt:Integer; + + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + procedure DelOrderSub(FOrder_Sub:TClientDataSet); + procedure SELYCL(SCDS_Sub:TClientDataSet); + procedure EditYCL(SCDS_Sub:TClientDataSet); + function SaveData10():Boolean; + procedure SaveYCL(SCDS_Sub:TClientDataSet); + procedure YLUpdate(); + procedure UpMainId(); + function SaveDataMain():Boolean; + + function SaveDataSub():Boolean; + function SaveDataDB():Boolean; + function SaveDataPB():Boolean; + procedure SELYCLKC(SCDS_Sub:TClientDataSet); + procedure OnlyUpYCLData(); + procedure YCLPBIDUPdate(SOrder_SubZ:TClientDataSet); + procedure SelAll(SCDS_Sub:TClientDataSet;FSEL:Boolean); + { Private declarations } + public + PState,BState,CopyInt:Integer; + FMainId:String; + FXS:Integer; + { Public declarations } + end; + +var + frmOrderInPutNew: TfrmOrderInPutNew; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_GetPGJBInList; + +{$R *.dfm} + +procedure TfrmOrderInPutNew.TBCloseClick(Sender: TObject); +begin + WriteCxBandedGrid('',Tv1,'޷IJ'); + WriteCxBandedGrid('ϸ',Tv2,'޷IJ'); + WriteCxBandedGrid('',Tv3,'޷IJ'); + WriteCxGrid('ӱ',TvSub,'޷IJ'); + WriteCxGrid('',TVDB,'޷IJ'); + {if PState<>3 then + begin + if Application.MessageBox('ǷҪݣ','ʾ',32+4)=IDYES then + begin + CloInt:=1; + TBSave.Click; + Exit; + end; + end; } + Close; + +end; + +procedure TfrmOrderInPutNew.InitData(); +var + i:Integer; +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); + if PState>0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=''; + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + Open; + end; + // SCreateCDS20(ADOQuery1,Order_Sub); + //SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + OrderDate.DateTime:=StrToDate(FormatDateTime('yyyy-MM-dd',SGetServerDateTime(ADOTemp))); + ETADate.DateTime:=OrderDate.DateTime; + ETDDate.DateTime:=OrderDate.DateTime; + ZGDate.DateTime:=OrderDate.DateTime; + BegRKDate.DateTime:=OrderDate.DateTime; + BegSCDate.DateTime:=OrderDate.DateTime; + ETADate.Checked:=False; + ETDDate.Checked:=False; + ZGDate.Checked:=False; + BegRKDate.Checked:=False; + BegSCDate.Checked:=False; + end; + if Trim(DParameters1)<>'' then + begin + {BegRKDate.Enabled:=False; + Day3.Enabled:=False; + BegSCDate.Enabled:=False; + //Note.Enabled:=False; + cxGrid4.Enabled:=False; + {MJKZX.Enabled:=False; + MJKZD.Enabled:=False; + XJKZX.Enabled:=False; + XJKZD.Enabled:=False;} + {SCXName.Enabled:=False; + WJGName.Enabled:=False; + ScrollBox2.Enabled:=False; } + end; + if PState=4 then + begin + BegRKDate.Enabled:=True; + Day3.Enabled:=True; + BegSCDate.Enabled:=True; + //Note.Enabled:=False; + cxGrid4.Enabled:=True; + {MJKZX.Enabled:=True; + MJKZD.Enabled:=True; + XJKZX.Enabled:=True; + XJKZD.Enabled:=True; } + SCXName.Enabled:=True; + WJGName.Enabled:=True; + ScrollBox2.Enabled:=True; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_DB where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_DB); + SInitCDSData20(ADOQuery1,CDS_DB); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Sub); + SInitCDSData20(ADOQuery1,CDS_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType=''Ҫ'' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubZ); + SInitCDSData20(ADOQuery1,Order_SubZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubF); + SInitCDSData20(ADOQuery1,Order_SubF); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubQ); + SInitCDSData20(ADOQuery1,Order_SubQ); + PanZDY.Visible:=False; + if PState=4 then + begin + PState:=0; + FMainId:='999999'; + //OrderNo.Text:=''; + WFBCodeName.Text:=''; + WFBCodeName.Hint:=''; + PanZDY.Visible:=False; + with CDS_DB do + begin + First; + while not Eof do + begin + Edit; + FieldByName('DBID').Value:=''; + Post; + Next; + end; + end; + with Order_SubZ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v1Column1.Options.Focusing:=True; + with Order_SubF do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v2Column1.Options.Focusing:=True; + with Order_SubQ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v3Column1.Options.Focusing:=True; + end; +end; + +procedure TfrmOrderInPutNew.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmOrderInPutNew.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutNew.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutNew.WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; +end; + +procedure TfrmOrderInPutNew.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmOrderInPutNew.FormShow(Sender: TObject); +var + fsj:string; +begin + {if Trim(DParameters1)='' then + begin + TBSave.Visible:=False; + //TBChkOk.Visible:=True; + TBChkNo.Visible:=True; + end else + begin + TBSave.Visible:=True; + TBChkOk.Visible:=False; + TBChkNo.Visible:=False; + end; } + fsj:=FormatDateTime('yyyy-MM-dd',SGetServerDate(ADOTemp)); + if ( (Trim(FMainId)='') or (CopyInt=1)) then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Count(*) As SL from WFBOrder_Main where OrderDate='''+Trim(fsj)+''''); + sql.Add(' and MainId not like ''%FZ'' '); + Open; + end; + if ADOTemp.IsEmpty then + begin + fsj:=fsj+'-1' + end else + fsj:=fsj+'-'+Trim(IntToStr(ADOTemp.fieldbyname('SL').AsInteger+1)); + OrderCode.Text:=Trim(fsj); + end; + InitData(); + ReadCxBandedGrid('',Tv1,'޷IJ'); + ReadCxBandedGrid('ϸ',Tv2,'޷IJ'); + ReadCxBandedGrid('',Tv3,'޷IJ'); + ReadCxGrid('ӱ',TvSub,'޷IJ'); + ReadCxGrid('',TVDB,'޷IJ'); +end; +function TfrmOrderInPutNew.SaveDataMain():Boolean; +var + maxno,FSubId:String; +begin + try + Result:=False; + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else + begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('OrderType').Value:=''; + FieldByName('OrderNo').Value:='11'; + SSetsaveSql(ADOCmd,'WFBOrder_Main',ScrollBox1,0); + if PState=2 then + begin + FieldByName('Chker').Value:=Trim(DName); + FieldByName('ChkTime').Value:=SGetServerDateTime(ADOTemp); + if ChkInt=1 then + FieldByName('ChkStatus').Value:='ͨ' + else if ChkInt=2 then + FieldByName('ChkStatus').Value:='˲ͨ'; + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + if Trim(FMainId)<>'' then + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + end; + Post; + end; + FMainId:=Trim(maxno); + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +function TfrmOrderInPutNew.SaveDataSub():Boolean; +var + maxno,FSubId:String; +begin + try + Result:=False; + ADOCmd.Connection.BeginTrans; + ///굥 + + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(CDS_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'','WFBOrder_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Sub '); + sql.Add(' where SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + FieldByName('SWFBCode').Value:=Trim(CDS_Sub.fieldbyname('SWFBCode').AsString); + SSetSaveDataCDSNew(ADOCmd,TvSub,CDS_Sub,'WFBOrder_Sub',0); + Post; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SubId').Value:=Trim(maxno); + //CDS_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ӱʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutNew.SaveDataDB():Boolean; +var + maxno,FSubId:String; +begin + try + Result:=False; + ADOCmd.Connection.BeginTrans; + ///ϸ + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'DB','WFB_DB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_DB.fieldbyname('DBId').AsString); + end; + with CDS_DB do + begin + First; + while not Eof do + begin + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_DB '); + sql.Add(' where DBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('DBId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TVDB,CDS_DB,'WFB_DB',0); + Post; + end; + CDS_DB.Edit; + CDS_DB.FieldByName('DBId').Value:=Trim(maxno); + //CDS_DB.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutNew.SaveDataPB():Boolean; +var + maxno,FSubId:String; +begin + try + Result:=False; + ADOCmd.Connection.BeginTrans; + //Ҫԭ + + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + First; + while not Eof do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubZ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('CRId').Value:=Trim(Order_SubZ.fieldbyname('CRID').AsString); + FieldByName('PBType').Value:='Ҫ'; + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV1,Order_SubZ,'WFBYCL_PB',0); + Post; + end; + Order_SubZ.Edit; + Order_SubZ.FieldByName('PBId').Value:=Trim(maxno); + //Order_SubZ.Post; + Next; + end; + end; + end; + //渨ԭ + + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + First; + while not Eof do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubF.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubF.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV2,Order_SubF,'WFBYCL_PB',0); + Post; + end; + Order_SubF.Edit; + Order_SubF.FieldByName('PBId').Value:=Trim(maxno); + Order_SubF.Post; + Next; + end; + end; + end; + //ԭ + + if not Order_SubQ.IsEmpty then + begin + with Order_SubQ do + begin + First; + while not Eof do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubQ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubQ.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV3,Order_SubQ,'WFBYCL_PB',0); + Post; + end; + Order_SubQ.Edit; + Order_SubQ.FieldByName('PBId').Value:=Trim(maxno); + Order_SubQ.Post; + Next; + end; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȱʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutNew.SaveData():Boolean; +var + maxno,FSubId,FFS:String; + wz:Integer; +begin + try + Result:=False; + SaveDataMain(); + SaveDataSub(); + SaveDataDB(); + SaveDataPB(); + wz:=Pos('F',FMainId); + FFS:=Copy(FMainId,wz,4); + if ((CopyInt=1) or (FFS='FZ')) then + begin + UpMainId(); + end; + CopyInt:=0; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutNew.SaveData10():Boolean; +var + maxno,FSubId:String; + +begin + try + Result:=False; + SaveDataMain(); + SaveDataDB(); + SaveDataSub(); + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderInPutNew.TBSaveClick(Sender: TObject); +begin + OrderDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(OrdUnit.Text)='' then + begin + Application.MessageBox('λΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBCodeName.Hint)='' then + begin + Application.MessageBox('δ壡','ʾ',0); + Exit; + end; } + if CDS_DB.Locate('BSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if CDS_DB.Locate('JSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('SWFBCodeName',null,[]) then + begin + Application.MessageBox('ƷŲΪգ','ʾ',0); + Exit; + end; + if Order_SubZ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubF.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubQ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + YLUpdate(); + if SaveData()=True then + begin + if ChkInt>0 then + begin + Application.MessageBox('ɹ!','ʾ',0); + end else + Application.MessageBox('ɹ','ʾ',0); + if CloInt=1 then ModalResult:=1; + end; + +end; +procedure TfrmOrderInPutNew.SaveYCL(SCDS_Sub:TClientDataSet); +var + maxno,maxnosub:string; +begin + try + ADOCmd.Connection.BeginTrans; + with frmGetPGJBInList.ClientDataSet2 do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PB where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + if MInt=1 then + begin + FieldByName('PBType').Value:='Ҫ'; + end else + if MInt=2 then + begin + FieldByName('PBType').Value:=''; + end else + if MInt=3 then + begin + FieldByName('PBType').Value:=''; + end; + FieldByName('YCLCode').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YCLSpec').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YLKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('QuantityKC').AsString); + FieldByName('YLUnit').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRUnit').AsString); + FieldByName('CRID').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRID').AsString); + FieldByName('YCLYJKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YJKC').AsString); + Post; + end; + with SCDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + Post; + end; + with Self.CDS_Sel do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxnosub,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sel.fieldbyname('SubId').AsString); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxnosub); + Post; + end; + Next; + end; + end; + Next; + end; + end; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +procedure TfrmOrderInPutNew.SELYCL(SCDS_Sub:TClientDataSet); +var + maxno,maxnosub:string; +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + try ADOCmd.Connection.BeginTrans; + with ClientDataSet2 do + begin + First; + while not Eof do + begin + with SCDS_Sub do + begin + Append; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + Post; + end; + + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PB where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + if MInt=1 then + begin + FieldByName('PBType').Value:='Ҫ'; + end else + if MInt=2 then + begin + FieldByName('PBType').Value:=''; + end else + if MInt=3 then + begin + FieldByName('PBType').Value:=''; + end; + FieldByName('YCLCode').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLName').AsString); + FieldByName('YCLSpec').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLSpec').AsString); + FieldByName('YLKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('QuantityKC').AsString); + FieldByName('YLUnit').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRUnit').AsString); + FieldByName('CRID').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRID').AsString); + FieldByName('YCLYJKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YJKC').AsString); + Post; + end; + with SCDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + Post; + end; + with Self.CDS_Sel do + begin + First; + while not Eof do + begin + if Self.CDS_Sel.FieldByName('SSel').AsBoolean=True then + begin + if GetLSNo(ADOCmd,maxnosub,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sel.fieldbyname('SubId').AsString); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxnosub); + Post; + end; + end; + Next; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + Exit; + end; + //Self.SaveYCL(SCDS_Sub); + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; +procedure TfrmOrderInPutNew.SELYCLKC(SCDS_Sub:TClientDataSet); +var + maxno,maxnosub:string; + YLPB,YLSH:Double; +begin + + try ADOCmd.Connection.BeginTrans; + with CDS_KCSel do + begin + First; + while not Eof do + begin + if CDS_KCSel.FieldByName('SSel').AsBoolean=True then + begin + if MInt=1 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBYCL_PB where YCLCode='''+Trim(CDS_KCSel.fieldbyname('YCLCode').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBYCL_PB where YCLCode='''+Trim(CDS_KCSel.fieldbyname('YCLCode').AsString)+''''); + SQL.Add('and YLPB>0 order by FillTime desc'); + Open; + end; + if Trim(ADOTemp.fieldbyname('YLPB').AsString)<>'' then + YLPB:=ADOTemp.fieldbyname('YLPB').Value + else + YLPB:=0; + if Trim(ADOTemp.fieldbyname('YLSH').AsString)<>'' then + YLSH:=ADOTemp.fieldbyname('YLSH').Value + else + YLSH:=0; + end else + begin + YLPB:=0; + YLSH:=0; + end; + end; + with SCDS_Sub do + begin + Append; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(CDS_KCSel.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(CDS_KCSel.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(CDS_KCSel.fieldbyname('YCLSpec').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(CDS_KCSel.fieldbyname('KCQty').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(CDS_KCSel.fieldbyname('KCUint').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(CDS_KCSel.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(CDS_KCSel.fieldbyname('YJKC').AsString); + if MInt=1 then + begin + SCDS_Sub.FieldByName('YLPB').Value:=YLPB; + SCDS_Sub.FieldByName('YLSH').Value:=YLSH; + end; + Post; + end; + // + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PB where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + if MInt=1 then + begin + FieldByName('PBType').Value:='Ҫ'; + end else + if MInt=2 then + begin + FieldByName('PBType').Value:=''; + end else + if MInt=3 then + begin + FieldByName('PBType').Value:=''; + end; + FieldByName('YCLCode').Value:=Trim(CDS_KCSel.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(CDS_KCSel.fieldbyname('YCLName').AsString); + FieldByName('YCLSpec').Value:=Trim(CDS_KCSel.fieldbyname('YCLSpec').AsString); + FieldByName('YLKC').Value:=Trim(CDS_KCSel.fieldbyname('KCQty').AsString); + FieldByName('YLUnit').Value:=Trim(CDS_KCSel.fieldbyname('KCUint').AsString); + FieldByName('CRID').Value:=Trim(CDS_KCSel.fieldbyname('CRID').AsString); + FieldByName('YCLYJKC').Value:=Trim(CDS_KCSel.fieldbyname('YJKC').AsString); + Post; + end; + with SCDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + Post; + end; + // + //ֱ + with Self.CDS_Sel do + begin + First; + while not Eof do + begin + if Self.CDS_Sel.FieldByName('SSel').AsBoolean=True then + begin + if GetLSNo(ADOCmd,maxnosub,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sel.fieldbyname('SubId').AsString); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxnosub); + Post; + end; + end; + Next; + end; + end; + //ֱ + if MInt=1 then + OnlyUpYCLData(); + end; + + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + Exit; + end; +end; + +procedure TfrmOrderInPutNew.EditYCL(SCDS_Sub:TClientDataSet); +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + //First; + // while not Eof do + //begin + with SCDS_Sub do + begin + Edit; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); + //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + if SCDS_Sub.FieldByName('YLQty').Value-ClientDataSet2.fieldbyname('YJKC').Value>=0 then + SCDS_Sub.FieldByName('BZ').Value:=SCDS_Sub.FieldByName('YLQty').Value- + ClientDataSet2.fieldbyname('YJKC').Value + else + SCDS_Sub.FieldByName('BZ').Value:=null; + //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); + //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); + //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); + //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); + //Post; + end; + // Next; + //end; + end; + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; +procedure TfrmOrderInPutNew.ToolButton1Click(Sender: TObject); + +begin + if CDS_Sub.IsEmpty=True then + begin + Application.MessageBox('굥Ϊգ','ʾ',0); + Exit; + end; + OrderDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBCodeName.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Hint)='' then + begin + Application.MessageBox('δ壡','ʾ',0); + Exit; + end; } + SaveData10(); + Panel1.Visible:=True; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + {if MInt=1 then + begin + SELYCL(Order_SubZ); + end else + if MInt=2 then + begin + SELYCL(Order_SubF); + end else + if MInt=3 then + begin + SELYCL(Order_SubQ); } + end; + SCreateCDS20(ADOQuery1,CDS_Sel); + SInitCDSData20(ADOQuery1,CDS_Sel); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add(' exec P_YCLKC_ListKCDD :KCType '); + if MInt=1 then + begin + Parameters.ParamByName('KCType').Value:='Ҫ'; + end else + if MInt=2 then + begin + Parameters.ParamByName('KCType').Value:=''; + end else + if MInt=3 then + begin + Parameters.ParamByName('KCType').Value:=''; + end; + open; + end; + SCreateCDS20(ADOQuery1,CDS_KCSel); + SInitCDSData20(ADOQuery1,CDS_KCSel); +end; + +procedure TfrmOrderInPutNew.ToolButton2Click(Sender: TObject); +begin + if MInt=1 then + begin + DelOrderSub(Order_SubZ); + end else + if MInt=2 then + begin + DelOrderSub(Order_SubF); + end else + if MInt=3 then + begin + DelOrderSub(Order_SubQ); + end; +end; +procedure TfrmOrderInPutNew.DelOrderSub(FOrder_Sub:TClientDataSet); +begin + if FOrder_Sub.IsEmpty then Exit; + if Trim(FOrder_Sub.fieldbyname('PBID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PB where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); + sql.Add('delete WFBYCL_PBSub where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + end; + FOrder_Sub.Delete; +end; + +procedure TfrmOrderInPutNew.CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('CustomNoName'); + flagname:='ͻ'; + if ShowModal=1 then + begin + Self.FXS:=99; + CustomNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.CustomNoNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(CustomNoName,'CustomNoName'); +end; + +procedure TfrmOrderInPutNew.ArrivalPortNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('ArrivalPort'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + ArrivalPortName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + ArrivalPortName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('SCXName'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + SCXName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + SCXName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WJGName'); + flagname:='ṹ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WJGName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WJGName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(WFBCodeName.Name); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBCodeName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.WFBCodeNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBCodeName,Trim(WFBCodeName.Name)); +end; + +procedure TfrmOrderInPutNew.ArrivalPortNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(ArrivalPortName,'ArrivalPort'); +end; + +procedure TfrmOrderInPutNew.SCXNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(SCXName,Trim(SCXName.Name)); +end; + +procedure TfrmOrderInPutNew.WJGNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WJGName,Trim(WJGName.Name)); +end; + +procedure TfrmOrderInPutNew.N1Click(Sender: TObject); +begin + + with CDS_DB do + begin + Append; + FieldByName('DBUnit').Value:='/'; + Post; + end; +end; + +procedure TfrmOrderInPutNew.N2Click(Sender: TObject); +begin + if CDS_DB.IsEmpty then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_DB where DBID='''+Trim(CDS_DB.fieldbyname('DBID').AsString)+''''); + ExecSQL; + end; + CDS_DB.Delete; +end; + +procedure TfrmOrderInPutNew.Day1Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day1.Text)='' then DayL:='0' + else DayL:=Trim(Day1.Text); + ETDDate.DateTime:=ETADate.Date-strtoint(DayL); +end; + +procedure TfrmOrderInPutNew.OrdQtyKeyPress(Sender: TObject; var Key: Char); +begin + if not (Key in['0'..'9','.',#8,#13]) then + begin + key:=#0; + end; +end; + +procedure TfrmOrderInPutNew.Day2Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day2.Text)='' then DayL:='0' + else DayL:=Trim(Day2.Text); + ZGDate.DateTime:=ETDDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutNew.Day3Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day3.Text)='' then DayL:='0' + else DayL:=Trim(Day3.Text); + BegSCDate.DateTime:=BegRKDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutNew.ETADateChange(Sender: TObject); +begin + if Trim(Day1.Text)<>'' then + begin + ETDDate.DateTime:=ETADate.Date-strtoint(Day1.Text); + end; + if Trim(Day2.Text)<>'' then + begin + ZGDate.DateTime:=ETDDate.Date-strtoint(Day2.Text); + end; +end; + +procedure TfrmOrderInPutNew.BegRKDateChange(Sender: TObject); +begin + if Trim(Day3.Text)<>'' then + begin + BegSCDate.DateTime:=BegRKDate.Date-strtoint(Day3.Text); + end; +end; + +procedure TfrmOrderInPutNew.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=1; + Tv1.Bands[0].Caption:='Ҫԭϡ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlue; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutNew.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=2; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭϡ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlue; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutNew.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=3; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmOrderInPutNew.v1Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty:Double; + FOrdQty,FKZ:String; +begin + if Trim(TcxTextEdit(Sender).EditingText)<>'' then + mvalue:=TcxTextEdit(Sender).EditingValue + else + mvalue:=0; + with Order_SubZ do + begin + Edit; + FieldByName('YLPB').Value:=mvalue; + Post; + end; + //KO + YLUpdate(); +end; +procedure TfrmOrderInPutNew.OnlyUpYCLData(); +var + mvalue,YLSH,DHSL,YLQty:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)<>'' then + mvalue:=Order_SubZ.fieldbyname('YLPB').Value + else + mvalue:=0; //KO + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select A.* from WFBYCL_PBSub A '); + //SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.PBID='''+Trim(Order_SubZ.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*mvalue/100*(1+YLSH/100); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+DHSL*mvalue/100*(1+YLSH/100); + end; + Next; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + end; +end; + +procedure TfrmOrderInPutNew.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB:Double; + FOrdQty,FKZ:String; +begin + if Trim(TcxTextEdit(Sender).EditingText)<>'' then + mvalue:=TcxTextEdit(Sender).EditingValue + else + mvalue:=0; + with Order_SubZ do + begin + Edit; + FieldByName('YLSH').Value:=mvalue; + Post; + end; + //KO + YLUpdate(); +end; + +procedure TfrmOrderInPutNew.v2Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSHQ,DHSL,YLQty,YLPB:Double; + FOrdQty,FKZ:String; +begin + if Trim(TcxTextEdit(Sender).EditingText)<>'' then + mvalue:=TcxTextEdit(Sender).EditingValue + else + mvalue:=0; + with Order_SubF do + begin + Edit; + FieldByName('YLSHQ').Value:=mvalue; + Post; + end; + //KO + YLUpdate(); +end; + +procedure TfrmOrderInPutNew.OrdQtyChange(Sender: TObject); +begin + YLUpdate(); +end; +procedure TfrmOrderInPutNew.YLUpdate(); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + with Order_SubZ do + begin + if Order_SubZ.IsEmpty=False then + begin + First; + while not Eof do + begin + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where PBID='''+Trim(Order_SubZ.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*YLPB/100*(1+YLSH/100); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+DHSL*YLPB/100*(1+YLSH/100); + end; + Next; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + end; + Next; + end; + end; + + end; + if Order_SubF.IsEmpty=False then + begin + with Order_SubF do + begin + First; + while not Eof do + begin + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where PBID='''+Trim(Order_SubF.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubF.fieldbyname('YLSHQ').AsString)='' then + begin + YLSHQ:=0; + end else + YLSHQ:=StrToFloat(Order_SubF.fieldbyname('YLSHQ').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*(YLSHQ*1.00/1000); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + if Trim(Order_SubF.fieldbyname('YLSHQ').AsString)='' then + begin + YLSHQ:=0; + end else + YLSHQ:=StrToFloat(Order_SubF.fieldbyname('YLSHQ').AsString); + YLQty:=YLQty+DHSL*(YLSHQ*1.00/1000); + end; + Next; + end; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + end; + Next; + end; + end; + end; +end; +procedure TfrmOrderInPutNew.v3Column4PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:Double; +begin + mvalue:=TcxTextEdit(Sender).EditingValue; + with Order_SubQ do + begin + Edit; + FieldByName('YLQty').Value:=mvalue; + if mvalue-fieldbyname('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=mvalue-fieldbyname('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPutNew.TBPrintClick(Sender: TObject); +var + fPrintFile:String; +begin + with ADOQueryQG do + begin + Close; + sql.Clear; + sql.Add(' exec P_Print_SGD :OrderNo'); + Parameters.ParamByName('OrderNo').Value:=Trim(OrderNo.Text); + Open; + end; + if ADOQueryQG.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\빺.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RMVariables['dyr']:=Trim(DName); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\빺.rmf'),'ʾ',0); + end; +end; + +procedure TfrmOrderInPutNew.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubZ); +end; + +procedure TfrmOrderInPutNew.v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubF); +end; + +procedure TfrmOrderInPutNew.v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubQ); +end; + +procedure TfrmOrderInPutNew.MenuItem1Click(Sender: TObject); +var + i:Integer; +begin + CopyAddRow(TvSub,CDS_Sub); + i:=CDS_Sub.RecordCount; + with CDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + FieldByName('SWFBColor').Value:=''; + FieldByName('SWFBCode').Value:=''; + FieldByName('SWFBCodeName').Value:=''; + FieldByName('SOrdQty').Value:=0; + FieldByName('XHNO').Value:=IntToStr(i); + Post; + end; + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); +end; + +procedure TfrmOrderInPutNew.MenuItem2Click(Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.fieldbyname('SubID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + with ADOCMD do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + sql.Add('delete WFBOrder_Sub where SubID='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB where MainId='''+Trim(FMainId)+''' '); + sql.Add(' and not exists(select * from WFBYCL_PBSub A where A.PBId=WFBYCL_PB.PBID and A.MainId='''+Trim(FMainId)+''' )'); + open; + end; + with ADOTemp do + begin + ADOTemp.First; + while not ADOTemp.Eof do + begin + if Trim(ADOTemp.fieldbyname('PBID').AsString)<>'' then + begin + if Order_SubZ.IsEmpty=False then + begin + if Order_SubZ.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]) then + Order_SubZ.Delete; + end; + if Order_SubF.IsEmpty=False then + begin + if Order_SubF.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]) then + Order_SubF.Delete; + end; + if Order_SubQ.IsEmpty=False then + begin + if Order_SubQ.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]) then + Order_SubQ.Delete; + end; + end; + ADOTemp.Next; + end; + end; + with ADOCMD do + begin + Close; + SQL.Clear; + sql.Add(' delete WFBYCL_PB where not exists(select * from WFBYCL_PBSub A where A.PBId=WFBYCL_PB.PBID )'); + SQL.Add(' and MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + + end else + begin + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('delete WFBOrder_Sub where SubID='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + end; + end; + CDS_Sub.Delete; + //YLUpdate(); + if CDS_Sub.isempty=False then + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); + YLUpdate(); +end; + +procedure TfrmOrderInPutNew.cxGridDBColumn3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('SWFBColor').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.vSubColumn2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBHX'; + flagname:=''; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('SWFBHW').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.cxGridDBColumn2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + FKZ:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FKZ)='' then + FieldByName('SWFBKZ').Value:='0' + else + FieldByName('SWFBKZ').Value:=FKZ; + Post; + end; + YLUpdate(); +end; + +procedure TfrmOrderInPutNew.TvSubColumn1PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + FOrdQty:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FOrdQty)='' then + FieldByName('SOrdQty').Value:='0' + else + FieldByName('SOrdQty').Value:=FOrdQty; + Post; + end; + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); + YLUpdate(); +end; + +procedure TfrmOrderInPutNew.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel1).perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmOrderInPutNew.Image2Click(Sender: TObject); +begin + Panel1.Visible:=False; +end; + +procedure TfrmOrderInPutNew.Button3Click(Sender: TObject); +begin + Panel1.Visible:=False; +end; + +procedure TfrmOrderInPutNew.Button2Click(Sender: TObject); +begin + if CDS_Sel.Locate('ssel',True,[])=False then + begin + Application.MessageBox('ûѡݣ','ʾ',0); + Exit; + end; + if MInt=1 then + begin + SELYCLKC(Order_SubZ); + end else + if MInt=2 then + begin + SELYCLKC(Order_SubF); + end else + if MInt=3 then + begin + SELYCLKC(Order_SubQ); + end; + Panel1.Visible:=False; +end; + +procedure TfrmOrderInPutNew.FormClose(Sender: TObject; + var Action: TCloseAction); +var + maxno,FFS:string; + wz:Integer; +begin + WriteCxBandedGrid('',Tv1,'޷IJ'); + WriteCxBandedGrid('ϸ',Tv2,'޷IJ'); + WriteCxBandedGrid('',Tv3,'޷IJ'); + WriteCxGrid('ӱ',TvSub,'޷IJ'); + WriteCxGrid('',TVDB,'޷IJ'); + { if CopyInt=1 then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFB_DB where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFBYCL_PB where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFBYCL_PBSub where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + end; + wz:=Pos('F',FMainId); + FFS:=Copy(FMainId,wz,4); + if ((CopyInt=1) or (FFS='FZ')) then + begin + UpMainId(); + end;} +end; +procedure TfrmOrderInPutNew.UpMainId(); +var + maxno:string; +begin + try + ADOCmd.Connection.BeginTrans; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PBSub Set PSID='''+Trim(maxno)+''''); + SQL.Add(' where PSID='''+Trim(ADOTemp.fieldbyname('PSID').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PB Set PBID='''+Trim(maxno)+''''); + SQL.Add(' where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + sql.Add('UPdate WFBYCL_PBSub Set PBID='''+Trim(maxno)+''''); + SQL.Add(' where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'','WFBOrder_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set SubID='''+Trim(maxno)+''''); + SQL.Add(' where SubID='''+Trim(ADOTemp.fieldbyname('SubID').AsString)+''''); + sql.Add('UPdate WFBYCL_PBSub Set SubID='''+Trim(maxno)+''''); + SQL.Add(' where SubID='''+Trim(ADOTemp.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + if GetLSNo(ADOCmd,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Main Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('Update WFBOrder_Sub Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('Update WFB_DB Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('UPdate WFBYCL_PB Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('UPdate WFBYCL_PBSub Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + ExecSQL; + end; + FMainId:=Trim(maxno); + ADOCmd.Connection.CommitTrans; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderInPutNew.vSubColumn4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(WFBCodeName.Name); + flagname:=''; + if ShowModal=1 then + begin + CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBCodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CDS_Sub.FieldByName('SWFBCode').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBOrder_Sub where SWFBCode='''+Trim(CDS_Sub.fieldbyname('SWFBCode').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty then Exit; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBOrder_Sub where SWFBCode='''+Trim(CDS_Sub.fieldbyname('SWFBCode').AsString)+''''); + sql.Add(' order by SFillTIme Desc'); + Open; + end; + with CDS_Sub do + begin + Edit; + FieldByName('SWFBColor').Value:=ADOTemp.fieldbyname('SWFBColor').Value; + FieldByName('SWFBHW').Value:=ADOTemp.fieldbyname('SWFBHW').Value; + FieldByName('SWFBKZ').Value:=ADOTemp.fieldbyname('SWFBKZ').Value; + FieldByName('SWFBFK').Value:=ADOTemp.fieldbyname('SWFBFK').Value; + FieldByName('SOrdPrice').Value:=ADOTemp.fieldbyname('SOrdPrice').Value; + FieldByName('WKMS').Value:=ADOTemp.fieldbyname('WKMS').Value; + FieldByName('KZSmal').Value:=ADOTemp.fieldbyname('KZSmal').Value; + FieldByName('KZBig').Value:=ADOTemp.fieldbyname('KZBig').Value; + //Post; + end; +end; + +procedure TfrmOrderInPutNew.MenuItem3Click(Sender: TObject); +begin + CDS_Sel.DisableControls; + with CDS_Sel do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + Next; + end; + end; + CDS_Sel.EnableControls; +end; + +procedure TfrmOrderInPutNew.MenuItem4Click(Sender: TObject); +begin + CDS_Sel.DisableControls; + with CDS_Sel do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=False; + Post; + Next; + end; + end; + CDS_Sel.EnableControls; +end; + +procedure TfrmOrderInPutNew.vSubColumn5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WKMS'); + flagname:='Ŀ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('WKMS').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('JJDW'); + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.FXS:=99; + BZ.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + // BZ.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutNew.BZPropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(BZ,'JJDW'); +end; + +procedure TfrmOrderInPutNew.TBChkOkClick(Sender: TObject); +begin + ChkInt:=1; + TBSave.Click; +end; + +procedure TfrmOrderInPutNew.TBChkNoClick(Sender: TObject); +begin + ChkInt:=2; + TBSave.Click; +end; + +procedure TfrmOrderInPutNew.Button4Click(Sender: TObject); +begin + if CDS_Sub.IsEmpty then exit; + if( (Order_SubZ.IsEmpty) and (Order_SubF.IsEmpty) and (Order_SubQ.IsEmpty) )then Exit; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + SaveData10(); + if CDS_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('굥δѡݣܸ£','ʾ',0); + Exit; + end; + if Order_SubZ.Locate('SSel',True,[])=False then + begin + if Order_SubF.Locate('SSel',True,[])=False then + if Order_SubZ.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ԭϱδѡݣܸ£','ʾ',0); + Exit; + end; + end; + try + ADOCMD.Connection.BeginTrans; + YCLPBIDUPdate(Order_SubZ); + YCLPBIDUPdate(Order_SubF); + YCLPBIDUPdate(Order_SubQ); + ADOCMD.Connection.CommitTrans; + YLUpdate(); + Application.MessageBox('³ɹ','ʾ',0); + Exit; + except + ADOCMD.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderInPutNew.YCLPBIDUPdate(SOrder_SubZ:TClientDataSet); +var + maxno:String; +begin + with CDS_Sub do + begin + First; + while not Eof do + begin + if CDS_Sub.FieldByName('SSel').AsBoolean=True then + begin + with SOrder_SubZ do + begin + First; + while not Eof do + begin + if SOrder_SubZ.FieldByName('SSel').AsBoolean=True then + begin + with ADOCMD do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and PBID='''+Trim(SOrder_SubZ.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + if GetLSNo(ADOCMD,maxno,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCMD.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCMD do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCMD do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sub.fieldbyname('SubId').AsString); + FieldByName('PBID').Value:=Trim(SOrder_SubZ.fieldbyname('PBID').AsString); + FieldByName('PSID').Value:=Trim(maxno); + Post; + end; + end; + Next; + end; + end; + end; + Next; + end; + end; +end; + +procedure TfrmOrderInPutNew.N3Click(Sender: TObject); +begin + SelAll(CDS_Sub,True); +end; +procedure TfrmOrderInPutNew.SelAll(SCDS_Sub:TClientDataSet;FSEL:Boolean); +begin + if SCDS_Sub.IsEmpty then exit; + with SCDS_Sub do + begin + First; + while not eof do + begin + Edit; + FieldByName('SSel').Value:=FSEL; + post; + Next; + end; + end; +end; + +procedure TfrmOrderInPutNew.N4Click(Sender: TObject); +begin + SelAll(CDS_Sub,False); +end; + +procedure TfrmOrderInPutNew.MenuItem7Click(Sender: TObject); +begin + if MInt=1 then + begin + SelAll(Order_SubZ,True); + end else + if MInt=2 then + begin + SelAll(Order_SubF,True); + end else + if MInt=3 then + begin + SelAll(Order_SubQ,True); + end; +end; + +procedure TfrmOrderInPutNew.MenuItem8Click(Sender: TObject); +begin + if MInt=1 then + begin + SelAll(Order_SubZ,False); + end else + if MInt=2 then + begin + SelAll(Order_SubF,False); + end else + if MInt=3 then + begin + SelAll(Order_SubQ,False); + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPutPrice.dfm b/盛纺贸易管理/U_OrderInPutPrice.dfm new file mode 100644 index 0000000..c99b518 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutPrice.dfm @@ -0,0 +1,1473 @@ +object frmOrderInPutPrice: TfrmOrderInPutPrice + Left = 190 + Top = 137 + Width = 1207 + Height = 705 + Align = alClient + Caption = #25351#31034#21333#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1191 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object ToolButton12: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #37325#26032#36830#25509 + ImageIndex = 49 + OnClick = ToolButton12Click + end + object TBClose: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxPageControl1: TcxPageControl + Left = 0 + Top = 29 + Width = 1191 + Height = 637 + Align = alClient + TabOrder = 1 + Properties.ActivePage = cxTabSheet1 + Properties.CustomButtons.Buttons = <> + Properties.Style = 8 + ClientRectBottom = 637 + ClientRectRight = 1191 + ClientRectTop = 23 + object cxTabSheet1: TcxTabSheet + Caption = #22522#26412#20449#24687 + ImageIndex = 0 + object ToolBar2: TToolBar + Left = 0 + Top = 255 + Width = 1191 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton9: TToolButton + Left = 126 + Top = 0 + Caption = #21462#21512#21516#25968#25454 + ImageIndex = 30 + Visible = False + OnClick = ToolButton9Click + end + object Panel4: TPanel + Left = 221 + Top = 0 + Width = 107 + Height = 30 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + Visible = False + object CheckBox1: TCheckBox + Left = 4 + Top = 0 + Width = 103 + Height = 30 + Caption = #39068#33394#21495#33258#21160#22686#21152 + TabOrder = 0 + Visible = False + end + end + object ToolButton3: TToolButton + Left = 328 + Top = 0 + AutoSize = True + Caption = #19968#38190#26367#25442 + ImageIndex = 29 + Visible = False + OnClick = ToolButton3Click + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1191 + Height = 255 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 31 + Top = 15 + Width = 65 + Height = 12 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 296 + Top = 15 + Width = 66 + Height = 12 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 808 + Top = 15 + Width = 65 + Height = 12 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 553 + Top = 15 + Width = 67 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 31 + Top = 97 + Width = 67 + Height = 12 + Caption = #38376' '#24133#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 296 + Top = 97 + Width = 67 + Height = 12 + Caption = #20811' '#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 296 + Top = 70 + Width = 65 + Height = 12 + Caption = #33521#25991#21517#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 808 + Top = 70 + Width = 67 + Height = 12 + Caption = #25104' '#20221#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 552 + Top = 97 + Width = 67 + Height = 12 + Caption = #33337' '#26679#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 31 + Top = 41 + Width = 65 + Height = 12 + Caption = #20132#36135#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label43: TLabel + Left = 808 + Top = 41 + Width = 66 + Height = 12 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 31 + Top = 150 + Width = 67 + Height = 12 + Caption = #22791' '#27880#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 553 + Top = 70 + Width = 65 + Height = 12 + Caption = #20013#25991#21697#21517#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 553 + Top = 41 + Width = 66 + Height = 12 + Caption = #29702' '#21333' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 145 + Top = 97 + Width = 14 + Height = 12 + Caption = 'CM' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 296 + Top = 41 + Width = 65 + Height = 12 + Caption = #20844#21496#25260#22836#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 808 + Top = 153 + Width = 65 + Height = 12 + Caption = #26816#39564#31561#32423#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label44: TLabel + Left = 405 + Top = 154 + Width = 13 + Height = 84 + Caption = #29983#13#10#13#10#20135#13#10#13#10#35201#13#10#13#10#32032 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 31 + Top = 70 + Width = 65 + Height = 12 + Caption = #20135#21697#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 808 + Top = 189 + Width = 65 + Height = 12 + Caption = #21253#35013#35201#27714#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 808 + Top = 97 + Width = 65 + Height = 12 + Caption = #23458#25143#31616#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 808 + Top = 225 + Width = 65 + Height = 12 + Caption = #30333#22383#21305#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 1026 + Top = 219 + Width = 22 + Height = 20 + Caption = 'Kg' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 31 + Top = 126 + Width = 66 + Height = 12 + Caption = #22383' '#24067' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 296 + Top = 126 + Width = 66 + Height = 12 + Caption = #21152' '#24037' '#21378#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Tag = 9 + Left = 97 + Top = 11 + Width = 170 + Height = 20 + CharCase = ecUpperCase + TabOrder = 0 + end + object ConNoHZ: TEdit + Tag = 99 + Left = 359 + Top = 11 + Width = 173 + Height = 20 + TabOrder = 1 + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 871 + Top = 11 + Width = 170 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 2 + end + object ChuanY: TBtnEditC + Tag = 2 + Left = 617 + Top = 93 + Width = 170 + Height = 20 + Hint = 'ChuanY/'#33337#26679 + TabOrder = 3 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object DLYDate: TDateTimePicker + Tag = 2 + Left = 97 + Top = 37 + Width = 171 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 4 + end + object YWY: TBtnEditC + Tag = 2 + Left = 871 + Top = 37 + Width = 170 + Height = 20 + Hint = 'YWY/'#19994#21153#21592 + TabOrder = 5 + OnBtnUpClick = OrdDefStr2BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object Note: TMemo + Tag = 2 + Left = 97 + Top = 150 + Width = 299 + Height = 92 + TabOrder = 6 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 359 + Top = 66 + Width = 173 + Height = 20 + TabOrder = 7 + end + object MPRTSpec: TEdit + Tag = 2 + Left = 871 + Top = 66 + Width = 170 + Height = 20 + TabOrder = 8 + end + object MPRTCF: TEdit + Tag = 2 + Left = 617 + Top = 66 + Width = 170 + Height = 20 + TabOrder = 9 + end + object MPRTMF: TEdit + Tag = 2 + Left = 97 + Top = 93 + Width = 45 + Height = 20 + TabOrder = 10 + end + object MPRTKZ: TEdit + Tag = 2 + Left = 359 + Top = 93 + Width = 69 + Height = 20 + TabOrder = 11 + end + object CustomerNoName: TBtnEditA + Tag = 2 + Left = 617 + Top = 11 + Width = 170 + Height = 20 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 12 + OnBtnClick = CustomerNoNameBtnClick + end + object ComTaiTou: TBtnEditA + Tag = 2 + Left = 359 + Top = 37 + Width = 173 + Height = 20 + ReadOnly = True + TabOrder = 13 + OnBtnClick = ComTaiTouBtnClick + end + object LiDanPerson: TBtnEditA + Tag = 2 + Left = 617 + Top = 37 + Width = 170 + Height = 20 + TabOrder = 14 + OnBtnClick = LiDanPersonBtnClick + end + object ZLLevel: TBtnEditA + Tag = 2 + Left = 871 + Top = 149 + Width = 171 + Height = 20 + TabOrder = 15 + OnBtnClick = ZLLevelBtnClick + end + object SCYaoSu: TMemo + Tag = 2 + Left = 424 + Top = 150 + Width = 362 + Height = 92 + ScrollBars = ssVertical + TabOrder = 16 + end + object MPRTMFNote: TEdit + Tag = 2 + Left = 161 + Top = 93 + Width = 107 + Height = 20 + TabOrder = 17 + end + object BZNote: TBtnEditA + Tag = 2 + Left = 871 + Top = 185 + Width = 171 + Height = 20 + TabOrder = 18 + OnBtnClick = BZNoteBtnClick + end + object KHNameJC: TEdit + Tag = 2 + Left = 871 + Top = 93 + Width = 170 + Height = 20 + ReadOnly = True + TabOrder = 19 + end + object MPRTCode: TBtnEditA + Tag = 2 + Left = 97 + Top = 66 + Width = 170 + Height = 20 + TabOrder = 20 + OnBtnClick = MPRTCodeBtnClick + end + object BPPiZhong: TEdit + Tag = 2 + Left = 871 + Top = 221 + Width = 152 + Height = 20 + TabOrder = 21 + end + object PBFactoryName: TBtnEditA + Tag = 2 + Left = 97 + Top = 122 + Width = 172 + Height = 20 + TabOrder = 22 + OnBtnClick = PBFactoryNameBtnClick + end + object JGFactoryName: TBtnEditA + Tag = 2 + Left = 360 + Top = 122 + Width = 174 + Height = 20 + TabOrder = 23 + OnBtnClick = JGFactoryNameBtnClick + end + object MPRTKZNote: TBtnEditA + Tag = 2 + Left = 427 + Top = 93 + Width = 107 + Height = 20 + TabOrder = 24 + OnBtnClick = MPRTKZNoteBtnClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 286 + Width = 1191 + Height = 328 + Align = alClient + TabOrder = 2 + object cxGrid1: TcxGrid + Left = 0 + Top = 0 + Width = 732 + Height = 324 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnMouseDown = Tv1MouseDown + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object v1Column14: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHInt' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.Default + Styles.Header = DataLink_TradeManage.Default + Width = 55 + end + object v1Column20: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'StyleNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 90 + end + object v1Column4: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 77 + end + object v1PrtColorNo: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PrtColorNo' + HeaderAlignmentHorz = taCenter + Styles.Footer = DataLink_TradeManage.FonePurple + Styles.Header = DataLink_TradeManage.FonePurple + Width = 70 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'PRTColorEng' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 105 + end + object v1Column1: TcxGridDBColumn + Caption = #30830#35748#33394 + DataBinding.FieldName = 'ColorOk' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 90 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 82 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg' + 'SET') + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 62 + end + object Tv1Column1: TcxGridDBColumn + Caption = #26368#22823#21367#21495 + DataBinding.FieldName = 'ZDJH' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 732 + Top = 0 + Width = 48 + Height = 324 + Align = alRight + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Button1: TButton + Left = 4 + Top = 64 + Width = 40 + Height = 23 + Caption = #25351#23450 + TabOrder = 0 + OnClick = Button1Click + end + object Button2: TButton + Left = 3 + Top = 120 + Width = 41 + Height = 23 + Caption = #21024#38500 + TabOrder = 1 + OnClick = Button2Click + end + end + object cxGrid4: TcxGrid + Left = 780 + Top = 0 + Width = 407 + Height = 324 + Align = alRight + TabOrder = 2 + object Tv11: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource11 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = cxGridDBColumn12 + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + object cxGridDBColumn11: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 103 + end + object cxGridDBColumn12: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 78 + end + object cxGridDBColumn13: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 59 + end + object v11Column1: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + end + object cxGridLevel3: TcxGridLevel + GridView = Tv11 + end + end + end + end + object cxTabSheet3: TcxTabSheet + Caption = #29983#20135#27969#31243#19982#23433#25490 + ImageIndex = 2 + object ToolBar4: TToolBar + Left = 0 + Top = 0 + Width = 1191 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton6: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton6Click + end + object ToolButton7: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton7Click + end + end + object ScrollBox3: TScrollBox + Left = 0 + Top = 184 + Width = 1191 + Height = 430 + Align = alClient + TabOrder = 1 + object ToolBar3: TToolBar + Left = 0 + Top = 0 + Width = 1187 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 131 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 106 + OnClick = ToolButton8Click + end + object ToolButton10: TToolButton + Left = 63 + Top = 0 + Caption = #25353#25351#31034#21333#26126#32454#22686#21152 + ImageIndex = 49 + Visible = False + OnClick = ToolButton10Click + end + object ToolButton4: TToolButton + Left = 194 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton4Click + end + object ToolButton5: TToolButton + Left = 257 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton5Click + end + object ToolButton11: TToolButton + Left = 320 + Top = 0 + AutoSize = True + Caption = #19968#38190#26367#25442 + ImageIndex = 29 + Visible = False + OnClick = ToolButton11Click + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 31 + Width = 1187 + Height = 395 + Align = alClient + TabOrder = 1 + object Tv3: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v3Column2 + end + item + Format = '0' + Position = spFooter + Column = v3Column3 + end + item + Format = 'FactoryNo' + Column = cxGridDBColumn3 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v3Column3 + end + item + Kind = skSum + Column = v3Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn3: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'FactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 98 + end + object v3Column1: TcxGridDBColumn + Caption = #36319#21333#21592 + DataBinding.FieldName = 'PFGenDanPerson' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 93 + end + object v3Column8: TcxGridDBColumn + Caption = #23433#25490#26085#26399 + DataBinding.FieldName = 'PFDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 86 + end + object Tv3Column1: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'PFDlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 110 + end + object v3Column2: TcxGridDBColumn + Tag = 9 + Caption = #23433#25490#21305#25968 + DataBinding.FieldName = 'PFTPPS' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 92 + end + object v3Column3: TcxGridDBColumn + Caption = #23433#25490#25968#37327 + DataBinding.FieldName = 'PFTPQty' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v3Column5: TcxGridDBColumn + Caption = #23433#25490#25968#37327#21333#20301 + DataBinding.FieldName = 'PFTPUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 103 + end + object v3Column6: TcxGridDBColumn + Tag = 99 + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v3Column7: TcxGridDBColumn + Tag = 99 + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object v3Column9: TcxGridDBColumn + Tag = 99 + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v3Column10: TcxGridDBColumn + Tag = 99 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 61 + end + object v3Column4: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'PFNote' + HeaderAlignmentHorz = taCenter + Width = 147 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + end + object Panel6: TPanel + Left = 0 + Top = 31 + Width = 1191 + Height = 153 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 1096 + Height = 149 + Align = alClient + TabOrder = 0 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv2CellClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v2Column1 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn4: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'PSXH' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + SortIndex = 0 + SortOrder = soAscending + Styles.Header = DataLink_TradeManage.Default + Width = 48 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #24037#24207#21517#31216 + DataBinding.FieldName = 'PSName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v2Column1: TcxGridDBColumn + Caption = #39044#35745#25439#32791'%' + DataBinding.FieldName = 'PSSH' + Options.Sorting = False + Width = 70 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #27880#24847#20107#39033'/'#21697#36136#35828#26126 + DataBinding.FieldName = 'PSNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn6PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.Default + Width = 636 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv2 + end + end + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 384 + Top = 5 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 352 + Top = 5 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 152 + Top = 544 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 120 + Top = 544 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 416 + Top = 5 + end + object CDS_JGLC: TClientDataSet + Aggregates = <> + Params = <> + Left = 187 + Top = 544 + end + object DataSource2: TDataSource + DataSet = CDS_JGLC + Left = 216 + Top = 544 + end + object CDS_JGC: TClientDataSet + Aggregates = <> + Params = <> + Left = 256 + Top = 544 + end + object DataSource3: TDataSource + DataSet = CDS_JGC + Left = 284 + Top = 544 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 152 + Top = 572 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 184 + Top = 572 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 216 + Top = 572 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 448 + Top = 5 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 480 + Top = 5 + end + object ClientDataSet11: TClientDataSet + Aggregates = <> + Params = <> + Left = 1112 + Top = 448 + end + object DataSource11: TDataSource + DataSet = ClientDataSet11 + Left = 1140 + Top = 448 + end + object cxGridPopupMenu11: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 1088 + Top = 444 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 528 + Top = 472 + end + object ClientDataSet2: TClientDataSet + Aggregates = <> + Params = <> + Left = 584 + Top = 472 + end +end diff --git a/盛纺贸易管理/U_OrderInPutPrice.pas b/盛纺贸易管理/U_OrderInPutPrice.pas new file mode 100644 index 0000000..b5100f4 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutPrice.pas @@ -0,0 +1,1800 @@ +unit U_OrderInPutPrice; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxPC, cxGridCustomPopupMenu, + cxGridPopupMenu, cxDropDownEdit,jpeg,IdGlobal, RM_Common, RM_Class, + RM_e_Xls, RM_System, RM_GridReport, RM_Dataset, cxCheckBox, + cxLookAndFeels, cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmOrderInPutPrice = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + cxPageControl1: TcxPageControl; + cxTabSheet1: TcxTabSheet; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label10: TLabel; + Label3: TLabel; + Label14: TLabel; + Label12: TLabel; + Label13: TLabel; + Label2: TLabel; + Label6: TLabel; + Label21: TLabel; + Label25: TLabel; + Label43: TLabel; + OrderNo: TEdit; + ConNoHZ: TEdit; + OrdDate: TDateTimePicker; + ChuanY: TBtnEditC; + DLYDate: TDateTimePicker; + YWY: TBtnEditC; + Label4: TLabel; + Note: TMemo; + CDS_JGLC: TClientDataSet; + DataSource2: TDataSource; + CDS_JGC: TClientDataSet; + DataSource3: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + MPRTCodeName: TEdit; + MPRTSpec: TEdit; + Label7: TLabel; + MPRTCF: TEdit; + MPRTMF: TEdit; + MPRTKZ: TEdit; + CustomerNoName: TBtnEditA; + Label8: TLabel; + Label11: TLabel; + ComTaiTou: TBtnEditA; + Label18: TLabel; + LiDanPerson: TBtnEditA; + Panel4: TPanel; + CheckBox1: TCheckBox; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Label42: TLabel; + ZLLevel: TBtnEditA; + Label44: TLabel; + SCYaoSu: TMemo; + ScrollBox1: TScrollBox; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column14: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Panel2: TPanel; + Button1: TButton; + Button2: TButton; + cxGrid4: TcxGrid; + Tv11: TcxGridDBTableView; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + v11Column1: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + ClientDataSet11: TClientDataSet; + DataSource11: TDataSource; + cxGridPopupMenu11: TcxGridPopupMenu; + ClientDataSet1: TClientDataSet; + ClientDataSet2: TClientDataSet; + Label5: TLabel; + MPRTMFNote: TEdit; + Label16: TLabel; + BZNote: TBtnEditA; + v1Column1: TcxGridDBColumn; + Label9: TLabel; + KHNameJC: TEdit; + MPRTCode: TBtnEditA; + Label17: TLabel; + BPPiZhong: TEdit; + Label19: TLabel; + ToolButton9: TToolButton; + ToolButton12: TToolButton; + Label20: TLabel; + Label22: TLabel; + PBFactoryName: TBtnEditA; + JGFactoryName: TBtnEditA; + cxTabSheet3: TcxTabSheet; + ToolBar4: TToolBar; + ToolButton6: TToolButton; + ToolButton7: TToolButton; + ScrollBox3: TScrollBox; + ToolBar3: TToolBar; + ToolButton8: TToolButton; + ToolButton10: TToolButton; + ToolButton4: TToolButton; + ToolButton5: TToolButton; + ToolButton11: TToolButton; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + Tv3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + v3Column9: TcxGridDBColumn; + v3Column10: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Panel6: TPanel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + MPRTKZNote: TBtnEditA; + v1PrtColorNo: TcxGridDBColumn; + Tv1Column1: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure OrdDefStr2BtnUpClick(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure YCLFactoryBtnUpClick(Sender: TObject); + procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton7Click(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton5Click(Sender: TObject); + procedure ComTaiTouBtnClick(Sender: TObject); + procedure LiDanPersonBtnClick(Sender: TObject); + procedure v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ZLLevelBtnClick(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure BZNoteBtnClick(Sender: TObject); + procedure CustomerNoNameBtnClick(Sender: TObject); + procedure MPRTCodeBtnClick(Sender: TObject); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure ToolButton9Click(Sender: TObject); + procedure v1Column2PropertiesEditValueChanged(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure PBFactoryNameBtnClick(Sender: TObject); + procedure JGFactoryNameBtnClick(Sender: TObject); + procedure MPRTKZNoteBtnClick(Sender: TObject); + private + CanShu1,CanShu2,ConPrice:String; + FJSFlag:Boolean; + procedure InitData(); + function SaveData():Boolean; + { Private declarations } + public + PState,CopyInt,PriceFlag,DRInt,JYInt:Integer; + FMainId,FFMainId,FOrderNo,ConSubId,DataType:String; + FXS:Integer; + { Public declarations } + end; +var + frmOrderInPutPrice: TfrmOrderInPutPrice; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_OrderSubSel,U_ContractSelList, + U_GYSList, U_ZdyAttachment, U_CPManageFMSel; + +{$R *.dfm} + +procedure TfrmOrderInPutPrice.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾ¼1',Tv1,'ָʾ'); + WriteCxGrid('¼',Tv2,'ָʾ'); + WriteCxGrid('ӹ¼',Tv3,'ָʾ'); +end; + +procedure TfrmOrderInPutPrice.InitData(); +begin + ReadCxGrid('ָʾ¼1',Tv1,'ָʾ'); + ReadCxGrid('¼',Tv2,'ָʾ'); + ReadCxGrid('ӹ¼',Tv3,'ָʾ'); + cxPageControl1.ActivePageIndex:=0; + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrder_Sub where 1=1 '); + if PState=1 then + begin + sql.Add(' and MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' and 1=2'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.* '); + sql.Add(',ConNoHZ=[dbo].[F_Get_Order_SubStr](A.MainId,''ConNoHZ'') '); + sql.Add(',KHConNoHZ=[dbo].[F_Get_Order_SubStr](A.MainId,''KHConNoHZ'') '); + SQL.Add(' from JYOrder_Main A where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,Panel1,2); + PBFactoryName.TxtCode:=Trim(ADOQuery1.fieldbyname('PBFactoryNo').asstring); + JGFactoryName.TxtCode:=Trim(ADOQuery1.fieldbyname('JGFactoryNo').asstring); + ConNoHZ.Text:=Trim(ADOQuery1.fieldbyname('ConNoHZ').AsString); + OrderNo.Text:=Trim(ADOQuery1.fieldbyname('OrderNo').AsString); + with ADOQuery1 do + begin + Close; + sql.Clear; + if CopyInt<>99 then + sql.Add('select * from JYOrder_Process where MainId='''+Trim(FMainId)+'''') + else + sql.Add('select * from JYOrder_Process where 1=2'); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_JGLC); + SInitCDSData20(ADOQuery1,CDS_JGLC); + if PState=0 then + begin + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=OrdDate.DateTime; + LiDanPerson.Text:=Trim(DName); + end else + begin + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + OrderNo.Text:=''; + ConNoHZ.Text:=''; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + + + +procedure TfrmOrderInPutPrice.FormShow(Sender: TObject); +begin + InitData(); +end; + +function TfrmOrderInPutPrice.SaveData():Boolean; +var + maxno,maxsubno,maxJDNo,JDMainId,maxjfno,maxjcno,FOrderNo:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'JM','JYOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + if Trim(ConSubId)<>'' then + begin + FieldByName('ConSubId').Value:=Trim(ConSubId); + end; + RTSetsavedata(ADOCmd,'JYOrder_Main',Panel1,2); + FieldByName('PBFactoryNo').Value:=Trim(PBFactoryName.TxtCode); + FieldByName('JGFactoryNo').Value:=Trim(JGFactoryName.TxtCode); + FieldByName('CustomerNo').Value:=Trim(CustomerNoName.TxtCode); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillerCode').Value:=Trim(DCode); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('Note').Value:=Trim(Note.Text); + FieldByName('OrderNo').Value:=Trim(OrderNo.Text); + Post; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main where orderno='''+Trim(OrderNo.Text)+''''); + Open; + end; + if ADOTemp.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ָʾظ!','ʾ',0); + Exit; + end; + + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxsubno,'JS','JYOrder_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxsubno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub where SubId='''+Trim(maxsubno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(maxsubno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxsubno); + //Order_Sub.Post; + Next; + end; + end; + ///̱ + with CDS_JGLC do + begin + First; + while not Eof do + begin + if Trim(CDS_JGLC.fieldbyname('PSId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxsubno,'PS','JYOrder_Process',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxsubno:=Trim(CDS_JGLC.fieldbyname('PSId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Process where PSId='''+Trim(maxsubno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_JGLC.fieldbyname('PSId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxsubno); + RTSetSaveDataCDS(ADOCmd,Tv2,CDS_JGLC,'JYOrder_Process',0); + Post; + end; + CDS_JGLC.Edit; + CDS_JGLC.FieldByName('PSId').Value:=Trim(maxsubno); + CDS_JGLC.FieldByName('MainId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + FMainId:=Trim(maxno); + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + + + + +procedure TfrmOrderInPutPrice.TBSaveClick(Sender: TObject); +var + FReal:Double; + I:integer; + JC:String; +begin + ToolBar1.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ָʾŲΪգ','ʾ',0); + Exit; + end; + if Trim(CustomerNoName.Text)='' then + begin + Application.MessageBox('ͻΪգ','ʾ',0); + Exit; + end; + if Trim(JGFactoryName.Text)='' then + begin + Application.MessageBox('ӹΪգ','ʾ',0); + Exit; + end; + if Trim(MPRTSpec.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Trim(KHNameJC.Text)='' then + begin + Application.MessageBox('ͻƲΪգ','ʾ',0); + Exit; + end; + JC:=Trim(KHNameJC.Text); + for i:=1 to Length(JC) do + begin + if bytetype(JC,i)<>mbsinglebyte then + begin + Application.MessageBox('ͻƲܺģ','ʾ',0); + Exit; + end; + end; + if Trim(ComTaiTou.Text)='' then + begin + Application.MessageBox('˾̧ͷΪգ','ʾ',0); + Exit; + end; + if Trim(YWY.Text)='' then + begin + Application.MessageBox('ҵԱΪգ','ʾ',0); + Exit; + end; + if Trim(LiDanPerson.Text)='' then + begin + Application.MessageBox('ԱΪգ','ʾ',0); + Exit; + end; + if Trim(MPRTCodeName.Text)='' then + begin + Application.MessageBox('ƷƲΪգ','ʾ',0); + Exit; + end; + if Trim(BZNote.Text)='' then + begin + Application.MessageBox('װҪΪգ','ʾ',0); + Exit; + end; + if Trim(MPRTMF.Text)<>'' then + begin + if TryStrToFloat(MPRTMF.Text,FReal)=False then + begin + Application.MessageBox('ŷǷ!','ʾ',0); + Exit; + end; + end else + begin + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + if Trim(MPRTKZ.Text)='' then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + + if Order_Sub.Locate('PRTOrderQty',Null,[])=True then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('OrderUnit',Null,[])=True then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.PRTHX,B.PRTColorNo,B.PRTOrderQty,B.OrderUnit from JYOrder_PCS_Sub A '); + sql.Add(' left join JYOrder_Sub B on A.SubId=B.SubId'); + sql.Add('where A.PSID='''+Trim(CDS_JGLC.fieldbyname('PSID').AsString)+''''); + SQL.Add(' and isnull(A.CKName,'''')<>''ڲֿ'' '); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_JGC); + SInitCDSData20(ADOQuery1,CDS_JGC); + end; + +end; + +procedure TfrmOrderInPutPrice.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + MainType:=Trim(DName); + fnote:=True; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('PRTColorEng').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton1Click(Sender: TObject); +var + FReal:Double; + i,j,z:Integer; + jstr:string; +begin + ToolBar1.SetFocus; + {if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪ!','ʾ',0); + Exit; + end;} + if CheckBox1.Checked then + begin + if Order_Sub.IsEmpty then + begin + j:=1; + end else + begin + z:=Pos('#',Trim(Order_Sub.fieldbyname('PRTColorNo').AsString)); + jstr:=Copy(Trim(Order_Sub.fieldbyname('PRTColorNo').AsString),2,z-2); + if Trim(jstr)<>'' then + begin + if TryStrToFloat(jstr,FReal)=True then + begin + j:=StrToInt(jstr)+1; + end; + end else + begin + j:=1; + end; + end; + end; + CopyAddRow(Tv1,Order_Sub); + with Order_Sub do + begin + Edit; + //FieldByName('PRTColor').Value:=''; + //FieldByName('PRTOrdQty').Value:=null; + //FieldByName('PRTColorNo').Value:=null; + //FieldByName('PRTColorEng').Value:=null; + //FieldByName('PRTHX').Value:=null; + FieldByName('SubId').Value:=''; + if CheckBox1.Checked then + begin + FieldByName('PRTColorNo').Value:='C'+Trim(IntToStr(j))+'#'; + end; + if Trim(ConPrice)<>'' then + begin + FieldByName('Price').Value:=ConPrice; + end; + FieldByName('XHInt').Value:=Order_Sub.RecordCount; + Post; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select CO.*,B.KHConNO,A.PRTColor,A.PRTHX,B.ConNo'); + SQL.Add('from JYOrder_ConORD CO inner join JYOrderCon_Sub A on CO.ConSubId=A.SubId inner join JYOrderCon_Main B on A.MainId=B.MainId'); + sql.Add(' where CO.SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and isnull(CO.SubId,'''')<>'''' '); + Open; + end; + if adoTemp.IsEmpty=False then + begin + application.MessageBox('ָ,ɾ','ʾ'); + exit; + end; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmOrderInPutPrice.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmOrderInPutPrice.OrdDefStr2BtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='OrdDefStr2' then + begin + //flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + end; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='MPRTCode' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrder_Main where MPRTCode='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' order by FillTime desc'); + Open; + end; + MPRTCodeName.Text:=ADOTemp.fieldbyname('MPRTCodeName').Value; + MPRTMF.Text:=ADOTemp.fieldbyname('MPRTMF').Value; + MPRTKZ.Text:=ADOTemp.fieldbyname('MPRTKZ').Value; + MPRTSpec.Text:=ADOTemp.fieldbyname('MPRTSpec').Value; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton3Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + ToolBar1.SetFocus; + OneKeyPost(Tv1,Order_Sub); +end; + +procedure TfrmOrderInPutPrice.YCLFactoryBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + MainType:=TEdit(Sender).Name; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +procedure TfrmOrderInPutPrice.ToolButton6Click(Sender: TObject); +var + Fint:Integer; + FReal,FMF,FKZ:Double; +begin + Fint:=CDS_JGLC.RecordCount; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='JGGX'; + flagname:='ӹ'; + if ShowModal=1 then + begin + with ClientDataSet1 do + begin + First; + while not eof do + begin + if ClientDataSet1.FieldByName('SSel').AsBoolean=True then + begin + with CDS_JGLC do + begin + Append; + FieldByName('PSXH').Value:=Fint+1; + FieldByName('PSName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + Fint:=Fint+1; + Post; + end; + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton4Click(Sender: TObject); +begin + if CDS_JGLC.IsEmpty then + begin + Application.MessageBox('ӹ̲Ϊ!','ʾ',0); + Exit; + end; + if Trim(CDS_JGLC.fieldbyname('PSID').AsString)='' then + begin + Application.MessageBox('Ϣδ!','ʾ',0); + Exit; + end; + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + with CDS_JGC do + begin + Append; + FieldByName('FactoryNo').Value:=Trim(frmGYSList.CDS_HZ.fieldbyname('ATID').AsString) ; + FieldByName('FactoryName').Value:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + FieldByName('PFDate').Value:=Now; + //Post; + end; + end; + end; + finally + frmGYSList.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton8Click(Sender: TObject); +var + maxno:string; +begin + if CDS_JGC.IsEmpty then Exit; + ToolBar1.SetFocus; + try + ADOCmd.Connection.BeginTrans; + CDS_JGC.DisableControls; + with CDS_JGC do + begin + First; + while not Eof do + begin + if Trim(CDS_JGC.fieldbyname('PFID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'PF','JYOrder_PCS_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + CDS_JGC.EnableControls; + Application.MessageBox('ȡ̼ӹˮʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_JGC.fieldbyname('PFID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_PCS_Sub where PFID='''+Trim(CDS_JGC.fieldbyname('PFID').AsString)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_JGC.fieldbyname('PFID').AsString)='' then + begin + Append; + end else + begin + Edit; + end; + FieldByName('MainID').Value:=Trim(FMainId); + FieldByName('PSID').Value:=Trim(CDS_JGLC.fieldbyname('PSID').AsString); + FieldByName('SubID').Value:=Trim(CDS_JGC.fieldbyname('SubID').AsString); + FieldByName('PFID').Value:=Trim(maxno); + FieldByName('FactoryNo').Value:=Trim(CDS_JGC.fieldbyname('FactoryNo').AsString); + FieldByName('FactoryName').Value:=Trim(CDS_JGC.fieldbyname('FactoryName').AsString); + FieldByName('PFDlyDate').Value:=CDS_JGC.fieldbyname('PFDlyDate').Value; + RTSetSaveDataCDS(ADOCmd,Tv3,CDS_JGC,'JYOrder_PCS_Sub',0); + if Trim(CDS_JGC.fieldbyname('PFTPPS').AsString)<>'' then + begin + FieldByName('PFTPPS').Value:=CDS_JGC.fieldbyname('PFTPPS').AsString; + end else + begin + FieldByName('PFTPPS').Value:=0; + end; + Post; + end; + with CDS_JGC do + begin + edit; + fieldbyname('PFID').AsString:=trim(maxno); + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + CDS_JGC.EnableControls; + Application.MessageBox('ɹ!','ʾ',0); + Exit; + except + ADOCmd.Connection.RollbackTrans; + CDS_JGC.EnableControls; + Application.MessageBox('쳣!','ʾ',0); + Exit; + end; +end; + +procedure TfrmOrderInPutPrice.cxGridDBColumn6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + fsj:string; + i:Integer; +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='PSNote'; + flagname:='˵'; + MainType:=Trim(CDS_JGLC.fieldbyname('PSName').AsString); + if ShowModal=1 then + begin + i:=0; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if ClientDataSet1.FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + if Trim(fsj)='' then + begin + fsj:=fsj+Trim(IntToStr(i))+') '+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end else + begin + fsj:=fsj+#10+Trim(IntToStr(i))+') '+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + + end; + Next; + end; + end; + with CDS_JGLC do + begin + Edit; + FieldByName('PSNote').Value:=Trim(fsj); + //Post; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton7Click(Sender: TObject); +begin + if CDS_JGC.IsEmpty=False then + begin + Application.MessageBox('ѰŲɾ!','ʾ',0); + Exit; + end; + if Trim(CDS_JGLC.fieldbyname('PSId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Process where PSId='''+Trim(CDS_JGLC.fieldbyname('PSId').AsString)+''''); + ExecSQL; + end; + end; + CDS_JGLC.Delete; +end; + +procedure TfrmOrderInPutPrice.Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.PRTHX,PRTColor=isnull(B.PRTColorNo,'''')+'' ''+isnull(B.PRTColorEng,'''')+'' ''+isnull(B.PRTColor,''''), '); + sql.Add(' B.PRTOrderQty,B.OrderUnit from JYOrder_PCS_Sub A'); + sql.Add(' left join JYOrder_Sub B on A.SubId=B.SubId'); + sql.Add('where A.PSID='''+Trim(CDS_JGLC.fieldbyname('PSID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_JGC); + SInitCDSData20(ADOQuery1,CDS_JGC); +end; + +procedure TfrmOrderInPutPrice.ToolButton10Click(Sender: TObject); +var + i:Integer; + FName:String; +begin + if CDS_JGLC.IsEmpty then + begin + Application.MessageBox('ӹ̲Ϊ!','ʾ',0); + Exit; + end; + if Trim(CDS_JGLC.fieldbyname('PSID').AsString)='' then + begin + Application.MessageBox('Ϣδ!','ʾ',0); + Exit; + end; + if CDS_JGC.IsEmpty then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.PRTHX,PRTColor=isnull(B.PRTColorNo,'''')+'' ''+isnull(B.PRTColorEng,'''')+'' ''+isnull(B.PRTColor,''''), '); + sql.Add(' B.PRTOrderQty,B.OrderUnit from JYOrder_PCS_Sub A'); + sql.Add(' left join JYOrder_Sub B on A.SubId=B.SubId'); + sql.Add('where A.PSID='''+Trim(CDS_JGLC.fieldbyname('PSID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_JGC); + SInitCDSData20(ADOQuery1,CDS_JGC); + end; + try + frmOrderSubSel:=TfrmOrderSubSel.Create(Application); + with frmOrderSubSel do + begin + FFFMainId:=Trim(Self.FMainId); + if ShowModal=1 then + begin + ClientDataSet1.DisableControls; + with frmOrderSubSel.ClientDataSet1 do + begin + First; + while not Eof do + begin + Self.CDS_JGC.Append; + Self.CDS_JGC.FieldByName('SubId').Value:=frmOrderSubSel.ClientDataSet1.FieldByName('SubId').Value; + for i:=0 to frmOrderSubSel.Tv3.ColumnCount-1 do + begin + FName:=frmOrderSubSel.Tv3.Columns[i].DataBinding.FilterFieldName; + Self.CDS_JGC.FieldByName(FName).Value:=frmOrderSubSel.ClientDataSet1.FieldByName(FName).Value; + + end; + Self.CDS_JGC.FieldByName('FactoryNo').Value:=frmOrderSubSel.ClientDataSet1.FieldByName('FactoryNo').Value; + Self.CDS_JGC.FieldByName('PFDate').Value:=Now; + Self.CDS_JGC.Post; + Next; + end; + end; + ClientDataSet1.EnableControls; + end; + end; + finally + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton11Click(Sender: TObject); +begin + if CDS_JGC.IsEmpty then Exit; + ToolBar1.SetFocus; + OneKeyPost(Tv3,CDS_JGC); +end; + +procedure TfrmOrderInPutPrice.cxGridDBColumn3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + with CDS_JGC do + begin + edit; + FieldByName('FactoryNo').Value:=Trim(frmGYSList.CDS_HZ.fieldbyname('ATID').AsString) ; + FieldByName('FactoryName').Value:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmGYSList.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton5Click(Sender: TObject); +begin + if CDS_JGC.IsEmpty then Exit; + if Trim(CDS_JGC.fieldbyname('PFId').AsString)<>'' then + begin + {with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Main_MD where PFId='''+Trim(CDS_JGC.fieldbyname('PFId').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=false then + begin + Application.MessageBox('Ѿ¼뵥ɾ!','ʾ',0); + Exit; + end; } + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_PCS_Sub where PFId='''+Trim(CDS_JGC.fieldbyname('PFId').AsString)+''''); + ExecSQL; + end; + end; + CDS_JGC.Delete; +end; + +procedure TfrmOrderInPutPrice.ComTaiTouBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdDefStr2'; + flagname:='˾̧ͷ'; + if ShowModal=1 then + begin + ComTaiTou.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.LiDanPersonBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='LiDanPerson'; + flagname:='Ա'; + fnote:=True; + V1Note.Caption:='绰'; + if ShowModal=1 then + begin + LiDanPerson.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PFGenDanPerson'; + flagname:='Ա'; + fnote:=True; + V1Note.Caption:='绰'; + if ShowModal=1 then + begin + with CDS_JGC do + begin + Edit; + FieldByName('PFGenDanPerson').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.ZLLevelBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ZLLevel'; + flagname:='ȼ'; + if ShowModal=1 then + begin + ZLLevel.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.Button1Click(Sender: TObject); +var + maxno:String; +begin + if Trim(CustomerNoName.Text)='' then + begin + Application.MessageBox('ͻΪ!','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then Exit; + {if Order_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; } + if Order_Sub.Locate('SSel;SubId',VarArrayOf([True,Null]),[loPartialKey])=True then + begin + if Application.MessageBox('δ,Ƿ񱣴','ʾ',1)=2 then + Exit; + end; + if Order_Sub.Locate('SSel;SubId',VarArrayOf([True,'']),[loPartialKey])=True then + begin + if Application.MessageBox('δ,Ƿ񱣴','ʾ',1)=2 then + Exit; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select MainId,SubId from JYOrder_Sub where 1=2'); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet1); + SInitCDSData20(ADOTemp,ClientDataSet1); + if ClientDataSet1.IsEmpty=False then ClientDataSet1.Delete; + Order_Sub.DisableControls; + with Order_Sub do + begin + First; + while not Eof do + begin + //if FieldByName('SSel').AsBoolean=True then + begin + with ClientDataSet1 do + begin + append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(Order_Sub.fieldbyname('SubId').AsString); + Post; + end; + end; + Next; + end; + end; + Order_Sub.EnableControls; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select MainId,SubId,KHConNO=Cast(Null as varchar(40)),PRTColor,PRTHX,ConNo=Cast(Null as varchar(40)) from JYOrderCon_Sub where 1<>1'); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet2); + SInitCDSData20(ADOTemp,ClientDataSet2); + try + frmContractSelList:=TfrmContractSelList.Create(Application); + with frmContractSelList do + begin + KHCode:=Trim(Self.CustomerNoName.Text); + if ShowModal=1 then + begin + with frmContractSelList.Order_Main do + begin + First; + while frmContractSelList.Order_Main.Locate('SSel',True,[]) do + begin + with Self.ClientDataSet2 do + begin + Append; + FieldByName('MainId').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('SubId').AsString); + FieldByName('ConNo').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('ConNo').AsString); + FieldByName('KHConNO').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('KHConNO').AsString); + FieldByName('PRTColor').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('PRTColor').AsString); + FieldByName('PRTHX').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('PRTHX').AsString); + Post; + end; + frmContractSelList.Order_Main.Delete; + end; + end; + end; + end; + finally + frmContractSelList.Free; + end; + try + ADOQueryCmd.Connection.BeginTrans; + ClientDataSet1.DisableControls; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + ClientDataSet2.DisableControls; + with ClientDataSet2 do + begin + ClientDataSet2.First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxno,'CO','JYOrder_ConORD',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + ClientDataSet2.EnableControls; + Application.MessageBox('ȡۺָͬʾָʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_ConORD where Mainid='''+trim(ClientDataSet1.fieldbyname('Mainid').AsString)+''' '); + sql.Add(' and Subid='''+trim(ClientDataSet1.fieldbyname('Subid').AsString)+''' '); + open; + end; + with ADOQueryCmd do + begin + if IsEmpty then + Append + else + edit; + FieldByName('MainId').Value:=Trim(ClientDataSet1.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(ClientDataSet1.fieldbyname('SubId').AsString); + FieldByName('ConMainId').Value:=Trim(ClientDataSet2.fieldbyname('MainId').AsString); + FieldByName('ConSubId').Value:=Trim(ClientDataSet2.fieldbyname('SubId').AsString); + FieldByName('COID').Value:=Trim(maxno); + FieldByName('Filler').Value:=Trim(DName); + Post; + end; + ClientDataSet2.Next; + end; + end; + ClientDataSet2.EnableControls; + ClientDataSet1.Next; + end; + end; + ClientDataSet1.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select CO.*,B.KHConNO,A.PRTColor,A.PRTHX,B.ConNo'); + SQL.Add('from JYOrder_ConORD CO inner join JYOrderCon_Sub A on CO.ConSubId=A.SubId inner join JYOrderCon_Main B on A.MainId=B.MainId'); + sql.Add(' where CO.SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet11); + SInitCDSData20(ADOTemp,ClientDataSet11); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add(' select ConNoHZ=[dbo].[F_Get_Order_SubStr](:MainId,''ConNoHZ'')'); + Parameters.ParamByName('MainId').Value:=Trim(FMainId); + Open; + end; + ConNoHZ.Text:=Trim(ADOTemp.fieldbyname('ConNoHZ').AsString); + except; + ADOQueryCmd.Connection.RollbackTrans; + ClientDataSet1.EnableControls; + ClientDataSet2.EnableControls; + Application.MessageBox('ָ쳣!','ʾ',0); + end; +end; + +procedure TfrmOrderInPutPrice.Button2Click(Sender: TObject); +begin + if ClientDataSet11.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_ConORD where COID='''+Trim(ClientDataSet11.fieldbyname('COID').AsString)+''''); + ExecSQL; + end; + ClientDataSet11.Delete; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add(' select ConNoHZ=[dbo].[F_Get_Order_SubStr](:MainId,''ConNoHZ'')'); + Parameters.ParamByName('MainId').Value:=Trim(FMainId); + Open; + end; + ConNoHZ.Text:=Trim(ADOTemp.fieldbyname('ConNoHZ').AsString); +end; + +procedure TfrmOrderInPutPrice.BZNoteBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BZNote'; + flagname:='װҪ'; + if ShowModal=1 then + begin + BZNote.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutPrice.CustomerNoNameBtnClick(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + YWY.Text:=Trim(CDS_HZ.fieldbyname('DEFstr5').AsString); + KHNameJC.Text:=Trim(CDS_HZ.fieldbyname('ZdyNameYW').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmOrderInPutPrice.MPRTCodeBtnClick(Sender: TObject); +var + fsj:String; + Fint:Integer; +begin + try + frmCPManageFMSel:=TfrmCPManageFMSel.Create(Application); + with frmCPManageFMSel do + begin + if ShowModal=1 then + begin + Self.MPRTCode.Text:=Trim(frmCPManageFMSel.CDS_Main.fieldbyname('CYNo').AsString); + Self.MPRTCodeName.Text:=Trim(frmCPManageFMSel.CDS_Main.fieldbyname('CYName').AsString); + Self.MPRTCF.Text:=Trim(frmCPManageFMSel.CDS_Main.fieldbyname('CYECF').AsString); + fsj:=Trim(frmCPManageFMSel.CDS_Main.fieldbyname('CYMF').AsString); + Fint:=Pos('C',fsj); + if Fint>0 then + begin + fsj:=Copy(fsj,1,Fint-1); + end else + begin + Fint:=Pos('"',fsj); + if Fint>0 then + begin + fsj:=Copy(fsj,1,Fint-1); + end; + end; + Self.MPRTMF.Text:=Trim(fsj); + fsj:=Trim(frmCPManageFMSel.CDS_Main.fieldbyname('CYKZ').AsString); + Fint:=Pos('g',fsj); + if Fint>0 then + begin + fsj:=Copy(fsj,1,Fint-1); + end else + begin + Fint:=Pos('G',fsj); + if Fint>0 then + begin + fsj:=Copy(fsj,1,Fint-1); + end; + end; + Self.MPRTKZ.Text:=Trim(fsj); + end; + end; + finally + frmCPManageFMSel.Free; + end; +end; + +procedure TfrmOrderInPutPrice.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + {with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select CO.*,B.KHConNO,A.PRTColor,A.PRTHX,B.ConNo'); + SQL.Add('from JYOrder_ConORD CO inner join JYOrderCon_Sub A on CO.ConSubId=A.SubId inner join JYOrderCon_Main B on A.MainId=B.MainId'); + sql.Add(' where CO.SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and isnull(CO.SubId,'''')<>'''' '); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet11); + SInitCDSData20(ADOTemp,ClientDataSet11); } +end; + +procedure TfrmOrderInPutPrice.ToolButton9Click(Sender: TObject); +begin + if Trim(CustomerNoName.Text)='' then + begin + Application.MessageBox('ͻΪ!','ʾ',0); + Exit; + end; + try + frmContractSelList:=TfrmContractSelList.Create(Application); + with frmContractSelList do + begin + KHCode:=Trim(Self.CustomerNoName.TxtCode); + if ShowModal=1 then + begin + with frmContractSelList.Order_Main do + begin + First; + while frmContractSelList.Order_Main.Locate('SSel',True,[]) do + begin + with Self.Order_Sub do + begin + Append; + FieldByName('PRTColor').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('PRTColor').AsString); + FieldByName('PRTColorEng').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('SOrdDefStr4').AsString); + FieldByName('StyleNo').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('styleNo').AsString); + FieldByName('PRTHX').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('PRTHX').AsString); + FieldByName('PRTColorNo').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('PRTColorNo').AsString); + FieldByName('ColorOk').Value:=Trim(frmContractSelList.Order_Main.fieldbyname('PRTColorOK').AsString); + FieldByName('PRTOrderQty').Value:=frmContractSelList.Order_Main.fieldbyname('PRTOrderQty').Value; + FieldByName('OrderUnit').Value:=frmContractSelList.Order_Main.fieldbyname('OrderUnit').Value; + Post; + end; + with Self.Order_Sub do + begin + edit; + FieldByName('XHInt').Value:=Self.Order_Sub.RecordCount; + end; + frmContractSelList.Order_Main.Delete; + end; + end; + end; + end; + finally + frmContractSelList.Free; + end; +end; + +procedure TfrmOrderInPutPrice.v1Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:Boolean; + FStr:string; +begin + mvalue:=TcxCheckBox(Sender).EditingValue; + if mvalue=true then + begin + with Order_Sub do + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + end; + FStr:=Order_Sub.fieldbyname('XHInt').AsString; + Order_Sub.DisableControls; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=False; + Next; + end; + end; + Order_Sub.EnableControls; + Order_Sub.Locate('XHInt',StrToInt(FStr),[]); + with Order_Sub do + begin + Edit; + FieldByName('SSel').Value:=True; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select CO.*,B.KHConNO,A.PRTColor,A.PRTHX,B.ConNo'); + SQL.Add('from JYOrder_ConORD CO inner join JYOrderCon_Sub A on CO.ConSubId=A.SubId inner join JYOrderCon_Main B on A.MainId=B.MainId'); + sql.Add(' where CO.SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and isnull(CO.SubId,'''')<>'''' '); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet11); + SInitCDSData20(ADOTemp,ClientDataSet11); + end else + begin + with Order_Sub do + begin + Edit; + FieldByName('SSel').Value:=False; + Post; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select CO.*,B.KHConNO,A.PRTColor,A.PRTHX,B.ConNo'); + SQL.Add('from JYOrder_ConORD CO inner join JYOrderCon_Sub A on CO.ConSubId=A.SubId inner join JYOrderCon_Main B on A.MainId=B.MainId'); + sql.Add(' where 1<>1'); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet11); + SInitCDSData20(ADOTemp,ClientDataSet11); + end; +end; + +procedure TfrmOrderInPutPrice.ToolButton12Click(Sender: TObject); +begin + if not Assigned(DataLink_TradeManage) then + DataLink_TradeManage:=TDataLink_TradeManage.Create(Application); + Try + with DataLink_TradeManage.ADOLink do + begin + if not Connected then + begin + Connected:=false; + ConnectionString:=DConString; + LoginPrompt:=false; + Connected:=true; + end; + end; + Except + application.MessageBox('ݿʧܣ','',mb_Ok+ MB_ICONERROR); + end; +end; + +procedure TfrmOrderInPutPrice.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select CO.*,B.KHConNO,A.PRTColor,A.PRTHX,B.ConNo'); + SQL.Add('from JYOrder_ConORD CO inner join JYOrderCon_Sub A on CO.ConSubId=A.SubId inner join JYOrderCon_Main B on A.MainId=B.MainId'); + sql.Add(' where CO.SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and isnull(CO.SubId,'''')<>'''' '); + Open; + end; + SCreateCDS20(ADOTemp,ClientDataSet11); + SInitCDSData20(ADOTemp,ClientDataSet11); +end; + +procedure TfrmOrderInPutPrice.PBFactoryNameBtnClick(Sender: TObject); +begin + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + PBFactoryName.TxtCode:=Trim(frmGYSList.CDS_HZ.fieldbyname('ATID').AsString) ; + PBFactoryName.Text:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmGYSList.Free; + end; +end; + +procedure TfrmOrderInPutPrice.JGFactoryNameBtnClick(Sender: TObject); +begin + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + JGFactoryName.TxtCode:=Trim(frmGYSList.CDS_HZ.fieldbyname('ATID').AsString) ; + JGFactoryName.Text:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmGYSList.Free; + end; +end; + +procedure TfrmOrderInPutPrice.MPRTKZNoteBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='MPRTKZNote'; + flagname:='صλ'; + if ShowModal=1 then + begin + MPRTKZNote.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPutZP.dfm b/盛纺贸易管理/U_OrderInPutZP.dfm new file mode 100644 index 0000000..2fa390e --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutZP.dfm @@ -0,0 +1,1788 @@ +object frmOrderInPutZP: TfrmOrderInPutZP + Left = 28 + Top = 34 + Width = 1192 + Height = 705 + Caption = #25351#31034#21333#24405#20837'('#21046#21697')' + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1184 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1184 + Height = 320 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 15 + Width = 65 + Height = 12 + Caption = #35746#21333#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 248 + Top = 15 + Width = 39 + Height = 12 + Caption = #20195#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 883 + Top = 15 + Width = 65 + Height = 12 + Caption = #19979#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 919 + Top = 184 + Width = 52 + Height = 12 + Caption = #29983#20135#32447#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 919 + Top = 248 + Width = 52 + Height = 12 + Caption = #32593#32467#26500#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 24 + Top = 172 + Width = 15 + Height = 98 + Caption = #27880#13#10#13#10#24847#13#10#13#10#20107#13#10#13#10#39033 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 467 + Top = 15 + Width = 39 + Height = 12 + Caption = #23458#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 677 + Top = 15 + Width = 52 + Height = 12 + Caption = #21040#36798#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 936 + Top = 83 + Width = 39 + Height = 12 + Caption = #33457#32441#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 461 + Top = 43 + Width = 53 + Height = 12 + Caption = #24133' '#23485#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label15: TLabel + Left = 609 + Top = 39 + Width = 18 + Height = 15 + Caption = 'cm' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 24 + Top = 43 + Width = 65 + Height = 12 + Caption = #21512#35745#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 777 + Top = 81 + Width = 39 + Height = 12 + Caption = #21333#20215#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 24 + Top = 100 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label20: TLabel + Left = 23 + Top = 148 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label21: TLabel + Left = 25 + Top = 120 + Width = 34 + Height = 12 + Caption = 'ETA'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 257 + Top = 122 + Width = 34 + Height = 12 + Caption = 'ETD'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 491 + Top = 121 + Width = 39 + Height = 12 + Caption = #35013#26588#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 679 + Top = 120 + Width = 53 + Height = 12 + Caption = #20837' '#24211#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 934 + Top = 121 + Width = 39 + Height = 12 + Caption = #29983#20135#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 221 + Top = 120 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 165 + Top = 120 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 238 + Top = 120 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 455 + Top = 120 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 400 + Top = 120 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 472 + Top = 120 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 904 + Top = 120 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label32: TLabel + Left = 849 + Top = 120 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 918 + Top = 120 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 679 + Top = 185 + Width = 91 + Height = 12 + Caption = #27597#21367#20811#37325#33539#22260#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 866 + Top = 184 + Width = 23 + Height = 15 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label36: TLabel + Left = 810 + Top = 184 + Width = 14 + Height = 12 + Caption = '--' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label37: TLabel + Left = 679 + Top = 249 + Width = 91 + Height = 12 + Caption = #23567#21367#20811#37325#33539#22260#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label38: TLabel + Left = 866 + Top = 248 + Width = 23 + Height = 15 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label39: TLabel + Left = 810 + Top = 248 + Width = 14 + Height = 12 + Caption = '--' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 23 + Top = 281 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label7: TLabel + Left = 431 + Top = 172 + Width = 15 + Height = 98 + Caption = #25171#13#10#13#10#21253#13#10#13#10#35814#13#10#13#10#32454 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label40: TLabel + Left = 24 + Top = 81 + Width = 65 + Height = 12 + Caption = #35746#36135#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label41: TLabel + Left = 204 + Top = 77 + Width = 11 + Height = 20 + Caption = '*' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 332 + Top = 77 + Width = 11 + Height = 20 + Caption = '*' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label43: TLabel + Left = 473 + Top = 81 + Width = 53 + Height = 12 + Caption = #24133' '#23485#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label44: TLabel + Left = 560 + Top = 77 + Width = 11 + Height = 20 + Caption = '*' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label45: TLabel + Left = 611 + Top = 79 + Width = 18 + Height = 15 + Caption = 'cm' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 642 + Top = 81 + Width = 39 + Height = 12 + Caption = #20811#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 736 + Top = 78 + Width = 23 + Height = 15 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label46: TLabel + Left = 23 + Top = 63 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object OrderNo: TEdit + Left = 86 + Top = 13 + Width = 115 + Height = 18 + TabOrder = 0 + end + object OrderDate: TDateTimePicker + Left = 947 + Top = 11 + Width = 125 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object WFBCodeName: TcxButtonEdit + Left = 292 + Top = 11 + ParentShowHint = False + Properties.BeepOnError = True + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBCodeNamePropertiesButtonClick + Properties.OnChange = WFBCodeNamePropertiesChange + ShowHint = False + TabOrder = 2 + OnKeyDown = WFBCodeNameKeyDown + Width = 132 + end + object SCXName: TcxButtonEdit + Left = 972 + Top = 180 + Hint = 'FactoryNo1' + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = SCXNamePropertiesButtonClick + Properties.OnChange = SCXNamePropertiesChange + ShowHint = False + TabOrder = 3 + OnKeyDown = WFBCodeNameKeyDown + Width = 100 + end + object WJGName: TcxButtonEdit + Left = 972 + Top = 243 + Hint = 'FactoryNo2' + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WJGNamePropertiesButtonClick + Properties.OnChange = WJGNamePropertiesChange + ShowHint = False + TabOrder = 4 + OnKeyDown = WFBCodeNameKeyDown + Width = 100 + end + object CustomNoName: TcxButtonEdit + Left = 505 + Top = 11 + Hint = 'CustomerNo' + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = CustomNoNamePropertiesButtonClick + Properties.OnChange = CustomNoNamePropertiesChange + ShowHint = False + TabOrder = 5 + OnKeyDown = WFBCodeNameKeyDown + Width = 129 + end + object Note: TRichEdit + Left = 43 + Top = 168 + Width = 366 + Height = 113 + TabOrder = 6 + end + object ArrivalPortName: TcxButtonEdit + Left = 726 + Top = 11 + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = ArrivalPortNamePropertiesButtonClick + Properties.OnChange = ArrivalPortNamePropertiesChange + ShowHint = False + TabOrder = 7 + OnKeyDown = WFBCodeNameKeyDown + Width = 117 + end + object WFBHW: TEdit + Left = 972 + Top = 80 + Width = 98 + Height = 18 + TabOrder = 8 + end + object WFBFK: TEdit + Left = 510 + Top = 40 + Width = 92 + Height = 18 + TabOrder = 9 + Visible = False + OnKeyPress = OrdQtyKeyPress + end + object OrdQty: TEdit + Left = 86 + Top = 40 + Width = 62 + Height = 18 + Enabled = False + TabOrder = 10 + OnChange = OrdQtyChange + OnKeyPress = OrdQtyKeyPress + end + object OrdUnit: TComboBox + Left = 149 + Top = 40 + Width = 53 + Height = 20 + Style = csDropDownList + Ctl3D = False + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentCtl3D = False + ParentFont = False + TabOrder = 11 + OnChange = OrdQtyChange + Items.Strings = ( + #13199 + #13217) + end + object OrdPrice: TEdit + Left = 815 + Top = 78 + Width = 53 + Height = 18 + TabOrder = 12 + OnKeyPress = OrdQtyKeyPress + end + object ETADate: TDateTimePicker + Left = 57 + Top = 117 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 13 + OnChange = ETADateChange + end + object ETDDate: TDateTimePicker + Left = 291 + Top = 117 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 14 + end + object ZGDate: TDateTimePicker + Left = 527 + Top = 117 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 15 + end + object BegRKDate: TDateTimePicker + Left = 730 + Top = 117 + Width = 115 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 16 + OnChange = BegRKDateChange + end + object BegSCDate: TDateTimePicker + Left = 968 + Top = 117 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 17 + end + object Day1: TEdit + Left = 184 + Top = 119 + Width = 35 + Height = 18 + TabOrder = 18 + OnChange = Day1Change + OnKeyPress = OrdQtyKeyPress + end + object Day2: TEdit + Left = 418 + Top = 119 + Width = 35 + Height = 18 + TabOrder = 19 + OnChange = Day2Change + OnKeyPress = OrdQtyKeyPress + end + object Day3: TEdit + Left = 867 + Top = 119 + Width = 35 + Height = 18 + TabOrder = 20 + OnChange = Day3Change + OnKeyPress = OrdQtyKeyPress + end + object MJKZX: TEdit + Left = 769 + Top = 182 + Width = 39 + Height = 18 + TabOrder = 21 + OnKeyPress = OrdQtyKeyPress + end + object MJKZD: TEdit + Left = 825 + Top = 182 + Width = 39 + Height = 18 + TabOrder = 22 + OnKeyPress = OrdQtyKeyPress + end + object XJKZX: TEdit + Left = 769 + Top = 246 + Width = 39 + Height = 18 + TabOrder = 23 + OnKeyPress = OrdQtyKeyPress + end + object XJKZD: TEdit + Left = 825 + Top = 246 + Width = 39 + Height = 18 + TabOrder = 24 + OnKeyPress = OrdQtyKeyPress + end + object cxGrid4: TcxGrid + Left = 454 + Top = 168 + Width = 213 + Height = 113 + PopupMenu = PopupMenu1 + TabOrder = 25 + object TVDB: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21253#25968#37327 + DataBinding.FieldName = 'BSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.handBlack + Width = 61 + end + object VDBColumn1: TcxGridDBColumn + Caption = #21367#25968#37327 + DataBinding.FieldName = 'JSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 65 + end + object VDBColumn2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DBUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 78 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TVDB + end + end + object WFBBZQty1: TEdit + Left = 86 + Top = 78 + Width = 62 + Height = 18 + TabOrder = 26 + OnChange = WFBBZQty1Change + OnKeyPress = OrdQtyKeyPress + end + object WFBBZUnit1: TcxButtonEdit + Left = 150 + Top = 77 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBBZUnit1PropertiesButtonClick + Properties.OnChange = WFBBZUnit1PropertiesChange + TabOrder = 27 + OnKeyDown = WFBCodeNameKeyDown + Width = 52 + end + object WFBBZQty2: TEdit + Left = 217 + Top = 78 + Width = 62 + Height = 18 + TabOrder = 28 + OnChange = WFBBZQty1Change + OnKeyPress = OrdQtyKeyPress + end + object WFBBZUnit2: TcxButtonEdit + Left = 281 + Top = 77 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBBZUnit2PropertiesButtonClick + Properties.OnChange = WFBBZUnit2PropertiesChange + TabOrder = 29 + OnKeyDown = WFBCodeNameKeyDown + Width = 52 + end + object WFBBZQty3: TEdit + Left = 345 + Top = 78 + Width = 62 + Height = 18 + TabOrder = 30 + OnChange = WFBBZQty1Change + OnKeyPress = OrdQtyKeyPress + end + object WFBBZUnit3: TcxButtonEdit + Left = 409 + Top = 77 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBBZUnit3PropertiesButtonClick + Properties.OnChange = WFBBZUnit3PropertiesChange + TabOrder = 31 + OnKeyDown = WFBCodeNameKeyDown + Width = 52 + end + object WFBFK2: TEdit + Left = 573 + Top = 78 + Width = 36 + Height = 18 + TabOrder = 32 + OnChange = WFBBZQty1Change + OnKeyPress = OrdQtyKeyPress + end + object WFBFK1: TEdit + Left = 525 + Top = 78 + Width = 36 + Height = 18 + TabOrder = 33 + OnChange = WFBBZQty1Change + OnKeyPress = OrdQtyKeyPress + end + object WFBKZ: TEdit + Left = 680 + Top = 78 + Width = 55 + Height = 18 + TabOrder = 34 + OnChange = WFBBZQty1Change + OnKeyPress = OrdQtyKeyPress + end + object BZ: TcxButtonEdit + Left = 869 + Top = 77 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = BZPropertiesButtonClick + Properties.OnChange = BZPropertiesChange + TabOrder = 35 + OnKeyDown = WFBCodeNameKeyDown + Width = 52 + end + object PanZDY: TPanel + Left = 707 + Top = 104 + Width = 151 + Height = 153 + TabOrder = 36 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 142 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.handBlack + Width = 129 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 40 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + end + object ScrollBox2: TScrollBox + Left = 0 + Top = 349 + Width = 1184 + Height = 319 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 809 + Top = 31 + Width = 366 + Height = 286 + Align = alLeft + TabOrder = 0 + object Tv3: TcxGridDBBandedTableView + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceQ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v3Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20854#23427 + Styles.Header = DataLink_WFBOrder.TextSHuangSe + Width = 400 + end> + object v3Column1: TcxGridDBBandedColumn + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v3Column2: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v3Column3: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v3Column4: TcxGridDBBandedColumn + Caption = #29992#37327 + DataBinding.FieldName = 'YLQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v3Column5: TcxGridDBBandedColumn + Caption = #21333#20301 + DataBinding.FieldName = 'YLUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v3Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v3Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v3Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 34 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid2: TcxGrid + Left = 425 + Top = 31 + Width = 384 + Height = 286 + Align = alLeft + TabOrder = 1 + object Tv2: TcxGridDBBandedTableView + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceF + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v2Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #36741#21161#21407#26009 + Styles.Header = DataLink_WFBOrder.FonePurple + Width = 428 + end> + object v2Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 68 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v2Column2: TcxGridDBBandedColumn + Caption = #32791#29575#8240 + DataBinding.FieldName = 'YLSHQ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v2Column3: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v2Column4: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v2Column5: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 60 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v2Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v2Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v2Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 34 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 31 + Width = 425 + Height = 286 + Align = alLeft + TabOrder = 2 + object Tv1: TcxGridDBBandedTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceZ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20027#35201#21407#26009 + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 487 + end> + object v1Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 69 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column2: TcxGridDBBandedColumn + Caption = #37197#27604'%' + DataBinding.FieldName = 'YLPB' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 37 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column3: TcxGridDBBandedColumn + Caption = #25439#32791'%' + DataBinding.FieldName = 'YLSH' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v1Column4: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v1Column5: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v1Column6: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 54 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column7: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 64 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v1Column8: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v1Column9: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = DataLink_WFBOrder.FoneRed + Width = 37 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1182 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object TBPrint: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #25171#21360#35831#36141#21333 + ImageIndex = 96 + OnClick = TBPrintClick + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 968 + Top = 325 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 744 + Top = 309 + end + object DataSourceZ: TDataSource + DataSet = Order_SubZ + Left = 296 + Top = 440 + end + object Order_SubZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 256 + Top = 440 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 760 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 8 + end + object ADOQuery1: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 784 + Top = 309 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 229 + object N1: TMenuItem + Caption = #22686#34892 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #21024#34892 + OnClick = N2Click + end + end + object DataSource3: TDataSource + DataSet = CDS_DB + Left = 352 + Top = 200 + end + object CDS_DB: TClientDataSet + Aggregates = <> + Params = <> + Left = 304 + Top = 240 + end + object Order_SubF: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 440 + end + object DataSourceF: TDataSource + DataSet = Order_SubF + Left = 488 + Top = 440 + end + object Order_SubQ: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 448 + end + object DataSourceQ: TDataSource + DataSet = Order_SubQ + Left = 832 + Top = 448 + end + object ADOQueryQG: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 224 + Top = 309 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryQG + Left = 288 + Top = 312 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 320 + Top = 312 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 256 + Top = 312 + end +end diff --git a/盛纺贸易管理/U_OrderInPutZP.pas b/盛纺贸易管理/U_OrderInPutZP.pas new file mode 100644 index 0000000..1a467d6 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutZP.pas @@ -0,0 +1,1849 @@ +unit U_OrderInPutZP; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar, cxGridBandedTableView, + cxGridDBBandedTableView, Menus, RM_Common, RM_Class, RM_e_Xls, + RM_GridReport, RM_System, RM_Dataset; + +type + TfrmOrderInPutZP = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + OrderNo: TEdit; + OrderDate: TDateTimePicker; + Label5: TLabel; + Label6: TLabel; + Label8: TLabel; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSourceZ: TDataSource; + Order_SubZ: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + WFBCodeName: TcxButtonEdit; + SCXName: TcxButtonEdit; + WJGName: TcxButtonEdit; + ADOQuery1: TADOQuery; + Label12: TLabel; + CustomNoName: TcxButtonEdit; + Note: TRichEdit; + Label13: TLabel; + ArrivalPortName: TcxButtonEdit; + Label10: TLabel; + WFBHW: TEdit; + Label14: TLabel; + WFBFK: TEdit; + Label15: TLabel; + Label16: TLabel; + OrdQty: TEdit; + OrdUnit: TComboBox; + Label17: TLabel; + OrdPrice: TEdit; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + ETADate: TDateTimePicker; + Label22: TLabel; + ETDDate: TDateTimePicker; + Label23: TLabel; + ZGDate: TDateTimePicker; + Label24: TLabel; + BegRKDate: TDateTimePicker; + Label25: TLabel; + BegSCDate: TDateTimePicker; + Day1: TEdit; + Label26: TLabel; + Label27: TLabel; + Label28: TLabel; + Day2: TEdit; + Label29: TLabel; + Label30: TLabel; + Label31: TLabel; + Day3: TEdit; + Label18: TLabel; + Label32: TLabel; + Label33: TLabel; + Label34: TLabel; + MJKZX: TEdit; + Label35: TLabel; + Label36: TLabel; + MJKZD: TEdit; + Label37: TLabel; + XJKZX: TEdit; + Label38: TLabel; + Label39: TLabel; + XJKZD: TEdit; + Label4: TLabel; + Label7: TLabel; + cxGrid4: TcxGrid; + TVDB: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + VDBColumn1: TcxGridDBColumn; + VDBColumn2: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + DataSource3: TDataSource; + CDS_DB: TClientDataSet; + Order_SubF: TClientDataSet; + DataSourceF: TDataSource; + Order_SubQ: TClientDataSet; + DataSourceQ: TDataSource; + ScrollBox2: TScrollBox; + cxGrid3: TcxGrid; + Tv3: TcxGridDBBandedTableView; + v3Column1: TcxGridDBBandedColumn; + v3Column2: TcxGridDBBandedColumn; + v3Column3: TcxGridDBBandedColumn; + v3Column4: TcxGridDBBandedColumn; + v3Column5: TcxGridDBBandedColumn; + cxGridLevel2: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBBandedTableView; + v2Column1: TcxGridDBBandedColumn; + v2Column2: TcxGridDBBandedColumn; + v2Column3: TcxGridDBBandedColumn; + v2Column4: TcxGridDBBandedColumn; + v2Column5: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBBandedTableView; + v1Column1: TcxGridDBBandedColumn; + v1Column2: TcxGridDBBandedColumn; + v1Column3: TcxGridDBBandedColumn; + v1Column4: TcxGridDBBandedColumn; + v1Column5: TcxGridDBBandedColumn; + v1Column6: TcxGridDBBandedColumn; + cxGrid1Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + TBPrint: TToolButton; + v1Column7: TcxGridDBBandedColumn; + v2Column6: TcxGridDBBandedColumn; + v3Column6: TcxGridDBBandedColumn; + v1Column8: TcxGridDBBandedColumn; + v2Column7: TcxGridDBBandedColumn; + v3Column7: TcxGridDBBandedColumn; + v1Column9: TcxGridDBBandedColumn; + v2Column8: TcxGridDBBandedColumn; + v3Column8: TcxGridDBBandedColumn; + ADOQueryQG: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + RMXLSExport1: TRMXLSExport; + Label40: TLabel; + WFBBZQty1: TEdit; + WFBBZUnit1: TcxButtonEdit; + Label41: TLabel; + WFBBZQty2: TEdit; + WFBBZUnit2: TcxButtonEdit; + Label42: TLabel; + WFBBZQty3: TEdit; + WFBBZUnit3: TcxButtonEdit; + Label43: TLabel; + Label44: TLabel; + WFBFK2: TEdit; + WFBFK1: TEdit; + Label45: TLabel; + Label9: TLabel; + Label11: TLabel; + WFBKZ: TEdit; + BZ: TcxButtonEdit; + Label46: TLabel; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure CustomNoNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesChange(Sender: TObject); + procedure SCXNamePropertiesChange(Sender: TObject); + procedure WJGNamePropertiesChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure Day1Change(Sender: TObject); + procedure OrdQtyKeyPress(Sender: TObject; var Key: Char); + procedure Day2Change(Sender: TObject); + procedure Day3Change(Sender: TObject); + procedure ETADateChange(Sender: TObject); + procedure BegRKDateChange(Sender: TObject); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure v1Column2PropertiesEditValueChanged(Sender: TObject); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + procedure OrdQtyChange(Sender: TObject); + procedure v3Column4PropertiesEditValueChanged(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit1PropertiesChange(Sender: TObject); + procedure WFBBZUnit2PropertiesChange(Sender: TObject); + procedure WFBBZUnit3PropertiesChange(Sender: TObject); + procedure BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesChange(Sender: TObject); + procedure WFBBZQty1Change(Sender: TObject); + private + MInt:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + procedure DelOrderSub(FOrder_Sub:TClientDataSet); + procedure SELYCL(SCDS_Sub:TClientDataSet); + procedure EditYCL(SCDS_Sub:TClientDataSet); + { Private declarations } + public + PState,BState:Integer; + FMainId:String; + FXS:Integer; + OrderType:String; + { Public declarations } + end; + +var + frmOrderInPutZP: TfrmOrderInPutZP; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_GetPGJBInList; + +{$R *.dfm} + +procedure TfrmOrderInPutZP.TBCloseClick(Sender: TObject); +begin + if PState<>3 then + begin + if Application.MessageBox('ǷҪݣ','ʾ',32+4)=IDYES then + begin + TBSave.Click; + Exit; + end; + end; + Close; + WriteCxBandedGrid('',Tv1,'޷IJ'); + WriteCxBandedGrid('ϸ',Tv2,'޷IJ'); + WriteCxBandedGrid('',Tv3,'޷IJ'); + +end; + +procedure TfrmOrderInPutZP.InitData(); +var + i:Integer; +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); + if PState>0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:='999999'; + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + Open; + end; + // SCreateCDS20(ADOQuery1,Order_Sub); + //SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + OrderDate.DateTime:=StrToDate(FormatDateTime('yyyy-MM-dd',SGetServerDateTime(ADOTemp))); + ETADate.DateTime:=OrderDate.DateTime; + ETDDate.DateTime:=OrderDate.DateTime; + ZGDate.DateTime:=OrderDate.DateTime; + BegRKDate.DateTime:=OrderDate.DateTime; + BegSCDate.DateTime:=OrderDate.DateTime; + ETADate.Checked:=False; + ETDDate.Checked:=False; + ZGDate.Checked:=False; + BegRKDate.Checked:=False; + BegSCDate.Checked:=False; + end; + if Trim(DParameters1)<>'' then + begin + BegRKDate.Enabled:=False; + Day3.Enabled:=False; + BegSCDate.Enabled:=False; + //Note.Enabled:=False; + cxGrid4.Enabled:=False; + MJKZX.Enabled:=False; + MJKZD.Enabled:=False; + XJKZX.Enabled:=False; + XJKZD.Enabled:=False; + SCXName.Enabled:=False; + WJGName.Enabled:=False; + ScrollBox2.Enabled:=False; + end; + if PState=4 then + begin + BegRKDate.Enabled:=True; + Day3.Enabled:=True; + BegSCDate.Enabled:=True; + //Note.Enabled:=False; + cxGrid4.Enabled:=True; + MJKZX.Enabled:=True; + MJKZD.Enabled:=True; + XJKZX.Enabled:=True; + XJKZD.Enabled:=True; + SCXName.Enabled:=True; + WJGName.Enabled:=True; + ScrollBox2.Enabled:=True; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_DB where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_DB); + SInitCDSData20(ADOQuery1,CDS_DB); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType=''Ҫ'' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubZ); + SInitCDSData20(ADOQuery1,Order_SubZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubF); + SInitCDSData20(ADOQuery1,Order_SubF); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubQ); + SInitCDSData20(ADOQuery1,Order_SubQ); + PanZDY.Visible:=False; + if PState=4 then + begin + PState:=0; + FMainId:='999999'; + //OrderNo.Text:=''; + WFBCodeName.Text:=''; + WFBCodeName.Hint:=''; + PanZDY.Visible:=False; + with CDS_DB do + begin + First; + while not Eof do + begin + Edit; + FieldByName('DBID').Value:=''; + Post; + Next; + end; + end; + with Order_SubZ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v1Column1.Options.Focusing:=True; + with Order_SubF do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v2Column1.Options.Focusing:=True; + with Order_SubQ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v3Column1.Options.Focusing:=True; + end; +end; + +procedure TfrmOrderInPutZP.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmOrderInPutZP.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutZP.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutZP.WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; +end; + +procedure TfrmOrderInPutZP.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmOrderInPutZP.FormShow(Sender: TObject); +begin + {if Trim(DParameters1)='1' then + begin + Label12.Visible:=False; + CustomNoName.Visible:=False; + end else + begin + Label12.Visible:=True; + CustomNoName.Visible:=True; + end; } + InitData(); + ReadCxBandedGrid('',Tv1,'޷IJ'); + ReadCxBandedGrid('ϸ',Tv2,'޷IJ'); + ReadCxBandedGrid('',Tv3,'޷IJ'); +end; + +function TfrmOrderInPutZP.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='999999' then + begin + Append; + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('OrderType').Value:=Trim(OrderType); + SSetsaveSql(ADOCmd,'WFBOrder_Main',ScrollBox1,0); + if PState=2 then + begin + FieldByName('Chker').Value:=Trim(DName); + FieldByName('ChkTime').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='999999' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + if PState=1 then + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + end; + Post; + end; + FMainId:=Trim(maxno); + ///ϸ + with CDS_DB do + begin + First; + while not Eof do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'DB','WFB_DB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_DB.fieldbyname('DBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_DB '); + sql.Add(' where DBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('DBId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TVDB,CDS_DB,'WFB_DB',0); + Post; + end; + CDS_DB.Edit; + CDS_DB.FieldByName('DBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + //Ҫԭ + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + First; + while not Eof do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubZ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('CRId').Value:=Trim(Order_SubZ.fieldbyname('CRID').AsString); + FieldByName('PBType').Value:='Ҫ'; + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV1,Order_SubZ,'WFBYCL_PB',0); + Post; + end; + Order_SubZ.Edit; + Order_SubZ.FieldByName('PBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + end; + //渨ԭ + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + First; + while not Eof do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubF.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubF.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV2,Order_SubF,'WFBYCL_PB',0); + Post; + end; + Order_SubF.Edit; + Order_SubF.FieldByName('PBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + end; + //ԭ + if not Order_SubQ.IsEmpty then + begin + with Order_SubQ do + begin + First; + while not Eof do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubQ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubQ.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV3,Order_SubQ,'WFBYCL_PB',0); + Post; + end; + Order_SubQ.Edit; + Order_SubQ.FieldByName('PBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + end; + + ///ӱ + {with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'OS','Order_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from Order_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Order_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; } + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmOrderInPutZP.TBSaveClick(Sender: TObject); +begin + OrderDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Hint)='' then + begin + Application.MessageBox('δ壡','ʾ',0); + Exit; + end; + {if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + Exit; + end; } + if CDS_DB.Locate('BSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if CDS_DB.Locate('JSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_SubZ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubF.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubQ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; +procedure TfrmOrderInPutZP.SELYCL(SCDS_Sub:TClientDataSet); +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + First; + while not Eof do + begin + with SCDS_Sub do + begin + Append; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); + //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); + //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); + //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); + //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); + Post; + end; + Next; + end; + end; + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; + +procedure TfrmOrderInPutZP.EditYCL(SCDS_Sub:TClientDataSet); +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + //First; + // while not Eof do + //begin + with SCDS_Sub do + begin + Edit; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); + //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + if SCDS_Sub.FieldByName('YLQty').Value-ClientDataSet2.fieldbyname('YJKC').Value>=0 then + SCDS_Sub.FieldByName('BZ').Value:=SCDS_Sub.FieldByName('YLQty').Value- + ClientDataSet2.fieldbyname('YJKC').Value + else + SCDS_Sub.FieldByName('BZ').Value:=null; + //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); + //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); + //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); + //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); + //Post; + end; + // Next; + //end; + end; + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; +procedure TfrmOrderInPutZP.ToolButton1Click(Sender: TObject); +begin + if MInt=1 then + begin + SELYCL(Order_SubZ); + end else + if MInt=2 then + begin + SELYCL(Order_SubF); + end else + if MInt=3 then + begin + SELYCL(Order_SubQ); + end; +end; + +procedure TfrmOrderInPutZP.ToolButton2Click(Sender: TObject); +begin + if MInt=1 then + begin + DelOrderSub(Order_SubZ); + end else + if MInt=2 then + begin + DelOrderSub(Order_SubF); + end else + if MInt=3 then + begin + DelOrderSub(Order_SubQ); + end; +end; +procedure TfrmOrderInPutZP.DelOrderSub(FOrder_Sub:TClientDataSet); +begin + if FOrder_Sub.IsEmpty then Exit; + if Trim(FOrder_Sub.fieldbyname('PBID').AsString)<>'' then + begin + if Application.MessageBox('ڴɾѱݣ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PB where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + end; + FOrder_Sub.Delete; +end; + +procedure TfrmOrderInPutZP.CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('CustomNoName'); + flagname:='ͻ'; + if ShowModal=1 then + begin + Self.FXS:=99; + CustomNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.CustomNoNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(CustomNoName,'CustomNoName'); +end; + +procedure TfrmOrderInPutZP.ArrivalPortNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('ArrivalPort'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + ArrivalPortName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + ArrivalPortName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('SCXName'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + SCXName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + SCXName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WJGName'); + flagname:='ṹ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WJGName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WJGName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(WFBCodeName.Name); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBCodeName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.WFBCodeNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBCodeName,Trim(WFBCodeName.Name)); +end; + +procedure TfrmOrderInPutZP.ArrivalPortNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(ArrivalPortName,'ArrivalPort'); +end; + +procedure TfrmOrderInPutZP.SCXNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(SCXName,Trim(SCXName.Name)); +end; + +procedure TfrmOrderInPutZP.WJGNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WJGName,Trim(WJGName.Name)); +end; + +procedure TfrmOrderInPutZP.N1Click(Sender: TObject); +begin + + with CDS_DB do + begin + Append; + FieldByName('DBUnit').Value:='/'; + Post; + end; +end; + +procedure TfrmOrderInPutZP.N2Click(Sender: TObject); +begin + if CDS_DB.IsEmpty then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_DB where DBID='''+Trim(CDS_DB.fieldbyname('DBID').AsString)+''''); + ExecSQL; + end; + CDS_DB.Delete; +end; + +procedure TfrmOrderInPutZP.Day1Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day1.Text)='' then DayL:='0' + else DayL:=Trim(Day1.Text); + ETDDate.DateTime:=ETADate.Date-strtoint(DayL); +end; + +procedure TfrmOrderInPutZP.OrdQtyKeyPress(Sender: TObject; var Key: Char); +begin + if not (Key in['0'..'9','.',#8,#13]) then + begin + key:=#0; + end; +end; + +procedure TfrmOrderInPutZP.Day2Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day2.Text)='' then DayL:='0' + else DayL:=Trim(Day2.Text); + ZGDate.DateTime:=ETDDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutZP.Day3Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day3.Text)='' then DayL:='0' + else DayL:=Trim(Day3.Text); + BegSCDate.DateTime:=BegRKDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutZP.ETADateChange(Sender: TObject); +begin + if Trim(Day1.Text)<>'' then + begin + ETDDate.DateTime:=ETADate.Date-strtoint(Day1.Text); + end; + if Trim(Day2.Text)<>'' then + begin + ZGDate.DateTime:=ETDDate.Date-strtoint(Day2.Text); + end; +end; + +procedure TfrmOrderInPutZP.BegRKDateChange(Sender: TObject); +begin + if Trim(Day3.Text)<>'' then + begin + BegSCDate.DateTime:=BegRKDate.Date-strtoint(Day3.Text); + end; +end; + +procedure TfrmOrderInPutZP.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=1; + Tv1.Bands[0].Caption:='Ҫԭϡ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlue; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutZP.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=2; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭϡ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlue; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutZP.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=3; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmOrderInPutZP.v1Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL:Double; +begin + if Trim(OrdQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100); + if StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLPB').Value:=mvalue; + Post; + end; + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(WFBKZ.Text)='' then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBfk.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end;} + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=DHSL*mvalue/100*(1+YLSH/100); + if DHSL*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLPB').Value:=mvalue; + Post; + end; + + end; +end; + + +procedure TfrmOrderInPutZP.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLPB,DHSL:Double; +begin + if Trim(OrdQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100); + if StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSH').Value:=mvalue; + Post; + end; + end else + begin + if Trim(WFBKZ.Text)='' then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBfk.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end;} + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+mvalue/100); + if DHSL*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSH').Value:=mvalue; + Post; + end; + end; +end; + +procedure TfrmOrderInPutZP.v2Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,DHSL:Double; +begin + if Trim(OrdQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + if Trim(OrdUnit.Text)='K' then + begin + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*(mvalue/1000); + if StrToFloat(OrdQty.Text)*(mvalue/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*(mvalue/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSHQ').Value:=mvalue; + Post; + end; + end else + begin + if Trim(WFBKZ.Text)='' then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=DHSL*(mvalue/1000); + if DHSL*(mvalue/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*(mvalue/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSHQ').Value:=mvalue; + Post; + end; + end; +end; + +procedure TfrmOrderInPutZP.OrdQtyChange(Sender: TObject); +var + YLPB,YLSH,DHSL:Double; +begin + if Trim(OrdQty.Text)='' then Exit; + if Trim(OrdUnit.Text)='K' then + DHSL:=StrToFloat(OrdQty.Text) + else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(WFBKZ.Text)='' then Exit; + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + end; + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + Order_SubZ.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLPB').AsString)='' then + YLPB:=0 + else + YLPB:=StrToFloat(fieldbyname('YLPB').AsString); + if Trim(fieldbyname('YLSH').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSH').AsString); + FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+YLSH/100); + if DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubZ.EnableControls; + First; + end; + end; + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + Order_SubF.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLSHQ').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSHQ').AsString); + FieldByName('YLQty').Value:=DHSL*(YLSH/1000); + if DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubF.EnableControls; + First; + end; + end; +end; +procedure TfrmOrderInPutZP.v3Column4PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:Double; +begin + mvalue:=TcxTextEdit(Sender).EditingValue; + with Order_SubQ do + begin + Edit; + FieldByName('YLQty').Value:=mvalue; + if mvalue-fieldbyname('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=mvalue-fieldbyname('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPutZP.TBPrintClick(Sender: TObject); +var + fPrintFile:String; +begin + with ADOQueryQG do + begin + Close; + sql.Clear; + sql.Add(' exec P_Print_SGD :OrderNo'); + Parameters.ParamByName('OrderNo').Value:=Trim(OrderNo.Text); + Open; + end; + if ADOQueryQG.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\빺.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RMVariables['dyr']:=Trim(DName); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\빺.rmf'),'ʾ',0); + end; +end; + +procedure TfrmOrderInPutZP.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubZ); +end; + +procedure TfrmOrderInPutZP.v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubF); +end; + +procedure TfrmOrderInPutZP.v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubQ); +end; + +procedure TfrmOrderInPutZP.WFBBZUnit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitD'); + flagname:='װ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBBZUnit1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBBZUnit1.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.WFBBZUnit2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitZ'); + flagname:='аװ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBBZUnit2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBBZUnit2.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.WFBBZUnit3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitX'); + flagname:='Сװ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBBZUnit3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBBZUnit3.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.WFBBZUnit1PropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBBZUnit1,'WFBBZUnitD'); +end; + +procedure TfrmOrderInPutZP.WFBBZUnit2PropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBBZUnit2,'WFBBZUnitZ'); +end; + +procedure TfrmOrderInPutZP.WFBBZUnit3PropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBBZUnit3,'WFBBZUnitX'); +end; + +procedure TfrmOrderInPutZP.BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('BZ'); + flagname:='۵λ'; + if ShowModal=1 then + begin + Self.FXS:=99; + BZ.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + BZ.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZP.BZPropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(BZ,'BZ'); +end; + +procedure TfrmOrderInPutZP.WFBBZQty1Change(Sender: TObject); +var + FQty1,FQty2,FQty3,FFK1,FFK2,FKZ1,YLPB,YLSH,DHSL:Double; +begin + if Trim(WFBBZQty1.Text)<>'' then + begin + FQty1:=StrToFloat(WFBBZQty1.Text); + end else + begin + FQty1:=1; + end; + if Trim(WFBBZQty2.Text)<>'' then + begin + FQty2:=StrToFloat(WFBBZQty2.Text); + end else + begin + FQty2:=1; + end; + if Trim(WFBBZQty3.Text)<>'' then + begin + FQty3:=StrToFloat(WFBBZQty3.Text); + end else + begin + FQty3:=1; + end; + if Trim(WFBFK1.Text)<>'' then + begin + FFK1:=StrToFloat(WFBFK1.Text); + end else + begin + FFK1:=0; + end; + if Trim(WFBFK2.Text)<>'' then + begin + FFK2:=StrToFloat(WFBFK2.Text); + end else + begin + FFK2:=0; + end; + if Trim(WFBKZ.Text)<>'' then + begin + FKZ1:=StrToFloat(WFBKZ.Text); + end else + begin + FKZ1:=0; + end; + if Trim(WFBKZ.Text)='' then + begin + OrdQty.Text:=FloatToStr(FQty1*FQty2*FQty3*FFK1*FFK2/10000); + OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('O'); + end else + begin + OrdQty.Text:=FloatToStr(FQty1*FQty2*FQty3*FFK1*FFK2/10000*FKZ1/1000); + OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('K'); + end; + if Trim(OrdQty.Text)='' then Exit; + if Trim(OrdUnit.Text)='K' then + DHSL:=StrToFloat(OrdQty.Text) + else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(WFBKZ.Text)='' then Exit; + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + end; + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + Order_SubZ.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLPB').AsString)='' then + YLPB:=0 + else + YLPB:=StrToFloat(fieldbyname('YLPB').AsString); + if Trim(fieldbyname('YLSH').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSH').AsString); + FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+YLSH/100); + if DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubZ.EnableControls; + First; + end; + end; + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + Order_SubF.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLSHQ').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSHQ').AsString); + FieldByName('YLQty').Value:=DHSL*(YLSH/1000); + if DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubF.EnableControls; + First; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPutZPLNew.dfm b/盛纺贸易管理/U_OrderInPutZPLNew.dfm new file mode 100644 index 0000000..3041725 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutZPLNew.dfm @@ -0,0 +1,2224 @@ +object frmOrderInPutZPLNew: TfrmOrderInPutZPLNew + Left = 55 + Top = 75 + Width = 1185 + Height = 678 + Caption = #25351#31034#21333#24405#20837'('#21046#21697')' + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Label17: TLabel + Left = 667 + Top = 47 + Width = 40 + Height = 12 + Caption = '>>'#25240#21472 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1177 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox2: TScrollBox + Left = 0 + Top = 339 + Width = 1177 + Height = 302 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 1 + object cxGrid3: TcxGrid + Left = 809 + Top = 31 + Width = 366 + Height = 269 + Align = alLeft + TabOrder = 0 + object Tv3: TcxGridDBBandedTableView + PopupMenu = PopupMenu4 + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceQ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v3Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20854#23427 + Styles.Header = DataLink_WFBProducttion.TextSHuangSe + Width = 400 + end> + object v3Column1: TcxGridDBBandedColumn + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v3Column2: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v3Column3: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v3Column4: TcxGridDBBandedColumn + Caption = #29992#37327 + DataBinding.FieldName = 'YLQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v3Column5: TcxGridDBBandedColumn + Caption = #21333#20301 + DataBinding.FieldName = 'YLUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 36 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v3Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 61 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v3Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v3Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 31 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v3Column9: TcxGridDBBandedColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid2: TcxGrid + Left = 425 + Top = 31 + Width = 384 + Height = 269 + Align = alLeft + TabOrder = 1 + object Tv2: TcxGridDBBandedTableView + PopupMenu = PopupMenu4 + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceF + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v2Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #36741#21161#21407#26009 + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 428 + end> + object v2Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 60 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v2Column2: TcxGridDBBandedColumn + Caption = #32791#29575#8240 + DataBinding.FieldName = 'YLSHQ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 37 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v2Column3: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v2Column4: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 36 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v2Column5: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v2Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 68 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v2Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 52 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v2Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 31 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v2Column9: TcxGridDBBandedColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 49 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 31 + Width = 425 + Height = 269 + Align = alLeft + TabOrder = 2 + object Tv1: TcxGridDBBandedTableView + PopupMenu = PopupMenu4 + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceZ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20027#35201#21407#26009 + Styles.Header = DataLink_WFBProducttion.FontBlue + Width = 487 + end> + object v1Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 70 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column2: TcxGridDBBandedColumn + Caption = #37197#27604'%' + DataBinding.FieldName = 'YLPB' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 38 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v1Column3: TcxGridDBBandedColumn + Caption = #25439#32791'%' + DataBinding.FieldName = 'YLSH' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v1Column4: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v1Column5: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v1Column6: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column7: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object v1Column8: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v1Column9: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = DataLink_WFBProducttion.FoneRed + Width = 38 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v1Column10: TcxGridDBBandedColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1175 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object TBPrint: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #25171#21360#35831#36141#21333 + ImageIndex = 96 + OnClick = TBPrintClick + end + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1177 + Height = 310 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 2 + object Label1: TLabel + Left = 197 + Top = 15 + Width = 66 + Height = 12 + Caption = #35746' '#21333' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 533 + Top = 127 + Width = 53 + Height = 12 + Caption = #20195' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 538 + Top = 15 + Width = 65 + Height = 12 + Caption = #19979#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 375 + Top = 15 + Width = 53 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 375 + Top = 46 + Width = 52 + Height = 12 + Caption = #21040#36798#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 16 + Top = 45 + Width = 65 + Height = 12 + Caption = #39044#20272#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 14 + Top = 68 + Width = 1140 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label20: TLabel + Left = 14 + Top = 116 + Width = 1146 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label21: TLabel + Left = 25 + Top = 88 + Width = 34 + Height = 12 + Caption = 'ETA'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 257 + Top = 90 + Width = 34 + Height = 12 + Caption = 'ETD'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 491 + Top = 89 + Width = 39 + Height = 12 + Caption = #35013#26588#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 733 + Top = 88 + Width = 53 + Height = 12 + Caption = #20837' '#24211#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 988 + Top = 89 + Width = 39 + Height = 12 + Caption = #29983#20135#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 221 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 165 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 238 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 455 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 400 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 472 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 958 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label32: TLabel + Left = 903 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 972 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 14 + Top = 294 + Width = 1146 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 22 + Top = 141 + Width = 15 + Height = 126 + Caption = #35814#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 971 + Top = 126 + Width = 60 + Height = 14 + Caption = #25171#21253#35814#32454 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 197 + Top = 46 + Width = 65 + Height = 12 + Caption = #35745#20215#21333#20301#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 762 + Top = 14 + Width = 52 + Height = 12 + Caption = #29983#20135#32447#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 762 + Top = 46 + Width = 52 + Height = 12 + Caption = #32593#32467#26500#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 17 + Top = 15 + Width = 67 + Height = 12 + Caption = #32534' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 907 + Top = 5 + Width = 15 + Height = 56 + Caption = #27880#13#10#24847#13#10#20107#13#10#39033 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 538 + Top = 47 + Width = 67 + Height = 12 + Caption = #25439' '#32791#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 602 + Top = 47 + Width = 26 + Height = 12 + Caption = #28857#26029 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 671 + Top = 47 + Width = 26 + Height = 12 + Caption = #25240#21472 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 741 + Top = 47 + Width = 7 + Height = 12 + Caption = '%' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Left = 259 + Top = 13 + Width = 103 + Height = 18 + Enabled = False + TabOrder = 0 + end + object OrderDate: TDateTimePicker + Left = 604 + Top = 11 + Width = 144 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 1 + end + object WFBCodeName: TcxButtonEdit + Left = 581 + Top = 123 + ParentShowHint = False + Properties.BeepOnError = True + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBCodeNamePropertiesButtonClick + Properties.OnChange = WFBCodeNamePropertiesChange + ShowHint = False + TabOrder = 2 + Visible = False + OnKeyDown = WFBCodeNameKeyDown + Width = 97 + end + object CustomNoName: TcxButtonEdit + Left = 426 + Top = 11 + Hint = 'CustomerNo' + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = CustomNoNamePropertiesButtonClick + Properties.OnChange = CustomNoNamePropertiesChange + ShowHint = False + TabOrder = 3 + OnKeyDown = WFBCodeNameKeyDown + Width = 100 + end + object ArrivalPortName: TcxButtonEdit + Left = 426 + Top = 43 + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = ArrivalPortNamePropertiesButtonClick + Properties.OnChange = ArrivalPortNamePropertiesChange + ShowHint = False + TabOrder = 4 + OnKeyDown = WFBCodeNameKeyDown + Width = 100 + end + object OrdQty: TEdit + Left = 79 + Top = 43 + Width = 49 + Height = 18 + Enabled = False + ReadOnly = True + TabOrder = 5 + OnChange = OrdQtyChange + OnKeyPress = OrdQtyKeyPress + end + object OrdUnit: TComboBox + Left = 129 + Top = 43 + Width = 51 + Height = 20 + Style = csDropDownList + Ctl3D = False + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentCtl3D = False + ParentFont = False + TabOrder = 6 + OnChange = OrdQtyChange + Items.Strings = ( + #13199 + #13217) + end + object ETADate: TDateTimePicker + Left = 57 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 7 + OnChange = ETADateChange + end + object ETDDate: TDateTimePicker + Left = 291 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 8 + end + object ZGDate: TDateTimePicker + Left = 527 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 9 + end + object BegRKDate: TDateTimePicker + Left = 784 + Top = 85 + Width = 115 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 10 + OnChange = BegRKDateChange + end + object BegSCDate: TDateTimePicker + Left = 1022 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 11 + end + object Day1: TEdit + Left = 184 + Top = 87 + Width = 35 + Height = 18 + Enabled = False + TabOrder = 12 + OnChange = Day1Change + OnKeyPress = OrdQtyKeyPress + end + object Day2: TEdit + Left = 418 + Top = 87 + Width = 35 + Height = 18 + Enabled = False + TabOrder = 13 + OnChange = Day2Change + OnKeyPress = OrdQtyKeyPress + end + object Day3: TEdit + Left = 921 + Top = 87 + Width = 35 + Height = 18 + Enabled = False + TabOrder = 14 + OnChange = Day3Change + OnKeyPress = OrdQtyKeyPress + end + object cxGrid5: TcxGrid + Left = 41 + Top = 126 + Width = 922 + Height = 172 + TabOrder = 15 + object TvSub: TcxGridDBTableView + PopupMenu = PopupMenu2 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = TvSubColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + object vSubColumn16: TcxGridDBColumn + Tag = 9 + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 38 + end + object vSubColumn3: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 34 + end + object vSubColumn11: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'SubType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #28857#26029 + #25240#21472) + Properties.OnEditValueChanged = vSubColumn11PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 41 + end + object vSubColumn12: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = vSubColumn12PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 69 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 48 + end + object vSubColumn2: TcxGridDBColumn + Caption = #33457#32441 + DataBinding.FieldName = 'SWFBHW' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn2PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 41 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20811#37325'g/'#13217 + DataBinding.FieldName = 'SWFBKZ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 63 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #38271#24230'cm' + DataBinding.FieldName = 'SWFBFK1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 46 + end + object vSubColumn4: TcxGridDBColumn + Caption = #23485#24230'cm' + DataBinding.FieldName = 'SWFBFK2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = vSubColumn4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 46 + end + object vSubColumn5: TcxGridDBColumn + Caption = #22823#25968#37327 + DataBinding.FieldName = 'SWFBBZQty1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = vSubColumn5PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 46 + end + object vSubColumn6: TcxGridDBColumn + Caption = #22823#21333#20301 + DataBinding.FieldName = 'SWFBBZUnit1' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn6PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 45 + end + object vSubColumn7: TcxGridDBColumn + Caption = #20013#25968#37327 + DataBinding.FieldName = 'SWFBBZQty2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = vSubColumn7PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 45 + end + object vSubColumn8: TcxGridDBColumn + Caption = #20013#21333#20301 + DataBinding.FieldName = 'SWFBBZUnit2' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn8PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 45 + end + object vSubColumn9: TcxGridDBColumn + Caption = #23567#25968#37327 + DataBinding.FieldName = 'SWFBBZQty3' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = vSubColumn9PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 48 + end + object vSubColumn10: TcxGridDBColumn + Caption = #23567#21333#20301 + DataBinding.FieldName = 'SWFBBZUnit3' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn10PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 44 + end + object TvSubColumn1: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SOrdQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 48 + end + object vSubColumn13: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn13PropertiesButtonClick + Styles.Header = DataLink_WFBProducttion.Default + Width = 60 + end + object vSubColumn15: TcxGridDBColumn + Caption = #21367#22343#37325#19979#38480 + DataBinding.FieldName = 'KZSmal' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 77 + end + object vSubColumn14: TcxGridDBColumn + Caption = #21367#22343#37325#19978#38480 + DataBinding.FieldName = 'KZBig' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 69 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvSub + end + end + object cxGrid4: TcxGrid + Left = 968 + Top = 141 + Width = 160 + Height = 154 + Enabled = False + TabOrder = 16 + object TVDB: TcxGridDBTableView + PopupMenu = PopupMenu1 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21253#25968#37327 + DataBinding.FieldName = 'BSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 48 + end + object VDBColumn1: TcxGridDBColumn + Caption = #21367#25968#37327 + DataBinding.FieldName = 'JSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 46 + end + object VDBColumn2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DBUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 57 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TVDB + end + end + object Note: TRichEdit + Left = 923 + Top = 2 + Width = 203 + Height = 63 + Enabled = False + TabOrder = 17 + end + object SCXName: TcxButtonEdit + Left = 810 + Top = 10 + Hint = 'FactoryNo1' + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = SCXNamePropertiesButtonClick + Properties.OnChange = SCXNamePropertiesChange + ShowHint = False + TabOrder = 18 + OnKeyDown = WFBCodeNameKeyDown + Width = 88 + end + object WJGName: TcxButtonEdit + Left = 810 + Top = 43 + Hint = 'FactoryNo2' + BeepOnEnter = False + Enabled = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WJGNamePropertiesButtonClick + Properties.OnChange = WJGNamePropertiesChange + ShowHint = False + TabOrder = 19 + OnKeyDown = WFBCodeNameKeyDown + Width = 88 + end + object PanZDY: TPanel + Left = 974 + Top = 133 + Width = 151 + Height = 153 + TabOrder = 20 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 142 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 129 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 40 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + object OrderCode: TEdit + Left = 79 + Top = 13 + Width = 103 + Height = 18 + Enabled = False + TabOrder = 21 + end + object BZ: TcxButtonEdit + Left = 259 + Top = 43 + BeepOnEnter = False + Enabled = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = cxButtonEdit1PropertiesButtonClick + Properties.OnChange = cxButtonEdit1PropertiesChange + TabOrder = 22 + OnKeyDown = WFBCodeNameKeyDown + Width = 105 + end + object DD: TEdit + Left = 629 + Top = 44 + Width = 40 + Height = 18 + Enabled = False + TabOrder = 23 + OnChange = DDChange + OnKeyPress = OrdQtyKeyPress + end + object ZD: TEdit + Left = 699 + Top = 44 + Width = 40 + Height = 18 + Enabled = False + TabOrder = 24 + OnChange = ZDChange + OnKeyPress = OrdQtyKeyPress + end + end + object Panel1: TPanel + Left = 1160 + Top = 344 + Width = 825 + Height = 297 + TabOrder = 3 + Visible = False + object cxGrid6: TcxGrid + Left = 11 + Top = 32 + Width = 299 + Height = 209 + PopupMenu = PopupMenu1 + TabOrder = 0 + object Tvsel: TcxGridDBTableView + PopupMenu = PopupMenu3 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSel + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object vselColumn1: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 42 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 61 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #33457#32441 + DataBinding.FieldName = 'SWFBHW' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn2PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 51 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #20811#37325'g/'#13217 + DataBinding.FieldName = 'SWFBKZ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 72 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #24133#23485'cm' + DataBinding.FieldName = 'SWFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 52 + end + end + object cxGridLevel5: TcxGridLevel + GridView = Tvsel + end + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 823 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #36873#21333 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 789 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button2: TButton + Left = 64 + Top = 251 + Width = 65 + Height = 25 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button2Click + end + object Button3: TButton + Left = 168 + Top = 251 + Width = 49 + Height = 25 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button3Click + end + object cxGrid7: TcxGrid + Left = 312 + Top = 32 + Width = 505 + Height = 257 + TabOrder = 4 + object TVKCSel: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource4 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'DefStr1' + end + item + Format = 'DefStr2' + Column = v1ShortName + end + item + Format = 'RollUnit' + Column = v1UnitName + end + item + Format = 'YCLCode' + Column = v1P_ChnName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Quantity + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_WFBProducttion.Default + object TVKCSelColumn1: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taRightJustify + Width = 39 + end + object v1P_ChnName: TcxGridDBColumn + Tag = 2 + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v1ShortName: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'GYSName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 68 + end + object v1Quantity: TcxGridDBColumn + Tag = 2 + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 70 + end + object VKCSelColumn2: TcxGridDBColumn + Caption = #39044#35745#29992#37327 + DataBinding.FieldName = 'YJYL' + HeaderAlignmentHorz = taCenter + Width = 57 + end + object VKCSelColumn1: TcxGridDBColumn + Caption = #39044#35745#24211#23384 + DataBinding.FieldName = 'YJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 65 + end + object v1UnitName: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'KCUint' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 45 + end + end + object cxGridLevel6: TcxGridLevel + GridView = TVKCSel + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 704 + Top = 309 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 744 + Top = 309 + end + object DataSourceZ: TDataSource + DataSet = Order_SubZ + Left = 296 + Top = 440 + end + object Order_SubZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 256 + Top = 440 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 760 + end + object ADOZDY: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 65533 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + end + object ADOQuery1: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 784 + Top = 309 + end + object PopupMenu1: TPopupMenu + Left = 544 + Top = 253 + object N1: TMenuItem + Caption = #22686#34892 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #21024#34892 + OnClick = N2Click + end + end + object DataSource3: TDataSource + DataSet = CDS_DB + Left = 544 + Top = 200 + end + object CDS_DB: TClientDataSet + Aggregates = <> + Params = <> + Left = 480 + Top = 224 + end + object Order_SubF: TClientDataSet + Aggregates = <> + Params = <> + Left = 744 + Top = 488 + end + object DataSourceF: TDataSource + DataSet = Order_SubF + Left = 728 + Top = 512 + end + object Order_SubQ: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 448 + end + object DataSourceQ: TDataSource + DataSet = Order_SubQ + Left = 832 + Top = 448 + end + object ADOQueryQG: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 480 + Top = 309 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryQG + Left = 448 + Top = 320 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 392 + Top = 312 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 456 + Top = 312 + end + object PopupMenu2: TPopupMenu + Left = 128 + Top = 237 + object MenuItem1: TMenuItem + Caption = #22686#34892 + OnClick = MenuItem1Click + end + object MenuItem2: TMenuItem + Caption = #21024#34892 + OnClick = MenuItem2Click + end + object N3: TMenuItem + Caption = #20840#36873 + OnClick = N3Click + end + object N4: TMenuItem + Caption = #20840#24323 + OnClick = N4Click + end + end + object DataSource1: TDataSource + DataSet = CDS_Sub + Left = 112 + Top = 200 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 96 + Top = 232 + end + object DSSel: TDataSource + DataSet = CDS_Sel + Left = 440 + Top = 376 + end + object CDS_Sel: TClientDataSet + Aggregates = <> + Params = <> + Left = 424 + Top = 408 + end + object PopupMenu3: TPopupMenu + Left = 432 + Top = 477 + object MenuItem3: TMenuItem + Caption = #20840#36873 + OnClick = MenuItem3Click + end + object MenuItem4: TMenuItem + Caption = #20840#24323 + OnClick = MenuItem4Click + end + end + object DataSource4: TDataSource + DataSet = CDS_KCSel + Left = 672 + Top = 432 + end + object CDS_KCSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 712 + Top = 432 + end + object cxGridPopupMenu5: TcxGridPopupMenu + Grid = cxGrid5 + PopupMenus = <> + Left = 120 + Top = 465 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 160 + Top = 454 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 160 + Top = 494 + end + object cxGridPopupMenu3: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 160 + Top = 534 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 120 + Top = 502 + end + object PopupMenu4: TPopupMenu + Left = 96 + Top = 461 + object MenuItem7: TMenuItem + Caption = #20840#36873 + OnClick = MenuItem7Click + end + object MenuItem8: TMenuItem + Caption = #20840#24323 + OnClick = MenuItem8Click + end + end +end diff --git a/盛纺贸易管理/U_OrderInPutZPLNew.pas b/盛纺贸易管理/U_OrderInPutZPLNew.pas new file mode 100644 index 0000000..9e05447 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutZPLNew.pas @@ -0,0 +1,3706 @@ +unit U_OrderInPutZPLNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar, cxGridBandedTableView, + cxGridDBBandedTableView, Menus, RM_Common, RM_Class, RM_e_Xls, + RM_GridReport, RM_System, RM_Dataset, cxCheckBox, cxDropDownEdit, + cxGridCustomPopupMenu, cxGridPopupMenu; + +type + TfrmOrderInPutZPLNew = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSourceZ: TDataSource; + Order_SubZ: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + ADOQuery1: TADOQuery; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + DataSource3: TDataSource; + CDS_DB: TClientDataSet; + Order_SubF: TClientDataSet; + DataSourceF: TDataSource; + Order_SubQ: TClientDataSet; + DataSourceQ: TDataSource; + ScrollBox2: TScrollBox; + cxGrid3: TcxGrid; + Tv3: TcxGridDBBandedTableView; + v3Column1: TcxGridDBBandedColumn; + v3Column2: TcxGridDBBandedColumn; + v3Column3: TcxGridDBBandedColumn; + v3Column4: TcxGridDBBandedColumn; + v3Column5: TcxGridDBBandedColumn; + cxGridLevel2: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBBandedTableView; + v2Column1: TcxGridDBBandedColumn; + v2Column2: TcxGridDBBandedColumn; + v2Column3: TcxGridDBBandedColumn; + v2Column4: TcxGridDBBandedColumn; + v2Column5: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBBandedTableView; + v1Column1: TcxGridDBBandedColumn; + v1Column2: TcxGridDBBandedColumn; + v1Column3: TcxGridDBBandedColumn; + v1Column4: TcxGridDBBandedColumn; + v1Column5: TcxGridDBBandedColumn; + v1Column6: TcxGridDBBandedColumn; + cxGrid1Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + TBPrint: TToolButton; + v1Column7: TcxGridDBBandedColumn; + v2Column6: TcxGridDBBandedColumn; + v3Column6: TcxGridDBBandedColumn; + v1Column8: TcxGridDBBandedColumn; + v2Column7: TcxGridDBBandedColumn; + v3Column7: TcxGridDBBandedColumn; + v1Column9: TcxGridDBBandedColumn; + v2Column8: TcxGridDBBandedColumn; + v3Column8: TcxGridDBBandedColumn; + ADOQueryQG: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + RMXLSExport1: TRMXLSExport; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + DataSource1: TDataSource; + CDS_Sub: TClientDataSet; + DSSel: TDataSource; + CDS_Sel: TClientDataSet; + ScrollBox1: TScrollBox; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label12: TLabel; + Label13: TLabel; + Label16: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Label22: TLabel; + Label23: TLabel; + Label24: TLabel; + Label25: TLabel; + Label26: TLabel; + Label27: TLabel; + Label28: TLabel; + Label29: TLabel; + Label30: TLabel; + Label31: TLabel; + Label18: TLabel; + Label32: TLabel; + Label33: TLabel; + Label4: TLabel; + Label5: TLabel; + Label7: TLabel; + Label9: TLabel; + Label6: TLabel; + Label8: TLabel; + OrderNo: TEdit; + OrderDate: TDateTimePicker; + WFBCodeName: TcxButtonEdit; + CustomNoName: TcxButtonEdit; + ArrivalPortName: TcxButtonEdit; + OrdQty: TEdit; + OrdUnit: TComboBox; + ETADate: TDateTimePicker; + ETDDate: TDateTimePicker; + ZGDate: TDateTimePicker; + BegRKDate: TDateTimePicker; + BegSCDate: TDateTimePicker; + Day1: TEdit; + Day2: TEdit; + Day3: TEdit; + cxGrid5: TcxGrid; + TvSub: TcxGridDBTableView; + vSubColumn3: TcxGridDBColumn; + vSubColumn11: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + vSubColumn2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + vSubColumn4: TcxGridDBColumn; + vSubColumn5: TcxGridDBColumn; + vSubColumn6: TcxGridDBColumn; + vSubColumn7: TcxGridDBColumn; + vSubColumn8: TcxGridDBColumn; + vSubColumn9: TcxGridDBColumn; + vSubColumn10: TcxGridDBColumn; + TvSubColumn1: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + cxGrid4: TcxGrid; + TVDB: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + VDBColumn1: TcxGridDBColumn; + VDBColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + Note: TRichEdit; + SCXName: TcxButtonEdit; + WJGName: TcxButtonEdit; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + Label14: TLabel; + OrderCode: TEdit; + vSubColumn12: TcxGridDBColumn; + PopupMenu3: TPopupMenu; + MenuItem3: TMenuItem; + MenuItem4: TMenuItem; + BZ: TcxButtonEdit; + Label35: TLabel; + vSubColumn13: TcxGridDBColumn; + vSubColumn14: TcxGridDBColumn; + vSubColumn15: TcxGridDBColumn; + Panel1: TPanel; + cxGrid6: TcxGrid; + Tvsel: TcxGridDBTableView; + vselColumn1: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridLevel5: TcxGridLevel; + Panel10: TPanel; + Image2: TImage; + Button2: TButton; + Button3: TButton; + cxGrid7: TcxGrid; + TVKCSel: TcxGridDBTableView; + TVKCSelColumn1: TcxGridDBColumn; + v1P_ChnName: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1ShortName: TcxGridDBColumn; + v1Quantity: TcxGridDBColumn; + VKCSelColumn2: TcxGridDBColumn; + VKCSelColumn1: TcxGridDBColumn; + v1UnitName: TcxGridDBColumn; + cxGridLevel6: TcxGridLevel; + DataSource4: TDataSource; + CDS_KCSel: TClientDataSet; + v1Column10: TcxGridDBBandedColumn; + vSubColumn16: TcxGridDBColumn; + v2Column9: TcxGridDBBandedColumn; + v3Column9: TcxGridDBBandedColumn; + cxGridPopupMenu5: TcxGridPopupMenu; + cxGridPopupMenu1: TcxGridPopupMenu; + cxGridPopupMenu2: TcxGridPopupMenu; + cxGridPopupMenu3: TcxGridPopupMenu; + cxGridPopupMenu4: TcxGridPopupMenu; + N3: TMenuItem; + N4: TMenuItem; + Label10: TLabel; + Label11: TLabel; + DD: TEdit; + Label15: TLabel; + ZD: TEdit; + Label17: TLabel; + Label34: TLabel; + PopupMenu4: TPopupMenu; + MenuItem7: TMenuItem; + MenuItem8: TMenuItem; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure CustomNoNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesChange(Sender: TObject); + procedure SCXNamePropertiesChange(Sender: TObject); + procedure WJGNamePropertiesChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure Day1Change(Sender: TObject); + procedure OrdQtyKeyPress(Sender: TObject; var Key: Char); + procedure Day2Change(Sender: TObject); + procedure Day3Change(Sender: TObject); + procedure ETADateChange(Sender: TObject); + procedure BegRKDateChange(Sender: TObject); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure v1Column2PropertiesEditValueChanged(Sender: TObject); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + procedure OrdQtyChange(Sender: TObject); + procedure v3Column4PropertiesEditValueChanged(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure MenuItem1Click(Sender: TObject); + procedure MenuItem2Click(Sender: TObject); + procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxGridDBColumn2PropertiesEditValueChanged(Sender: TObject); + procedure TvSubColumn1PropertiesEditValueChanged(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure vSubColumn6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn10PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesChange(Sender: TObject); + procedure cxGridDBColumn4PropertiesEditValueChanged(Sender: TObject); + procedure vSubColumn4PropertiesEditValueChanged(Sender: TObject); + procedure vSubColumn5PropertiesEditValueChanged(Sender: TObject); + procedure vSubColumn7PropertiesEditValueChanged(Sender: TObject); + procedure vSubColumn9PropertiesEditValueChanged(Sender: TObject); + procedure vSubColumn12PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure MenuItem3Click(Sender: TObject); + procedure MenuItem4Click(Sender: TObject); + procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxButtonEdit1PropertiesChange(Sender: TObject); + procedure vSubColumn13PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TBChkOkClick(Sender: TObject); + procedure TBChkNoClick(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure N3Click(Sender: TObject); + procedure N4Click(Sender: TObject); + procedure DDChange(Sender: TObject); + procedure ZDChange(Sender: TObject); + procedure vSubColumn11PropertiesEditValueChanged(Sender: TObject); + procedure MenuItem7Click(Sender: TObject); + procedure MenuItem8Click(Sender: TObject); + private + MInt,ChkInt,CloInt:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + procedure DelOrderSub(FOrder_Sub:TClientDataSet); + procedure SELYCL(SCDS_Sub:TClientDataSet); + procedure EditYCL(SCDS_Sub:TClientDataSet); + function SaveData10():Boolean; + procedure SaveYCL(SCDS_Sub:TClientDataSet); + procedure YLUpdate(); + procedure UpMainId(); + procedure YCLDataUPdate(); + procedure SELYCLKC(SCDS_Sub:TClientDataSet); + procedure OnlyUpYCLData(); + procedure YCLPBIDUPdate(SOrder_SubZ:TClientDataSet); + procedure SelAll(SCDS_Sub:TClientDataSet;FSEL:Boolean); + { Private declarations } + public + PState,BState,CopyInt:Integer; + FMainId,OrderType:String; + FXS:Integer; + { Public declarations } + end; + +var + frmOrderInPutZPLNew: TfrmOrderInPutZPLNew; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_GetPGJBInList; + +{$R *.dfm} + +procedure TfrmOrderInPutZPLNew.TBCloseClick(Sender: TObject); +begin + WriteCxBandedGrid('1',Tv1,'޷IJ'); + WriteCxBandedGrid('ϸ1',Tv2,'޷IJ'); + WriteCxBandedGrid('1',Tv3,'޷IJ'); + WriteCxGrid('ӱ1',TvSub,'޷IJ'); + WriteCxGrid('1',TVDB,'޷IJ'); + { if PState<>3 then + begin + if Application.MessageBox('ǷҪݣ','ʾ',32+4)=IDYES then + begin + CloInt:=1; + TBSave.Click; + Exit; + end; + end; } + Close; + + +end; +procedure TfrmOrderInPutZPLNew.SelAll(SCDS_Sub:TClientDataSet;FSEL:Boolean); +begin + if SCDS_Sub.IsEmpty then exit; + with SCDS_Sub do + begin + First; + while not eof do + begin + Edit; + FieldByName('SSel').Value:=FSEL; + post; + Next; + end; + end; +end; + +procedure TfrmOrderInPutZPLNew.InitData(); +var + i:Integer; +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); + if PState>0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:='999999'; + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + Open; + end; + // SCreateCDS20(ADOQuery1,Order_Sub); + //SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + OrderDate.DateTime:=StrToDate(FormatDateTime('yyyy-MM-dd',SGetServerDateTime(ADOTemp))); + ETADate.DateTime:=OrderDate.DateTime; + ETDDate.DateTime:=OrderDate.DateTime; + ZGDate.DateTime:=OrderDate.DateTime; + BegRKDate.DateTime:=OrderDate.DateTime; + BegSCDate.DateTime:=OrderDate.DateTime; + ETADate.Checked:=False; + ETDDate.Checked:=False; + ZGDate.Checked:=False; + BegRKDate.Checked:=False; + BegSCDate.Checked:=False; + //OrdUnit.Text:='K'; + OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('K'); + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBOrder_Main where ordertype=''Ʒ'''); + Open; + end; + if ADOTemp.IsEmpty then Exit; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBOrder_Main where ordertype=''Ʒ'''); + sql.Add(' order by FillTime Desc'); + Open; + end; + DD.Text:=ADOTemp.fieldbyname('DD').AsString; + ZD.Text:=ADOTemp.fieldbyname('ZD').AsString; + end; + {if Trim(DParameters1)<>'' then + begin + BegRKDate.Enabled:=False; + Day3.Enabled:=False; + BegSCDate.Enabled:=False; + //Note.Enabled:=False; + cxGrid4.Enabled:=False; + SCXName.Enabled:=False; + WJGName.Enabled:=False; + ScrollBox2.Enabled:=False; + end;} + if PState=4 then + begin + BegRKDate.Enabled:=True; + Day3.Enabled:=True; + BegSCDate.Enabled:=True; + //Note.Enabled:=False; + cxGrid4.Enabled:=True; + { MJKZX.Enabled:=True; + MJKZD.Enabled:=True; + XJKZX.Enabled:=True; + XJKZD.Enabled:=True;} + SCXName.Enabled:=True; + WJGName.Enabled:=True; + ScrollBox2.Enabled:=True; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_DB where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_DB); + SInitCDSData20(ADOQuery1,CDS_DB); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Sub); + SInitCDSData20(ADOQuery1,CDS_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType=''Ҫ'' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubZ); + SInitCDSData20(ADOQuery1,Order_SubZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubF); + SInitCDSData20(ADOQuery1,Order_SubF); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubQ); + SInitCDSData20(ADOQuery1,Order_SubQ); + PanZDY.Visible:=False; + if PState=4 then + begin + PState:=0; + FMainId:=''; + //OrderNo.Text:=''; + WFBCodeName.Text:=''; + WFBCodeName.Hint:=''; + PanZDY.Visible:=False; + with CDS_DB do + begin + First; + while not Eof do + begin + Edit; + FieldByName('DBID').Value:=''; + Post; + Next; + end; + end; + with Order_SubZ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v1Column1.Options.Focusing:=True; + with Order_SubF do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v2Column1.Options.Focusing:=True; + with Order_SubQ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v3Column1.Options.Focusing:=True; + end; + +end; + +procedure TfrmOrderInPutZPLNew.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmOrderInPutZPLNew.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutZPLNew.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutZPLNew.WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; +end; + +procedure TfrmOrderInPutZPLNew.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmOrderInPutZPLNew.FormShow(Sender: TObject); +var + fsj:string; +begin + ReadCxBandedGrid('1',Tv1,'޷IJ'); + ReadCxBandedGrid('ϸ1',Tv2,'޷IJ'); + ReadCxBandedGrid('1',Tv3,'޷IJ'); + ReadCxGrid('ӱ1',TvSub,'޷IJ'); + ReadCxGrid('1',TVDB,'޷IJ'); + {if Trim(DParameters1)='' then + begin + TBSave.Visible:=False; + TBChkOk.Visible:=True; + TBChkNo.Visible:=True; + end else + begin + TBSave.Visible:=True; + TBChkOk.Visible:=False; + TBChkNo.Visible:=False; + end; } + fsj:=FormatDateTime('yyyy-MM-dd',SGetServerDate(ADOTemp)); + if ( (Trim(FMainId)='') or (CopyInt=1)) then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Count(*) As SL from WFBOrder_Main where OrderDate='''+Trim(fsj)+''''); + sql.Add(' and MainId not like ''%FZ'' '); + Open; + end; + if ADOTemp.IsEmpty then + begin + fsj:=fsj+'-1' + end else + fsj:=fsj+'-'+Trim(IntToStr(ADOTemp.fieldbyname('SL').AsInteger+1)); + OrderCode.Text:=Trim(fsj); + end; + InitData(); + ReadCxBandedGrid('',Tv1,'޷IJ'); + ReadCxBandedGrid('ϸ',Tv2,'޷IJ'); + ReadCxBandedGrid('',Tv3,'޷IJ'); +end; + +function TfrmOrderInPutZPLNew.SaveData():Boolean; +var + maxno,FSubId:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('OrderType').Value:='Ʒ'; + SSetsaveSql(ADOCmd,'WFBOrder_Main',ScrollBox1,0); + if PState=2 then + begin + FieldByName('Chker').Value:=Trim(DName); + FieldByName('ChkTime').Value:=SGetServerDateTime(ADOTemp); + if ChkInt=1 then + FieldByName('ChkStatus').Value:='ͨ' + else if ChkInt=2 then + FieldByName('ChkStatus').Value:='˲ͨ'; + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + if PState=1 then + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + end; + Post; + end; + FMainId:=Trim(maxno); + ///ϸ + with CDS_DB do + begin + First; + while not Eof do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'DB','WFB_DB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_DB.fieldbyname('DBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_DB '); + sql.Add(' where DBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('DBId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TVDB,CDS_DB,'WFB_DB',0); + Post; + end; + CDS_DB.Edit; + CDS_DB.FieldByName('DBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ///굥 + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(CDS_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Sub '); + sql.Add(' where SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TvSub,CDS_Sub,'WFBOrder_Sub',0); + Post; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SubId').Value:=Trim(maxno); + //CDS_Sub.Post; + Next; + end; + end; + CDS_Sub.EnableControls; + //Ҫԭ + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + First; + while not Eof do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubZ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('CRId').Value:=Trim(Order_SubZ.fieldbyname('CRID').AsString); + FieldByName('PBType').Value:='Ҫ'; + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV1,Order_SubZ,'WFBYCL_PB',0); + Post; + end; + Order_SubZ.Edit; + Order_SubZ.FieldByName('PBId').Value:=Trim(maxno); + //Order_SubZ.Post; + Next; + end; + end; + end; + //渨ԭ + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + First; + while not Eof do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubF.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubF.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV2,Order_SubF,'WFBYCL_PB',0); + Post; + end; + Order_SubF.Edit; + Order_SubF.FieldByName('PBId').Value:=Trim(maxno); + //Order_SubF.Post; + Next; + end; + end; + end; + //ԭ + if not Order_SubQ.IsEmpty then + begin + with Order_SubQ do + begin + First; + while not Eof do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubQ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubQ.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV3,Order_SubQ,'WFBYCL_PB',0); + Post; + end; + Order_SubQ.Edit; + Order_SubQ.FieldByName('PBId').Value:=Trim(maxno); + //Order_SubQ.Post; + Next; + end; + end; + end; + + ///ӱ + {with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'OS','Order_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from Order_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Order_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; } + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +function TfrmOrderInPutZPLNew.SaveData10():Boolean; +var + maxno,FSubId:String; + +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('OrderType').Value:='Ʒ'; + SSetsaveSql(ADOCmd,'WFBOrder_Main',ScrollBox1,0); + if PState=2 then + begin + FieldByName('Chker').Value:=Trim(DName); + FieldByName('ChkTime').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + if PState=1 then + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + end; + Post; + end; + FMainId:=Trim(maxno); + ///ϸ + with CDS_DB do + begin + First; + while not Eof do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'DB','WFB_DB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_DB.fieldbyname('DBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_DB '); + sql.Add(' where DBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('DBId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TVDB,CDS_DB,'WFB_DB',0); + Post; + end; + CDS_DB.Edit; + CDS_DB.FieldByName('DBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ///굥 + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(CDS_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Sub '); + sql.Add(' where SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TvSub,CDS_Sub,'WFBOrder_Sub',0); + Post; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('SubId').Value:=Trim(maxno); + //CDS_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderInPutZPLNew.TBSaveClick(Sender: TObject); +var + FFS:string; + wz:Integer; +begin + OrderDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('SWFBCodeName',null,[]) then + begin + Application.MessageBox('ƷŲΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBCodeName.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Hint)='' then + begin + Application.MessageBox('δ壡','ʾ',0); + Exit; + end; } + {if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + Exit; + end; } + if CDS_DB.Locate('BSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if CDS_DB.Locate('JSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_SubZ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubF.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubQ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if SaveData() then + begin + wz:=Pos('F',FMainId); + FFS:=Copy(FMainId,wz,4); + if ((CopyInt=1) or (FFS='FZ')) then + begin + UpMainId(); + end; + CopyInt:=0; + if ChkInt>0 then + begin + Application.MessageBox('ɹ!','ʾ',0); + end else + Application.MessageBox('ɹ','ʾ',0); + if CloInt=1 then ModalResult:=1; + Exit; + end; +end; +procedure TfrmOrderInPutZPLNew.SaveYCL(SCDS_Sub:TClientDataSet); +var + maxno,maxnosub:string; +begin + try + ADOCmd.Connection.BeginTrans; + with frmGetPGJBInList.ClientDataSet2 do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PB where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + if MInt=1 then + begin + FieldByName('PBType').Value:='Ҫ'; + end else + if MInt=2 then + begin + FieldByName('PBType').Value:=''; + end else + if MInt=3 then + begin + FieldByName('PBType').Value:=''; + end; + FieldByName('YCLCode').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YCLSpec').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YLKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('QuantityKC').AsString); + FieldByName('YLUnit').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRUnit').AsString); + FieldByName('CRID').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRID').AsString); + FieldByName('YCLYJKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YJKC').AsString); + Post; + end; + with SCDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + Post; + end; + with Self.CDS_Sel do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxnosub,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sel.fieldbyname('SubId').AsString); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxnosub); + Post; + end; + Next; + end; + end; + Next; + end; + end; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +procedure TfrmOrderInPutZPLNew.SELYCL(SCDS_Sub:TClientDataSet); +var + maxno,maxnosub:string; +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + try ADOCmd.Connection.BeginTrans; + with ClientDataSet2 do + begin + First; + while not Eof do + begin + with SCDS_Sub do + begin + Append; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + Post; + end; + + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PB where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + if MInt=1 then + begin + FieldByName('PBType').Value:='Ҫ'; + end else + if MInt=2 then + begin + FieldByName('PBType').Value:=''; + end else + if MInt=3 then + begin + FieldByName('PBType').Value:=''; + end; + FieldByName('YCLCode').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLName').AsString); + FieldByName('YCLSpec').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YCLSpec').AsString); + FieldByName('YLKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('QuantityKC').AsString); + FieldByName('YLUnit').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRUnit').AsString); + FieldByName('CRID').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('CRID').AsString); + FieldByName('YCLYJKC').Value:=Trim(frmGetPGJBInList.ClientDataSet2.fieldbyname('YJKC').AsString); + Post; + end; + with SCDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + Post; + end; + with Self.CDS_Sel do + begin + First; + while not Eof do + begin + if Self.CDS_Sel.FieldByName('SSel').AsBoolean=True then + begin + if GetLSNo(ADOCmd,maxnosub,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sel.fieldbyname('SubId').AsString); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxnosub); + Post; + end; + end; + Next; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + Exit; + end; + //Self.SaveYCL(SCDS_Sub); + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.EditYCL(SCDS_Sub:TClientDataSet); +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + //First; + // while not Eof do + //begin + with SCDS_Sub do + begin + Edit; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); + //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + if SCDS_Sub.FieldByName('YLQty').Value-ClientDataSet2.fieldbyname('YJKC').Value>=0 then + SCDS_Sub.FieldByName('BZ').Value:=SCDS_Sub.FieldByName('YLQty').Value- + ClientDataSet2.fieldbyname('YJKC').Value + else + SCDS_Sub.FieldByName('BZ').Value:=null; + //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); + //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); + //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); + //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); + //Post; + end; + // Next; + //end; + end; + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; +procedure TfrmOrderInPutZPLNew.ToolButton1Click(Sender: TObject); + +begin + if CDS_Sub.IsEmpty=True then + begin + Application.MessageBox('굥Ϊգ','ʾ',0); + Exit; + end; + OrderDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBCodeName.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Hint)='' then + begin + Application.MessageBox('δ壡','ʾ',0); + Exit; + end; } + SaveData10(); + Panel1.Visible:=True; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + {if MInt=1 then + begin + SELYCL(Order_SubZ); + end else + if MInt=2 then + begin + SELYCL(Order_SubF); + end else + if MInt=3 then + begin + SELYCL(Order_SubQ); } + end; + SCreateCDS20(ADOQuery1,CDS_Sel); + SInitCDSData20(ADOQuery1,CDS_Sel); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add(' exec P_YCLKC_ListKCDD :KCType '); + if MInt=1 then + begin + Parameters.ParamByName('KCType').Value:='Ҫ'; + end else + if MInt=2 then + begin + Parameters.ParamByName('KCType').Value:=''; + end else + if MInt=3 then + begin + Parameters.ParamByName('KCType').Value:=''; + end; + open; + end; + SCreateCDS20(ADOQuery1,CDS_KCSel); + SInitCDSData20(ADOQuery1,CDS_KCSel); +end; + +procedure TfrmOrderInPutZPLNew.ToolButton2Click(Sender: TObject); +begin + if MInt=1 then + begin + DelOrderSub(Order_SubZ); + end else + if MInt=2 then + begin + DelOrderSub(Order_SubF); + end else + if MInt=3 then + begin + DelOrderSub(Order_SubQ); + end; +end; +procedure TfrmOrderInPutZPLNew.DelOrderSub(FOrder_Sub:TClientDataSet); +begin + if FOrder_Sub.IsEmpty then Exit; + if Trim(FOrder_Sub.fieldbyname('PBID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PB where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); + sql.Add('delete WFBYCL_PBSub where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + end; + FOrder_Sub.Delete; +end; + +procedure TfrmOrderInPutZPLNew.CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('CustomNoName'); + flagname:='ͻ'; + if ShowModal=1 then + begin + Self.FXS:=99; + CustomNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.CustomNoNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(CustomNoName,'CustomNoName'); +end; + +procedure TfrmOrderInPutZPLNew.ArrivalPortNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('ArrivalPort'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + ArrivalPortName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + ArrivalPortName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('SCXName'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + SCXName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + SCXName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WJGName'); + flagname:='ṹ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WJGName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WJGName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(WFBCodeName.Name); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBCodeName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.WFBCodeNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBCodeName,Trim(WFBCodeName.Name)); +end; + +procedure TfrmOrderInPutZPLNew.ArrivalPortNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(ArrivalPortName,'ArrivalPort'); +end; + +procedure TfrmOrderInPutZPLNew.SCXNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(SCXName,Trim(SCXName.Name)); +end; + +procedure TfrmOrderInPutZPLNew.WJGNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WJGName,Trim(WJGName.Name)); +end; + +procedure TfrmOrderInPutZPLNew.N1Click(Sender: TObject); +begin + + with CDS_DB do + begin + Append; + FieldByName('DBUnit').Value:='/'; + Post; + end; +end; + +procedure TfrmOrderInPutZPLNew.N2Click(Sender: TObject); +begin + if CDS_DB.IsEmpty then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_DB where DBID='''+Trim(CDS_DB.fieldbyname('DBID').AsString)+''''); + ExecSQL; + end; + CDS_DB.Delete; +end; + +procedure TfrmOrderInPutZPLNew.Day1Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day1.Text)='' then DayL:='0' + else DayL:=Trim(Day1.Text); + ETDDate.DateTime:=ETADate.Date-strtoint(DayL); +end; + +procedure TfrmOrderInPutZPLNew.OrdQtyKeyPress(Sender: TObject; var Key: Char); +begin + if not (Key in['0'..'9','.',#8,#13]) then + begin + key:=#0; + end; +end; + +procedure TfrmOrderInPutZPLNew.Day2Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day2.Text)='' then DayL:='0' + else DayL:=Trim(Day2.Text); + ZGDate.DateTime:=ETDDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutZPLNew.Day3Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day3.Text)='' then DayL:='0' + else DayL:=Trim(Day3.Text); + BegSCDate.DateTime:=BegRKDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutZPLNew.ETADateChange(Sender: TObject); +begin + if Trim(Day1.Text)<>'' then + begin + ETDDate.DateTime:=ETADate.Date-strtoint(Day1.Text); + end; + if Trim(Day2.Text)<>'' then + begin + ZGDate.DateTime:=ETDDate.Date-strtoint(Day2.Text); + end; +end; + +procedure TfrmOrderInPutZPLNew.BegRKDateChange(Sender: TObject); +begin + if Trim(Day3.Text)<>'' then + begin + BegSCDate.DateTime:=BegRKDate.Date-strtoint(Day3.Text); + end; +end; + +procedure TfrmOrderInPutZPLNew.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=1; + Tv1.Bands[0].Caption:='Ҫԭϡ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlue; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutZPLNew.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=2; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭϡ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlue; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutZPLNew.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=3; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmOrderInPutZPLNew.v1Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select A.* from WFBYCL_PBSub A '); + //SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.PBID='''+Trim(Order_SubZ.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*mvalue/100*(1+YLSH/100); + Next; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLPB').Value:=mvalue; + Post; + end; + end; +end; +procedure TfrmOrderInPutZPLNew.OnlyUpYCLData(); +var + mvalue,YLSH,DHSL,YLQty:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)<>'' then + mvalue:=Order_SubZ.fieldbyname('YLPB').Value + else + mvalue:=0; //KO + + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select A.* from WFBYCL_PBSub A '); + //SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.PBID='''+Trim(Order_SubZ.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*mvalue/100*(1+YLSH/100); + Next; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + //FieldByName('YLPB').Value:=mvalue; + Post; + end; + end; +end; + +procedure TfrmOrderInPutZPLNew.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where PBID='''+Trim(Order_SubZ.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*YLPB/100*(1+mvalue/100); + Next; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSH').Value:=mvalue; + Post; + end; + end; +end; + +procedure TfrmOrderInPutZPLNew.v2Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSHQ,DHSL,YLQty,YLPB:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where PBID='''+Trim(Order_SubF.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*(mvalue*1.00/1000); + Next; + end; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSHQ').Value:=mvalue; + Post; + end; + end; +end; + +procedure TfrmOrderInPutZPLNew.OrdQtyChange(Sender: TObject); +begin + YLUpdate(); +end; +procedure TfrmOrderInPutZPLNew.YLUpdate(); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + YLQty:=0; + with Order_SubZ do + begin + if Order_SubZ.IsEmpty=False then + begin + First; + while not Eof do + begin + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where PBID='''+Trim(Order_SubZ.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*YLPB/100*(1+YLSH/100); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + YLQty:=YLQty+DHSL*YLPB/100*(1+YLSH/100); + end; + Next; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + end; + Next; + end; + end; + + end; + if Order_SubF.IsEmpty=False then + begin + with Order_SubF do + begin + First; + while not Eof do + begin + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where PBID='''+Trim(Order_SubF.fieldbyname('PBID').AsString)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOTemp.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubF.fieldbyname('YLSHQ').AsString)='' then + begin + YLSHQ:=0; + end else + YLSHQ:=StrToFloat(Order_SubF.fieldbyname('YLSHQ').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*(YLSHQ*1.00/1000); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + if Trim(Order_SubF.fieldbyname('YLSHQ').AsString)='' then + begin + YLSHQ:=0; + end else + YLSHQ:=StrToFloat(Order_SubF.fieldbyname('YLSHQ').AsString); + YLQty:=YLQty+DHSL*(YLSHQ*1.00/1000); + end; + Next; + end; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + end; + Next; + end; + end; + end; +end; +procedure TfrmOrderInPutZPLNew.v3Column4PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:Double; +begin + mvalue:=TcxTextEdit(Sender).EditingValue; + with Order_SubQ do + begin + Edit; + FieldByName('YLQty').Value:=mvalue; + if mvalue-fieldbyname('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=mvalue-fieldbyname('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPutZPLNew.TBPrintClick(Sender: TObject); +var + fPrintFile:String; +begin + with ADOQueryQG do + begin + Close; + sql.Clear; + sql.Add(' exec P_Print_SGD :OrderNo'); + Parameters.ParamByName('OrderNo').Value:=Trim(OrderNo.Text); + Open; + end; + if ADOQueryQG.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\빺.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RMVariables['dyr']:=Trim(DName); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\빺.rmf'),'ʾ',0); + end; +end; + +procedure TfrmOrderInPutZPLNew.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubZ); +end; + +procedure TfrmOrderInPutZPLNew.v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubF); +end; + +procedure TfrmOrderInPutZPLNew.v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubQ); +end; + +procedure TfrmOrderInPutZPLNew.MenuItem1Click(Sender: TObject); +var + i:Integer; +begin + CopyAddRow(TvSub,CDS_Sub); + i:=CDS_Sub.RecordCount; + with CDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + FieldByName('SWFBColor').Value:=''; + FieldByName('SWFBCode').Value:=''; + FieldByName('SWFBCodeName').Value:=''; + FieldByName('SWFBBZQty1').Value:=0; + FieldByName('SOrdQty').Value:=0; + FieldByName('XHNO').Value:=IntToStr(i); + Post; + end; + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); +end; + +procedure TfrmOrderInPutZPLNew.MenuItem2Click(Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.fieldbyname('SubID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + with ADOCMD do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + sql.Add('delete WFBOrder_Sub where SubID='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB where MainId='''+Trim(FMainId)+''' '); + sql.Add(' and not exists(select * from WFBYCL_PBSub A where A.PBId=WFBYCL_PB.PBID and A.MainId='''+Trim(FMainId)+''' )'); + open; + end; + with ADOTemp do + begin + ADOTemp.First; + while not ADOTemp.Eof do + begin + if Trim(ADOTemp.fieldbyname('PBID').AsString)<>'' then + begin + if Order_SubZ.IsEmpty=False then + begin + if Order_SubZ.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]) then + Order_SubZ.Delete; + end; + if Order_SubF.IsEmpty=False then + begin + if Order_SubF.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]) then + Order_SubF.Delete; + end; + if Order_SubQ.IsEmpty=False then + begin + if Order_SubQ.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]) then + Order_SubQ.Delete; + end; + end; + ADOTemp.Next; + end; + end; + with ADOCMD do + begin + Close; + SQL.Clear; + sql.Add(' delete WFBYCL_PB where not exists(select * from WFBYCL_PBSub A where A.PBId=WFBYCL_PB.PBID )'); + SQL.Add(' and MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + + end else + begin + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('delete WFBOrder_Sub where SubID='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + end; + end; + CDS_Sub.Delete; + //YLUpdate(); + if CDS_Sub.isempty=False then + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); + //if ((Order_SubZ.IsEmpty) and (Order_SubF.IsEmpty) and (Order_SubQ.IsEmpty)) then Exit; + YLUpdate(); +end; + +procedure TfrmOrderInPutZPLNew.cxGridDBColumn3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('SWFBColor').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBHX'; + flagname:=''; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('SWFBHW').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.cxGridDBColumn2PropertiesEditValueChanged( + Sender: TObject); +var + FOrdQty,FKZ:String; +begin + FKZ:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FKZ)='' then + FieldByName('SWFBKZ').Value:='0' + else + FieldByName('SWFBKZ').Value:=FKZ; + Post; + end; + YCLDataUPdate(); +end; +procedure TfrmOrderInPutZPLNew.YCLDataUPdate(); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ,FQty1,FQty2,FQty3,FFK1,FFK2,DDZDHL:Double; + FOrdQty,FKZ,ZPType:String; +begin + if Trim(CDS_Sub.FieldByName('SWFBFK1').AsString)='' then + FFK1:=0 + else + FFK1:=CDS_Sub.FieldByName('SWFBFK1').Value; + if Trim(CDS_Sub.FieldByName('SWFBFK2').AsString)='' then + FFK2:=0 + else + FFK2:=CDS_Sub.FieldByName('SWFBFK2').Value; + if Trim(CDS_Sub.FieldByName('SWFBBZQty1').AsString)='' then + FQty1:=1 + else + FQty1:=CDS_Sub.FieldByName('SWFBBZQty1').Value; + if Trim(CDS_Sub.FieldByName('SWFBBZQty2').AsString)='' then + FQty2:=1 + else + FQty2:=CDS_Sub.FieldByName('SWFBBZQty2').Value; + if Trim(CDS_Sub.FieldByName('SWFBBZQty3').AsString)='' then + FQty3:=1 + else + FQty3:=CDS_Sub.FieldByName('SWFBBZQty3').Value; + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + FKZ:='0' + else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + ZPType:=Trim(CDS_Sub.fieldbyname('SubType').AsString); + if Trim(ZPType)='' then + begin + if Trim(Self.DD.Text)<>'' then + begin + DDZDHL:=StrToFloat(DD.Text); + end else + DDZDHL:=0; + end else + if Trim(ZPType)='۵' then + begin + if Trim(Self.ZD.Text)<>'' then + begin + DDZDHL:=StrToFloat(ZD.Text); + end else + DDZDHL:=0; + + end else + DDZDHL:=0; + DDZDHL:=(100+DDZDHL)*1.00/100; + + with CDS_Sub do + begin + Edit; + FieldByName('SOrdQty').Value:=(FFK1*1.00/100)*(FFK2*1.00/100)*(FQty1*FQty2*FQty3)*Strtofloat(FKZ)/1000*DDZDHL; + Post; + end; + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select distinct(A.PBID) PBID from WFBYCL_PBSub A '); + SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and B.PBType=''Ҫ'''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBYCL_PBSub where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + Open; + end; + Order_SubZ.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + with ADOQuery1 do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOQuery1.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*YLPB/100*(1+YLSH/100); + Next; + end; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + YLQty:=0; + Next; + end; + end; + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select distinct(A.PBID) PBID from WFBYCL_PBSub A '); + SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and B.PBType='''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBYCL_PBSub where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + Open; + end; + Order_SubF.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]); + if Trim(Order_SubF.fieldbyname('YLSHQ').AsString)='' then + begin + YLSHQ:=0; + end else + YLSHQ:=StrToFloat(Order_SubF.fieldbyname('YLSHQ').AsString); + with ADOQuery1 do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOQuery1.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + YLQty:=YLQty+StrToFloat(FOrdQty)*(YLSHQ*1.00/1000); + Next; + end; + end; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + YLQty:=0; + Next; + end; + end; +end; + +procedure TfrmOrderInPutZPLNew.TvSubColumn1PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + FOrdQty:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FOrdQty)='' then + FieldByName('SOrdQty').Value:='0' + else + FieldByName('SOrdQty').Value:=FOrdQty; + Post; + end; + + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select distinct(A.PBID) PBID from WFBYCL_PBSub A '); + SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and B.PBType=''Ҫ'''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBYCL_PBSub where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + Open; + end; + Order_SubZ.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]); + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + with ADOQuery1 do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOQuery1.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + YLQty:=YLQty+StrToFloat(FOrdQty)*YLPB/100*(1+YLSH/100); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + YLQty:=YLQty+DHSL*YLPB/100*(1+YLSH/100); + end; + Next; + end; + end; + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + YLQty:=0; + Next; + end; + end; + YLQty:=0; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add(' select distinct(A.PBID) PBID from WFBYCL_PBSub A '); + SQL.Add(' inner join WFBYCL_PB B on B.PBID=A.PBID '); + sql.Add(' where A.SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and B.PBType='''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBYCL_PBSub where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + Open; + end; + Order_SubF.Locate('PBID',Trim(ADOTemp.fieldbyname('PBID').AsString),[]); + if Trim(Order_SubF.fieldbyname('YLSHQ').AsString)='' then + begin + YLSHQ:=0; + end else + YLSHQ:=StrToFloat(Order_SubF.fieldbyname('YLSHQ').AsString); + with ADOQuery1 do + begin + First; + while not Eof do + begin + CDS_Sub.Locate('SubId',Trim(ADOQuery1.fieldbyname('SubId').AsString),[]); + if Trim(CDS_Sub.fieldbyname('SOrdQty').AsString)='' then + FOrdQty:='0' + else + FOrdQty:=Trim(CDS_Sub.fieldbyname('SOrdQty').AsString); + if Trim(OrdUnit.Text)='K' then + begin + YLQty:=YLQty+StrToFloat(FOrdQty)*(YLSHQ*1.00/1000); + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString)='' then + begin + FKZ:='0'; + end else + FKZ:=Trim(CDS_Sub.fieldbyname('SWFBKZ').AsString); + DHSL:=StrToFloat(FOrdQty)*strtofloat(FKZ)/1000; + YLQty:=YLQty+DHSL*(YLSHQ*1.00/1000); + end; + Next; + end; + end; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=YLQty; + if YLQty-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=YLQty-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; + YLQty:=0; + Next; + end; + end; + //OrdQty:= + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); +end; + +procedure TfrmOrderInPutZPLNew.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel1).perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmOrderInPutZPLNew.Image2Click(Sender: TObject); +begin + Panel1.Visible:=False; +end; + +procedure TfrmOrderInPutZPLNew.Button3Click(Sender: TObject); +begin + Panel1.Visible:=False; +end; + +procedure TfrmOrderInPutZPLNew.Button2Click(Sender: TObject); +begin + if CDS_Sel.Locate('ssel',True,[])=False then + begin + Application.MessageBox('ûѡݣ','ʾ',0); + Exit; + end; + if MInt=1 then + begin + SELYCLKC(Order_SubZ); + + end else + if MInt=2 then + begin + SELYCLKC(Order_SubF); + end else + if MInt=3 then + begin + SELYCLKC(Order_SubQ); + end; + Panel1.Visible:=False; +end; +procedure TfrmOrderInPutZPLNew.SELYCLKC(SCDS_Sub:TClientDataSet); +var + maxno,maxnosub:string; + YLPB,YLSH:Double; +begin + + try ADOCmd.Connection.BeginTrans; + with CDS_KCSel do + begin + First; + while not Eof do + begin + if CDS_KCSel.FieldByName('SSel').AsBoolean=True then + begin + if MInt=1 then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBYCL_PB where YCLCode='''+Trim(CDS_KCSel.fieldbyname('YCLCode').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBYCL_PB where YCLCode='''+Trim(CDS_KCSel.fieldbyname('YCLCode').AsString)+''''); + SQL.Add(' and YLPB>0 order by FillTime desc'); + Open; + end; + if Trim(ADOTemp.fieldbyname('YLPB').AsString)<>'' then + YLPB:=ADOTemp.fieldbyname('YLPB').Value + else + YLPB:=0; + if Trim(ADOTemp.fieldbyname('YLSH').AsString)<>'' then + YLSH:=ADOTemp.fieldbyname('YLSH').Value + else + YLSH:=0; + end else + begin + YLPB:=0; + YLSH:=0; + end; + end; + + with SCDS_Sub do + begin + Append; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(CDS_KCSel.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(CDS_KCSel.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(CDS_KCSel.fieldbyname('YCLSpec').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(CDS_KCSel.fieldbyname('KCQty').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(CDS_KCSel.fieldbyname('KCUint').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(CDS_KCSel.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(CDS_KCSel.fieldbyname('YJKC').AsString); + if MInt=1 then + begin + SCDS_Sub.FieldByName('YLPB').Value:=YLPB; + SCDS_Sub.FieldByName('YLSH').Value:=YLSH; + end; + Post; + end; + // + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PB where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + if MInt=1 then + begin + FieldByName('PBType').Value:='Ҫ'; + end else + if MInt=2 then + begin + FieldByName('PBType').Value:=''; + end else + if MInt=3 then + begin + FieldByName('PBType').Value:=''; + end; + FieldByName('YCLCode').Value:=Trim(CDS_KCSel.fieldbyname('YCLCode').AsString); + FieldByName('YCLName').Value:=Trim(CDS_KCSel.fieldbyname('YCLName').AsString); + FieldByName('YCLSpec').Value:=Trim(CDS_KCSel.fieldbyname('YCLSpec').AsString); + FieldByName('YLKC').Value:=Trim(CDS_KCSel.fieldbyname('KCQty').AsString); + FieldByName('YLUnit').Value:=Trim(CDS_KCSel.fieldbyname('KCUint').AsString); + FieldByName('CRID').Value:=Trim(CDS_KCSel.fieldbyname('CRID').AsString); + FieldByName('YCLYJKC').Value:=Trim(CDS_KCSel.fieldbyname('YJKC').AsString); + Post; + end; + with SCDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + Post; + end; + // + + //ӱ + with Self.CDS_Sel do + begin + First; + while not Eof do + begin + if Self.CDS_Sel.FieldByName('SSel').AsBoolean=True then + begin + if GetLSNo(ADOCmd,maxnosub,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sel.fieldbyname('SubId').AsString); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PSId').Value:=Trim(maxnosub); + Post; + end; + end; + Next; + end; + end; + if MInt=1 then + OnlyUpYCLData(); + //ӱ + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + Exit; + end; +end; + +procedure TfrmOrderInPutZPLNew.FormClose(Sender: TObject; + var Action: TCloseAction); +var + maxno,FFS:string; + wz:Integer; +begin + WriteCxBandedGrid('1',Tv1,'޷IJ'); + WriteCxBandedGrid('ϸ1',Tv2,'޷IJ'); + WriteCxBandedGrid('1',Tv3,'޷IJ'); + WriteCxGrid('ӱ1',TvSub,'޷IJ'); + WriteCxGrid('1',TVDB,'޷IJ'); + {if CopyInt=1 then + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFB_DB where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFBYCL_PB where MainId='''+Trim(FMainId)+''''); + sql.Add('delete WFBYCL_PBSub where MainId='''+Trim(FMainId)+''''); + ExecSQL; + end; + end; + wz:=Pos('F',FMainId); + FFS:=Copy(FMainId,wz,4); + if ((CopyInt=1) or (FFS='FZ')) then + begin + UpMainId(); + end; } +end; +procedure TfrmOrderInPutZPLNew.UpMainId(); +var + maxno:string; +begin + try + ADOCmd.Connection.BeginTrans; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PBSub where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PBSub Set PSID='''+Trim(maxno)+''''); + SQL.Add(' where PSID='''+Trim(ADOTemp.fieldbyname('PSID').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'PB','WFBYCL_PB',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PB Set PBID='''+Trim(maxno)+''''); + SQL.Add(' where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + sql.Add('UPdate WFBYCL_PBSub Set PBID='''+Trim(maxno)+''''); + SQL.Add(' where PBID='''+Trim(ADOTemp.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOCmd,maxno,'','WFBOrder_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set SubID='''+Trim(maxno)+''''); + SQL.Add(' where SubID='''+Trim(ADOTemp.fieldbyname('SubID').AsString)+''''); + sql.Add('UPdate WFBYCL_PBSub Set SubID='''+Trim(maxno)+''''); + SQL.Add(' where SubID='''+Trim(ADOTemp.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + Next; + end; + end; + if GetLSNo(ADOCmd,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Main Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('Update WFBOrder_Sub Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('Update WFB_DB Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('UPdate WFBYCL_PB Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + sql.Add('UPdate WFBYCL_PBSub Set MainID='''+Trim(maxno)+''''); + SQL.Add(' where MainID='''+Trim(FMainId)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + FMainId:=Trim(maxno); + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderInPutZPLNew.vSubColumn6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitD'); + flagname:='װ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBBZUnit1').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn8PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitZ'); + flagname:='аװ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBBZUnit2').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn10PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitD'); + flagname:='Сװ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBBZUnit3').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + {try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('BZ'); + flagname:='۵λ'; + if ShowModal=1 then + begin + Self.FXS:=99; + BZ.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + BZ.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } +end; + +procedure TfrmOrderInPutZPLNew.BZPropertiesChange(Sender: TObject); +begin + { if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(BZ,'BZ'); } +end; + +procedure TfrmOrderInPutZPLNew.cxGridDBColumn4PropertiesEditValueChanged( + Sender: TObject); +var + FStr:String; +begin + FStr:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FStr)='' then + FieldByName('SWFBFK1').Value:='0' + else + FieldByName('SWFBFK1').Value:=FStr; + Post; + end; + YCLDataUPdate(); +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn4PropertiesEditValueChanged( + Sender: TObject); +var + FStr:String; +begin + FStr:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FStr)='' then + FieldByName('SWFBFK2').Value:='0' + else + FieldByName('SWFBFK2').Value:=FStr; + Post; + end; + YCLDataUPdate(); +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn5PropertiesEditValueChanged( + Sender: TObject); +var + FStr:String; +begin + FStr:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FStr)='' then + FieldByName('SWFBBZQty1').Value:='1' + else + FieldByName('SWFBBZQty1').Value:=FStr; + Post; + end; + YCLDataUPdate(); +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn7PropertiesEditValueChanged( + Sender: TObject); +var + FStr:String; +begin + FStr:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FStr)='' then + FieldByName('SWFBBZQty2').Value:='1' + else + FieldByName('SWFBBZQty2').Value:=FStr; + Post; + end; + YCLDataUPdate(); +end; + + +procedure TfrmOrderInPutZPLNew.vSubColumn9PropertiesEditValueChanged( + Sender: TObject); +var + FStr:String; +begin + FStr:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FStr)='' then + FieldByName('SWFBBZQty3').Value:='1' + else + FieldByName('SWFBBZQty3').Value:=FStr; + Post; + end; + YCLDataUPdate(); +end; + + +procedure TfrmOrderInPutZPLNew.vSubColumn12PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(WFBCodeName.Name); + flagname:=''; + if ShowModal=1 then + begin + CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBCodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CDS_Sub.FieldByName('SWFBCode').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBOrder_Sub where SWFBCode='''+Trim(CDS_Sub.fieldbyname('SWFBCode').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty then Exit; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select Top 1* from WFBOrder_Sub where SWFBCode='''+Trim(CDS_Sub.fieldbyname('SWFBCode').AsString)+''''); + sql.Add(' order by SFillTIme Desc'); + Open; + end; + with CDS_Sub do + begin + Edit; + FieldByName('SWFBColor').Value:=ADOTemp.fieldbyname('SWFBColor').Value; + FieldByName('SWFBHW').Value:=ADOTemp.fieldbyname('SWFBHW').Value; + FieldByName('SWFBKZ').Value:=ADOTemp.fieldbyname('SWFBKZ').Value; + FieldByName('SWFBFK1').Value:=ADOTemp.fieldbyname('SWFBFK1').Value; + FieldByName('SWFBFK2').Value:=ADOTemp.fieldbyname('SWFBFK2').Value; + FieldByName('SOrdPrice').Value:=ADOTemp.fieldbyname('SOrdPrice').Value; + FieldByName('SWFBBZUnit1').Value:=ADOTemp.fieldbyname('SWFBBZUnit1').Value; + FieldByName('SWFBBZQty2').Value:=ADOTemp.fieldbyname('SWFBBZQty2').Value; + FieldByName('SWFBBZUnit2').Value:=ADOTemp.fieldbyname('SWFBBZUnit2').Value; + FieldByName('SWFBBZQty3').Value:=ADOTemp.fieldbyname('SWFBBZQty3').Value; + FieldByName('SWFBBZUnit3').Value:=ADOTemp.fieldbyname('SWFBBZUnit3').Value; + FieldByName('WKMS').Value:=ADOTemp.fieldbyname('WKMS').Value; + FieldByName('KZSmal').Value:=ADOTemp.fieldbyname('KZSmal').Value; + FieldByName('KZBig').Value:=ADOTemp.fieldbyname('KZBig').Value; + //Post; + end; +end; + +procedure TfrmOrderInPutZPLNew.MenuItem3Click(Sender: TObject); +begin + CDS_Sel.DisableControls; + with CDS_Sel do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + Next; + end; + end; + CDS_Sel.EnableControls; +end; + +procedure TfrmOrderInPutZPLNew.MenuItem4Click(Sender: TObject); +begin + CDS_Sel.DisableControls; + with CDS_Sel do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=False; + Post; + Next; + end; + end; + CDS_Sel.EnableControls; +end; + +procedure TfrmOrderInPutZPLNew.cxButtonEdit1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('JJDW'); + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.FXS:=99; + BZ.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + // BZ.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.cxButtonEdit1PropertiesChange( + Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(BZ,'JJDW'); +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn13PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WKMS'); + flagname:='Ŀ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('WKMS').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPLNew.TBChkOkClick(Sender: TObject); +begin + ChkInt:=1; + TBSave.Click; +end; + +procedure TfrmOrderInPutZPLNew.TBChkNoClick(Sender: TObject); +begin + ChkInt:=2; + TBSave.Click; +end; + +procedure TfrmOrderInPutZPLNew.Button4Click(Sender: TObject); +begin + if CDS_Sub.IsEmpty then exit; + if( (Order_SubZ.IsEmpty) and (Order_SubF.IsEmpty) and (Order_SubQ.IsEmpty) )then Exit; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + SaveData10(); + if CDS_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('굥δѡݣܸ£','ʾ',0); + Exit; + end; + if Order_SubZ.Locate('SSel',True,[])=False then + begin + if Order_SubF.Locate('SSel',True,[])=False then + if Order_SubZ.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ԭϱδѡݣܸ£','ʾ',0); + Exit; + end; + end; + try + ADOCMD.Connection.BeginTrans; + YCLPBIDUPdate(Order_SubZ); + YCLPBIDUPdate(Order_SubF); + YCLPBIDUPdate(Order_SubQ); + YLUpdate(); + ADOCMD.Connection.CommitTrans; + Application.MessageBox('³ɹ','ʾ',0); + Exit; + except + ADOCMD.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +procedure TfrmOrderInPutZPLNew.YCLPBIDUPdate(SOrder_SubZ:TClientDataSet); +var + maxno:String; +begin + with CDS_Sub do + begin + First; + while not Eof do + begin + if CDS_Sub.FieldByName('SSel').AsBoolean=True then + begin + with SOrder_SubZ do + begin + First; + while not Eof do + begin + if SOrder_SubZ.FieldByName('SSel').AsBoolean=True then + begin + with ADOCMD do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + sql.Add(' and PBID='''+Trim(SOrder_SubZ.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + if GetLSNo(ADOCMD,maxno,'PS','WFBYCL_PBSub',4,1)=False then + begin + ADOCMD.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOCMD do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where 1<>1'); + Open; + end; + with ADOCMD do + begin + Append; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(CDS_Sub.fieldbyname('SubId').AsString); + FieldByName('PBID').Value:=Trim(SOrder_SubZ.fieldbyname('PBID').AsString); + FieldByName('PSID').Value:=Trim(maxno); + Post; + end; + end; + Next; + end; + end; + end; + Next; + end; + end; +end; + +procedure TfrmOrderInPutZPLNew.N3Click(Sender: TObject); +begin + SelAll(CDS_Sub,True); +end; + +procedure TfrmOrderInPutZPLNew.N4Click(Sender: TObject); +begin + SelAll(CDS_Sub,False); +end; + +procedure TfrmOrderInPutZPLNew.DDChange(Sender: TObject); +begin + if CDS_Sub.IsEmpty then Exit; + YCLDataUPdate(); +end; + +procedure TfrmOrderInPutZPLNew.ZDChange(Sender: TObject); +begin + if CDS_Sub.IsEmpty then Exit; + YCLDataUPdate(); +end; + +procedure TfrmOrderInPutZPLNew.vSubColumn11PropertiesEditValueChanged( + Sender: TObject); +var + FStr:String; +begin + FStr:=TcxTextEdit(Sender).EditingText; + with CDS_Sub do + begin + Edit; + if Trim(FStr)='' then + FieldByName('SubType').Value:='' + else + FieldByName('SubType').Value:=FStr; + Post; + end; + YCLDataUPdate(); +end; + +procedure TfrmOrderInPutZPLNew.MenuItem7Click(Sender: TObject); +begin + if MInt=1 then + begin + SelAll(Order_SubZ,True); + end else + if MInt=2 then + begin + SelAll(Order_SubF,True); + end else + if MInt=3 then + begin + SelAll(Order_SubQ,True); + end; +end; + +procedure TfrmOrderInPutZPLNew.MenuItem8Click(Sender: TObject); +begin + if MInt=1 then + begin + SelAll(Order_SubZ,False); + end else + if MInt=2 then + begin + SelAll(Order_SubF,False); + end else + if MInt=3 then + begin + SelAll(Order_SubQ,False); + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPutZPNew.dfm b/盛纺贸易管理/U_OrderInPutZPNew.dfm new file mode 100644 index 0000000..f4388b7 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutZPNew.dfm @@ -0,0 +1,1711 @@ +object frmOrderInPutZPNew: TfrmOrderInPutZPNew + Left = 81 + Top = 20 + Width = 1102 + Height = 705 + Caption = #25351#31034#21333#24405#20837'('#21046#21697')' + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1094 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 1094 + Height = 318 + Align = alTop + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label1: TLabel + Left = 24 + Top = 15 + Width = 65 + Height = 12 + Caption = #35746#21333#32534#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 204 + Top = 15 + Width = 53 + Height = 12 + Caption = #20195' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 727 + Top = 15 + Width = 65 + Height = 12 + Caption = #19979#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 375 + Top = 15 + Width = 53 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 547 + Top = 15 + Width = 52 + Height = 12 + Caption = #21040#36798#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 912 + Top = 15 + Width = 65 + Height = 12 + Caption = #21512#35745#25968#37327#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 24 + Top = 68 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label20: TLabel + Left = 23 + Top = 116 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label21: TLabel + Left = 25 + Top = 88 + Width = 34 + Height = 12 + Caption = 'ETA'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 257 + Top = 90 + Width = 34 + Height = 12 + Caption = 'ETD'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 491 + Top = 89 + Width = 39 + Height = 12 + Caption = #35013#26588#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 684 + Top = 88 + Width = 53 + Height = 12 + Caption = #20837' '#24211#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 939 + Top = 89 + Width = 39 + Height = 12 + Caption = #29983#20135#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 221 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label27: TLabel + Left = 165 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 238 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label29: TLabel + Left = 455 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label30: TLabel + Left = 400 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label31: TLabel + Left = 472 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 909 + Top = 88 + Width = 13 + Height = 15 + Caption = #22825 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label32: TLabel + Left = 854 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 923 + Top = 88 + Width = 14 + Height = 15 + Caption = '>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 23 + Top = 294 + Width = 1068 + Height = 12 + Caption = + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' + + '- - - - - - - - - - - - - - - - - - - - - - - - ' + Font.Charset = GB2312_CHARSET + Font.Color = clFuchsia + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 22 + Top = 131 + Width = 30 + Height = 14 + Caption = #35814#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 738 + Top = 131 + Width = 60 + Height = 14 + Caption = #25171#21253#35814#32454 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 911 + Top = 131 + Width = 60 + Height = 14 + Caption = #27880#24847#20107#39033 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 24 + Top = 46 + Width = 65 + Height = 12 + Caption = #35745#20215#21333#20301#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 202 + Top = 46 + Width = 52 + Height = 12 + Caption = #29983#20135#32447#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 375 + Top = 46 + Width = 52 + Height = 12 + Caption = #32593#32467#26500#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 547 + Top = 46 + Width = 91 + Height = 12 + Caption = #27597#21367#20811#37325#33539#22260#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label36: TLabel + Left = 695 + Top = 45 + Width = 14 + Height = 12 + Caption = '--' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label39: TLabel + Left = 974 + Top = 44 + Width = 14 + Height = 12 + Caption = '--' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label37: TLabel + Left = 824 + Top = 46 + Width = 91 + Height = 12 + Caption = #23567#21367#20811#37325#33539#22260#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 772 + Top = 43 + Width = 23 + Height = 15 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 1051 + Top = 43 + Width = 23 + Height = 15 + Caption = 'g/'#13217 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object OrderNo: TEdit + Left = 86 + Top = 13 + Width = 103 + Height = 18 + TabOrder = 0 + end + object OrderDate: TDateTimePicker + Left = 791 + Top = 11 + Width = 103 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 1 + end + object WFBCodeName: TcxButtonEdit + Left = 252 + Top = 11 + ParentShowHint = False + Properties.BeepOnError = True + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WFBCodeNamePropertiesButtonClick + Properties.OnChange = WFBCodeNamePropertiesChange + ShowHint = False + TabOrder = 2 + OnKeyDown = WFBCodeNameKeyDown + Width = 97 + end + object CustomNoName: TcxButtonEdit + Left = 426 + Top = 11 + Hint = 'CustomerNo' + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = CustomNoNamePropertiesButtonClick + Properties.OnChange = CustomNoNamePropertiesChange + ShowHint = False + TabOrder = 3 + OnKeyDown = WFBCodeNameKeyDown + Width = 100 + end + object ArrivalPortName: TcxButtonEdit + Left = 596 + Top = 11 + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = ArrivalPortNamePropertiesButtonClick + Properties.OnChange = ArrivalPortNamePropertiesChange + ShowHint = False + TabOrder = 4 + OnKeyDown = WFBCodeNameKeyDown + Width = 117 + end + object OrdQty: TEdit + Left = 975 + Top = 11 + Width = 49 + Height = 18 + Enabled = False + TabOrder = 5 + OnChange = OrdQtyChange + OnKeyPress = OrdQtyKeyPress + end + object OrdUnit: TComboBox + Left = 1025 + Top = 11 + Width = 51 + Height = 20 + Style = csDropDownList + Ctl3D = False + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentCtl3D = False + ParentFont = False + TabOrder = 6 + OnChange = OrdQtyChange + Items.Strings = ( + #13199 + #13217) + end + object ETADate: TDateTimePicker + Left = 57 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 7 + OnChange = ETADateChange + end + object ETDDate: TDateTimePicker + Left = 291 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 8 + end + object ZGDate: TDateTimePicker + Left = 527 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 9 + end + object BegRKDate: TDateTimePicker + Left = 735 + Top = 85 + Width = 115 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + TabOrder = 10 + OnChange = BegRKDateChange + end + object BegSCDate: TDateTimePicker + Left = 972 + Top = 85 + Width = 104 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + ShowCheckbox = True + Enabled = False + TabOrder = 11 + end + object Day1: TEdit + Left = 184 + Top = 87 + Width = 35 + Height = 18 + TabOrder = 12 + OnChange = Day1Change + OnKeyPress = OrdQtyKeyPress + end + object Day2: TEdit + Left = 418 + Top = 87 + Width = 35 + Height = 18 + TabOrder = 13 + OnChange = Day2Change + OnKeyPress = OrdQtyKeyPress + end + object Day3: TEdit + Left = 872 + Top = 87 + Width = 35 + Height = 18 + TabOrder = 14 + OnChange = Day3Change + OnKeyPress = OrdQtyKeyPress + end + object BZ: TcxButtonEdit + Left = 86 + Top = 43 + BeepOnEnter = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = BZPropertiesButtonClick + Properties.OnChange = BZPropertiesChange + TabOrder = 15 + OnKeyDown = WFBCodeNameKeyDown + Width = 101 + end + object cxGrid5: TcxGrid + Left = 21 + Top = 146 + Width = 710 + Height = 139 + TabOrder = 16 + object TvSub: TcxGridDBTableView + PopupMenu = PopupMenu2 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = TvSubColumn1 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object vSubColumn3: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 34 + end + object vSubColumn11: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'SubType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + #28857#27573 + #25240#21472) + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 45 + end + object vSubColumn2: TcxGridDBColumn + Caption = #33457#32441 + DataBinding.FieldName = 'SWFBHW' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn2PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 41 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20811#37325'g/'#13217 + DataBinding.FieldName = 'SWFBKZ' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 63 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #38271#24230'cm' + DataBinding.FieldName = 'SWFBFK1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object vSubColumn4: TcxGridDBColumn + Caption = #23485#24230'cm' + DataBinding.FieldName = 'SWFBFK2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 46 + end + object vSubColumn1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'SOrdPrice' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object vSubColumn5: TcxGridDBColumn + Caption = #22823#25968#37327 + DataBinding.FieldName = 'SWFBBZQty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 46 + end + object vSubColumn6: TcxGridDBColumn + Caption = #22823#21333#20301 + DataBinding.FieldName = 'SWFBBZUnit1' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn6PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 48 + end + object vSubColumn7: TcxGridDBColumn + Caption = #20013#25968#37327 + DataBinding.FieldName = 'SWFBBZQty2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object vSubColumn8: TcxGridDBColumn + Caption = #20013#21333#20301 + DataBinding.FieldName = 'SWFBBZUnit2' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn8PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object vSubColumn9: TcxGridDBColumn + Caption = #23567#25968#37327 + DataBinding.FieldName = 'SWFBBZQty3' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object vSubColumn10: TcxGridDBColumn + Caption = #23567#21333#20301 + DataBinding.FieldName = 'SWFBBZUnit3' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = vSubColumn10PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 53 + end + object TvSubColumn1: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SOrdQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 45 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvSub + end + end + object cxGrid4: TcxGrid + Left = 736 + Top = 146 + Width = 169 + Height = 138 + TabOrder = 17 + object TVDB: TcxGridDBTableView + PopupMenu = PopupMenu1 + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21253#25968#37327 + DataBinding.FieldName = 'BSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.handBlack + Width = 48 + end + object VDBColumn1: TcxGridDBColumn + Caption = #21367#25968#37327 + DataBinding.FieldName = 'JSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 49 + end + object VDBColumn2: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'DBUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 55 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TVDB + end + end + object Note: TRichEdit + Left = 910 + Top = 146 + Width = 166 + Height = 139 + TabOrder = 18 + end + object SCXName: TcxButtonEdit + Left = 252 + Top = 43 + Hint = 'FactoryNo1' + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = SCXNamePropertiesButtonClick + Properties.OnChange = SCXNamePropertiesChange + ShowHint = False + TabOrder = 19 + OnKeyDown = WFBCodeNameKeyDown + Width = 97 + end + object WJGName: TcxButtonEdit + Left = 426 + Top = 43 + Hint = 'FactoryNo2' + BeepOnEnter = False + ParentShowHint = False + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.MaxLength = 0 + Properties.OnButtonClick = WJGNamePropertiesButtonClick + Properties.OnChange = WJGNamePropertiesChange + ShowHint = False + TabOrder = 20 + OnKeyDown = WFBCodeNameKeyDown + Width = 98 + end + object MJKZX: TEdit + Left = 635 + Top = 43 + Width = 60 + Height = 18 + TabOrder = 21 + OnKeyPress = OrdQtyKeyPress + end + object MJKZD: TEdit + Left = 709 + Top = 43 + Width = 60 + Height = 18 + TabOrder = 22 + OnKeyPress = OrdQtyKeyPress + end + object XJKZD: TEdit + Left = 990 + Top = 43 + Width = 60 + Height = 18 + TabOrder = 23 + OnKeyPress = OrdQtyKeyPress + end + object XJKZX: TEdit + Left = 912 + Top = 43 + Width = 60 + Height = 18 + TabOrder = 24 + OnKeyPress = OrdQtyKeyPress + end + object PanZDY: TPanel + Left = 899 + Top = 157 + Width = 151 + Height = 153 + TabOrder = 25 + Visible = False + object CXGridZDY: TcxGrid + Left = 3 + Top = 4 + Width = 142 + Height = 113 + TabOrder = 0 + object TVZDY: TcxGridDBTableView + OnKeyPress = TVZDYKeyPress + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TVZDYCellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object VHelpZDYName: TcxGridDBColumn + DataBinding.FieldName = 'ZDYName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.handBlack + Width = 129 + IsCaptionAssigned = True + end + end + object CXGridZDYLevel1: TcxGridLevel + GridView = TVZDY + end + end + object Button1: TButton + Left = 40 + Top = 120 + Width = 65 + Height = 25 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button1Click + end + end + end + object ScrollBox2: TScrollBox + Left = 0 + Top = 347 + Width = 1094 + Height = 321 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Ctl3D = False + ParentCtl3D = False + TabOrder = 2 + object cxGrid3: TcxGrid + Left = 809 + Top = 31 + Width = 366 + Height = 269 + Align = alLeft + TabOrder = 0 + object Tv3: TcxGridDBBandedTableView + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceQ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v3Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20854#23427 + Styles.Header = DataLink_WFBOrder.TextSHuangSe + Width = 400 + end> + object v3Column1: TcxGridDBBandedColumn + Caption = #29289#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v3Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v3Column2: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v3Column3: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v3Column4: TcxGridDBBandedColumn + Caption = #29992#37327 + DataBinding.FieldName = 'YLQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v3Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v3Column5: TcxGridDBBandedColumn + Caption = #21333#20301 + DataBinding.FieldName = 'YLUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v3Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v3Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v3Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 34 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid2: TcxGrid + Left = 425 + Top = 31 + Width = 384 + Height = 269 + Align = alLeft + TabOrder = 1 + object Tv2: TcxGridDBBandedTableView + OnMouseDown = Tv2MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceF + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v2Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #36741#21161#21407#26009 + Styles.Header = DataLink_WFBOrder.FonePurple + Width = 428 + end> + object v2Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v2Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 68 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v2Column2: TcxGridDBBandedColumn + Caption = #32791#29575#8240 + DataBinding.FieldName = 'YLSHQ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v2Column3: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v2Column4: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v2Column5: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 60 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v2Column6: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object v2Column7: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v2Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 34 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 31 + Width = 425 + Height = 269 + Align = alLeft + TabOrder = 2 + object Tv1: TcxGridDBBandedTableView + OnMouseDown = Tv1MouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSourceZ + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'YCLCode' + Column = v1Column1 + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #20027#35201#21407#26009 + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 487 + end> + object v1Column1: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 69 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column2: TcxGridDBBandedColumn + Caption = #37197#27604'%' + DataBinding.FieldName = 'YLPB' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column2PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 37 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column3: TcxGridDBBandedColumn + Caption = #25439#32791'%' + DataBinding.FieldName = 'YLSH' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v1Column4: TcxGridDBBandedColumn + Caption = #29992#37327'KG' + DataBinding.FieldName = 'YLQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v1Column5: TcxGridDBBandedColumn + Caption = #24211#23384 + DataBinding.FieldName = 'YLKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 41 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v1Column6: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'YCLSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 54 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column7: TcxGridDBBandedColumn + Caption = #30003#36141#25968#37327 + DataBinding.FieldName = 'SGQty' + HeaderAlignmentHorz = taCenter + Width = 64 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object v1Column8: TcxGridDBBandedColumn + Caption = #21069#21333#24211#23384 + DataBinding.FieldName = 'YCLYJKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v1Column9: TcxGridDBBandedColumn + Tag = 2 + Caption = #19981#36275 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Content = DataLink_WFBOrder.FoneRed + Width = 37 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1175 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object TBPrint: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #25171#21360#35831#36141#21333 + ImageIndex = 96 + OnClick = TBPrintClick + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 912 + Top = 357 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 832 + Top = 309 + end + object DataSourceZ: TDataSource + DataSet = Order_SubZ + Left = 296 + Top = 440 + end + object Order_SubZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 256 + Top = 440 + end + object DataSource2: TDataSource + DataSet = ADOZDY + Left = 760 + Top = 8 + end + object ADOZDY: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 728 + Top = 5 + end + object CDS_ZDY: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 8 + end + object ADOQuery1: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 856 + Top = 301 + end + object Order_SubF: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 440 + end + object DataSourceF: TDataSource + DataSet = Order_SubF + Left = 488 + Top = 440 + end + object Order_SubQ: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 448 + end + object DataSourceQ: TDataSource + DataSet = Order_SubQ + Left = 832 + Top = 448 + end + object ADOQueryQG: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 224 + Top = 285 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryQG + Left = 288 + Top = 296 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 328 + Top = 288 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 256 + Top = 288 + end + object DataSource1: TDataSource + DataSet = CDS_Sub + Left = 136 + Top = 232 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 72 + Top = 224 + end + object PopupMenu2: TPopupMenu + Left = 104 + Top = 229 + object MenuItem1: TMenuItem + Caption = #22686#34892 + OnClick = MenuItem1Click + end + object N3: TMenuItem + Caption = #21024#34892 + OnClick = N3Click + end + end + object CDS_DB: TClientDataSet + Aggregates = <> + Params = <> + Left = 592 + Top = 232 + end + object PopupMenu1: TPopupMenu + Left = 544 + Top = 253 + object N1: TMenuItem + Caption = #22686#34892 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #21024#34892 + OnClick = N2Click + end + end + object DataSource3: TDataSource + DataSet = CDS_DB + Left = 544 + Top = 200 + end +end diff --git a/盛纺贸易管理/U_OrderInPutZPNew.pas b/盛纺贸易管理/U_OrderInPutZPNew.pas new file mode 100644 index 0000000..4a52f13 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPutZPNew.pas @@ -0,0 +1,1984 @@ +unit U_OrderInPutZPNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar, cxGridBandedTableView, + cxGridDBBandedTableView, Menus, RM_Common, RM_Class, RM_e_Xls, + RM_GridReport, RM_System, RM_Dataset, cxDropDownEdit; + +type + TfrmOrderInPutZPNew = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + OrderNo: TEdit; + OrderDate: TDateTimePicker; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSourceZ: TDataSource; + Order_SubZ: TClientDataSet; + DataSource2: TDataSource; + ADOZDY: TADOQuery; + CDS_ZDY: TClientDataSet; + WFBCodeName: TcxButtonEdit; + ADOQuery1: TADOQuery; + Label12: TLabel; + CustomNoName: TcxButtonEdit; + Label13: TLabel; + ArrivalPortName: TcxButtonEdit; + Label16: TLabel; + OrdQty: TEdit; + OrdUnit: TComboBox; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + ETADate: TDateTimePicker; + Label22: TLabel; + ETDDate: TDateTimePicker; + Label23: TLabel; + ZGDate: TDateTimePicker; + Label24: TLabel; + BegRKDate: TDateTimePicker; + Label25: TLabel; + BegSCDate: TDateTimePicker; + Day1: TEdit; + Label26: TLabel; + Label27: TLabel; + Label28: TLabel; + Day2: TEdit; + Label29: TLabel; + Label30: TLabel; + Label31: TLabel; + Day3: TEdit; + Label18: TLabel; + Label32: TLabel; + Label33: TLabel; + Label4: TLabel; + Order_SubF: TClientDataSet; + DataSourceF: TDataSource; + Order_SubQ: TClientDataSet; + DataSourceQ: TDataSource; + ScrollBox2: TScrollBox; + cxGrid3: TcxGrid; + Tv3: TcxGridDBBandedTableView; + v3Column1: TcxGridDBBandedColumn; + v3Column2: TcxGridDBBandedColumn; + v3Column3: TcxGridDBBandedColumn; + v3Column4: TcxGridDBBandedColumn; + v3Column5: TcxGridDBBandedColumn; + cxGridLevel2: TcxGridLevel; + cxGrid2: TcxGrid; + Tv2: TcxGridDBBandedTableView; + v2Column1: TcxGridDBBandedColumn; + v2Column2: TcxGridDBBandedColumn; + v2Column3: TcxGridDBBandedColumn; + v2Column4: TcxGridDBBandedColumn; + v2Column5: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBBandedTableView; + v1Column1: TcxGridDBBandedColumn; + v1Column2: TcxGridDBBandedColumn; + v1Column3: TcxGridDBBandedColumn; + v1Column4: TcxGridDBBandedColumn; + v1Column5: TcxGridDBBandedColumn; + v1Column6: TcxGridDBBandedColumn; + cxGrid1Level1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + TBPrint: TToolButton; + v1Column7: TcxGridDBBandedColumn; + v2Column6: TcxGridDBBandedColumn; + v3Column6: TcxGridDBBandedColumn; + v1Column8: TcxGridDBBandedColumn; + v2Column7: TcxGridDBBandedColumn; + v3Column7: TcxGridDBBandedColumn; + v1Column9: TcxGridDBBandedColumn; + v2Column8: TcxGridDBBandedColumn; + v3Column8: TcxGridDBBandedColumn; + ADOQueryQG: TADOQuery; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + RMXLSExport1: TRMXLSExport; + BZ: TcxButtonEdit; + Label5: TLabel; + cxGrid5: TcxGrid; + TvSub: TcxGridDBTableView; + vSubColumn3: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + vSubColumn2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + TvSubColumn1: TcxGridDBColumn; + vSubColumn1: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + Label7: TLabel; + cxGrid4: TcxGrid; + TVDB: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + VDBColumn1: TcxGridDBColumn; + VDBColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + Note: TRichEdit; + Label35: TLabel; + DataSource1: TDataSource; + CDS_Sub: TClientDataSet; + PopupMenu2: TPopupMenu; + MenuItem1: TMenuItem; + CDS_DB: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + DataSource3: TDataSource; + vSubColumn4: TcxGridDBColumn; + vSubColumn5: TcxGridDBColumn; + vSubColumn6: TcxGridDBColumn; + vSubColumn7: TcxGridDBColumn; + vSubColumn8: TcxGridDBColumn; + vSubColumn9: TcxGridDBColumn; + vSubColumn10: TcxGridDBColumn; + Label9: TLabel; + Label6: TLabel; + SCXName: TcxButtonEdit; + Label8: TLabel; + WJGName: TcxButtonEdit; + Label34: TLabel; + MJKZX: TEdit; + MJKZD: TEdit; + Label36: TLabel; + XJKZD: TEdit; + Label39: TLabel; + XJKZX: TEdit; + Label37: TLabel; + PanZDY: TPanel; + CXGridZDY: TcxGrid; + TVZDY: TcxGridDBTableView; + VHelpZDYName: TcxGridDBColumn; + CXGridZDYLevel1: TcxGridLevel; + Button1: TButton; + Label10: TLabel; + Label11: TLabel; + vSubColumn11: TcxGridDBColumn; + N3: TMenuItem; + procedure TBCloseClick(Sender: TObject); + procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TVZDYKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure CustomNoNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBCodeNamePropertiesChange(Sender: TObject); + procedure ArrivalPortNamePropertiesChange(Sender: TObject); + procedure SCXNamePropertiesChange(Sender: TObject); + procedure WJGNamePropertiesChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure Day1Change(Sender: TObject); + procedure OrdQtyKeyPress(Sender: TObject; var Key: Char); + procedure Day2Change(Sender: TObject); + procedure Day3Change(Sender: TObject); + procedure ETADateChange(Sender: TObject); + procedure BegRKDateChange(Sender: TObject); + procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure v1Column2PropertiesEditValueChanged(Sender: TObject); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + procedure v2Column2PropertiesEditValueChanged(Sender: TObject); + procedure OrdQtyChange(Sender: TObject); + procedure v3Column4PropertiesEditValueChanged(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure WFBBZUnit3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure BZPropertiesChange(Sender: TObject); + procedure WFBBZQty1Change(Sender: TObject); + procedure vSubColumn6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn10PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure MenuItem1Click(Sender: TObject); + procedure N3Click(Sender: TObject); + procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure vSubColumn2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + MInt:Integer; + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + procedure DelOrderSub(FOrder_Sub:TClientDataSet); + procedure SELYCL(SCDS_Sub:TClientDataSet); + procedure EditYCL(SCDS_Sub:TClientDataSet); + { Private declarations } + public + PState,BState:Integer; + FMainId:String; + FXS:Integer; + OrderType:String; + { Public declarations } + end; + +var + frmOrderInPutZPNew: TfrmOrderInPutZPNew; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_GetPGJBInList; + +{$R *.dfm} + +procedure TfrmOrderInPutZPNew.TBCloseClick(Sender: TObject); +begin + if PState<>3 then + begin + if Application.MessageBox('ǷҪݣ','ʾ',32+4)=IDYES then + begin + TBSave.Click; + Exit; + end; + end; + Close; + WriteCxBandedGrid('',Tv1,'޷IJ'); + WriteCxBandedGrid('ϸ',Tv2,'޷IJ'); + WriteCxBandedGrid('',Tv3,'޷IJ'); + +end; + +procedure TfrmOrderInPutZPNew.InitData(); +var + i:Integer; +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); + if PState>0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + if PState=0 then + begin + ADOQuery1.Parameters.ParamByName('MainId').Value:='999999'; + ADOQuery1.Parameters.ParamByName('begdate').Value:=''; + ADOQuery1.Parameters.ParamByName('endate').Value:=''; + end; + Open; + end; + // SCreateCDS20(ADOQuery1,Order_Sub); + //SInitCDSData20(ADOQuery1,Order_Sub); + SCSHData(ADOQuery1,ScrollBox1,0); + if PState=0 then + begin + OrderDate.DateTime:=StrToDate(FormatDateTime('yyyy-MM-dd',SGetServerDateTime(ADOTemp))); + ETADate.DateTime:=OrderDate.DateTime; + ETDDate.DateTime:=OrderDate.DateTime; + ZGDate.DateTime:=OrderDate.DateTime; + BegRKDate.DateTime:=OrderDate.DateTime; + BegSCDate.DateTime:=OrderDate.DateTime; + ETADate.Checked:=False; + ETDDate.Checked:=False; + ZGDate.Checked:=False; + BegRKDate.Checked:=False; + BegSCDate.Checked:=False; + end; + if Trim(DParameters1)<>'' then + begin + BegRKDate.Enabled:=False; + Day3.Enabled:=False; + BegSCDate.Enabled:=False; + //Note.Enabled:=False; + cxGrid4.Enabled:=False; + MJKZX.Enabled:=False; + MJKZD.Enabled:=False; + XJKZX.Enabled:=False; + XJKZD.Enabled:=False; + SCXName.Enabled:=False; + WJGName.Enabled:=False; + ScrollBox2.Enabled:=False; + end; + if PState=4 then + begin + BegRKDate.Enabled:=True; + Day3.Enabled:=True; + BegSCDate.Enabled:=True; + //Note.Enabled:=False; + cxGrid4.Enabled:=True; + MJKZX.Enabled:=True; + MJKZD.Enabled:=True; + XJKZX.Enabled:=True; + XJKZD.Enabled:=True; + SCXName.Enabled:=True; + WJGName.Enabled:=True; + ScrollBox2.Enabled:=True; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_DB where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_DB); + SInitCDSData20(ADOQuery1,CDS_DB); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Sub where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,CDS_Sub); + SInitCDSData20(ADOQuery1,CDS_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType=''Ҫ'' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubZ); + SInitCDSData20(ADOQuery1,Order_SubZ); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubF); + SInitCDSData20(ADOQuery1,Order_SubF); + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); + sql.Add(' and PBType='''' '); + Open; + end; + SCreateCDS20(ADOQuery1,Order_SubQ); + SInitCDSData20(ADOQuery1,Order_SubQ); + PanZDY.Visible:=False; + if PState=4 then + begin + PState:=0; + FMainId:='999999'; + //OrderNo.Text:=''; + WFBCodeName.Text:=''; + WFBCodeName.Hint:=''; + PanZDY.Visible:=False; + with CDS_DB do + begin + First; + while not Eof do + begin + Edit; + FieldByName('DBID').Value:=''; + Post; + Next; + end; + end; + with Order_SubZ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v1Column1.Options.Focusing:=True; + with Order_SubF do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v2Column1.Options.Focusing:=True; + with Order_SubQ do + begin + First; + while not Eof do + begin + Edit; + FieldByName('PBID').Value:=''; + FieldByName('YLKC').Value:=0; + FieldByName('YCLYJKC').Value:=0; + FieldByName('BZ').Value:=0; + FieldByName('SGQty').Value:=0; + Post; + Next; + end; + end; + v3Column1.Options.Focusing:=True; + end; +end; + +procedure TfrmOrderInPutZPNew.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin + PanZDY.Visible:=True; + PanZDY.Left:=FButn.Left; + PanZDY.Top:=FButn.Top+FButn.Height; + with ADOZDY do + begin + Filtered:=False; + Close; + SQL.Clear; + SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); + Open; + end; + FText:=Trim(FButn.Text); + if FText<>'' then + SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) + else + SDofilter(ADOZDY,''); + VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); +end; + +procedure TfrmOrderInPutZPNew.TVZDYCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FName:string; +begin + if ADOZDY.IsEmpty then Exit; + FName:=Trim(VHelpZDYName.Summary.GroupFormat); + TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutZPNew.Button1Click(Sender: TObject); +begin + PanZDY.Visible:=False; +end; + +procedure TfrmOrderInPutZPNew.WFBCodeNameKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if (key=vk_return) or (Key=vk_Down) then + begin + if ADOZDY.Active then + CXGridZDY.SetFocus; + end; +end; + +procedure TfrmOrderInPutZPNew.TVZDYKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if ADOZDY.IsEmpty then Exit; + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); + TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); + PanZDY.Visible:=False; + ADOZDY.Active:=False; + end; +end; + +procedure TfrmOrderInPutZPNew.FormShow(Sender: TObject); +begin + InitData(); + ReadCxBandedGrid('',Tv1,'޷IJ'); + ReadCxBandedGrid('ϸ',Tv2,'޷IJ'); + ReadCxBandedGrid('',Tv3,'޷IJ'); +end; + +function TfrmOrderInPutZPNew.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFBOrder_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='999999' then + begin + Append; + if GetLSNo(ADOTemp,maxno,'','WFBOrder_Main',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ˮ쳣','ʾ',0); + exit; + end; + end + else begin + maxno:=Trim(FMainId); + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + FieldByName('OrderType').Value:=Trim(OrderType); + SSetsaveSql(ADOCmd,'WFBOrder_Main',ScrollBox1,0); + if PState=2 then + begin + FieldByName('Chker').Value:=Trim(DName); + FieldByName('ChkTime').Value:=SGetServerDateTime(ADOTemp); + end; + if Trim(FMainId)='999999' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + if PState=1 then + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + end; + Post; + end; + FMainId:=Trim(maxno); + ///ϸ + with CDS_DB do + begin + First; + while not Eof do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'DB','WFB_DB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_DB.fieldbyname('DBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_DB '); + sql.Add(' where DBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('DBId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,TVDB,CDS_DB,'WFB_DB',0); + Post; + end; + CDS_DB.Edit; + CDS_DB.FieldByName('DBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + //Ҫԭ + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + First; + while not Eof do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubZ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('CRId').Value:=Trim(Order_SubZ.fieldbyname('CRID').AsString); + FieldByName('PBType').Value:='Ҫ'; + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV1,Order_SubZ,'WFBYCL_PB',0); + Post; + end; + Order_SubZ.Edit; + Order_SubZ.FieldByName('PBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + end; + //渨ԭ + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + First; + while not Eof do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubF.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubF.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV2,Order_SubF,'WFBYCL_PB',0); + Post; + end; + Order_SubF.Edit; + Order_SubF.FieldByName('PBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + end; + //ԭ + if not Order_SubQ.IsEmpty then + begin + with Order_SubQ do + begin + First; + while not Eof do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_SubQ.fieldbyname('PBId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFBYCL_PB '); + sql.Add(' where PBId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('PBId').Value:=Trim(maxno); + FieldByName('PBType').Value:=''; + FieldByName('CRId').Value:=Trim(Order_SubQ.fieldbyname('CRID').AsString); + // SSetSaveDataCDSNew(); + SSetSaveDataCDSBandNew(ADOCmd,TV3,Order_SubQ,'WFBYCL_PB',0); + Post; + end; + Order_SubQ.Edit; + Order_SubQ.FieldByName('PBId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + end; + + ///ӱ + {with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOTemp,maxno,'OS','Order_Sub',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from Order_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Order_Sub',0); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; } + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmOrderInPutZPNew.TBSaveClick(Sender: TObject); +begin + OrderDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(WFBCodeName.Hint)='' then + begin + Application.MessageBox('δ壡','ʾ',0); + Exit; + end; + {if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪգ','ʾ',0); + Exit; + end; } + if CDS_DB.Locate('BSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if CDS_DB.Locate('JSL',null,[]) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + if Order_SubZ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubF.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if Order_SubQ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then + begin + Application.MessageBox('ָϣ','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; +procedure TfrmOrderInPutZPNew.SELYCL(SCDS_Sub:TClientDataSet); +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + First; + while not Eof do + begin + with SCDS_Sub do + begin + Append; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); + //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); + //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); + //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); + //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); + Post; + end; + Next; + end; + end; + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.EditYCL(SCDS_Sub:TClientDataSet); +begin + try + frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); + with frmGetPGJBInList do + begin + if ShowModal=1 then + begin + with ClientDataSet2 do + begin + //First; + // while not Eof do + //begin + with SCDS_Sub do + begin + Edit; + SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); + SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); + SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); + //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); + //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); + SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); + //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); + SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); + SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); + SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); + if SCDS_Sub.FieldByName('YLQty').Value-ClientDataSet2.fieldbyname('YJKC').Value>=0 then + SCDS_Sub.FieldByName('BZ').Value:=SCDS_Sub.FieldByName('YLQty').Value- + ClientDataSet2.fieldbyname('YJKC').Value + else + SCDS_Sub.FieldByName('BZ').Value:=null; + //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); + //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); + //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); + //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); + //Post; + end; + // Next; + //end; + end; + end; + end; + finally + frmGetPGJBInList.Free; + end; +end; +procedure TfrmOrderInPutZPNew.ToolButton1Click(Sender: TObject); +begin + if MInt=1 then + begin + SELYCL(Order_SubZ); + end else + if MInt=2 then + begin + SELYCL(Order_SubF); + end else + if MInt=3 then + begin + SELYCL(Order_SubQ); + end; +end; + +procedure TfrmOrderInPutZPNew.ToolButton2Click(Sender: TObject); +begin + if MInt=1 then + begin + DelOrderSub(Order_SubZ); + end else + if MInt=2 then + begin + DelOrderSub(Order_SubF); + end else + if MInt=3 then + begin + DelOrderSub(Order_SubQ); + end; +end; +procedure TfrmOrderInPutZPNew.DelOrderSub(FOrder_Sub:TClientDataSet); +begin + if FOrder_Sub.IsEmpty then Exit; + if Trim(FOrder_Sub.fieldbyname('PBID').AsString)<>'' then + begin + if Application.MessageBox('ڴɾѱݣ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBYCL_PB where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); + ExecSQL; + end; + end; + FOrder_Sub.Delete; +end; + +procedure TfrmOrderInPutZPNew.CustomNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('CustomNoName'); + flagname:='ͻ'; + if ShowModal=1 then + begin + Self.FXS:=99; + CustomNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.CustomNoNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(CustomNoName,'CustomNoName'); +end; + +procedure TfrmOrderInPutZPNew.ArrivalPortNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('ArrivalPort'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + ArrivalPortName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + ArrivalPortName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.SCXNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('SCXName'); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + SCXName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + SCXName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.WJGNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WJGName'); + flagname:='ṹ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WJGName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WJGName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.WFBCodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim(WFBCodeName.Name); + flagname:=''; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBCodeName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.WFBCodeNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WFBCodeName,Trim(WFBCodeName.Name)); +end; + +procedure TfrmOrderInPutZPNew.ArrivalPortNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(ArrivalPortName,'ArrivalPort'); +end; + +procedure TfrmOrderInPutZPNew.SCXNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(SCXName,Trim(SCXName.Name)); +end; + +procedure TfrmOrderInPutZPNew.WJGNamePropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(WJGName,Trim(WJGName.Name)); +end; + +procedure TfrmOrderInPutZPNew.N1Click(Sender: TObject); +begin + with CDS_DB do + begin + Append; + FieldByName('DBUnit').Value:='/'; + Post; + end; +end; + +procedure TfrmOrderInPutZPNew.N2Click(Sender: TObject); +begin + if CDS_DB.IsEmpty then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_DB where DBID='''+Trim(CDS_DB.fieldbyname('DBID').AsString)+''''); + ExecSQL; + end; + CDS_DB.Delete; +end; + +procedure TfrmOrderInPutZPNew.Day1Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day1.Text)='' then DayL:='0' + else DayL:=Trim(Day1.Text); + ETDDate.DateTime:=ETADate.Date-strtoint(DayL); +end; + +procedure TfrmOrderInPutZPNew.OrdQtyKeyPress(Sender: TObject; var Key: Char); +begin + if not (Key in['0'..'9','.',#8,#13]) then + begin + key:=#0; + end; +end; + +procedure TfrmOrderInPutZPNew.Day2Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day2.Text)='' then DayL:='0' + else DayL:=Trim(Day2.Text); + ZGDate.DateTime:=ETDDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutZPNew.Day3Change(Sender: TObject); +var + DayL:string; +begin + if trim(Day3.Text)='' then DayL:='0' + else DayL:=Trim(Day3.Text); + BegSCDate.DateTime:=BegRKDate.Date-strtoint(DayL); +end; +procedure TfrmOrderInPutZPNew.ETADateChange(Sender: TObject); +begin + if Trim(Day1.Text)<>'' then + begin + ETDDate.DateTime:=ETADate.Date-strtoint(Day1.Text); + end; + if Trim(Day2.Text)<>'' then + begin + ZGDate.DateTime:=ETDDate.Date-strtoint(Day2.Text); + end; +end; + +procedure TfrmOrderInPutZPNew.BegRKDateChange(Sender: TObject); +begin + if Trim(Day3.Text)<>'' then + begin + BegSCDate.DateTime:=BegRKDate.Date-strtoint(Day3.Text); + end; +end; + +procedure TfrmOrderInPutZPNew.Tv1MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=1; + Tv1.Bands[0].Caption:='Ҫԭϡ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlue; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutZPNew.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=2; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭϡ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlue; + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmOrderInPutZPNew.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + MInt:=3; + Tv1.Bands[0].Caption:='Ҫԭ'; + Tv2.Bands[0].Caption:='ԭ'; + Tv3.Bands[0].Caption:=''; + Tv1.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmOrderInPutZPNew.v1Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLSH,DHSL:Double; +begin + {if Trim(OrdQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100); + if StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLPB').Value:=mvalue; + Post; + end; + end else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(WFBKZ.Text)='' then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBfk.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end;} + {DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then + begin + YLSH:=0; + end else + YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=DHSL*mvalue/100*(1+YLSH/100); + if DHSL*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLPB').Value:=mvalue; + Post; + end; + + end; } +end; + + +procedure TfrmOrderInPutZPNew.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,YLPB,DHSL:Double; +begin + {if Trim(OrdQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + if Trim(OrdUnit.Text)='K' then + begin + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100); + if StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSH').Value:=mvalue; + Post; + end; + end else + begin + if Trim(WFBKZ.Text)='' then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + {if Trim(WFBfk.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end;} + {DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then + begin + YLPB:=0; + end else + YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); + with Order_SubZ do + begin + Edit; + FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+mvalue/100); + if DHSL*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSH').Value:=mvalue; + Post; + end; + end; } +end; + +procedure TfrmOrderInPutZPNew.v2Column2PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,DHSL:Double; +begin + {if Trim(OrdQty.Text)='' then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingValue; //KO + if Trim(OrdUnit.Text)='K' then + begin + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*(mvalue/1000); + if StrToFloat(OrdQty.Text)*(mvalue/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*(mvalue/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSHQ').Value:=mvalue; + Post; + end; + end else + begin + if Trim(WFBKZ.Text)='' then + begin + Application.MessageBox('زΪգ','ʾ',0); + Exit; + end; + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + with Order_SubF do + begin + Edit; + FieldByName('YLQty').Value:=DHSL*(mvalue/1000); + if DHSL*(mvalue/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*(mvalue/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + FieldByName('YLSHQ').Value:=mvalue; + Post; + end; + end; } +end; + +procedure TfrmOrderInPutZPNew.OrdQtyChange(Sender: TObject); +var + YLPB,YLSH,DHSL:Double; +begin + {if Trim(OrdQty.Text)='' then Exit; + if Trim(OrdUnit.Text)='K' then + DHSL:=StrToFloat(OrdQty.Text) + else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(WFBKZ.Text)='' then Exit; + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + end; + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + Order_SubZ.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLPB').AsString)='' then + YLPB:=0 + else + YLPB:=StrToFloat(fieldbyname('YLPB').AsString); + if Trim(fieldbyname('YLSH').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSH').AsString); + FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+YLSH/100); + if DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubZ.EnableControls; + First; + end; + end; + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + Order_SubF.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLSHQ').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSHQ').AsString); + FieldByName('YLQty').Value:=DHSL*(YLSH/1000); + if DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubF.EnableControls; + First; + end; + end; } +end; +procedure TfrmOrderInPutZPNew.v3Column4PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:Double; +begin + mvalue:=TcxTextEdit(Sender).EditingValue; + with Order_SubQ do + begin + Edit; + FieldByName('YLQty').Value:=mvalue; + if mvalue-fieldbyname('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=mvalue-fieldbyname('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPutZPNew.TBPrintClick(Sender: TObject); +var + fPrintFile:String; +begin + with ADOQueryQG do + begin + Close; + sql.Clear; + sql.Add(' exec P_Print_SGD :OrderNo'); + Parameters.ParamByName('OrderNo').Value:=Trim(OrderNo.Text); + Open; + end; + if ADOQueryQG.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\빺.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RMVariables['dyr']:=Trim(DName); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\빺.rmf'),'ʾ',0); + end; +end; + +procedure TfrmOrderInPutZPNew.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubZ); +end; + +procedure TfrmOrderInPutZPNew.v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubF); +end; + +procedure TfrmOrderInPutZPNew.v3Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + EditYCL(Order_SubQ); +end; + +procedure TfrmOrderInPutZPNew.WFBBZUnit1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitD'); + flagname:='װ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBBZUnit1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBBZUnit1.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } +end; + +procedure TfrmOrderInPutZPNew.WFBBZUnit2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitZ'); + flagname:='аװ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBBZUnit2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBBZUnit2.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } +end; + +procedure TfrmOrderInPutZPNew.WFBBZUnit3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + {try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitX'); + flagname:='Сװ'; + if ShowModal=1 then + begin + Self.FXS:=99; + WFBBZUnit3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + WFBBZUnit3.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end;} +end; + +procedure TfrmOrderInPutZPNew.BZPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('BZ'); + flagname:='۵λ'; + if ShowModal=1 then + begin + Self.FXS:=99; + BZ.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + BZ.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.BZPropertiesChange(Sender: TObject); +begin + if FXS=99 then + begin + PanZDY.Visible:=False; + FXS:=0; + Exit; + end; + ZDYHelp(BZ,'BZ'); +end; + +procedure TfrmOrderInPutZPNew.WFBBZQty1Change(Sender: TObject); +var + FQty1,FQty2,FQty3,FFK1,FFK2,FKZ1,YLPB,YLSH,DHSL:Double; +begin + {if Trim(WFBBZQty1.Text)<>'' then + begin + FQty1:=StrToFloat(WFBBZQty1.Text); + end else + begin + FQty1:=1; + end; + if Trim(WFBBZQty2.Text)<>'' then + begin + FQty2:=StrToFloat(WFBBZQty2.Text); + end else + begin + FQty2:=1; + end; + if Trim(WFBBZQty3.Text)<>'' then + begin + FQty3:=StrToFloat(WFBBZQty3.Text); + end else + begin + FQty3:=1; + end; + if Trim(WFBFK1.Text)<>'' then + begin + FFK1:=StrToFloat(WFBFK1.Text); + end else + begin + FFK1:=0; + end; + if Trim(WFBFK2.Text)<>'' then + begin + FFK2:=StrToFloat(WFBFK2.Text); + end else + begin + FFK2:=0; + end; + if Trim(WFBKZ.Text)<>'' then + begin + FKZ1:=StrToFloat(WFBKZ.Text); + end else + begin + FKZ1:=0; + end; + if Trim(WFBKZ.Text)='' then + begin + OrdQty.Text:=FloatToStr(FQty1*FQty2*FQty3*FFK1*FFK2/10000); + OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('O'); + end else + begin + OrdQty.Text:=FloatToStr(FQty1*FQty2*FQty3*FFK1*FFK2/10000*FKZ1/1000); + OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('K'); + end; + if Trim(OrdQty.Text)='' then Exit; + if Trim(OrdUnit.Text)='K' then + DHSL:=StrToFloat(OrdQty.Text) + else + if Trim(OrdUnit.Text)='O' then + begin + if Trim(WFBKZ.Text)='' then Exit; + DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; + end; + if not Order_SubZ.IsEmpty then + begin + with Order_SubZ do + begin + Order_SubZ.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLPB').AsString)='' then + YLPB:=0 + else + YLPB:=StrToFloat(fieldbyname('YLPB').AsString); + if Trim(fieldbyname('YLSH').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSH').AsString); + FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+YLSH/100); + if DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubZ.EnableControls; + First; + end; + end; + if not Order_SubF.IsEmpty then + begin + with Order_SubF do + begin + Order_SubF.DisableControls; + First; + while not Eof do + begin + Edit; + if Trim(fieldbyname('YLSHQ').AsString)='' then + YLSH:=0 + else + YLSH:=StrToFloat(fieldbyname('YLSHQ').AsString); + FieldByName('YLQty').Value:=DHSL*(YLSH/1000); + if DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value>=0 then + FieldByName('BZ').Value:=DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value + else + FieldByName('BZ').Value:=null; + Post; + Next; + end; + Order_SubF.EnableControls; + First; + end; + end;} +end; + +procedure TfrmOrderInPutZPNew.vSubColumn6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitD'); + flagname:='װ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBBZUnit1').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.vSubColumn8PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitZ'); + flagname:='аװ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBBZUnit2').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.vSubColumn10PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Trim('WFBBZUnitD'); + flagname:='Сװ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + CDS_Sub.FieldByName('SWFBBZUnit3').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.MenuItem1Click(Sender: TObject); +var + i:Integer; +begin + CopyAddRow(TvSub,CDS_Sub); + i:=CDS_Sub.RecordCount; + with CDS_Sub do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + FieldByName('SWFBColor').Value:=''; + FieldByName('XHNO').Value:=IntToStr(i); + Post; + end; + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); +end; + +procedure TfrmOrderInPutZPNew.N3Click(Sender: TObject); +var + mvalue,YLSH,DHSL,YLQty,YLPB,YLSHQ:Double; + FOrdQty,FKZ:String; +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.fieldbyname('SubID').AsString)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFBYCL_PBSub where SubId='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + Application.MessageBox('Ѿݣɾ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBOrder_Sub where SubID='''+Trim(CDS_Sub.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + end; + CDS_Sub.Delete; + //YLUpdate(); + OrdQty.Text:=floattostr(TvSub.DataController.Summary.FooterSummaryValues[0]); +end; + +procedure TfrmOrderInPutZPNew.cxGridDBColumn3PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('SWFBColor').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPutZPNew.vSubColumn2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBHX'; + flagname:=''; + if ShowModal=1 then + begin + with Self.CDS_Sub do + begin + Edit; + FieldByName('SWFBHW').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + //Post; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPut_CY.dfm b/盛纺贸易管理/U_OrderInPut_CY.dfm new file mode 100644 index 0000000..7fcfac0 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut_CY.dfm @@ -0,0 +1,1004 @@ +object frmOrderInPut_CY: TfrmOrderInPut_CY + Left = 106 + Top = 12 + Width = 1217 + Height = 719 + Caption = #20986#36135#35745#21010 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1201 + Height = 37 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxTabControl2: TcxTabControl + Left = 0 + Top = 429 + Width = 1201 + Height = 18 + Align = alTop + LookAndFeel.Kind = lfFlat + LookAndFeel.NativeStyle = False + Style = 9 + TabIndex = 0 + TabOrder = 1 + Tabs.Strings = ( + #20135#21697#20449#24687) + ClientRectBottom = 19 + ClientRectRight = 1201 + ClientRectTop = 19 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 476 + Width = 1201 + Height = 163 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column5: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Column6: TcxGridDBColumn + Caption = #20135#21697#35268#26684 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Column2: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + Width = 84 + end + object v1Column7: TcxGridDBColumn + Caption = #20986#36135#25968#37327 + DataBinding.FieldName = 'SordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneClMaroon + Styles.Footer = DataLink_TradeManage.FoneClMaroon + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column8: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PrtPrice' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #20986#36135#31665#25968 + DataBinding.FieldName = 'SordQty2' + Width = 60 + end + object v1Column10: TcxGridDBColumn + Caption = #31435#26041#25968 + DataBinding.FieldName = 'SordQty3' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1SordQty4: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'SordQty4' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'SordQty5' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column13: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SordQty6' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 137 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 447 + Width = 1201 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 104 + Visible = False + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 37 + Width = 1201 + Height = 18 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 4 + Tabs.Strings = ( + #20027#35201#20449#24687) + ClientRectBottom = 19 + ClientRectRight = 1201 + ClientRectTop = 19 + end + object Panel1: TPanel + Left = 0 + Top = 55 + Width = 1201 + Height = 374 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object Label1: TLabel + Left = 31 + Top = 15 + Width = 65 + Height = 12 + Caption = #20986#36816#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 31 + Top = 43 + Width = 65 + Height = 12 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label39: TLabel + Left = 291 + Top = 16 + Width = 65 + Height = 12 + Caption = #30003#35831#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 31 + Top = 96 + Width = 65 + Height = 12 + Caption = #33337#36816#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 563 + Top = 43 + Width = 66 + Height = 12 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label43: TLabel + Left = 563 + Top = 68 + Width = 66 + Height = 12 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 291 + Top = 71 + Width = 67 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 31 + Top = 218 + Width = 65 + Height = 12 + Caption = #27880#24847#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 31 + Top = 284 + Width = 65 + Height = 12 + Caption = #29983#20135#25552#31034#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 291 + Top = 43 + Width = 65 + Height = 12 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 563 + Top = 16 + Width = 66 + Height = 12 + Caption = #30003' '#35831' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 31 + Top = 71 + Width = 34 + Height = 12 + Caption = 'PO#'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label36: TLabel + Left = 809 + Top = 47 + Width = 13 + Height = 84 + Caption = #26631#13#10' '#13#10#31614#13#10#13#10#20869#13#10#13#10#23481 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label37: TLabel + Left = 977 + Top = 47 + Width = 13 + Height = 84 + Caption = #21787#13#10#13#10#22836#13#10#13#10#20869#13#10#13#10#23481 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 291 + Top = 96 + Width = 65 + Height = 12 + Caption = #36135#20195#20844#21496#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 563 + Top = 96 + Width = 67 + Height = 12 + Caption = #26588' '#22411#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 31 + Top = 144 + Width = 55 + Height = 12 + Caption = 'BIN NO'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 291 + Top = 172 + Width = 91 + Height = 12 + Caption = #25910#36135#20844#21496#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 31 + Top = 170 + Width = 66 + Height = 12 + Caption = #25910' '#36135' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 31 + Top = 194 + Width = 66 + Height = 12 + Caption = #36890' '#30693' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 291 + Top = 196 + Width = 91 + Height = 12 + Caption = #36890#30693#20844#21496#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 562 + Top = 121 + Width = 65 + Height = 12 + Caption = #20215#26684#26415#35821#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 291 + Top = 118 + Width = 65 + Height = 12 + Caption = #20184#27454#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 31 + Top = 122 + Width = 65 + Height = 12 + Caption = #20986#36816#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 291 + Top = 142 + Width = 65 + Height = 12 + Caption = #21457#31080#26684#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 563 + Top = 144 + Width = 65 + Height = 12 + Caption = #20986#20179#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 31 + Top = 348 + Width = 65 + Height = 12 + Caption = #23458#25143#31616#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CYNO: TEdit + Tag = 2 + Left = 97 + Top = 12 + Width = 150 + Height = 20 + TabOrder = 0 + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 97 + Top = 39 + Width = 150 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 1 + end + object OrdDefDate1: TDateTimePicker + Tag = 2 + Left = 357 + Top = 12 + Width = 149 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 2 + end + object DLYDate: TDateTimePicker + Tag = 2 + Left = 97 + Top = 92 + Width = 150 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 3 + end + object OrdPerson2: TBtnEditC + Tag = 2 + Left = 629 + Top = 64 + Width = 150 + Height = 20 + Hint = 'OrdPerson2/'#19994#21153#21592 + TabOrder = 4 + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object CustomerNoName: TBtnEditC + Tag = 2 + Left = 357 + Top = 64 + Width = 150 + Height = 20 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 5 + OnBtnUpClick = CustomerNoNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTBZNote: TMemo + Tag = 2 + Left = 97 + Top = 218 + Width = 681 + Height = 57 + Hint = 'MPRTBZNote/'#21253#35013#35201#27714 + ScrollBars = ssVertical + TabOrder = 6 + OnDblClick = MPRTBZNoteDblClick + end + object MPRTSCTeBieNote: TMemo + Tag = 2 + Left = 97 + Top = 283 + Width = 681 + Height = 57 + Hint = 'MPRTSCTeBieNote/'#29983#20135#29305#21035#25552#31034 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ScrollBars = ssVertical + TabOrder = 7 + Visible = False + OnDblClick = MPRTSCTeBieNoteDblClick + end + object conNO: TEdit + Tag = 2 + Left = 629 + Top = 39 + Width = 149 + Height = 20 + TabOrder = 8 + end + object KHConNO: TEdit + Tag = 2 + Left = 97 + Top = 64 + Width = 149 + Height = 20 + TabOrder = 9 + end + object orderNo: TBtnEditA + Tag = 2 + Left = 357 + Top = 39 + Width = 149 + Height = 20 + TabOrder = 10 + OnBtnClick = orderNoBtnClick + end + object OrdPerson1: TBtnEditC + Tag = 2 + Left = 629 + Top = 12 + Width = 150 + Height = 20 + Hint = 'OrdPerson2/'#19994#21153#21592 + TabOrder = 11 + OnBtnUpClick = OrdPerson1BtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object LBNameNote: TMemo + Tag = 2 + Left = 824 + Top = 19 + Width = 130 + Height = 150 + TabOrder = 12 + end + object MaiTouNote: TMemo + Tag = 2 + Left = 992 + Top = 19 + Width = 130 + Height = 150 + TabOrder = 13 + end + object orddefstr1: TEdit + Tag = 2 + Left = 357 + Top = 92 + Width = 149 + Height = 20 + TabOrder = 14 + end + object orddefstr2: TEdit + Tag = 2 + Left = 629 + Top = 92 + Width = 149 + Height = 20 + TabOrder = 15 + end + object orddefstr3: TEdit + Tag = 2 + Left = 97 + Top = 140 + Width = 149 + Height = 20 + TabOrder = 16 + end + object conDefstr1: TEdit + Tag = 2 + Left = 378 + Top = 165 + Width = 399 + Height = 20 + TabOrder = 17 + end + object conDefstr2: TEdit + Tag = 2 + Left = 378 + Top = 189 + Width = 399 + Height = 20 + TabOrder = 18 + end + object ConPerson1: TEdit + Tag = 2 + Left = 97 + Top = 166 + Width = 149 + Height = 20 + TabOrder = 19 + end + object ConPerson2: TEdit + Tag = 2 + Left = 97 + Top = 190 + Width = 149 + Height = 20 + TabOrder = 20 + end + object orddefstr5: TEdit + Tag = 2 + Left = 629 + Top = 116 + Width = 149 + Height = 20 + TabOrder = 21 + end + object orddefstr4: TEdit + Tag = 2 + Left = 357 + Top = 116 + Width = 149 + Height = 20 + TabOrder = 22 + end + object orddefstr6: TEdit + Tag = 2 + Left = 97 + Top = 116 + Width = 149 + Height = 20 + TabOrder = 23 + end + object orddefstr7: TEdit + Tag = 2 + Left = 357 + Top = 140 + Width = 149 + Height = 20 + TabOrder = 24 + end + object OrdDefDate2: TDateTimePicker + Tag = 2 + Left = 629 + Top = 140 + Width = 150 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 25 + end + object orddefstr10: TEdit + Tag = 2 + Left = 97 + Top = 344 + Width = 149 + Height = 20 + TabOrder = 26 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + Top = 265 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 940 + Top = 269 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 1016 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 992 + Top = 340 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 1048 + Top = 289 + end + object PopupMenu1: TPopupMenu + Left = 776 + Top = 336 + object N3: TMenuItem + Caption = #21024#34892 + OnClick = N3Click + end + end + object CDS_CG: TClientDataSet + Aggregates = <> + Params = <> + Left = 1044 + Top = 509 + end + object DataSource2: TDataSource + DataSet = CDS_CG + Left = 960 + Top = 505 + end + object PopupMenu2: TPopupMenu + Left = 740 + Top = 540 + object N9: TMenuItem + Caption = #22686#21152 + end + object N8: TMenuItem + Caption = '-' + end + object N4: TMenuItem + Caption = #22686#34892 + end + object N5: TMenuItem + Caption = #21024#34892 + end + object N6: TMenuItem + Caption = '-' + end + object N7: TMenuItem + Caption = #29983#25104#37319#36141#21333 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 820 + Top = 289 + end +end diff --git a/盛纺贸易管理/U_OrderInPut_CY.pas b/盛纺贸易管理/U_OrderInPut_CY.pas new file mode 100644 index 0000000..4e98bfa --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut_CY.pas @@ -0,0 +1,1143 @@ +unit U_OrderInPut_CY; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxCurrencyEdit, cxPC, Menus, + cxCheckBox, cxGridCustomPopupMenu, cxGridPopupMenu; + +type + TfrmOrderInPut_CY = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + ToolButton3: TToolButton; + cxTabControl2: TcxTabControl; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxTabControl1: TcxTabControl; + v1Column1: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N3: TMenuItem; + CDS_CG: TClientDataSet; + DataSource2: TDataSource; + PopupMenu2: TPopupMenu; + N4: TMenuItem; + N5: TMenuItem; + N6: TMenuItem; + N7: TMenuItem; + N8: TMenuItem; + N9: TMenuItem; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label39: TLabel; + Label25: TLabel; + Label10: TLabel; + Label43: TLabel; + Label14: TLabel; + Label19: TLabel; + Label42: TLabel; + Label2: TLabel; + Label4: TLabel; + CYNO: TEdit; + OrdDate: TDateTimePicker; + OrdDefDate1: TDateTimePicker; + DLYDate: TDateTimePicker; + OrdPerson2: TBtnEditC; + CustomerNoName: TBtnEditC; + MPRTBZNote: TMemo; + MPRTSCTeBieNote: TMemo; + conNO: TEdit; + KHConNO: TEdit; + orderNo: TBtnEditA; + Label5: TLabel; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1SordQty4: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + OrdPerson1: TBtnEditC; + LBNameNote: TMemo; + Label36: TLabel; + MaiTouNote: TMemo; + Label37: TLabel; + Label6: TLabel; + Label7: TLabel; + orddefstr1: TEdit; + orddefstr2: TEdit; + orddefstr3: TEdit; + Label8: TLabel; + conDefstr1: TEdit; + Label13: TLabel; + Label9: TLabel; + Label35: TLabel; + Label11: TLabel; + conDefstr2: TEdit; + ConPerson1: TEdit; + ConPerson2: TEdit; + v1Column2: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + cxGridPopupMenu1: TcxGridPopupMenu; + Label12: TLabel; + Label15: TLabel; + orddefstr5: TEdit; + orddefstr4: TEdit; + orddefstr6: TEdit; + Label16: TLabel; + orddefstr7: TEdit; + Label17: TLabel; + OrdDefDate2: TDateTimePicker; + Label18: TLabel; + orddefstr10: TEdit; + Label20: TLabel; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure RanFactoryBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure YCLFactoryBtnUpClick(Sender: TObject); + procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); + procedure MPRTBZNoteDblClick(Sender: TObject); + procedure MPRTSCTeBieNoteDblClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N3Click(Sender: TObject); + procedure conNoChange(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure orderNoBtnClick(Sender: TObject); + procedure OrdPerson1BtnUpClick(Sender: TObject); + private + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + function YFData():Boolean; + { Private declarations } + public + PState,CopyInt,PriceFlag:Integer; + FMainId,FFMainId,FOrderNo:String; + FXS:Integer; + { Public declarations } + end; + +var + frmOrderInPut_CY: TfrmOrderInPut_CY; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ProductOrderListSel, + U_ZdyAttachment; + +{$R *.dfm} + +function TfrmOrderInPut_CY.YFData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName:String; +begin + Result:=False; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(CDS_CG.fieldbyname('custName').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + CRID:=ADOTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOCmd.fieldbyname('CRID').AsString; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(CDS_CG.fieldbyname('custName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + + + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(CDS_CG.fieldbyname('custName').AsString)+''''); + sql.Add(' and mainID='''+Trim(CDS_CG.fieldbyname('CRNO').AsString)+''''); + // sql.Add(' and subID='''+Trim(ADOQuerySub.fieldbyname('subID').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty then + begin + if GetLSNo(ADOCmd,YFID,'PF','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + end + else + begin + YFID:=Trim(ADOTemp.fieldbyname('YFID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOCmd do + begin + if ADOTemp.IsEmpty then + Append + else + Edit; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(CDS_CG.fieldbyname('mainID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(CDS_CG.fieldbyname('custName').AsString); + FieldByName('CRTime').Value:=CDS_CG.fieldbyname('CRTime').AsDateTime; + FieldByName('Qty').Value:=CDS_CG.fieldbyname('Qty').AsFloat; + FieldByName('PS').Value:=0; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=CDS_CG.fieldbyname('Price').AsFloat; + FieldByName('money').Value:=CDS_CG.fieldbyname('money').AsFloat; + FieldByName('BBmoney').Value:=CDS_CG.fieldbyname('money').AsFloat; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:='RMB'; + FieldByName('ComTaiTou').Value:=Trim(CDS_CG.fieldbyname('custName').AsString); + FieldByName('QtyUnit').Value:=Trim(CDS_CG.fieldbyname('QtyUnit').AsString); + FieldByName('YFName').Value:='ɹ'; + FieldByName('MainId').Value:=Trim(CDS_CG.fieldbyname('CRNO').AsString); + FieldByName('subId').Value:=Trim(CDS_CG.fieldbyname('CRID').AsString); + Post; + end; + + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; + +procedure TfrmOrderInPut_CY.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾ¼AA',Tv1,'ָʾ'); +end; + +procedure TfrmOrderInPut_CY.InitData(); +begin + + + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrderCY_Sub where 1=1 '); + //sql.Add('exec P_View_OrderSub :begdate,:enddate,:WSQl'); + //Parameters.ParamByName('begdate').Value:='2010-10-10'; + // Parameters.ParamByName('enddate').Value:='2050-12-24'; + if PState=1 then + begin + sql.Add(' and MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' and 1<>1'); + end; + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCY_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,Panel1,2); + if PState=0 then + begin + + end else + begin + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + //OrdPerson1.Text:=Trim(DName); + CYNO.Text:=''; + + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + + end; +end; + +procedure TfrmOrderInPut_CY.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin +end; + +procedure TfrmOrderInPut_CY.FormShow(Sender: TObject); +begin + readCxGrid(self.Caption,Tv1,'ָʾ'); + + InitData(); +end; + +function TfrmOrderInPut_CY.SaveData():Boolean; +var + maxno:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'CY','JYOrderCY_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrderCY_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrderCY_Main',Panel1,2); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + FieldByName('status').Value:='0'; + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderCY_Main where CYNO='''+Trim(CYNO.Text)+''''); + Open; + end; + if ADOCmd.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('˵ظ!','ʾ',0); + Exit; + end; + FMainId:=Trim(maxno); + ///ӱ + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'CS','JYOrderCY_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderCY_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrderCY_Sub',0); + FieldByName('orderNO').Value:=Trim(orderNO.Text); + + fieldbyname('PRTOrderQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').AsFloat; + fieldbyname('PRTPrice').Value:=Order_Sub.fieldbyname('PRTPrice').AsFloat; + fieldbyname('PRTmoney').Value:=Order_Sub.fieldbyname('PRTmoney').AsFloat; + fieldbyname('SordQty1').Value:=Order_Sub.fieldbyname('SordQty1').AsFloat; + fieldbyname('SordQty2').Value:=Order_Sub.fieldbyname('SordQty2').AsFloat; + fieldbyname('SordQty3').Value:=Order_Sub.fieldbyname('SordQty3').AsFloat; + fieldbyname('SordQty4').Value:=Order_Sub.fieldbyname('SordQty4').AsFloat; + fieldbyname('SordQty5').Value:=Order_Sub.fieldbyname('SordQty5').AsFloat; + fieldbyname('SordQty6').Value:=Order_Sub.fieldbyname('SordQty6').AsFloat; + FieldByName('PriceUnit').Value:=Trim(Order_Sub.fieldbyname('PriceUnit').AsString); + FieldByName('Sorddefstr10').Value:=Trim(Order_Sub.fieldbyname('Sorddefstr10').AsString); + // FieldByName('PriceUnitRate').Value:=Order_Sub.fieldbyname('PriceUnitRate').AsFloat; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + + + +procedure TfrmOrderInPut_CY.TBSaveClick(Sender: TObject); +begin + OrdDate.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(orddefstr10.Text)='' then + begin + Application.MessageBox('ͻƲΪգ','ʾ',0); + Exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PrtPrice',null,[])=True then + begin + Application.MessageBox('۲Ϊ!','ʾ',0); + Exit; + end; + if Order_Sub.Locate('PrtPrice',0,[])=True then + begin + Application.MessageBox('۲Ϊ!','ʾ',0); + Exit; + end; + if Trim(orddefstr5.Text)='' then + begin + Application.MessageBox('۸ﲻΪ','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + end; +end; + +procedure TfrmOrderInPut_CY.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + // MainType:=Trim(DName); + fnote:=True; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_CY.ToolButton1Click(Sender: TObject); +var + i:Integer; +begin + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪ!','ʾ',0); + Exit; + end; + i:=Order_Sub.RecordCount; + i:=i+1; + CopyAddRow(Tv1,Order_Sub); + with Order_Sub do + begin + Edit; + FieldByName('XHNO').Value:=IntToStr(i); + // FieldByName('SOrddefstr1').Value:=IntToStr(i); + { if i<9 then + FieldByName('SOrddefstr1').Value:='0'+Trim(IntToStr(i)) + else + FieldByName('SOrddefstr1').Value:=Trim(IntToStr(i)); } + FieldByName('PRTColor').Value:=''; + FieldByName('PRTOrderQty').Value:=null; + //FieldByName('PRTPrice').Value:=null; + FieldByName('SOrddefstr4').Value:=null; + FieldByName('SOrddefstr2').Value:=null; + Post; + end; +end; + +procedure TfrmOrderInPut_CY.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + + + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCY_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; + +end; + +procedure TfrmOrderInPut_CY.RanFactoryBtnUpClick(Sender: TObject); +begin + {try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + JGFactoryName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + JGFactoryName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } +end; + +procedure TfrmOrderInPut_CY.CustomerNoNameBtnUpClick(Sender: TObject); +begin + {try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomerNoName'; + flagname:='ͻ'; + if Trim(DParameters1)<>'Ȩ' then + MainType:=Trim(DName); + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + orddefstr10.Text:=Trim(CDS_HZ.fieldbyname('ZDYNameZ').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmOrderInPut_CY.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmOrderInPut_CY.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_CY.v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='۸λ'; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; + + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_CY.YCLFactoryBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + MainType:=TEdit(Sender).Name; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_CY.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +procedure TfrmOrderInPut_CY.MPRTBZNoteDblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; + i:integer; +begin + fsj:=Trim(TMemo(Sender).Hint); + FWZ:=Pos('/',fsj); + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + MPRTBZNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTBZNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPut_CY.MPRTSCTeBieNoteDblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; + i:integer; +begin + fsj:=Trim(TMemo(Sender).Hint); + FWZ:=Pos('/',fsj); + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + MPRTSCTeBieNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTSCTeBieNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +procedure TfrmOrderInPut_CY.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + DlyDate.DateTime:=OrdDate.Date; + OrdDefDate1.DateTime:=OrdDate.Date; + OrdDefDate2.DateTime:=OrdDate.Date; +end; + +procedure TfrmOrderInPut_CY.N1Click(Sender: TObject); +begin + ToolButton1.Click; +end; + +procedure TfrmOrderInPut_CY.N3Click(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmOrderInPut_CY.conNoChange(Sender: TObject); + +var + ConMainId:string; +begin + + +end; + +procedure TfrmOrderInPut_CY.ToolButton4Click(Sender: TObject); +begin + CDS_CG.Append; + CDS_CG.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',date()); + CDS_CG.Post; +end; + +procedure TfrmOrderInPut_CY.ToolButton5Click(Sender: TObject); +begin + IF CDS_CG.IsEmpty then exit; + IF CDS_CG.FieldByName('defBit1').AsBoolean then + begin + if Application.MessageBox('˵ɲɹǷɾɹͲϢ','ʾ',32+4)<>IDYES then Exit; + end; + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete BP_InOut_CF where CRNO='''+Trim(CDS_CG.fieldbyname('CRNO').AsString)+''''); + sql.Add('delete YF_Money_CR where mainID='''+Trim(CDS_CG.fieldbyname('CRNO').AsString)+''''); + ExecSQL; + end; + CDS_CG.Delete; +end; + +procedure TfrmOrderInPut_CY.ToolButton6Click(Sender: TObject); +var + strlist:Tstringlist; + i:integer; + maxno:string; +begin + // strlist:=Tstringlist.Create; + IF (CDS_CG.Locate('ssel',true,[]) and CDS_CG.Locate('defbit1',true,[])) then + begin + if Application.MessageBox('ѡϢвɹɣǷɣ','ʾ',32+4)<>IDYES then exit; + end; + + with CDS_CG do + begin + DisableControls; + first; + while not eof do + begin + if fieldbyname('ssel').AsBoolean then + begin + if trim(fieldbyname('custName').AsString)='' then + begin + Application.MessageBox('ɲɹIJϢӦ̲Ϊգ','ʾϢ',MB_ICONERROR); + EnableControls; + Exit; + end; + // IF strlist.IndexOf(trim(fieldbyname('custName').AsString))<0 then + // strlist.Add(trim(fieldbyname('custName').AsString)); + end; + next; + end; + first; + EnableControls; + end; + ADOCmd.Connection.BeginTrans; + try + + with CDS_CG do + begin + DisableControls; + first; + while not eof do + begin + if fieldbyname('ssel').AsBoolean then + begin + // maxNo:=trim(orderNo.Text)+'-'+CDS_CG.fieldbyname('ID').AsString; + // if trim(fieldbyname('custName').AsString)=trim(strlist.Strings[i]) then + // begin + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('update BP_InOut_CF SET defBit1=1'); + // sql.Add('inoutNO='+quotedstr(trim(orderNo.Text)+'-'+trim(maxno))); + sql.Add('where CRNO='+quotedstr(CDS_CG.fieldbyname('CRNO').AsString)); + execsql; + end; + + IF pos('',trim(CDS_CG.fieldbyname('custName').AsString))<1 then + begin + IF not YFData() then + begin + ADOCmd.Connection.RollbackTrans; + application.MessageBox('Ӧʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + end; + // end; + end; + next;; + end; + first; + EnableControls; + end; + + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('update BP_InOut_CF SET inoutNO=rtrim(B.orderNo)+''-''+cast(A.CRID as varchar) '); + sql.Add('from BP_InOut_CF A'); + sql.Add('inner join JYOrder_main B on B.mainID=A.mainID'); + sql.Add('where A.mainID='+quotedstr(CDS_CG.fieldbyname('mainID').AsString)); + execsql; + end; + with ADOCmd do + begin + close; + sql.Clear; + sql.Add('update BP_InOut_CF SET inoutNO=(select min(inoutNO) from BP_InOut_CF X where X.mainID=BP_InOut_CF.mainID and X.custName=BP_InOut_CF.custName)'); + sql.Add('where mainID='+quotedstr(CDS_CG.fieldbyname('mainID').AsString)); + execsql; + end; + { for i:=0 to strlist.Count-1 do + begin + if GetLSNo(ADOCmd,maxno,'',trim(orderNO.Text),2,0)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + + // i:=i+1; + end; } + ADOCmd.Connection.CommitTrans; + application.MessageBox('ɹɲɹ','ʾϢ'); + InitData(); + except + ADOCmd.Connection.RollbackTrans; + CDS_CG.EnableControls; + application.MessageBox('ɲɹʧܣ','ʾϢ',MB_ICONERROR); + end; +end; + +procedure TfrmOrderInPut_CY.orderNoBtnClick(Sender: TObject); +var + ConMainId:string; +begin + ConMainId:=''; + frmProductOrderListSel:=TfrmProductOrderListSel.create(self); + with frmProductOrderListSel do + begin + FFInt:=1; + if showmodal=1 then + begin + ConMainId:=trim(Order_Main.fieldbyname('mainID').asstring); + end; + free; + end; + iF ConMainId='' then exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6,C.condefstr10,C.priceNote,C.Payment,C.ShippMent from JYOrder_sub A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where B.mainID like '''+'%'+Trim(ConMainId)+'%'+''''); + Open; + end; + IF not ADOTemp.IsEmpty then + begin + ConNo.Text:=Trim(ADOTemp.fieldbyname('ConNo').AsString); + orderNo.Text:=Trim(ADOTemp.fieldbyname('orderNo').AsString); + CYNO.Text:='CY_'+Trim(ADOTemp.fieldbyname('ConNo').AsString); + CustomerNoName.Text:=Trim(ADOTemp.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOTemp.fieldbyname('CustomerNo').AsString); + DLYDate.DateTime:=ADOTemp.fieldbyname('DLYDate').AsDateTime; + // ConMainId:=Trim(ADOTemp.fieldbyname('MainId').AsString); + OrdPerson2.Text:=Trim(ADOTemp.fieldbyname('OrdPerson2').AsString); + KHCONNO.Text:=Trim(ADOTemp.fieldbyname('KHCONNO').AsString); + LBNameNote.Text:=Trim(ADOTemp.fieldbyname('LBNameNote').AsString); + MaiTouNote.Text:=Trim(ADOTemp.fieldbyname('MaiTouNote').AsString); + + ConPerson1.Text:=Trim(ADOTemp.fieldbyname('ConPerson2').AsString); + ConPerson2.Text:=Trim(ADOTemp.fieldbyname('ConPerson3').AsString); + + conDefstr1.Text:=Trim(ADOTemp.fieldbyname('conDefstr2').AsString); + conDefstr2.Text:=Trim(ADOTemp.fieldbyname('conDefstr6').AsString); + + orddefstr4.Text:=Trim(ADOTemp.fieldbyname('Payment').AsString); + orddefstr5.Text:=Trim(ADOTemp.fieldbyname('priceNote').AsString); + orddefstr6.Text:=Trim(ADOTemp.fieldbyname('ShippMent').AsString); + + orddefstr10.Text:=Trim(ADOTemp.fieldbyname('condefstr10').AsString); + end; + Order_Sub.EmptyDataSet; + with ADOTemp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOTemp.fieldbyname('MPRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOTemp.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOTemp.fieldbyname('MPRTspec').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTMF').Value:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); + FieldByName('PRTKZ').Value:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); + FieldByName('Sorddefstr1').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr1').AsString); + FieldByName('Sorddefstr2').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr2').AsString); + FieldByName('Sorddefstr4').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr4').AsString); + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit').AsString); +// FieldByName('PriceUnitRate').Value:=Trim(ADOTemp.fieldbyname('PriceUnitRate').AsString); + // FieldByName('PRTmoney').Value:=Trim(ADOTemp.fieldbyname('PRTmoney').AsString); + FieldByName('SordQty1').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + + FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('subID').AsString); + Post; + end; + Next; + end; + end; + + + +end; + +procedure TfrmOrderInPut_CY.OrdPerson1BtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='OrdDefStr2' then + begin + //flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + end; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='MPRTCode' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrder_Main where MPRTCode='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' order by FillTime desc'); + Open; + end; + end; + end; + end; + finally + frmZDYHelp.Free; + end; + +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPut_FB.dfm b/盛纺贸易管理/U_OrderInPut_FB.dfm new file mode 100644 index 0000000..067d2b7 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut_FB.dfm @@ -0,0 +1,1093 @@ +object frmOrderInPut_FB: TfrmOrderInPut_FB + Left = 188 + Top = 126 + Width = 1153 + Height = 603 + Caption = #21457#31080#32534#36753 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1137 + Height = 35 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxTabControl2: TcxTabControl + Left = 0 + Top = 177 + Width = 1137 + Height = 18 + Align = alTop + LookAndFeel.Kind = lfFlat + LookAndFeel.NativeStyle = False + Style = 9 + TabIndex = 0 + TabOrder = 1 + Tabs.Strings = ( + #20135#21697#20449#24687) + ClientRectBottom = 19 + ClientRectRight = 1137 + ClientRectTop = 19 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 224 + Width = 1137 + Height = 273 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Prtmoney + end + item + Kind = skSum + Column = v1Column10 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNO' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1Column5: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column6: TcxGridDBColumn + Caption = #20135#21697#35268#26684 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column2: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + Width = 84 + end + object v1Column10: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SordQty2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column7: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SordQty1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column7PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1OrderUnitPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column4: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'priceUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column4PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column8: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PrtPrice' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DecimalPlaces = 4 + Properties.DisplayFormat = '0.####;-0.####' + Properties.OnEditValueChanged = v1Column8PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Prtmoney: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'Prtmoney' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.00;-0.00' + Properties.OnEditValueChanged = v1PrtmoneyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 70 + end + object v1SOrdDefNote1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 137 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 195 + Width = 1137 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #19968#38190#26367#25442 + ImageIndex = 104 + Visible = False + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 35 + Width = 1137 + Height = 18 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 4 + Tabs.Strings = ( + #20027#35201#20449#24687) + ClientRectBottom = 19 + ClientRectRight = 1137 + ClientRectTop = 19 + end + object Panel1: TPanel + Left = 0 + Top = 53 + Width = 1137 + Height = 124 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object Label1: TLabel + Left = 31 + Top = 15 + Width = 66 + Height = 12 + Caption = #21457' '#31080' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 291 + Top = 19 + Width = 65 + Height = 12 + Caption = #21046#21333#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 299 + Top = 247 + Width = 66 + Height = 12 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label43: TLabel + Left = 291 + Top = 44 + Width = 66 + Height = 12 + Caption = #19994' '#21153' '#21592#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 31 + Top = 39 + Width = 67 + Height = 12 + Caption = #23458' '#25143#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 31 + Top = 324 + Width = 65 + Height = 12 + Caption = #27880#24847#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label42: TLabel + Left = 31 + Top = 388 + Width = 65 + Height = 12 + Caption = #29983#20135#25552#31034#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label2: TLabel + Left = 39 + Top = 247 + Width = 65 + Height = 12 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label5: TLabel + Left = 571 + Top = 251 + Width = 34 + Height = 12 + Caption = 'PO#'#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label7: TLabel + Left = 559 + Top = 48 + Width = 65 + Height = 12 + Caption = #23458#25143#31616#31216#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 291 + Top = 278 + Width = 91 + Height = 12 + Caption = #25910#36135#20844#21496#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 31 + Top = 276 + Width = 66 + Height = 12 + Caption = #25910' '#36135' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label35: TLabel + Left = 31 + Top = 300 + Width = 66 + Height = 12 + Caption = #36890' '#30693' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 291 + Top = 302 + Width = 91 + Height = 12 + Caption = #36890#30693#20844#21496#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 559 + Top = 73 + Width = 65 + Height = 12 + Caption = #20215#26684#26415#35821#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 291 + Top = 64 + Width = 65 + Height = 12 + Caption = #20184#27454#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 31 + Top = 62 + Width = 65 + Height = 12 + Caption = #20986#36816#26041#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 31 + Top = 88 + Width = 65 + Height = 12 + Caption = #21457#31080#26684#24335#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 575 + Top = 219 + Width = 65 + Height = 12 + Caption = #20986#36816#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label4: TLabel + Left = 23 + Top = 240 + Width = 65 + Height = 12 + Caption = #38134#34892#36134#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label6: TLabel + Left = 363 + Top = 188 + Width = 66 + Height = 12 + Caption = #24320' '#25143' '#34892#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 287 + Top = 192 + Width = 65 + Height = 12 + Caption = #38134#34892#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label28: TLabel + Left = 23 + Top = 215 + Width = 65 + Height = 12 + Caption = #38134#34892#20195#30721#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label8: TLabel + Left = 291 + Top = 88 + Width = 65 + Height = 12 + Caption = #21040#27454#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 283 + Top = 216 + Width = 66 + Height = 12 + Caption = #21551' '#29992' '#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label22: TLabel + Left = 547 + Top = 200 + Width = 66 + Height = 12 + Caption = #30446' '#30340' '#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label37: TLabel + Left = 862 + Top = 292 + Width = 13 + Height = 84 + Caption = #21787#13#10#13#10#22836#13#10#13#10#20869#13#10#13#10#23481 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 559 + Top = 20 + Width = 65 + Height = 12 + Caption = #21457#31080#31867#22411#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object invoiceNo: TEdit + Tag = 2 + Left = 97 + Top = 12 + Width = 150 + Height = 20 + TabOrder = 0 + end + object OrdDate: TDateTimePicker + Tag = 2 + Left = 357 + Top = 15 + Width = 150 + Height = 20 + BevelInner = bvNone + Date = 40916.670856296290000000 + Format = 'yyyy-MM-dd' + Time = 40916.670856296290000000 + TabOrder = 1 + end + object OrdPerson2: TBtnEditC + Tag = 2 + Left = 357 + Top = 40 + Width = 150 + Height = 20 + Hint = 'OrdPerson2/'#19994#21153#21592 + TabOrder = 2 + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object CustomerNoName: TBtnEditC + Tag = 2 + Left = 97 + Top = 36 + Width = 150 + Height = 20 + Hint = 'CustomerNo' + ReadOnly = True + TabOrder = 3 + OnBtnUpClick = CustomerNoNameBtnUpClick + OnBtnDnClick = CustomerNoNameBtnDnClick + end + object MPRTBZNote: TMemo + Tag = 2 + Left = 97 + Top = 324 + Width = 681 + Height = 57 + Hint = 'MPRTBZNote/'#21253#35013#35201#27714 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ScrollBars = ssVertical + TabOrder = 4 + OnDblClick = MPRTBZNoteDblClick + end + object MPRTSCTeBieNote: TMemo + Tag = 2 + Left = 93 + Top = 387 + Width = 681 + Height = 57 + Hint = 'MPRTSCTeBieNote/'#29983#20135#29305#21035#25552#31034 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ScrollBars = ssVertical + TabOrder = 5 + Visible = False + OnDblClick = MPRTSCTeBieNoteDblClick + end + object conNO: TEdit + Tag = 2 + Left = 365 + Top = 243 + Width = 149 + Height = 20 + TabOrder = 6 + Visible = False + end + object KHConNO: TEdit + Tag = 2 + Left = 637 + Top = 244 + Width = 149 + Height = 20 + TabOrder = 7 + Visible = False + end + object orderNo: TBtnEditA + Tag = 2 + Left = 105 + Top = 243 + Width = 149 + Height = 20 + TabOrder = 8 + Visible = False + OnBtnClick = orderNoBtnClick + end + object orddefstr10: TEdit + Tag = 2 + Left = 625 + Top = 44 + Width = 149 + Height = 20 + Enabled = False + TabOrder = 9 + end + object conDefstr1: TEdit + Tag = 2 + Left = 378 + Top = 271 + Width = 399 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 10 + end + object conDefstr2: TEdit + Tag = 2 + Left = 378 + Top = 295 + Width = 399 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 11 + end + object ConPerson1: TEdit + Tag = 2 + Left = 97 + Top = 272 + Width = 149 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 12 + end + object ConPerson2: TEdit + Tag = 2 + Left = 97 + Top = 296 + Width = 149 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 13 + end + object orddefstr5: TEdit + Tag = 2 + Left = 625 + Top = 68 + Width = 149 + Height = 20 + TabOrder = 14 + end + object orddefstr4: TEdit + Tag = 2 + Left = 357 + Top = 60 + Width = 149 + Height = 20 + TabOrder = 15 + end + object orddefstr6: TEdit + Tag = 2 + Left = 97 + Top = 60 + Width = 149 + Height = 20 + TabOrder = 16 + end + object orddefstr7: TEdit + Tag = 2 + Left = 97 + Top = 84 + Width = 149 + Height = 20 + TabOrder = 17 + end + object CYNO: TBtnEditA + Tag = 2 + Left = 633 + Top = 211 + Width = 149 + Height = 20 + TabOrder = 18 + Visible = False + OnBtnClick = CYNOBtnClick + end + object OrdDefStr9: TEdit + Tag = 2 + Left = 413 + Top = 184 + Width = 149 + Height = 20 + TabOrder = 19 + end + object OrdDefStr8: TBtnEditA + Tag = 2 + Left = 89 + Top = 236 + Width = 150 + Height = 20 + TabOrder = 20 + Visible = False + OnBtnClick = OrdDefStr8BtnClick + end + object OrdDefStr12: TEdit + Tag = 2 + Left = 785 + Top = 176 + Width = 421 + Height = 20 + TabOrder = 21 + Visible = False + end + object OrdDefStr11: TEdit + Tag = 2 + Left = 89 + Top = 211 + Width = 148 + Height = 20 + TabOrder = 22 + Visible = False + end + object MPRTTYpe: TEdit + Left = 1182 + Top = 149 + Width = 121 + Height = 20 + TabOrder = 23 + Visible = False + end + object OrdDefDate1: TDateTimePicker + Tag = 2 + Left = 357 + Top = 84 + Width = 150 + Height = 20 + BevelInner = bvNone + Date = 0.670856296288548100 + Format = 'yyyy-MM-dd' + Time = 0.670856296288548100 + TabOrder = 24 + end + object OrdDefStr13: TEdit + Tag = 2 + Left = 361 + Top = 212 + Width = 149 + Height = 20 + TabOrder = 25 + end + object OrdDefStr14: TEdit + Tag = 2 + Left = 621 + Top = 188 + Width = 149 + Height = 20 + TabOrder = 26 + Visible = False + end + object orddefstr3: TMemo + Tag = 2 + Left = 885 + Top = 232 + Width = 152 + Height = 150 + TabOrder = 27 + end + object Orddefstr15: TComboBox + Tag = 2 + Left = 625 + Top = 16 + Width = 148 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 2 + TabOrder = 28 + Text = #22806#38144 + Items.Strings = ( + '' + #20869#38144 + #22806#38144) + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 903 + Top = 327 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 859 + Top = 330 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 1016 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 992 + Top = 340 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 941 + Top = 330 + end + object PopupMenu1: TPopupMenu + Left = 776 + Top = 336 + object N3: TMenuItem + Caption = #21024#34892 + OnClick = N3Click + end + end + object CDS_CG: TClientDataSet + Aggregates = <> + Params = <> + Left = 1044 + Top = 509 + end + object DataSource2: TDataSource + DataSet = CDS_CG + Left = 960 + Top = 505 + end + object PopupMenu2: TPopupMenu + Left = 740 + Top = 540 + object N9: TMenuItem + Caption = #22686#21152 + end + object N8: TMenuItem + Caption = '-' + end + object N4: TMenuItem + Caption = #22686#34892 + end + object N5: TMenuItem + Caption = #21024#34892 + end + object N6: TMenuItem + Caption = '-' + end + object N7: TMenuItem + Caption = #29983#25104#37319#36141#21333 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 820 + Top = 329 + end +end diff --git a/盛纺贸易管理/U_OrderInPut_FB.pas b/盛纺贸易管理/U_OrderInPut_FB.pas new file mode 100644 index 0000000..7c578f3 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut_FB.pas @@ -0,0 +1,1445 @@ +unit U_OrderInPut_FB; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxCurrencyEdit, cxPC, Menus, + cxCheckBox, cxGridCustomPopupMenu, cxGridPopupMenu; + +type + TfrmOrderInPut_FB = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + ADOQuery1: TADOQuery; + ToolButton3: TToolButton; + cxTabControl2: TcxTabControl; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxTabControl1: TcxTabControl; + v1SOrdDefNote1: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N3: TMenuItem; + CDS_CG: TClientDataSet; + DataSource2: TDataSource; + PopupMenu2: TPopupMenu; + N4: TMenuItem; + N5: TMenuItem; + N6: TMenuItem; + N7: TMenuItem; + N8: TMenuItem; + N9: TMenuItem; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label10: TLabel; + Label43: TLabel; + Label14: TLabel; + Label19: TLabel; + Label42: TLabel; + Label2: TLabel; + invoiceNo: TEdit; + OrdDate: TDateTimePicker; + OrdPerson2: TBtnEditC; + CustomerNoName: TBtnEditC; + MPRTBZNote: TMemo; + MPRTSCTeBieNote: TMemo; + conNO: TEdit; + KHConNO: TEdit; + orderNo: TBtnEditA; + Label5: TLabel; + v1Column3: TcxGridDBColumn; + Label7: TLabel; + orddefstr10: TEdit; + conDefstr1: TEdit; + Label13: TLabel; + Label9: TLabel; + Label35: TLabel; + Label11: TLabel; + conDefstr2: TEdit; + ConPerson1: TEdit; + ConPerson2: TEdit; + v1Column2: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + cxGridPopupMenu1: TcxGridPopupMenu; + Label12: TLabel; + Label15: TLabel; + orddefstr5: TEdit; + orddefstr4: TEdit; + orddefstr6: TEdit; + Label16: TLabel; + orddefstr7: TEdit; + Label17: TLabel; + Label20: TLabel; + CYNO: TBtnEditA; + v1Prtmoney: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + Label4: TLabel; + Label6: TLabel; + OrdDefStr9: TEdit; + OrdDefStr8: TBtnEditA; + Label21: TLabel; + Label28: TLabel; + OrdDefStr12: TEdit; + OrdDefStr11: TEdit; + MPRTTYpe: TEdit; + Label8: TLabel; + OrdDefDate1: TDateTimePicker; + Label18: TLabel; + OrdDefStr13: TEdit; + Label22: TLabel; + OrdDefStr14: TEdit; + orddefstr3: TMemo; + Label37: TLabel; + Label23: TLabel; + Orddefstr15: TComboBox; + v1Column1: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure RanFactoryBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnUpClick(Sender: TObject); + procedure CustomerNoNameBtnDnClick(Sender: TObject); + procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure YCLFactoryBtnUpClick(Sender: TObject); + procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); + procedure MPRTBZNoteDblClick(Sender: TObject); + procedure MPRTSCTeBieNoteDblClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N3Click(Sender: TObject); + procedure conNoChange(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure orderNoBtnClick(Sender: TObject); + procedure OrdPerson1BtnUpClick(Sender: TObject); + procedure v1Column4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column7PropertiesEditValueChanged(Sender: TObject); + procedure v1PrtmoneyPropertiesEditValueChanged(Sender: TObject); + procedure CYNOBtnClick(Sender: TObject); + procedure v1Column8PropertiesEditValueChanged(Sender: TObject); + procedure OrdDefStr8BtnClick(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + procedure InitData(); + procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); + function SaveData():Boolean; + function YSData():Boolean; + { Private declarations } + public + PState,CopyInt,PriceFlag:Integer; + FMainId,FFMainId,FOrderNo,ftype:String; + FXS:Integer; + { Public declarations } + end; + +var + frmOrderInPut_FB: TfrmOrderInPut_FB; + newh:hwnd; +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ProductOrderListSel,U_ProductOrderNewList_CY_SEL, + U_ZdyAttachment; + +{$R *.dfm} + +function TfrmOrderInPut_FB.YSData():Boolean; +var + CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName:String; +begin + Result:=False; + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='+quotedstr(Trim(CustomerNoName.Text))); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + CRID:=ADOTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOCmd.fieldbyname('CRID').AsString; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(CustomerNoName.Text); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='+quotedstr(Trim(CustomerNoName.Text))); + sql.Add(' and mainID='''+Trim(Order_Sub.fieldbyname('mainID').AsString)+''''); + sql.Add(' and subID='''+Trim(Order_Sub.fieldbyname('subID').AsString)+''''); + Open; + end; + if ADOTemp.IsEmpty then + begin + if GetLSNo(ADOCmd,YFID,'YS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + end + else + begin + YFID:=Trim(ADOTemp.fieldbyname('YFID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOCmd do + begin + if ADOTemp.IsEmpty then + Append + else + Edit; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Sub.fieldbyname('mainID').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(CustomerNoName.Text); + FieldByName('CRTime').Value:=OrdDate.Date; + FieldByName('Qty').Value:=Order_Sub.fieldbyname('SordQty1').AsFloat; + FieldByName('PS').Value:=Order_Sub.fieldbyname('SordQty2').AsFloat; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=Order_Sub.fieldbyname('prtPrice').AsFloat; + FieldByName('money').Value:=Order_Sub.fieldbyname('prtmoney').AsFloat; + FieldByName('BBmoney').Value:=Order_Sub.fieldbyname('prtmoney').AsFloat; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=Order_Sub.fieldbyname('priceUnit').AsString; + FieldByName('ComTaiTou').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Sub.fieldbyname('OrderUnit').AsString); + FieldByName('YFName').Value:='۽'; + FieldByName('MainId').Value:=Trim(Order_Sub.fieldbyname('MainId').AsString); + FieldByName('subId').Value:=Trim(Order_Sub.fieldbyname('subId').AsString); + FieldByName('orderNO').Value:=Trim(Order_Sub.fieldbyname('orderNO').AsString); + FieldByName('P_CodeName').Value:=Trim(Order_Sub.fieldbyname('prtCodeName').AsString); + FieldByName('P_Spec').Value:=Trim(Order_Sub.fieldbyname('prtspec').AsString); + FieldByName('status').Value:='0'; + Post; + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; + +procedure TfrmOrderInPut_FB.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾ¼AA',Tv1,'ָʾ'); +end; + +procedure TfrmOrderInPut_FB.InitData(); +begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add(' select * from JYOrderFB_Sub where 1=1 '); + if PState=1 then + begin + sql.Add(' and MainId='''+Trim(FMainId)+''''); + end; + if PState=0 then + begin + sql.Add(' and 1<>1'); + end; + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderFB_Main A '); + SQL.ADD('where MainId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,Panel1,2); + if PState=0 then + begin + // invoiceNO.Text:='Զ'; + end else + begin + Orddefstr15.Enabled:=false; + end; + if CopyInt=99 then + begin + PState:=0; + FMainId:=''; + // invoiceNO.Text:='Զ'; + Orddefstr15.Enabled:=true; + with Order_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('MainId').Value:=''; + FieldByName('SubId').Value:=''; + Post; + Next; + end; + end; + end; +end; + +procedure TfrmOrderInPut_FB.ZDYHelp(FButn:TcxButtonEdit;LType:string); +var + FType,ZDYName,FText:String; +begin +end; + +procedure TfrmOrderInPut_FB.FormShow(Sender: TObject); +begin + readCxGrid(self.Caption,Tv1,'ָʾ'); + InitData(); +end; + +function TfrmOrderInPut_FB.SaveData():Boolean; +var + maxno,finvoiceNO,fmxType:String; +begin + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'FM','JYOrderFB_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + { with ADOTemp do + begin + close; + sql.Clear; + sql.Add('exec P_Get_MaxInvoiceNo '); + sql.Add(' @MPRTType='''+trim(Ftype)+''' '); + open; + end; + IF trim(ADOTemp.FieldByName('maxStr').AsString)='XXX' then + begin + fmxType:=uppercase(formatdateTime('yy',DServerDate)); + IF trim(Orddefstr15.Text)='' then + fmxType:='Q'+fmxType; + if GetLSNo(ADOCmd,finvoiceNO,fmxType,'JYOrderCon_Main',3,0)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end + else + finvoiceNO:=trim(ADOTemp.FieldByName('maxStr').AsString); + + if trim(Orddefstr15.Text)='' then + finvoiceNO:=Trim(finvoiceNO)+trim(orddefstr10.Text) + else + finvoiceNO:='K'+Trim(finvoiceNO)+trim(orddefstr10.Text); + invoiceNO.Text:=uppercase(finvoiceNO); } + { IF trim(Orddefstr15.Text)='' then + fmxType:='Q'+trim(orddefstr10.Text)+uppercase(formatdateTime('yy',DServerDate)) + else + fmxType:='K'+trim(orddefstr10.Text)+uppercase(formatdateTime('yy',DServerDate)); + if GetLSNo(ADOCmd,finvoiceNO,fmxType,'JYOrderCon_Main',3,0)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + invoiceNO.Text:=uppercase(finvoiceNO); } + end + else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrderFB_Main where MainId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('MainId').Value:=Trim(maxno); + SSetsaveSqlNew(ADOCmd,'JYOrderFB_Main',Panel1,2); + FieldByName('OrdDefStr15').Value:=Trim(Orddefstr15.Text); + FieldByName('status').Value:='0'; + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + Post; + end; + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderFB_Main where INVoiceNO='''+Trim(INVoiceNO.Text)+''''); + Open; + end; + if ADOCmd.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('˵ظ!','ʾ',0); + Exit; + end; + FMainId:=Trim(maxno); + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('delete from JYOrderFB_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add('delete from YF_Money_CR where MainId='''+Trim(FMainId)+''''); + execsql; + end; + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'FS','JYOrderFB_Sub',4,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderFB_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(maxno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrderFB_Sub',0); + // FieldByName('orderNO').Value:=Trim(orderNO.Text); + fieldbyname('PRTOrderQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').AsFloat; + fieldbyname('PRTPrice').Value:=Order_Sub.fieldbyname('PRTPrice').AsFloat; + fieldbyname('PRTmoney').Value:=Order_Sub.fieldbyname('PRTmoney').AsFloat; + fieldbyname('SordQty1').Value:=Order_Sub.fieldbyname('SordQty1').AsFloat; + fieldbyname('SordQty2').Value:=Order_Sub.fieldbyname('SordQty2').AsFloat; + fieldbyname('SordQty3').Value:=Order_Sub.fieldbyname('SordQty3').AsFloat; + fieldbyname('SordQty4').Value:=Order_Sub.fieldbyname('SordQty4').AsFloat; + fieldbyname('SordQty5').Value:=Order_Sub.fieldbyname('SordQty5').AsFloat; + fieldbyname('SordQty6').Value:=Order_Sub.fieldbyname('SordQty6').AsFloat; + fieldbyname('SordQty7').Value:=Order_Sub.fieldbyname('SordQty7').AsFloat; + FieldByName('PriceUnit').Value:=Trim(Order_Sub.fieldbyname('PriceUnit').AsString); + FieldByName('Sorddefstr10').Value:=Trim(Order_Sub.fieldbyname('Sorddefstr10').AsString); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('mainID').Value:=Trim(FMainId); + Order_Sub.FieldByName('SubId').Value:=Trim(maxno); + IF not YSdata() then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧտʧ!','ʾ',0); + Exit; + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + + + +procedure TfrmOrderInPut_FB.TBSaveClick(Sender: TObject); +begin + OrdDate.SetFocus; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + if trim(orddefstr10.Text)='' then + begin + application.MessageBox('ͻƲΪ','ʾ',0); + exit; + end; + + if order_Sub.Locate('PrtCodeName',null,[])=True then + begin + application.MessageBox('ƷƲΪ','ʾ',0); + exit; + end; + if trim(Orddefstr15.Text)='' then + begin + application.MessageBox('ƱͲΪ','ʾ',0); + exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; + ModalResult:=1; +end; + +procedure TfrmOrderInPut_FB.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrdColor'; + flagname:='ɫ'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_FB.ToolButton1Click(Sender: TObject); +var + i:Integer; + priceUnit:string; +begin + frmProductOrderListSel:=TfrmProductOrderListSel.create(self); + with frmProductOrderListSel do + begin + // FFInt:=1; + if showmodal=1 then + begin + Order_Main.DisableControls; + Order_Main.First; + while not Order_Main.Eof do + begin + IF Order_Main.fieldbyname('ssel').AsBoolean then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6,C.condefstr10,C.priceNote,C.Payment,C.ShippMent, '); + sql.Add('PriceUnit1=(select top 1 PriceUnit from JYordercon_sub X where X.mainID=C.mainid)'); + sql.Add('from JYOrder_sub A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where A.subID like '''+'%'+Trim(Order_Main.fieldbyname('subID').AsString)+'%'+''''); + Open; + end; + with ADOTemp do + begin + First; + Order_Sub.Last; + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Order_Sub.RecNo; + FieldByName('OrderNO').Value:=Trim(ADOTemp.fieldbyname('OrderNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOTemp.fieldbyname('MPRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOTemp.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOTemp.fieldbyname('MPRTspec').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTMF').Value:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); + FieldByName('PRTKZ').Value:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); + FieldByName('Sorddefstr1').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr1').AsString); + FieldByName('Sorddefstr2').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr2').AsString); + FieldByName('Sorddefstr4').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr4').AsString); + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:='USD'; +// FieldByName('PriceUnitRate').Value:=Trim(ADOTemp.fieldbyname('PriceUnitRate').AsString); + // FieldByName('PRTmoney').Value:=Trim(ADOTemp.fieldbyname('PRTmoney').AsString); + // FieldByName('SordQty1').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + + FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('subID').AsString); + Post; + end; + end; + end; + Order_Main.Next; + end; + Order_Sub.EnableControls; + end; + Order_Main.EnableControls; + free; + end; + // + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmOrderInPut_FB.ToolButton2Click(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + + +{ if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCY_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; } + Order_Sub.Delete; + +end; + +procedure TfrmOrderInPut_FB.RanFactoryBtnUpClick(Sender: TObject); +begin + {try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='RKPlace'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + JGFactoryName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + JGFactoryName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; } +end; + +procedure TfrmOrderInPut_FB.CustomerNoNameBtnUpClick(Sender: TObject); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomerNoName'; + flagname:='ͻ'; + if Trim(DParameters1)<>'Ȩ' then + MainType:=Trim(DName); + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end;} + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + CustomerNoName.TxtCode:=Trim(CDS_HZ.fieldbyname('ZDYCode').AsString); + ordPerson2.Text:=trim(CDS_HZ.fieldbyname('DEFstr5').AsString); + orddefstr10.Text:=Trim(CDS_HZ.fieldbyname('ZDYNameZ').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmOrderInPut_FB.CustomerNoNameBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmOrderInPut_FB.v1OrderUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_FB.v1PriceUnitPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='۸λ'; + if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; + + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_FB.YCLFactoryBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + MainType:=TEdit(Sender).Name; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_FB.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +procedure TfrmOrderInPut_FB.MPRTBZNoteDblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; + i:integer; +begin + fsj:=Trim(TMemo(Sender).Hint); + FWZ:=Pos('/',fsj); + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + MPRTBZNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTBZNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmOrderInPut_FB.MPRTSCTeBieNoteDblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; + i:integer; +begin + fsj:=Trim(TMemo(Sender).Hint); + FWZ:=Pos('/',fsj); + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + MPRTSCTeBieNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTSCTeBieNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + + +procedure TfrmOrderInPut_FB.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; + OrdDate.DateTime:=SGetServerDateTime(ADOTemp); + OrdDefDate1.DateTime:=SGetServerDateTime(ADOTemp); + // DlyDate.DateTime:=OrdDate.Date; + // OrdDefDate1.DateTime:=OrdDate.Date; + // OrdDefDate2.DateTime:=OrdDate.Date; + +end; + +procedure TfrmOrderInPut_FB.N1Click(Sender: TObject); +begin + ToolButton1.Click; +end; + +procedure TfrmOrderInPut_FB.N3Click(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmOrderInPut_FB.conNoChange(Sender: TObject); + +var + ConMainId:string; +begin + + +end; + +procedure TfrmOrderInPut_FB.ToolButton4Click(Sender: TObject); +begin + CDS_CG.Append; + CDS_CG.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',date()); + CDS_CG.Post; +end; + +procedure TfrmOrderInPut_FB.ToolButton5Click(Sender: TObject); +begin + IF CDS_CG.IsEmpty then exit; + IF CDS_CG.FieldByName('defBit1').AsBoolean then + begin + if Application.MessageBox('˵ɲɹǷɾɹͲϢ','ʾ',32+4)<>IDYES then Exit; + end; + + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete BP_InOut_CF where CRNO='''+Trim(CDS_CG.fieldbyname('CRNO').AsString)+''''); + sql.Add('delete YF_Money_CR where mainID='''+Trim(CDS_CG.fieldbyname('CRNO').AsString)+''''); + ExecSQL; + end; + CDS_CG.Delete; +end; + +procedure TfrmOrderInPut_FB.orderNoBtnClick(Sender: TObject); +var + ConMainId:string; +begin + ConMainId:=''; + frmProductOrderListSel:=TfrmProductOrderListSel.create(self); + with frmProductOrderListSel do + begin + FFInt:=1; + if showmodal=1 then + begin + ConMainId:=trim(Order_Main.fieldbyname('mainID').asstring); + end; + free; + end; + iF ConMainId='' then exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6,C.condefstr10,C.priceNote,C.Payment,C.ShippMent, '); + sql.Add('PriceUnit1=(select top 1 PriceUnit from JYordercon_sub X where X.mainID=C.mainid)'); + sql.Add('from JYOrder_sub A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where B.mainID like '''+'%'+Trim(ConMainId)+'%'+''''); + Open; + end; + IF not ADOTemp.IsEmpty then + begin + ConNo.Text:=Trim(ADOTemp.fieldbyname('ConNo').AsString); + orderNo.Text:=Trim(ADOTemp.fieldbyname('orderNo').AsString); + // CYNO.Text:='CY_'+Trim(ADOTemp.fieldbyname('ConNo').AsString); + CustomerNoName.Text:=Trim(ADOTemp.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOTemp.fieldbyname('CustomerNo').AsString); + // DLYDate.DateTime:=ADOTemp.fieldbyname('DLYDate').AsDateTime; + // ConMainId:=Trim(ADOTemp.fieldbyname('MainId').AsString); + OrdPerson2.Text:=Trim(ADOTemp.fieldbyname('OrdPerson2').AsString); + KHCONNO.Text:=Trim(ADOTemp.fieldbyname('KHCONNO').AsString); + // LBNameNote.Text:=Trim(ADOTemp.fieldbyname('LBNameNote').AsString); + // MaiTouNote.Text:=Trim(ADOTemp.fieldbyname('MaiTouNote').AsString); + + ConPerson1.Text:=Trim(ADOTemp.fieldbyname('ConPerson2').AsString); + ConPerson2.Text:=Trim(ADOTemp.fieldbyname('ConPerson3').AsString); + + conDefstr1.Text:=Trim(ADOTemp.fieldbyname('conDefstr2').AsString); + conDefstr2.Text:=Trim(ADOTemp.fieldbyname('conDefstr6').AsString); + + orddefstr4.Text:=Trim(ADOTemp.fieldbyname('Payment').AsString); + orddefstr5.Text:=Trim(ADOTemp.fieldbyname('priceNote').AsString); + orddefstr6.Text:=Trim(ADOTemp.fieldbyname('ShippMent').AsString); + orddefstr10.Text:=Trim(ADOTemp.fieldbyname('condefstr10').AsString); + end; + Order_Sub.EmptyDataSet; + with ADOTemp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOTemp.fieldbyname('MPRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOTemp.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOTemp.fieldbyname('MPRTspec').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTMF').Value:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); + FieldByName('PRTKZ').Value:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); + FieldByName('Sorddefstr1').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr1').AsString); + FieldByName('Sorddefstr2').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr2').AsString); + FieldByName('Sorddefstr4').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr4').AsString); + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit1').AsString); +// FieldByName('PriceUnitRate').Value:=Trim(ADOTemp.fieldbyname('PriceUnitRate').AsString); + // FieldByName('PRTmoney').Value:=Trim(ADOTemp.fieldbyname('PRTmoney').AsString); + FieldByName('SordQty1').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + + FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('subID').AsString); + Post; + end; + Next; + end; + end; + + + +end; + +procedure TfrmOrderInPut_FB.OrdPerson1BtnUpClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if Trim(flag)='OrdDefStr2' then + begin + //flag:='OrdDefStr2'; + V1Name.Caption:=''; + V1Note.Caption:='Ӣ'; + fnote:=True; + end; + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + if Trim(flag)='MPRTCode' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrder_Main where MPRTCode='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' order by FillTime desc'); + Open; + end; + end; + end; + end; + finally + frmZDYHelp.Free; + end; + +end; + +procedure TfrmOrderInPut_FB.v1Column4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BZType'; + flagname:=''; + { if Trim(DParameters1)<>'Ȩ' then + begin + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end;} + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_FB.v1Column7PropertiesEditValueChanged( + Sender: TObject); +var + Fieldname:string; +begin + Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with Order_Sub do + begin + edit; + if Trim(TcxTextEdit(Sender).EditingText)='' then + begin + fieldbyname(Fieldname).Value:='0'; + end + else + fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; + FieldByName('PrtMoney').Value:=strtofloat(format('%.2f',[Fieldbyname('SordQty1').AsFloat*Fieldbyname('PrtPrice').AsFloat ])); + post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmOrderInPut_FB.v1PrtmoneyPropertiesEditValueChanged( + Sender: TObject); +var + Fieldname:string; +begin + Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with Order_Sub do + begin + edit; + if Trim(TcxTextEdit(Sender).EditingText)='' then + begin + fieldbyname(Fieldname).Value:='0'; + end + else + fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; + IF Fieldbyname('SordQty1').AsFloat>0 then + FieldByName('PrtPrice').Value:=(Fieldbyname('PrtMoney').AsFloat/Fieldbyname('SordQty1').AsFloat); + post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmOrderInPut_FB.CYNOBtnClick(Sender: TObject); +var + ConMainId:string; +begin + ConMainId:=''; + frmProductOrderNewList_CY_SEL:=TfrmProductOrderNewList_CY_SEL.create(self); + with frmProductOrderNewList_CY_SEL do + begin + FFInt:=1; + if showmodal=1 then + begin + ConMainId:=trim(Order_Main.fieldbyname('mainID').asstring); + end; + free; + end; + iF ConMainId='' then exit; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6,C.condefstr10,C.priceNote,C.Payment,C.ShippMent, '); + sql.Add('C.BankNo,C.BankName,C.BankSelfFastNo,C.BankAddress,C.MPRTTYpe,'); + sql.Add('PriceUnit1=(select top 1 PriceUnit from JYordercon_sub X where X.mainID=C.mainid) '); + sql.Add('from JYOrderCY_sub A '); + sql.Add('inner join JYOrderCY_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where B.mainID like '''+'%'+Trim(ConMainId)+'%'+''''); + Open; + end; + IF not ADOTemp.IsEmpty then + begin + ConNo.Text:=Trim(ADOTemp.fieldbyname('ConNo').AsString); + orderNo.Text:=Trim(ADOTemp.fieldbyname('orderNo').AsString); + CYNO.Text:=Trim(ADOTemp.fieldbyname('CYNO').AsString); + CustomerNoName.Text:=Trim(ADOTemp.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOTemp.fieldbyname('CustomerNo').AsString); + OrdPerson2.Text:=Trim(ADOTemp.fieldbyname('OrdPerson2').AsString); + KHCONNO.Text:=Trim(ADOTemp.fieldbyname('KHCONNO').AsString); + ConPerson1.Text:=Trim(ADOTemp.fieldbyname('ConPerson1').AsString); + ConPerson2.Text:=Trim(ADOTemp.fieldbyname('ConPerson2').AsString); + conDefstr1.Text:=Trim(ADOTemp.fieldbyname('conDefstr1').AsString); + conDefstr2.Text:=Trim(ADOTemp.fieldbyname('conDefstr2').AsString); + + orddefstr3.Text:=Trim(ADOTemp.fieldbyname('MaiTouNote').AsString); + orddefstr4.Text:=Trim(ADOTemp.fieldbyname('orddefstr4').AsString); + orddefstr5.Text:=Trim(ADOTemp.fieldbyname('orddefstr5').AsString); + + orddefstr6.Text:=Trim(ADOTemp.fieldbyname('orddefstr6').AsString); + OrdDefStr8.Text:=Trim(ADOTemp.Fieldbyname('BankNo').AsString); + OrdDefStr9.text:=Trim(ADOTemp.fieldbyname('BankName').AsString); + orddefstr10.Text:=Trim(ADOTemp.fieldbyname('condefstr10').AsString); + OrdDefStr11.Text:=Trim(ADOTemp.Fieldbyname('BankSelfFastNo').AsString); + OrdDefStr12.text:=Trim(ADOTemp.fieldbyname('BankAddress').AsString); + if Trim(ADOTemp.fieldbyname('MPRTTYpe').AsString)='' then + begin + MPRTTYpe.Text:=''; + end + else + MPRTTYpe.Text:=Trim(ADOTemp.fieldbyname('MPRTTYpe').AsString); + end; + Order_Sub.EmptyDataSet; + with ADOTemp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOTemp.fieldbyname('PRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOTemp.fieldbyname('PRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOTemp.fieldbyname('PRTspec').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTMF').Value:=Trim(ADOTemp.fieldbyname('PRTMF').AsString); + FieldByName('PRTKZ').Value:=Trim(ADOTemp.fieldbyname('PRTKZ').AsString); + FieldByName('Sorddefstr1').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr1').AsString); + FieldByName('Sorddefstr2').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr2').AsString); + FieldByName('Sorddefstr4').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr4').AsString); + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit1').AsString); + FieldByName('SordQty1').Value:=Trim(ADOTemp.fieldbyname('SordQty1').AsString); + FieldByName('SordQty3').Value:=Trim(ADOTemp.fieldbyname('SordQty3').AsString); + FieldByName('SordQty4').Value:=Trim(ADOTemp.fieldbyname('SordQty4').AsString); + FieldByName('SordQty5').Value:=Trim(ADOTemp.fieldbyname('SordQty5').AsString); + FieldByName('PrtMoney').Value:=strtofloat(format('%.2f',[Fieldbyname('SordQty1').AsFloat*Fieldbyname('PrtPrice').AsFloat ])); + FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('subID').AsString); + Post; + end; + Next; + end; + end; +end; + +procedure TfrmOrderInPut_FB.v1Column8PropertiesEditValueChanged( + Sender: TObject); +var + Fieldname:string; +begin + Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + begin + with Order_Sub do + begin + edit; + if Trim(TcxTextEdit(Sender).EditingText)='' then + begin + fieldbyname(Fieldname).Value:='0'; + end + else + fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; + FieldByName('PrtMoney').Value:=(Fieldbyname('SordQty1').AsFloat)*(Fieldbyname('PrtPrice').AsFloat); + post; + end; + Tv1.Controller.EditingController.ShowEdit(); + end; +end; + +procedure TfrmOrderInPut_FB.OrdDefStr8BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BankNo'; + flagname:='˺'; + if ShowModal=1 then + begin + OrdDefStr8.text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from JYOrderCon_Main where BankNo='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + sql.Add(' and MPRTTYpe='''+Trim(MPRTTYpe.Text)+''''); + sql.Add(' order by FillTime desc '); + Open; + Self.OrdDefStr9.Text:=Trim(ADOTemp.fieldbyname('BankName').AsString); + Self.OrdDefStr12.Text:=Trim(ADOTemp.fieldbyname('BankAddress').AsString); + Self.OrdDefStr11.Text:=Trim(ADOTemp.fieldbyname('BankSelfFastNo').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderInPut_FB.v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + frmProductOrderListSel:=TfrmProductOrderListSel.create(self); + with frmProductOrderListSel do + begin + FFInt:=1; + if showmodal=1 then + begin + with Order_Sub do + begin + edit; + FieldByName('XHNO').Value:=Trim(Order_Main.fieldbyname('XHNO').AsString); + FieldByName('PRTCode').Value:=Trim(Order_Main.fieldbyname('MPRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(Order_Main.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(Order_Main.fieldbyname('MPRTspec').AsString); + FieldByName('PRTOrderQty').Value:=Trim(Order_Main.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTMF').Value:=Trim(Order_Main.fieldbyname('MPRTMF').AsString); + FieldByName('PRTKZ').Value:=Trim(Order_Main.fieldbyname('MPRTKZ').AsString); + FieldByName('Sorddefstr1').Value:=Trim(Order_Main.fieldbyname('Sorddefstr1').AsString); + FieldByName('Sorddefstr2').Value:=Trim(Order_Main.fieldbyname('Sorddefstr2').AsString); + FieldByName('Sorddefstr4').Value:=Trim(Order_Main.fieldbyname('Sorddefstr4').AsString); + FieldByName('PRTColor').Value:=Trim(Order_Main.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(Order_Main.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(Order_Main.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(Order_Main.fieldbyname('PriceUnit1').AsString); +// FieldByName('PriceUnitRate').Value:=Trim(ADOTemp.fieldbyname('PriceUnitRate').AsString); + // FieldByName('PRTmoney').Value:=Trim(ADOTemp.fieldbyname('PRTmoney').AsString); + FieldByName('SordQty1').Value:=Trim(Order_Main.fieldbyname('PRTOrderQty').AsString); + + FieldByName('Sorddefstr10').Value:=Trim(Order_Main.fieldbyname('subID').AsString); + Post; + end; + end; + free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmOrderInPut_FB.v1Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + frmProductOrderListSel:=TfrmProductOrderListSel.create(self); + with frmProductOrderListSel do + begin + FFInt:=1; + if showmodal=1 then + begin + Order_Main.First; + while not Order_Main.Eof do + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6,C.condefstr10,C.priceNote,C.Payment,C.ShippMent, '); + sql.Add('PriceUnit1=(select top 1 PriceUnit from JYordercon_sub X where X.mainID=C.mainid)'); + sql.Add('from JYOrder_sub A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where A.subID like '''+'%'+Trim(Order_Main.fieldbyname('subID').AsString)+'%'+''''); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); + FieldByName('OrderNO').Value:=Trim(ADOTemp.fieldbyname('OrderNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOTemp.fieldbyname('MPRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOTemp.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOTemp.fieldbyname('MPRTspec').AsString); + FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTMF').Value:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); + FieldByName('PRTKZ').Value:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); + FieldByName('Sorddefstr1').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr1').AsString); + FieldByName('Sorddefstr2').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr2').AsString); + FieldByName('Sorddefstr4').Value:=Trim(ADOTemp.fieldbyname('Sorddefstr4').AsString); + FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); + // FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit1').AsString); +// FieldByName('PriceUnitRate').Value:=Trim(ADOTemp.fieldbyname('PriceUnitRate').AsString); + // FieldByName('PRTmoney').Value:=Trim(ADOTemp.fieldbyname('PRTmoney').AsString); + // FieldByName('SordQty1').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); + + FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('subID').AsString); + Post; + end; + Next; + end; + end; + Order_Main.Next; + end; + end; + free; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +end. diff --git a/盛纺贸易管理/U_OrderInPut_HYWT.dfm b/盛纺贸易管理/U_OrderInPut_HYWT.dfm new file mode 100644 index 0000000..77a0af7 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut_HYWT.dfm @@ -0,0 +1,533 @@ +object frmorderInput_HYWT: TfrmorderInput_HYWT + Left = 230 + Top = 78 + Width = 1154 + Height = 539 + Caption = #36135#36816#22996#25176 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1146 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object Tsel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = TselClick + end + object TChk: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = TChkClick + end + object TNOChk: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + OnClick = TNOChkClick + end + object TBPrint: TToolButton + Left = 528 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 591 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 121 + Width = 1146 + Height = 348 + Align = alTop + TabOrder = 1 + object TV1: TcxGridDBTableView + OnDblClick = TV1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object V1WTNo: TcxGridDBColumn + Caption = #22996#25176#21333#21495 + DataBinding.FieldName = 'WTNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object V1Conno: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'Conno' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object V1CustomerNoName: TcxGridDBColumn + Caption = #32463#33829#21333#20301 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1shiptime: TcxGridDBColumn + Caption = #35013#36816#26399#38480 + DataBinding.FieldName = 'shiptime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1orddefstr1: TcxGridDBColumn + Caption = #21457#36135#20154 + DataBinding.FieldName = 'orddefstr1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1khconNo: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'khconNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1BLNO: TcxGridDBColumn + Caption = 'B/L NO' + DataBinding.FieldName = 'BLNO' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1vessel: TcxGridDBColumn + Caption = #33337#21517 + DataBinding.FieldName = 'vessel' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1voy: TcxGridDBColumn + Caption = #33322#27425 + DataBinding.FieldName = 'voy' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1ConPerson1: TcxGridDBColumn + Caption = #25910#36135#20154 + DataBinding.FieldName = 'ConPerson1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1XYNO: TcxGridDBColumn + Caption = #20449#29992#35777#21495 + DataBinding.FieldName = 'XYNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1EXPORT: TcxGridDBColumn + Caption = #20986#21475#21475#23736 + DataBinding.FieldName = 'EXPORT' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1TDNUM: TcxGridDBColumn + Caption = #25552#21333#20221#25968 + DataBinding.FieldName = 'TDNUM' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1payaddress: TcxGridDBColumn + Caption = #36816#36153#20184#33267 + DataBinding.FieldName = 'payaddress' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1POD: TcxGridDBColumn + Caption = #30446#30340#28207 + DataBinding.FieldName = 'POD' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1DLYDate: TcxGridDBColumn + Caption = #35013#31665#26085#26399 + DataBinding.FieldName = 'DLYDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1DLYaddress: TcxGridDBColumn + Caption = #35013#31665#22320#22336 + DataBinding.FieldName = 'DLYaddress' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1BJNO: TcxGridDBColumn + Caption = #26631#35760#21495#30721 + DataBinding.FieldName = 'BJNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1BGTYPE: TcxGridDBColumn + Caption = #21253#35013#24335#26679 + DataBinding.FieldName = 'BGTYPE' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1PRTspec: TcxGridDBColumn + Caption = #36135#21517#35268#26684 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1SordQty1: TcxGridDBColumn + Caption = #25104#20132#26465#20214 + DataBinding.FieldName = 'SordQty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1PRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object V1PRTCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PRTCode' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object V1SordQty3: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SordQty3' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object V1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object V1PrtPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PrtPrice' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 100 + Width = 1146 + Height = 21 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 2 + Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #23436#25104) + OnChange = cxTabControl1Change + ClientRectBottom = 21 + ClientRectRight = 1146 + ClientRectTop = 19 + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1146 + Height = 68 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + object Label1: TLabel + Left = 32 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 269 + Top = 15 + Width = 52 + Height = 12 + Caption = #22996#25176#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 269 + Top = 39 + Width = 52 + Height = 12 + Caption = #32463#33829#21333#20301 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 491 + Top = 15 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 511 + Top = 39 + Width = 28 + Height = 12 + Caption = 'PO #' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object begdate: TDateTimePicker + Left = 89 + Top = 11 + Width = 110 + Height = 20 + Date = 41962.538274189800000000 + Time = 41962.538274189800000000 + TabOrder = 0 + end + object enddate: TDateTimePicker + Left = 89 + Top = 35 + Width = 110 + Height = 20 + Date = 41962.538391562500000000 + Time = 41962.538391562500000000 + TabOrder = 1 + end + object WTNo: TEdit + Left = 325 + Top = 11 + Width = 115 + Height = 20 + TabOrder = 2 + OnChange = WTNoChange + end + object CustomerNoName: TEdit + Left = 325 + Top = 35 + Width = 115 + Height = 20 + TabOrder = 3 + OnChange = WTNoChange + end + object conNo: TEdit + Left = 548 + Top = 11 + Width = 115 + Height = 20 + TabOrder = 4 + OnChange = WTNoChange + end + object KHConNo: TEdit + Left = 548 + Top = 35 + Width = 115 + Height = 20 + TabOrder = 5 + OnChange = WTNoChange + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 580 + Top = 224 + end + object order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 328 + Top = 224 + end + object ADOQueryTMP: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 372 + Top = 224 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 412 + Top = 224 + end + object DataSource1: TDataSource + DataSet = order_Main + Left = 452 + Top = 224 + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = order_Main + Left = 540 + Top = 224 + end + object RMPrint: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 224 + ReportData = {} + end +end diff --git a/盛纺贸易管理/U_OrderInPut_HYWT.pas b/盛纺贸易管理/U_OrderInPut_HYWT.pas new file mode 100644 index 0000000..510ae70 --- /dev/null +++ b/盛纺贸易管理/U_OrderInPut_HYWT.pas @@ -0,0 +1,363 @@ +unit U_OrderInPut_HYWT; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, cxPC, + ExtCtrls, StdCtrls, ADODB, DBClient, RM_Common, RM_Class, RM_GridReport, + RM_System, RM_Dataset, cxCalendar; + +type + TfrmorderInput_HYWT = class(TForm) + ToolBar2: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + Tsel: TToolButton; + TChk: TToolButton; + TNOChk: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + TV1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + V1WTNo: TcxGridDBColumn; + V1Conno: TcxGridDBColumn; + V1CustomerNoName: TcxGridDBColumn; + V1shiptime: TcxGridDBColumn; + V1orddefstr1: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + Panel1: TPanel; + Label1: TLabel; + begdate: TDateTimePicker; + enddate: TDateTimePicker; + Label2: TLabel; + Label3: TLabel; + WTNo: TEdit; + CustomerNoName: TEdit; + Label4: TLabel; + conNo: TEdit; + Label5: TLabel; + KHConNo: TEdit; + order_Main: TClientDataSet; + ADOQueryTMP: TADOQuery; + ADOQueryCmd: TADOQuery; + DataSource1: TDataSource; + RMDBMain: TRMDBDataSet; + RMPrint: TRMGridReport; + V1khconNo: TcxGridDBColumn; + V1BLNO: TcxGridDBColumn; + V1vessel: TcxGridDBColumn; + V1voy: TcxGridDBColumn; + V1ConPerson1: TcxGridDBColumn; + V1XYNO: TcxGridDBColumn; + V1EXPORT: TcxGridDBColumn; + V1TDNUM: TcxGridDBColumn; + V1payaddress: TcxGridDBColumn; + V1POD: TcxGridDBColumn; + V1DLYDate: TcxGridDBColumn; + V1DLYaddress: TcxGridDBColumn; + V1BJNO: TcxGridDBColumn; + V1BGTYPE: TcxGridDBColumn; + V1PRTspec: TcxGridDBColumn; + V1SordQty1: TcxGridDBColumn; + V1PRTCodeName: TcxGridDBColumn; + V1PRTCode: TcxGridDBColumn; + V1SordQty3: TcxGridDBColumn; + V1OrderUnit: TcxGridDBColumn; + V1PrtPrice: TcxGridDBColumn; + procedure TBRafreshClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TV1DblClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TselClick(Sender: TObject); + procedure TChkClick(Sender: TObject); + procedure TNOChkClick(Sender: TObject); + procedure WTNoChange(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + private + procedure initGrid(); + procedure SetStatus(); + { Private declarations } + public + { Public declarations } + end; + +var + frmorderInput_HYWT: TfrmorderInput_HYWT; + +implementation + +uses U_Fun,U_datalink, U_orderInPut_HYWT_Sub; + +{$R *.dfm} + +procedure TfrmorderInput_HYWT.initGrid(); +begin + with ADOQueryTMP do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.* from JYOrderWT_Main A '); + SQL.Add('inner join JYOrderWT_Sub B on B.Mainid=A.Mainid '); + SQL.Add('where A.filltime>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''' '); + SQL.Add('and A.filltime<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); + if cxTabControl1.TabIndex=0 then + sql.Add('and status='''''); + if cxTabControl1.TabIndex=1 then + sql.Add('and status=''1'''); + Open; + end; + SCreateCDS20(ADOQueryTMP,Order_Main); + SInitCDSData20(ADOQueryTMP,Order_Main); +end; + +procedure TfrmorderInput_HYWT.SetStatus(); +begin + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + end; + 2:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + end; + 2:begin + end; + end; + end; +end; + +procedure TfrmorderInput_HYWT.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmorderInput_HYWT.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alclient; + cxTabControl1.TabIndex:=0; +end; + +procedure TfrmorderInput_HYWT.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmorderInput_HYWT.FormDestroy(Sender: TObject); +begin + frmorderInput_HYWT:=nil; +end; + +procedure TfrmorderInput_HYWT.FormShow(Sender: TObject); +begin + SetStatus(); + ReadCxGrid(self.Caption+tv1.Name,Tv1); + BegDate.DateTime:=SGetServerDate10(ADOQueryTmp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTmp); + InitGrid(); +end; + +procedure TfrmorderInput_HYWT.TBCloseClick(Sender: TObject); +begin + close; + WriteCxGrid(self.Caption+tv1.Name,Tv1); +end; + +procedure TfrmorderInput_HYWT.TV1DblClick(Sender: TObject); +begin + Tsel.Click; +end; + +procedure TfrmorderInput_HYWT.TBFindClick(Sender: TObject); +begin + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,0)); + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); +end; + +procedure TfrmorderInput_HYWT.TBPrintClick(Sender: TObject); +var + FPrintFile:string; +begin + if Order_Main.IsEmpty then Exit; + FPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ί.rmf'; + with ADOQueryTmp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.* from JYOrderWT_Main A '); + SQL.Add('inner join JYOrderWT_Sub B on B.Mainid=A.Mainid '); + SQL.Add('where A.Mainid='''+trim(order_Main.fieldbyname('Mainid').AsString)+''''); + open; + end; + SCreateCDS20(ADOQueryTmp,order_Main); + SInitCDSData20(ADOQueryTmp,order_Main); + if FileExists(fPrintFile) then + begin + RMPrint.LoadFromFile(fPrintFile); + RMPrint.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ί.rmf'),'ʾ'); + end; + InitGrid(); +end; + +procedure TfrmorderInput_HYWT.TBAddClick(Sender: TObject); +begin + try + FrmOrderInPut_HYWT_Sub:=TFrmOrderInPut_HYWT_Sub.create(self); + with FrmOrderInPut_HYWT_Sub do + begin + FMainId:=''; + if showmodal=1 then + begin + InitGrid(); + end; + end; + finally + FrmOrderInPut_HYWT_Sub.Free; + end; +end; + +procedure TfrmorderInput_HYWT.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + FrmOrderInPut_HYWT_Sub:=TFrmOrderInPut_HYWT_Sub.create(self); + with FrmOrderInPut_HYWT_Sub do + begin + FMainid:=trim(self.order_Main.fieldbyname('Mainid').AsString); + if showmodal=1 then + begin + initGrid(); + end; + end; + finally + FrmOrderInPut_HYWT_Sub.Free; + end; +end; + +procedure TfrmorderInput_HYWT.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',1)=2 then Exit; + with ADOQuerycmd do + begin + close; + sql.Clear; + sql.Add('delete from JYOrderWT_Main where Mainid='''+trim(order_Main.fieldbyname('Mainid').AsString)+''''); + execsql; + end; + initGrid(); +end; + +procedure TfrmorderInput_HYWT.TselClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + FrmOrderInPut_HYWT_Sub:=TFrmOrderInPut_HYWT_Sub.create(self); + with FrmOrderInPut_HYWT_Sub do + begin + FMainid:=trim(self.order_Main.fieldbyname('Mainid').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if showmodal=1 then + begin + initGrid(); + end; + end; + finally + FrmOrderInPut_HYWT_Sub.Free; + end; +end; + +procedure TfrmorderInput_HYWT.TChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + try + with ADOQueryTMP do + begin + close; + sql.Clear; + sql.Add('update JYOrderWT_Main set status=''1'',chktime=getdate(),chker='+quotedstr(trim(Dname))); + sql.Add(' where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''''); + execsql; + end; + application.MessageBox('˳ɹ','ʾ'); + initGrid(); + except + application.messagebox('ʧ','ʾ'); + end; +end; + +procedure TfrmorderInput_HYWT.TNOChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + with ADOQueryTMP do + begin + close; + SQL.Clear; + sql.Add('update JYOrderWT_Main set chker=null,chktime=Null,status='''' '); + sql.Add('where Mainid='+quotedstr(trim(order_Main.fieldbyname('Mainid').asstring))); + ExecSQL; + end; + Application.MessageBox('ɹ','ʾ'); + initGrid(); + except; + Application.MessageBox('ʧ','ʾ'); + end; +end; + +procedure TfrmorderInput_HYWT.WTNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmorderInput_HYWT.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; +end; + +end. diff --git a/盛纺贸易管理/U_OrderJD.dfm b/盛纺贸易管理/U_OrderJD.dfm new file mode 100644 index 0000000..db1be01 --- /dev/null +++ b/盛纺贸易管理/U_OrderJD.dfm @@ -0,0 +1,636 @@ +object frmOrderJD: TfrmOrderJD + Left = 136 + Top = 9 + Width = 1188 + Height = 677 + Caption = #36827#24230#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1172 + Height = 57 + Align = alTop + TabOrder = 0 + object Label1: TLabel + Left = 40 + Top = 20 + Width = 48 + Height = 12 + Caption = #25351#31034#21333#21495 + end + object orderNo: TEdit + Left = 88 + Top = 16 + Width = 157 + Height = 20 + TabOrder = 0 + OnKeyPress = orderNoKeyPress + end + end + object GroupBox1: TGroupBox + Left = 0 + Top = 57 + Width = 1172 + Height = 152 + Align = alTop + Caption = #25351#31034#21333#35814#32454#20449#24687 + TabOrder = 1 + object cxGrid1: TcxGrid + Left = 2 + Top = 14 + Width = 1168 + Height = 136 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_Order + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 112 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 94 + end + object v1Column11: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHconNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 91 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson2' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 92 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 84 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 81 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 94 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 86 + end + object v1MPrtSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPrtSpec' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column2: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'PrtkuanNO' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #39068#33394#20013#25991 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1SordQtY1: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PrtOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 70 + end + object v1ordderNote1: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'orderUnit' + HeaderAlignmentHorz = taCenter + Width = 67 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + end + object Panel2: TPanel + Left = 0 + Top = 209 + Width = 1172 + Height = 212 + Align = alTop + BevelOuter = bvNone + Caption = 'Panel2' + TabOrder = 2 + object GroupBox2: TGroupBox + Left = 0 + Top = 0 + Width = 594 + Height = 212 + Align = alClient + Caption = #37319#36141#21040#36135#20449#24687 + TabOrder = 0 + object cxGrid2: TcxGrid + Left = 2 + Top = 14 + Width = 590 + Height = 196 + Align = alClient + TabOrder = 0 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_CG + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2Column3 + end + item + Kind = skSum + Column = V2Column4 + end + item + Kind = skSum + Column = V2Column5 + end + item + Kind = skSum + Column = V2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V2Column1: TcxGridDBColumn + Caption = #37319#36141#26085#26399 + DataBinding.FieldName = 'QDTime' + HeaderAlignmentHorz = taCenter + Width = 116 + end + object V2Column2: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'FactoryNoName' + HeaderAlignmentHorz = taCenter + Width = 92 + end + object V2Column3: TcxGridDBColumn + Caption = #37319#36141#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column4: TcxGridDBColumn + Caption = #37319#36141#25968#37327 + DataBinding.FieldName = 'C_Qty' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column5: TcxGridDBColumn + Caption = #21040#36135#21305#25968 + DataBinding.FieldName = 'DHPS' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2Column6: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'DHQty' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + end + object GroupBox3: TGroupBox + Left = 594 + Top = 0 + Width = 578 + Height = 212 + Align = alRight + Caption = #21040#36135#26126#32454#20449#24687 + TabOrder = 1 + object cxGrid3: TcxGrid + Left = 2 + Top = 14 + Width = 574 + Height = 196 + Align = alClient + TabOrder = 0 + object TV3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_DH + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #21040#36135#26102#38388 + DataBinding.FieldName = 'comedate' + HeaderAlignmentHorz = taCenter + Width = 131 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'RKPlace' + HeaderAlignmentHorz = taCenter + Width = 136 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #21040#36135#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Width = 106 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #21040#36135#25968#37327 + DataBinding.FieldName = 'MXQty' + HeaderAlignmentHorz = taCenter + Width = 107 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV3 + end + end + end + end + object GroupBox4: TGroupBox + Left = 0 + Top = 421 + Width = 1172 + Height = 196 + Align = alTop + Caption = #25237#22383#22238#20179#35814#32454#20449#24687 + TabOrder = 3 + object cxGrid4: TcxGrid + Left = 2 + Top = 14 + Width = 1168 + Height = 180 + Align = alClient + TabOrder = 0 + object TV4: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_TP + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn7 + end + item + Kind = skSum + Column = cxGridDBColumn8 + end + item + Kind = skSum + Column = TV4Column1 + end + item + Kind = skSum + Column = TV4Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn3: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Width = 131 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'TPPS' + HeaderAlignmentHorz = taCenter + Width = 106 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #25237#22383#25968#37327 + DataBinding.FieldName = 'TPQty' + HeaderAlignmentHorz = taCenter + Width = 133 + end + object TV4Column1: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'HCps' + HeaderAlignmentHorz = taCenter + Width = 104 + end + object TV4Column2: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'HCQty' + HeaderAlignmentHorz = taCenter + Width = 92 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TV4 + end + end + end + object CDS_Order: TClientDataSet + Aggregates = <> + Params = <> + Left = 564 + Top = 126 + end + object DS_Order: TDataSource + DataSet = CDS_Order + Left = 644 + Top = 126 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 396 + Top = 110 + end + object CDS_CG: TClientDataSet + Aggregates = <> + Params = <> + Left = 232 + Top = 277 + end + object DS_CG: TDataSource + DataSet = CDS_CG + Left = 272 + Top = 285 + end + object DS_DH: TDataSource + DataSet = CDS_DH + Left = 863 + Top = 273 + end + object CDS_DH: TClientDataSet + Aggregates = <> + Params = <> + Left = 927 + Top = 293 + end + object CDS_TP: TClientDataSet + Aggregates = <> + Params = <> + Left = 364 + Top = 489 + end + object DS_TP: TDataSource + DataSet = CDS_TP + Left = 260 + Top = 465 + end +end diff --git a/盛纺贸易管理/U_OrderJD.pas b/盛纺贸易管理/U_OrderJD.pas new file mode 100644 index 0000000..b4d21e1 --- /dev/null +++ b/盛纺贸易管理/U_OrderJD.pas @@ -0,0 +1,172 @@ +unit U_OrderJD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGrid, cxCheckBox, cxCalendar, + ADODB, DBClient; + +type + TfrmOrderJD = class(TForm) + Panel1: TPanel; + Label1: TLabel; + orderNo: TEdit; + GroupBox1: TGroupBox; + Panel2: TPanel; + GroupBox2: TGroupBox; + GroupBox3: TGroupBox; + GroupBox4: TGroupBox; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column4: TcxGridDBColumn; + v1OrderNo: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1MPrtSpec: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1SordQtY1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1ordderNote1: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column2: TcxGridDBColumn; + CDS_Order: TClientDataSet; + DS_Order: TDataSource; + ADOQueryMain: TADOQuery; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + V2Column1: TcxGridDBColumn; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + V2Column5: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + cxGrid3: TcxGrid; + TV3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + cxGrid4: TcxGrid; + TV4: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + TV4Column1: TcxGridDBColumn; + TV4Column2: TcxGridDBColumn; + CDS_CG: TClientDataSet; + DS_CG: TDataSource; + DS_DH: TDataSource; + CDS_DH: TClientDataSet; + CDS_TP: TClientDataSet; + DS_TP: TDataSource; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure orderNoKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + private + Procedure InitOrder(); + { Private declarations } + public + { Public declarations } + end; + +var + frmOrderJD: TfrmOrderJD; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; +{$R *.dfm} +Procedure TfrmOrderJD.InitOrder(); +begin + with adoqueryMain do + begin + close; + sql.Clear; + sql.Add('EXEC P_View_Order_JD10'); + sql.Add('@keyNo='+quotedstr(trim(orderNo.Text))); + sql.Add(',@flag='+quotedstr(trim('0'))); + open; + end; + + SCreateCDS20(adoqueryMain,CDS_Order); + SInitCDSData20(adoqueryMain,CDS_Order); + + with adoqueryMain do + begin + close; + sql.Clear; + sql.Add('EXEC P_View_Order_JD10'); + sql.Add('@keyNo='+quotedstr(trim(orderNo.Text))); + sql.Add(',@flag='+quotedstr(trim('1'))); + open; + end; + + SCreateCDS20(adoqueryMain,CDS_CG); + SInitCDSData20(adoqueryMain,CDS_CG); + + + with adoqueryMain do + begin + close; + sql.Clear; + sql.Add('EXEC P_View_Order_JD10'); + sql.Add('@keyNo='+quotedstr(trim(orderNo.Text))); + sql.Add(',@flag='+quotedstr(trim('2'))); + open; + end; + + SCreateCDS20(adoqueryMain,CDS_DH); + SInitCDSData20(adoqueryMain,CDS_DH); + + with adoqueryMain do + begin + close; + sql.Clear; + sql.Add('EXEC P_View_Order_JD10'); + sql.Add('@keyNo='+quotedstr(trim(orderNo.Text))); + sql.Add(',@flag='+quotedstr(trim('3'))); + open; + end; + + SCreateCDS20(adoqueryMain,CDS_TP); + SInitCDSData20(adoqueryMain,CDS_TP); + +end; +procedure TfrmOrderJD.FormDestroy(Sender: TObject); +begin + frmOrderJD:=nil; +end; + +procedure TfrmOrderJD.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=cafree; +end; + +procedure TfrmOrderJD.orderNoKeyPress(Sender: TObject; var Key: Char); +begin + IF key=#13 then + begin + IF trim(orderNo.Text)='' then exit; + InitOrder(); + end; +end; + +procedure TfrmOrderJD.FormShow(Sender: TObject); +begin + InitOrder(); +end; + +end. diff --git a/盛纺贸易管理/U_OrderJDList.dfm b/盛纺贸易管理/U_OrderJDList.dfm new file mode 100644 index 0000000..c6aecbd --- /dev/null +++ b/盛纺贸易管理/U_OrderJDList.dfm @@ -0,0 +1,562 @@ +object frmOrderJDList: TfrmOrderJDList + Left = -40 + Top = 37 + Width = 1292 + Height = 705 + Caption = #35746#21333#36827#24230#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1284 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object ToolButton1: TToolButton + Left = 63 + Top = 0 + Caption = #26597#30475 + ImageIndex = 49 + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 122 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1284 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 22 + Width = 52 + Height = 12 + Caption = #19979#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 22 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 22 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 18 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 18 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 337 + Top = 18 + Width = 152 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1284 + Height = 582 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnMouseUp = Tv1MouseUp + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column2: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 88 + end + object v1Column8: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1Column9: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'MPRTCF' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 83 + end + object v1Column1: TcxGridDBColumn + Caption = #32553#29575 + DataBinding.FieldName = 'MPRTSL' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = #35746#21333#22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column7: TcxGridDBColumn + Caption = #21488#22836 + DataBinding.FieldName = 'Taitou' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1Column5: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #35746#21333#39068#33394 + DataBinding.FieldName = 'OrdColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1Qty1: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'Qty1' + Visible = False + HeaderAlignmentHorz = taCenter + Hidden = True + Styles.Header = DataLink_TradeManage.Default + Width = 46 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1PRTUnit: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column3: TcxGridDBColumn + Caption = #35746#22383#25968#37327 + DataBinding.FieldName = 'ClothHTQty' + OnCustomDrawCell = v1Column3CustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column4: TcxGridDBColumn + Caption = #35746#22383#21333#20301 + DataBinding.FieldName = 'ClothHTUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column6: TcxGridDBColumn + Caption = #21040#22383#25968#37327 + DataBinding.FieldName = 'ClothDHQty' + OnCustomDrawCell = v1Column6CustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1Column11: TcxGridDBColumn + Caption = #25237#22383#25968#37327 + DataBinding.FieldName = 'ClothTPQty' + OnCustomDrawCell = v1Column11CustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 56 + end + object v1Column12: TcxGridDBColumn + Caption = #25237#22383#21333#20301 + DataBinding.FieldName = 'ClothTPUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1Column13: TcxGridDBColumn + Caption = #25237#22383#39068#33394 + DataBinding.FieldName = 'ClothTPColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column14: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'ClothHCQty' + OnCustomDrawCell = v1Column14CustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 58 + end + object v1Column15: TcxGridDBColumn + Caption = #22238#20179#39068#33394 + DataBinding.FieldName = 'HCColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1Column16: TcxGridDBColumn + Caption = #22238#20179#21333#20301 + DataBinding.FieldName = 'ClothHCUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1Column17: TcxGridDBColumn + Caption = #20837#24211#25968#37327 + DataBinding.FieldName = 'ClothRKQty' + OnCustomDrawCell = v1Column17CustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column18: TcxGridDBColumn + Caption = #20837#24211#39068#33394 + DataBinding.FieldName = 'RKColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1Column19: TcxGridDBColumn + Caption = #20837#24211#21333#20301 + DataBinding.FieldName = 'ClothRKUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1Column20: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'ClothCKQty' + OnCustomDrawCell = v1Column20CustomDrawCell + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 61 + end + object v1Column21: TcxGridDBColumn + Caption = #20986#24211#39068#33394 + DataBinding.FieldName = 'CKColor' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1Column22: TcxGridDBColumn + Caption = #24211#23384#27491#21697#25968 + DataBinding.FieldName = 'KCZPQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 71 + end + object v1Column23: TcxGridDBColumn + Caption = #24211#23384#27425#21697#25968 + DataBinding.FieldName = 'KCCPQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 70 + end + object v1Column24: TcxGridDBColumn + Caption = #24211#23384#30041#26679#25968 + DataBinding.FieldName = 'KCLYQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 71 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 62 + Top = 180 + Width = 294 + Height = 213 + TabOrder = 3 + Visible = False + object Label11: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 292 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #20107#20214#35828#26126 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 269 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RichEdit1: TRichEdit + Left = 1 + Top = 24 + Width = 292 + Height = 188 + Align = alClient + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + end + end + object MovePanel2: TMovePanel + Left = 408 + Top = 192 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 672 + Top = 344 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 936 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1000 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1040 + Top = 8 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 784 + Top = 240 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 728 + Top = 168 + end +end diff --git a/盛纺贸易管理/U_OrderJDList.pas b/盛纺贸易管理/U_OrderJDList.pas new file mode 100644 index 0000000..ce52e34 --- /dev/null +++ b/盛纺贸易管理/U_OrderJDList.pas @@ -0,0 +1,446 @@ +unit U_OrderJDList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, + RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, + cxTextEdit, MovePanel; + +type + TfrmOrderJDList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Order_Main: TClientDataSet; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1Qty1: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTUnit: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + Panel4: TPanel; + Label11: TLabel; + Panel10: TPanel; + Image2: TImage; + RichEdit1: TRichEdit; + MovePanel2: TMovePanel; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + ToolButton1: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Image2Click(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1Column3CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure v1Column6CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure v1Column11CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure v1Column14CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure v1Column17CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure v1Column20CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + private + FInt,PFInt:Integer; + FLeft,FTop:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + { Public declarations } + end; + +var + frmOrderJDList: TfrmOrderJDList; + +implementation +uses + U_DataLink,U_ClothContractInPut,U_Fun,U_ProductOrderList,U_ZDYHelp, + U_OrderInPut; + +{$R *.dfm} + +procedure TfrmOrderJDList.FormDestroy(Sender: TObject); +begin + frmOrderJDList:=nil; +end; + +procedure TfrmOrderJDList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderJDList.FormCreate(Sender: TObject); +begin + + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); +end; + +procedure TfrmOrderJDList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('Ȳѯ',Tv1,'ָʾ'); +end; + +procedure TfrmOrderJDList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_View_OrderJD :begdate,:enddate,:Filler,:WSql'); + if Trim(DParameters1)<>'Ȩ' then + Parameters.ParamByName('Filler').Value:=Trim(DName) + else + Parameters.ParamByName('Filler').Value:=''; + Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date)); + Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1)); + Parameters.ParamByName('WSql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmOrderJDList.InitForm(); +begin + ReadCxGrid('Ȳѯ',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-15; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + //InitGrid(); +end; + +procedure TfrmOrderJDList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmOrderJDList.DelData():Boolean; +begin + +end; + +procedure TfrmOrderJDList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ŵϢ',cxGrid1); +end; + +procedure TfrmOrderJDList.TBRafreshClick(Sender: TObject); +begin + MovePanel2.Visible:=True; + MovePanel2.Refresh; + InitGrid(); + MovePanel2.Visible:=False; +end; + +procedure TfrmOrderJDList.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmOrderJDList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmOrderJDList.Tv2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; +end; + +procedure TfrmOrderJDList.OrderNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + if Length(Trim(OrderNo.Text))<4 then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec P_View_OrderJD :begdate,:enddate,:Filler,:WSql'); + if Trim(DParameters1)<>'Ȩ' then + Parameters.ParamByName('Filler').Value:=Trim(DName) + else + Parameters.ParamByName('Filler').Value:=''; + Parameters.ParamByName('begdate').Value:=''; + Parameters.ParamByName('enddate').Value:=''; + Parameters.ParamByName('WSql').Value:=' and A.OrderNo like'''+'%'+Trim(OrderNo.Text)+'%'+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + MovePanel2.Visible:=False; + end; +end; + +procedure TfrmOrderJDList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +begin + FLeft:=X; + FTop:=Y; +end; + +procedure TfrmOrderJDList.Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Panel4.Left:=FLeft; + Panel4.Top:=FTop+110; + Panel4.Visible:=True; + Panel4.Refresh; + Panel10.Caption:=Trim(TV1.Controller.FocusedColumn.Caption); + RichEdit1.Text:=Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString; +end; + +procedure TfrmOrderJDList.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmOrderJDList.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmOrderJDList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + PriceFlag:=99; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmOrderJDList.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmOrderJDList.v1Column3CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + Id:Integer; +begin + Id:=TV1.GetColumnByFieldName('ClothHTQty').Index;//;-TV1.GroupedItemCount; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id]>0 then + begin + ACanvas.Brush.Color:=clRed; + end; +end; + +procedure TfrmOrderJDList.v1Column6CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + Id:Integer; +begin + Id:=TV1.GetColumnByFieldName('ClothDHQty').Index;//;-TV1.GroupedItemCount; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id]>0 then + begin + ACanvas.Brush.Color:=clRed; + end; +end; + +procedure TfrmOrderJDList.v1Column11CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + Id:Integer; +begin + Id:=TV1.GetColumnByFieldName('ClothTPQty').Index;//;-TV1.GroupedItemCount; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id]>0 then + begin + ACanvas.Brush.Color:=clRed; + end; +end; + +procedure TfrmOrderJDList.v1Column14CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + Id:Integer; +begin + Id:=TV1.GetColumnByFieldName('ClothHCQty').Index;//;-TV1.GroupedItemCount; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id]>0 then + begin + ACanvas.Brush.Color:=clRed; + end; +end; + +procedure TfrmOrderJDList.v1Column17CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + Id:Integer; +begin + Id:=TV1.GetColumnByFieldName('ClothRKQty').Index;//;-TV1.GroupedItemCount; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id]>0 then + begin + ACanvas.Brush.Color:=clRed; + end; +end; + +procedure TfrmOrderJDList.v1Column20CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var + Id:Integer; +begin + Id:=TV1.GetColumnByFieldName('ClothCKQty').Index;//;-TV1.GroupedItemCount; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id]>0 then + begin + ACanvas.Brush.Color:=clRed; + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderSel.dfm b/盛纺贸易管理/U_OrderSel.dfm new file mode 100644 index 0000000..168b400 --- /dev/null +++ b/盛纺贸易管理/U_OrderSel.dfm @@ -0,0 +1,369 @@ +object frmOrderSel: TfrmOrderSel + Left = 261 + Top = 160 + Width = 1171 + Height = 587 + Caption = #35746#21333#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 16 + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1155 + Height = 462 + Align = alClient + PopupMenu = PopupMenu1 + TabOrder = 0 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v1PRTMF + end + item + Kind = skSum + Column = v1PRTKZ + end + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = v2Column4 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v2Column3: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 55 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNoM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 86 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 93 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 119 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 78 + end + object v1PRTMF: TcxGridDBColumn + Caption = #27491#21697#21305#25968 + DataBinding.FieldName = 'ZPPS' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle1 + Width = 78 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #27491#21697#25968#37327 + DataBinding.FieldName = 'ZPQty' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle1 + Width = 76 + end + object v2ZPJZ: TcxGridDBColumn + Caption = #27491#21697#27611#37325 + DataBinding.FieldName = 'ZPJZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 81 + end + object v2Column1: TcxGridDBColumn + Caption = #27425#21697#21305#25968 + DataBinding.FieldName = 'CPPS' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Styles.Content = cxStyle2 + Width = 78 + end + object v2Column4: TcxGridDBColumn + Caption = #27425#21697#25968#37327 + DataBinding.FieldName = 'CPQty' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Styles.Content = cxStyle2 + Width = 78 + end + object v2Column5: TcxGridDBColumn + Caption = #22810#25340#21305#25968 + DataBinding.FieldName = 'LYPS' + Visible = False + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Styles.Content = cxStyle3 + VisibleForCustomization = False + Width = 76 + end + object v2Column6: TcxGridDBColumn + Caption = #22810#25340#25968#37327 + DataBinding.FieldName = 'LYQty' + Visible = False + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Styles.Content = cxStyle3 + VisibleForCustomization = False + Width = 78 + end + object v2CPJZ: TcxGridDBColumn + Caption = #27425#21697#27611#37325 + DataBinding.FieldName = 'CPJZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v2KHConno: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConno' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 96 + end + object v2Column9: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1155 + Height = 86 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label2: TLabel + Left = 35 + Top = 19 + Width = 48 + Height = 16 + Caption = #35746#21333#21495 + end + object Label3: TLabel + Left = 268 + Top = 19 + Width = 32 + Height = 16 + Caption = #39068#33394 + end + object Label8: TLabel + Left = 467 + Top = 19 + Width = 64 + Height = 16 + Caption = #23458' '#25143 + end + object OrderNoM: TEdit + Tag = 2 + Left = 83 + Top = 16 + Width = 121 + Height = 24 + TabOrder = 0 + OnChange = OrderNoMChange + end + object PRTColor: TEdit + Tag = 2 + Left = 301 + Top = 16 + Width = 111 + Height = 24 + TabOrder = 1 + OnChange = OrderNoMChange + end + object Button1: TButton + Left = 687 + Top = 16 + Width = 75 + Height = 25 + Caption = #21047#26032 + TabOrder = 2 + OnClick = Button1Click + end + object Button2: TButton + Left = 687 + Top = 48 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 3 + OnClick = Button2Click + end + object Button3: TButton + Left = 783 + Top = 48 + Width = 75 + Height = 25 + Caption = #20851#38381 + TabOrder = 4 + OnClick = Button3Click + end + object CustomerNoName: TEdit + Tag = 2 + Left = 533 + Top = 15 + Width = 119 + Height = 24 + TabOrder = 5 + OnChange = OrderNoMChange + end + end + object CDS_OrderSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 592 + Top = 208 + end + object DataSource1: TDataSource + DataSet = CDS_OrderSel + Left = 680 + Top = 224 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 784 + Top = 184 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 848 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 208 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 728 + Top = 272 + end + object PopupMenu1: TPopupMenu + Left = 424 + Top = 248 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end + object cxStyleRepository1: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end + object cxStyleRepository2: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object cxStyleRepository3: TcxStyleRepository + PixelsPerInch = 96 + object cxStyle3: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + end +end diff --git a/盛纺贸易管理/U_OrderSel.pas b/盛纺贸易管理/U_OrderSel.pas new file mode 100644 index 0000000..368692b --- /dev/null +++ b/盛纺贸易管理/U_OrderSel.pas @@ -0,0 +1,263 @@ +unit U_OrderSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, DBClient, ComCtrls, + ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox, Menus, + cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack, + dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, + dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, + dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, + dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, + dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, + dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter, + cxNavigator; + +type + TfrmOrderSel = class(TForm) + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Panel1: TPanel; + Label2: TLabel; + OrderNoM: TEdit; + Label3: TLabel; + PRTColor: TEdit; + CDS_OrderSel: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Button1: TButton; + Button2: TButton; + Button3: TButton; + cxGridPopupMenu1: TcxGridPopupMenu; + v2Column2: TcxGridDBColumn; + Label8: TLabel; + CustomerNoName: TEdit; + v2Column3: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + v2Column1: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyleRepository2: TcxStyleRepository; + cxStyle2: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle3: TcxStyle; + v2KHConno: TcxGridDBColumn; + v2ZPJZ: TcxGridDBColumn; + v2CPJZ: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure Button2Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmOrderSel: TfrmOrderSel; + +implementation +uses + U_DataLink,U_Fun ; + +{$R *.dfm} + +procedure TfrmOrderSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderSel.Button2Click(Sender: TObject); +var + KHName:String; +begin + if CDS_OrderSel.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡݣ','ʾ',0); + Exit; + end; + CDS_OrderSel.DisableControls; + KHName:=''; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + if Trim(KHName)='' then + begin + KHName:=Trim(fieldbyname('CustomerNo').AsString); + end else + begin + if Trim(fieldbyname('CustomerNo').AsString)<>KHName then + begin + CDS_OrderSel.EnableControls; + Application.MessageBox('ѡͬͻ','ʾ',0); + Exit; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + ModalResult:=1; +end; + +procedure TfrmOrderSel.FormDestroy(Sender: TObject); +begin + frmOrderSel:=nil; +end; + +procedure TfrmOrderSel.Button3Click(Sender: TObject); +begin + ModalResult:=-1; + WriteCxGrid('ѡ11',Tv2,'Ʒֿ'); + Close; +end; + +procedure TfrmOrderSel.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ11',Tv2,'Ʒֿ'); + InitGrid(); +end; + +procedure TfrmOrderSel.InitGrid(); +begin + try + ADOQueryMain.DisableControls; +// with ADOQueryMain do +// begin +// Filtered:=False; +// Close; +// sql.Clear; +// sql.Add('select AA.KHConNO,AA.OrderNoM,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConSubid,AA.PRTColor,AA.OrderUnit,AA.PRTOrderQty'); +// sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.Mainid,AA.Subid,AA.ZPPS,'); +// sql.add('AA.ZPQty,AA.CPPS,AA.CPQty,Sum(AA.CPJZ) CPJZ,sum(AA.ZPJZ) ZPJZ'); +// Sql.add(' from (select C.KHConNO,C.ConNO OrderNoM,A.CustomerNoName,A.CustomerNo,B.PRTCodeName MPRTCodeName,B.PRTMF MPRTMF,B.PRTKZ MPRTKZ'); +// sql.Add(',B.PRTColor,B.OrderUnit,B.PRTOrderQty,B.PRTHX,Cast('''' as varchar(80)) Mainid,Cast('''' as varchar(80)) Subid,B.Subid Consubid'); +// sql.add(',ZPJZ=(case when C.CPType=''Ʒ'' then C.KGQty else 0 end)'); +// sql.add(',CPJZ=(case when C.CPType=''Ʒ'' then C.KGQty else 0 end)'); +// sql.Add(',ZPPS=(select Count(CR.MJID) from CK_BanCP_CR CR '); +// sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); +// sql.Add(',ZPQty=(select sum(Qty) from CK_BanCP_CR CR '); +// sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); +// sql.Add(',CPPS=(select Count(CR.MJID) from CK_BanCP_CR CR '); +// sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); +// sql.Add(',CPQty=(select sum(Qty) from CK_BanCP_CR CR '); +// sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); +// sql.Add('from CK_BanCP_CR C left join JYOrderCon_Sub B on C.ConID=B.Subid'); +// sql.add(' left join JYOrderCon_Main A on B.MainId=A.Mainid'); +// sql.Add(' where C.CRFlag='''' and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=C.MJID and AA.CRFlag=''''))AA'); +// sql.Add(' Group by AA.KHConNO,AA.OrderNoM,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConSubid,AA.PRTColor,AA.OrderUnit,AA.PRTOrderQty'); +// sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.Mainid,AA.Subid,AA.ZPPS,AA.ZPQty,AA.CPPS,AA.CPQty'); +// Open; +// end; + with ADOQueryMain do + begin + Close; + Filtered:=False; + sql.Clear; + sql.Add('select AA.KHConNO,AA.OrderNoM,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConSubid,AA.PRTColor,AA.OrderUnit,AA.PRTOrderQty'); + sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.Mainid,AA.Subid'); + sql.add(',sum(ZPPS) as ZPPS,sum(ZPQty) as ZPQty,sum(AA.ZPJZ) ZPJZ,sum(CPPS) as CPPS,sum(CPQty) as CPQty,Sum(AA.CPJZ) CPJZ'); + Sql.add(' from (select C.KHConNO,C.ConNO OrderNoM,A.CustomerNoName,A.CustomerNo,B.PRTCodeName MPRTCodeName,B.PRTMF MPRTMF,B.PRTKZ MPRTKZ'); + sql.Add(',B.PRTColor,B.OrderUnit,B.PRTOrderQty,B.PRTHX,Cast('''' as varchar(80)) Mainid,Cast('''' as varchar(80)) Subid,B.Subid Consubid'); + sql.add(',ZPPS=(case when C.CPType=''Ʒ'' then 1 else 0 end)'); + sql.add(',ZPQty=(case when C.CPType=''Ʒ'' then C.Qty else 0 end)'); + sql.add(',ZPJZ=(case when C.CPType=''Ʒ'' then C.KGQty else 0 end)'); + sql.add(',CPPS=(case when C.CPType=''Ʒ'' then 1 else 0 end)'); + sql.add(',CPQty=(case when C.CPType=''Ʒ'' then C.Qty else 0 end)'); + sql.add(',CPJZ=(case when C.CPType=''Ʒ'' then C.KGQty else 0 end)'); + { sql.Add(',ZPPS=(select Count(CR.MJID) from CK_BanCP_CR CR '); + sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); + sql.Add(',ZPQty=(select sum(Qty) from CK_BanCP_CR CR '); + sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); + sql.Add(',CPPS=(select Count(CR.MJID) from CK_BanCP_CR CR '); + sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); + sql.Add(',CPQty=(select sum(Qty) from CK_BanCP_CR CR '); + sql.Add('where CR.CRFlag='''' and CR.CPType=''Ʒ'' and CR.ConID=C.ConID and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=CR.MJID and AA.CRFlag=''''))'); } + sql.Add('from CK_BanCP_CR C left join JYOrderCon_Sub B on C.ConID=B.Subid'); + sql.add(' left join JYOrderCon_Main A on B.MainId=A.Mainid'); + sql.Add(' where C.CRTime>=''2024-01-01'' and C.CRFlag='''' and not exists(select AA.MJID from CK_BanCP_CR AA where AA.MJID=C.MJID and AA.CRFlag=''''))AA'); + sql.Add(' Group by AA.KHConNO,AA.OrderNoM,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConSubid,AA.PRTColor,AA.OrderUnit,AA.PRTOrderQty'); + sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.Mainid,AA.Subid'); +// showmessage(sql.text); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_OrderSel); + SInitCDSData20(ADOQueryMain,CDS_OrderSel); + finally; + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmOrderSel.Button1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmOrderSel.OrderNoMChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_OrderSel); + SInitCDSData20(ADOQueryMain,CDS_OrderSel); +end; + +procedure TfrmOrderSel.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ModalResult:=1; +end; + +procedure TfrmOrderSel.N1Click(Sender: TObject); +begin + SelOKNo(CDS_OrderSel,True); +end; + +procedure TfrmOrderSel.N2Click(Sender: TObject); +begin + SelOKNo(CDS_OrderSel,False); +end; + +end. diff --git a/盛纺贸易管理/U_OrderSelRK.dfm b/盛纺贸易管理/U_OrderSelRK.dfm new file mode 100644 index 0000000..40737cb --- /dev/null +++ b/盛纺贸易管理/U_OrderSelRK.dfm @@ -0,0 +1,374 @@ +object frmOrderSelRK: TfrmOrderSelRK + Left = 190 + Top = 126 + Width = 1219 + Height = 592 + Caption = #35746#21333#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 18 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1203 + Height = 100 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label2: TLabel + Left = 39 + Top = 21 + Width = 54 + Height = 18 + Caption = #35746#21333#21495 + end + object Label3: TLabel + Left = 288 + Top = 21 + Width = 36 + Height = 18 + Caption = #39068#33394 + end + object Label8: TLabel + Left = 516 + Top = 21 + Width = 72 + Height = 18 + Caption = #23458' '#25143 + end + object OrderNo: TEdit + Tag = 2 + Left = 93 + Top = 18 + Width = 137 + Height = 26 + TabOrder = 0 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + object PRTColor: TEdit + Tag = 2 + Left = 330 + Top = 18 + Width = 125 + Height = 26 + TabOrder = 1 + OnChange = OrderNoChange + end + object Button1: TButton + Left = 773 + Top = 18 + Width = 84 + Height = 28 + Caption = #21047#26032 + TabOrder = 2 + OnClick = Button1Click + end + object Button2: TButton + Left = 773 + Top = 54 + Width = 84 + Height = 28 + Caption = #30830#23450 + TabOrder = 3 + OnClick = Button2Click + end + object Button3: TButton + Left = 881 + Top = 54 + Width = 84 + Height = 28 + Caption = #20851#38381 + TabOrder = 4 + OnClick = Button3Click + end + object CustomerNoName: TEdit + Tag = 2 + Left = 591 + Top = 17 + Width = 134 + Height = 26 + TabOrder = 5 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 100 + Width = 1203 + Height = 452 + Align = alClient + TabOrder = 1 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v1PRTMF + end + item + Kind = skSum + Column = v1PRTKZ + end + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = v2Column4 + end + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Footer = DataLink_TradeManage.Default + object v2Column3: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 86 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 93 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 103 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 75 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 60 + end + object v2Column7: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + Width = 75 + end + object v2Column8: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1PRTMF: TcxGridDBColumn + Caption = #27491#21697#21305#25968 + DataBinding.FieldName = 'ZPPS' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle1 + Width = 75 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #27491#21697#25968#37327 + DataBinding.FieldName = 'ZPQty' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle1 + Width = 75 + end + object v2ZPJZ: TcxGridDBColumn + Caption = #27491#21697#20928#37325 + DataBinding.FieldName = 'ZPJZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v2Column1: TcxGridDBColumn + Caption = #27425#21697#21305#25968 + DataBinding.FieldName = 'CPPS' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Styles.Content = cxStyle2 + Width = 75 + end + object v2Column4: TcxGridDBColumn + Caption = #27425#21697#25968#37327 + DataBinding.FieldName = 'CPQty' + HeaderAlignmentHorz = taRightJustify + Options.Focusing = False + Styles.Content = cxStyle2 + Width = 75 + end + object v2Column5: TcxGridDBColumn + Caption = #22810#25340#21305#25968 + DataBinding.FieldName = 'LYPS' + Visible = False + HeaderAlignmentHorz = taRightJustify + Hidden = True + Options.Focusing = False + Styles.Content = cxStyle3 + Width = 75 + end + object v2Column6: TcxGridDBColumn + Caption = #22810#25340#25968#37327 + DataBinding.FieldName = 'LYQty' + Visible = False + HeaderAlignmentHorz = taRightJustify + Hidden = True + Options.Focusing = False + Styles.Content = cxStyle3 + Width = 75 + end + object v2CPJZ: TcxGridDBColumn + Caption = #27425#21697#20928#37325 + DataBinding.FieldName = 'CPJZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v2KHConNO: TcxGridDBColumn + Caption = #23458#25143#21512#21516#21495 + DataBinding.FieldName = 'KHConNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 86 + end + object v2PRTColorEng: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'PRTColorEng' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 86 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv2 + end + end + object CDS_OrderSel: TClientDataSet + Aggregates = <> + Params = <> + Left = 592 + Top = 208 + end + object DataSource1: TDataSource + DataSet = CDS_OrderSel + Left = 680 + Top = 224 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 784 + Top = 184 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 848 + Top = 184 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 208 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 728 + Top = 272 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object cxStyleRepository3: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + end +end diff --git a/盛纺贸易管理/U_OrderSelRK.pas b/盛纺贸易管理/U_OrderSelRK.pas new file mode 100644 index 0000000..57571fc --- /dev/null +++ b/盛纺贸易管理/U_OrderSelRK.pas @@ -0,0 +1,250 @@ +unit U_OrderSelRK; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, DBClient, ComCtrls, + ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox; + +type + TfrmOrderSelRK = class(TForm) + Panel1: TPanel; + Label2: TLabel; + OrderNo: TEdit; + Label3: TLabel; + PRTColor: TEdit; + CDS_OrderSel: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Button1: TButton; + Button2: TButton; + Button3: TButton; + cxGridPopupMenu1: TcxGridPopupMenu; + Label8: TLabel; + CustomerNoName: TEdit; + cxGrid1: TcxGrid; + Tv2: TcxGridDBTableView; + v2Column3: TcxGridDBColumn; + v1OrderNo: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyleRepository2: TcxStyleRepository; + cxStyle2: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle3: TcxStyle; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2KHConNO: TcxGridDBColumn; + v2PRTColorEng: TcxGridDBColumn; + v2ZPJZ: TcxGridDBColumn; + v2CPJZ: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure Button2Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + private + { Private declarations } + + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmOrderSelRK: TfrmOrderSelRK; + +implementation +uses + U_DataLink,U_Fun ; + +{$R *.dfm} + +procedure TfrmOrderSelRK.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderSelRK.Button2Click(Sender: TObject); +var + KHName:String; +begin + if CDS_OrderSel.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡݣ','ʾ',0); + Exit; + end; + CDS_OrderSel.DisableControls; + KHName:=''; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + if Trim(KHName)='' then + begin + KHName:=Trim(fieldbyname('CustomerNoName').AsString); + end else + begin + if Trim(fieldbyname('CustomerNoName').AsString)<>KHName then + begin + Application.MessageBox('ѡͬͻ','ʾ',0); + Exit; + end; + end; + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + ModalResult:=1; +end; + +procedure TfrmOrderSelRK.FormDestroy(Sender: TObject); +begin + frmOrderSelRK:=nil; +end; + +procedure TfrmOrderSelRK.Button3Click(Sender: TObject); +begin + ModalResult:=-1; + WriteCxGrid('ѡ1',Tv2,'Ʒֿ'); + Close; +end; + +procedure TfrmOrderSelRK.FormShow(Sender: TObject); +begin + ReadCxGrid('ѡ1',Tv2,'Ʒֿ'); + InitGrid(); +end; + +procedure TfrmOrderSelRK.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); + sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,Sum(ZPPS) ZPPS,AA.Mainid,AA.Subid,'); + sql.add('Sum(ZPQty) ZPQty,Sum(CPPS) CPPS,Sum(CPQty) CPQty,Sum(ZPJZ) ZPJZ,Sum(CPJZ) CPJZ'); + Sql.add(' from (select A.KHConNO,A.ConNO OrderNo,A.CustomerNoName,A.CustomerNo,B.PrtCodeName MPrtCodeName,A.MainId ConMainid,B.SubId ConSubid,B.PRTColor,B.SOrdDefStr4 PRTColorEng,B.OrderUnit,B.PRTOrderQty'); + sql.Add(',b.PRTMF MPRTMF,b.PRTKZ MPRTKZ,B.PRTHX,B.PRTColorNO SOrddefstr1,cast('''' as varchar(50)) Mainid,cast('''' as varchar(50)) Subid'); + sql.Add(',ZPPS=(select Count(MJID) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'' ) '); + sql.Add(',ZPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'' ) '); + sql.Add(',ZPQty=(select sum(MJLen) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'' ) '); + sql.Add(',CPPS=(select Count(MJID) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'' ) '); + sql.Add(',CPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(',CPQty=(select sum(MJLen) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'' ) '); + sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.Mainid'); + sql.Add(' where exists (select Q.APID from WFB_MJJY Q '); + sql.Add(' where Q.Conid=B.Subid and isnull(Q.MJStr2,'''')=''δ'' ))AA'); //and Q.MJType=''Ʒ'' + sql.Add('Group by AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); + sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,AA.Mainid,AA.Subid'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_OrderSel); + SInitCDSData20(ADOQueryMain,CDS_OrderSel); + finally; + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmOrderSelRK.Button1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmOrderSelRK.OrderNoChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_OrderSel); + SInitCDSData20(ADOQueryMain,CDS_OrderSel); +end; + +procedure TfrmOrderSelRK.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ModalResult:=1; +end; + +procedure TfrmOrderSelRK.OrderNoKeyPress(Sender: TObject; var Key: Char); +begin + if key=#13 then + begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); + sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,Sum(ZPPS) ZPPS,AA.Mainid,AA.Subid,'); + sql.add('Sum(ZPQty) ZPQty,Sum(CPPS) CPPS,Sum(CPQty) CPQty,Sum(ZPJZ) ZPJZ,Sum(CPJZ) CPJZ'); + Sql.add(' from (select A.KHConNO,A.ConNO OrderNo,A.CustomerNoName,A.CustomerNo,B.PrtCodeName MPrtCodeName,A.MainId ConMainid,B.SubId ConSubid,B.PRTColor,B.SOrdDefStr4 PRTColorEng,B.OrderUnit,B.PRTOrderQty'); + sql.Add(',b.PRTMF MPRTMF,b.PRTKZ MPRTKZ,B.PRTHX,B.PRTColorNO SOrddefstr1,cast('''' as varchar(50)) Mainid,cast('''' as varchar(50)) Subid'); + sql.Add(',ZPPS=(select Count(MJID) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(',ZPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(',ZPQty=(select sum(MJLen) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(',CPPS=(select Count(MJID) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(',CPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(',CPQty=(select sum(MJLen) from WFB_MJJY WY '); + sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''δ'' and WY.MJType=''Ʒ'') '); + sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.Mainid'); + sql.Add(' where exists (select Q.APID from WFB_MJJY Q '); + sql.Add(' where Q.Conid=B.Subid and isnull(Q.MJStr2,'''')=''δ'') and A.conNo like '''+'%'+trim(OrderNo.Text)+'%'+''')AA '); + sql.Add('Group by AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); + sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,AA.Mainid,AA.Subid'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_OrderSel); + SInitCDSData20(ADOQueryMain,CDS_OrderSel); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderStatus.dfm b/盛纺贸易管理/U_OrderStatus.dfm new file mode 100644 index 0000000..ea0d630 --- /dev/null +++ b/盛纺贸易管理/U_OrderStatus.dfm @@ -0,0 +1,593 @@ +object frmOrderStatus: TfrmOrderStatus + Left = 41 + Top = 136 + Width = 1154 + Height = 577 + Caption = #35746#21333#29366#24577 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBTP: TToolButton + Left = 189 + Top = 0 + Caption = #26356#26032 + ImageIndex = 106 + OnClick = TBTPClick + end + object TBClose: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #26597#35810#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 15 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 15 + Width = 52 + Height = 12 + Caption = #35746#21333#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 430 + Top = 15 + Width = 26 + Height = 12 + Caption = #20195#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 336 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = WFBCodeNameChange + end + object WFBCodeName: TEdit + Tag = 2 + Left = 459 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = WFBCodeNameChange + end + end + object cxGrid1: TcxGrid + Left = 16 + Top = 96 + Width = 1121 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBOrder.SHuangSe + Styles.IncSearch = DataLink_WFBOrder.SHuangSe + Styles.Selection = DataLink_WFBOrder.SHuangSe + Styles.Header = DataLink_WFBOrder.FonePurple + object v1Column3: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 39 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 72 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 66 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'WFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'WFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 62 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'WFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 74 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 52 + end + object v1OrderDate: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 59 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'OrdPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 57 + end + object v1PRTQty: TcxGridDBColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 58 + end + object v1Note: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 67 + end + object v1Column26: TcxGridDBColumn + Tag = 2 + Caption = #24050#23436#25104 + DataBinding.FieldName = 'OSFlag10' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 48 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #24050#30830#35748 + DataBinding.FieldName = 'OSFlag2' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 47 + end + object v1Column6: TcxGridDBColumn + Tag = 2 + Caption = #29983#20135#26085#26399 + DataBinding.FieldName = 'OSDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 64 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #24050#20837#24211 + DataBinding.FieldName = 'OSFlag3' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 54 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #24050#21457#36816 + DataBinding.FieldName = 'OSFlag4' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 56 + end + object v1Column10: TcxGridDBColumn + Tag = 2 + Caption = #38470#36816 + DataBinding.FieldName = 'OSFlag5' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 38 + end + object v1Column11: TcxGridDBColumn + Tag = 2 + Caption = #31354#36816 + DataBinding.FieldName = 'OSFlag6' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 33 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #28023#36816 + DataBinding.FieldName = 'OSFlag7' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 36 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = '40HQ' + DataBinding.FieldName = 'OSQty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 34 + end + object v1Column13: TcxGridDBColumn + Tag = 2 + Caption = '40GP' + DataBinding.FieldName = 'OSQty2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 36 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = '20GP' + DataBinding.FieldName = 'OSQty3' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 36 + end + object v1Column15: TcxGridDBColumn + Tag = 2 + Caption = 'LCL' + DataBinding.FieldName = 'OSQty4' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 29 + end + object v1Column16: TcxGridDBColumn + Tag = 2 + Caption = #36135#20195#21517#31216 + DataBinding.FieldName = 'OSStr1' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column16PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 58 + end + object v1Column17: TcxGridDBColumn + Tag = 2 + Caption = #35746#33329#26085#26399 + DataBinding.FieldName = 'OSDate2' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 62 + end + object v1Column18: TcxGridDBColumn + Tag = 2 + Caption = #35746#33329#32534#21495 + DataBinding.FieldName = 'OSStr2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 60 + end + object v1Column19: TcxGridDBColumn + Tag = 2 + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'OSDate3' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 60 + end + object v1Column20: TcxGridDBColumn + Tag = 2 + Caption = 'ETD' + DataBinding.FieldName = 'OSDate6' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 59 + end + object v1Column21: TcxGridDBColumn + Tag = 2 + Caption = 'ETA' + DataBinding.FieldName = 'OSDate7' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 60 + end + object v1Column22: TcxGridDBColumn + Tag = 2 + Caption = #20184#27454#26085#26399 + DataBinding.FieldName = 'OSDate4' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 59 + end + object v1Column23: TcxGridDBColumn + Tag = 2 + Caption = #24050#20184#27454 + DataBinding.FieldName = 'OSFlag8' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 50 + end + object v1Column27: TcxGridDBColumn + Tag = 2 + Caption = #20184#27454#22791#27880 + DataBinding.FieldName = 'OSNote1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 70 + end + object v1Column24: TcxGridDBColumn + Tag = 2 + Caption = #25910#27454#26085#26399 + DataBinding.FieldName = 'OSDate5' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 58 + end + object v1Column25: TcxGridDBColumn + Tag = 2 + Caption = #24050#25910#27454 + DataBinding.FieldName = 'OSFlag9' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 46 + end + object v1Column28: TcxGridDBColumn + Tag = 2 + Caption = #25910#27454#22791#27880 + DataBinding.FieldName = 'OSNote2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.FontBlue + Width = 65 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 576 + Top = 176 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 608 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 648 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 736 + Top = 40 + end +end diff --git a/盛纺贸易管理/U_OrderStatus.pas b/盛纺贸易管理/U_OrderStatus.pas new file mode 100644 index 0000000..d831446 --- /dev/null +++ b/盛纺贸易管理/U_OrderStatus.pas @@ -0,0 +1,306 @@ +unit U_OrderStatus; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxCalendar, cxButtonEdit, cxCheckBox; + +type + TfrmOrderStatus = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + TBTP: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label5: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNo: TEdit; + WFBCodeName: TEdit; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column3: TcxGridDBColumn; + v1OrderNo: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1OrderDate: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTQty: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure WFBCodeNameChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure v1Column16PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + { Private declarations } + procedure InitGrid(); + function DelData():Boolean; + public + { Public declarations } + end; + +var + frmOrderStatus: TfrmOrderStatus; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmOrderStatus.FormDestroy(Sender: TObject); +begin + frmOrderStatus:=nil; +end; + +procedure TfrmOrderStatus.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderStatus.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; +procedure TfrmOrderStatus.InitGrid(); +var + fsj:String; +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select Customnoname=C.ZDYName,A.MainID As FMainId ,'); + sql.Add(' case when A.Chker<>'''' then cast(1 as bit) else cast(0 as bit) end as OSFlag2,'); + sql.Add(' case when B.OSDate1 is null then BegSCDate else B.OSDate1 end as OSDate1,'); + sql.Add(' case when B.OSDate3 is null then ZGDate else B.OSDate3 end as OSDate3,'); + sql.Add(' case when B.OSDate6 is null then ETDDate else B.OSDate6 end as OSDate6,'); + sql.Add(' case when B.OSDate7 is null then ETADate else B.OSDate7 end as OSDate7,A.*,B.* '); + SQL.Add('from WFBOrder_Main A left join WFBOrder_Status B on A.MainId=B.MainId'); + sql.Add('left join KH_ZDY C on A.Customno=C.ZDYNO and C.Type=''CustomNoName'' '); + sql.Add('where A.OrderDate>=:begdate and A.OrderDate<:EndDate'); + Parameters.ParamByName('Begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('EndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmOrderStatus.FormShow(Sender: TObject); +begin + ReadCxGrid('״̬бF',Tv1,'޷IJ'); + InitGrid(); + if Trim(DParameters1)='鿴' then + begin + TBTP.Visible:=False; + Tv1.OptionsSelection.CellSelect:=False; + end; +end; + +procedure TfrmOrderStatus.WFBCodeNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmOrderStatus.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('״̬бF',Tv1,'޷IJ'); +end; + +procedure TfrmOrderStatus.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); +end; + +procedure TfrmOrderStatus.TBTPClick(Sender: TObject); + var + FQty,FQty1,MaxNo:String; +begin + if Order_Main.IsEmpty then Exit; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + // with Order_Main do + //begin + //First; + // while not Eof do + //begin + {if Trim(Order_Main.fieldbyname('FHQty').AsString)='' then + FQty:='0.0' + else + FQty:=Trim(Order_Main.fieldbyname('FHQty').AsString); + if Trim(Order_Main.fieldbyname('Qty1').AsString)='' then + FQty1:='0.0' + else + FQty1:=Trim(Order_Main.fieldbyname('Qty1').AsString); } + if Trim(Order_Main.fieldbyname('OSId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'OS','WFBOrder_Status',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Main.fieldbyname('OSId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBOrder_Status where OSId='''+Trim(Order_Main.fieldbyname('OSId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(Order_Main.fieldbyname('OSId').AsString)='' then + Append + else + Edit; + FieldByName('OSId').Value:=Trim(maxno); + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('FMainId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv1,Order_Main,'Order_Sub_To',2); + if Trim(Order_Main.fieldbyname('OSID').AsString)<>'' then + begin + FieldByName('Edittime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Editer').Value:=Trim(DName); + end else + begin + FieldByName('Filltime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + end; + Post; + end; + //Next; + //end; + with Order_Main do + begin + Edit; + FieldByName('OSId').Value:=Trim(maxno); + Post; + end; + //end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('³ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +function TfrmOrderStatus.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Order_Sub_KC where KCId='''+Trim(Order_Main.fieldbyname('KCId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmOrderStatus.TBExportClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + TcxGridToExcel('״̬б',cxGrid1); +end; + +procedure TfrmOrderStatus.v1Column16PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='hdmc'; + flagname:=''; + if ShowModal=1 then + begin + Order_Main.Edit; + Order_Main.FieldByName('OSStr1').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_OrderSubFH.dfm b/盛纺贸易管理/U_OrderSubFH.dfm new file mode 100644 index 0000000..97fb6a1 --- /dev/null +++ b/盛纺贸易管理/U_OrderSubFH.dfm @@ -0,0 +1,496 @@ +object frmOrderSubFH: TfrmOrderSubFH + Left = 40 + Top = 97 + Width = 1154 + Height = 577 + Caption = #25104#21697#21457#36135 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_OrderManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21457#36135 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBDel: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object ToolButton1: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #20840#36873 + ImageIndex = 106 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #20840#24323 + ImageIndex = 107 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #19968#38190#26367#25442 + ImageIndex = 51 + OnClick = ToolButton3Click + end + object TBTP: TToolButton + Left = 591 + Top = 0 + AutoSize = True + Caption = #30830#23450#21457#36135 + ImageIndex = 52 + OnClick = TBTPClick + end + object TBClose: TToolButton + Left = 678 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21457#36135#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 15 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 15 + Width = 52 + Height = 12 + Caption = #35746#21333#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 430 + Top = 15 + Width = 26 + Height = 12 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 336 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = PRTCodeNameMChange + end + object PRTCodeNameM: TEdit + Tag = 2 + Left = 459 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = PRTCodeNameMChange + end + end + object cxGrid1: TcxGrid + Left = 8 + Top = 80 + Width = 1009 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'CustomNo' + Column = v1Column5 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_OrderManage.cxBlue + Styles.IncSearch = DataLink_OrderManage.cxBlue + Styles.Selection = DataLink_OrderManage.cxBlue + object v1Column13: TcxGridDBColumn + Caption = #36873#20013 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.Default + Width = 43 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNoM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 72 + end + object v1Column2: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'PRTCodeNameM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + end + object v1PRTSpec: TcxGridDBColumn + Caption = #21697#21517'/'#35268#26684 + DataBinding.FieldName = 'PRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 66 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 41 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 33 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 39 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 59 + end + object v1Column10: TcxGridDBColumn + Caption = #25104#21697#25968#37327 + DataBinding.FieldName = 'PRTQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 64 + end + object v1Column11: TcxGridDBColumn + Caption = #25104#21697#21333#20301 + DataBinding.FieldName = 'PRTUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 61 + end + object v1Column12: TcxGridDBColumn + Caption = #25104#21697#21305#25968 + DataBinding.FieldName = 'CQty1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 62 + end + object v1Column14: TcxGridDBColumn + Caption = #25104#21697#24211#23384 + DataBinding.FieldName = 'CPKC' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 62 + end + object v1Column15: TcxGridDBColumn + Caption = #25104#21697#24211#23384#21305#25968 + DataBinding.FieldName = 'CPKCP' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_OrderManage.Default + Width = 86 + end + object v1Column3: TcxGridDBColumn + Tag = 3 + Caption = #21457#36135#26085#26399 + DataBinding.FieldName = 'FHDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 61 + end + object v1Column4: TcxGridDBColumn + Tag = 3 + Caption = #21457#36135#22320#22336 + DataBinding.FieldName = 'FHAddress' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 61 + end + object v1Column5: TcxGridDBColumn + Tag = 3 + Caption = #23458#25143 + DataBinding.FieldName = 'CustomNoName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = v1Column5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 62 + end + object v1Column1: TcxGridDBColumn + Tag = 3 + Caption = #21457#36135#21333#20215 + DataBinding.FieldName = 'FHPrice' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 64 + end + object v1Column9: TcxGridDBColumn + Tag = 3 + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'JJUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column9PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 61 + end + object v1Column6: TcxGridDBColumn + Tag = 3 + Caption = #21457#36135#25968#37327 + DataBinding.FieldName = 'FHQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 58 + end + object v1Column7: TcxGridDBColumn + Tag = 3 + Caption = #21457#36135#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 63 + end + object v1Column8: TcxGridDBColumn + Tag = 3 + Caption = #21457#36135#22791#27880 + DataBinding.FieldName = 'FHNote' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_OrderManage.FontBlue + Width = 56 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 584 + Top = 120 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 624 + Top = 112 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_OrderManage.ADOLink + Parameters = <> + Left = 648 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_OrderManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_OrderManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 736 + Top = 40 + end +end diff --git a/盛纺贸易管理/U_OrderSubFH.pas b/盛纺贸易管理/U_OrderSubFH.pas new file mode 100644 index 0000000..68f1f21 --- /dev/null +++ b/盛纺贸易管理/U_OrderSubFH.pas @@ -0,0 +1,516 @@ +unit U_OrderSubFH; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxCalendar, cxButtonEdit, cxCheckBox; + +type + TfrmOrderSubFH = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBDel: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + TBTP: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label5: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNoM: TEdit; + PRTCodeNameM: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + v1Column14: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure PRTCodeNameMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TBTPClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure v1Column9PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + function DelData():Boolean; + procedure OneKeyPostHD(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet); + public + { Public declarations } + end; + +var + frmOrderSubFH: TfrmOrderSubFH; + +implementation +uses + U_DataLink,U_Fun,U_ProductOrderList,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmOrderSubFH.FormDestroy(Sender: TObject); +begin + frmOrderSubFH:=nil; +end; + +procedure TfrmOrderSubFH.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderSubFH.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; +procedure TfrmOrderSubFH.InitGrid(); +var + fsj:String; +begin + try + //ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_FHQryList :WSQl'); + fsj:=' and OT.FHDate>='+QuotedStr(Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))) + +' and OT.FHDate<'+QuotedStr(Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))); + Parameters.ParamByName('WSQl').Value:=fsj; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + //ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmOrderSubFH.FormShow(Sender: TObject); +begin + ReadCxGrid('б',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmOrderSubFH.PRTCodeNameMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmOrderSubFH.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('б',Tv1,'ָʾ'); +end; + +procedure TfrmOrderSubFH.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; +end; + +procedure TfrmOrderSubFH.TBAddClick(Sender: TObject); +begin + try + frmProductOrderList:=TfrmProductOrderList.Create(Application); + with frmProductOrderList do + begin + FFInt:=1; + frmProductOrderList.TBAdd.Visible:=False; + frmProductOrderList.TBEdit.Visible:=False; + frmProductOrderList.TBDel.Visible:=False; + frmProductOrderList.TBExport.Visible:=False; + frmProductOrderList.TBPrint.Visible:=False; + frmProductOrderList.TBTP.Visible:=False; + frmProductOrderList.cxGrid2.Visible:=False; + frmProductOrderList.ToolButton1.Visible:=True; + frmProductOrderList.ToolButton2.Visible:=True; + frmProductOrderList.ToolButton3.Visible:=True; + frmProductOrderList.ToolButton4.Visible:=False; + frmProductOrderList.ToolButton5.Visible:=False; + frmProductOrderList.CheckBox1.Visible:=False; + frmProductOrderList.CheckBox2.Visible:=True; + if ShowModal=1 then + begin + with frmProductOrderList.Order_Main do + begin + frmProductOrderList.Order_Main.First; + while not Eof do + begin + if frmProductOrderList.Order_Main.FieldByName('SSel').AsBoolean=True then + begin + with Self.Order_Main do + begin + Append; + Self.Order_Main.FieldByName('SubId').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('SubId').AsString); + Self.Order_Main.FieldByName('OrderNoM').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('OrderNo').AsString); + Self.Order_Main.FieldByName('PRTCodeNameM').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTCodeName').AsString); + Self.Order_Main.FieldByName('PRTSpec').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTSpec').AsString); + Self.Order_Main.FieldByName('PRTMF').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTMF').AsString); + Self.Order_Main.FieldByName('PRTKZ').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTKZ').AsString); + Self.Order_Main.FieldByName('PRTColor').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTColor').AsString); + if Trim(frmProductOrderList.Order_Main.fieldbyname('PRTOrderQty').AsString)<>'' then + Self.Order_Main.FieldByName('PRTOrderQty').Value:=frmProductOrderList.Order_Main.fieldbyname('PRTOrderQty').AsFloat; + Self.Order_Main.FieldByName('OrderUnit').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('OrderUnit').AsString); + Self.Order_Main.FieldByName('SSel').Value:=1; + if Trim(frmProductOrderList.Order_Main.fieldbyname('PRTQty').AsString)<>'' then + Self.Order_Main.FieldByName('PRTQty').Value:=frmProductOrderList.Order_Main.fieldbyname('PRTQty').AsFloat; + if Trim(frmProductOrderList.Order_Main.fieldbyname('Qty1').AsString)<>'' then + Self.Order_Main.FieldByName('CQty1').Value:=frmProductOrderList.Order_Main.fieldbyname('Qty1').AsFloat; + if Trim(frmProductOrderList.Order_Main.fieldbyname('CPKC').AsString)<>'' then + Self.Order_Main.FieldByName('CPKC').Value:=frmProductOrderList.Order_Main.fieldbyname('CPKC').AsFloat; + if Trim(frmProductOrderList.Order_Main.fieldbyname('CPKCP').AsString)<>'' then + Self.Order_Main.FieldByName('CPKCP').Value:=frmProductOrderList.Order_Main.fieldbyname('CPKCP').AsFloat; + Self.Order_Main.FieldByName('PRTUnit').Value:=Trim(frmProductOrderList.Order_Main.fieldbyname('PRTUnit').AsString); + end; + end; + frmProductOrderList.Order_Main.Next; + end; + end; + end; + end; + finally + frmProductOrderList.Free; + end; +end; + +procedure TfrmOrderSubFH.v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomNoName'; + flagname:='ͻ'; + if ShowModal=1 then + begin + Self.Order_Main.Edit; + Self.Order_Main.FieldByName('CustomNoName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.Order_Main.FieldByName('CustomNo').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderSubFH.TBTPClick(Sender: TObject); + var + FQty,FQty1,MaxNo:String; +begin + if Order_Main.IsEmpty then Exit; + if Order_Main.Locate('SSel',True,[])=false then + begin + Application.MessageBox('δѡ¼','ʾ',0); + Exit; + end; + if (Order_Main.Locate('SSel',True,[])) and (Order_Main.Locate('FHDate',null,[])) then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if (Order_Main.Locate('SSel',True,[])) and (Order_Main.Locate('CustomNoName',null,[])) then + begin + Application.MessageBox('ͻΪգ','ʾ',0); + Exit; + end; + if (Order_Main.Locate('SSel',True,[])) and (Order_Main.Locate('FHPrice',null,[])) then + begin + Application.MessageBox('۲Ϊգ','ʾ',0); + Exit; + end; + if (Order_Main.Locate('SSel',True,[])) and (Order_Main.Locate('JJUnit',null,[])) then + begin + Application.MessageBox('Ƽ۵λΪգ','ʾ',0); + Exit; + end; + if (Order_Main.Locate('SSel',True,[])) and (Order_Main.Locate('FHQty',null,[])) then + begin + Application.MessageBox('Ϊգ','ʾ',0); + Exit; + end; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + with Order_Main do + begin + First; + while not Eof do + begin + {if Trim(Order_Main.fieldbyname('FHQty').AsString)='' then + FQty:='0.0' + else + FQty:=Trim(Order_Main.fieldbyname('FHQty').AsString); + if Trim(Order_Main.fieldbyname('Qty1').AsString)='' then + FQty1:='0.0' + else + FQty1:=Trim(Order_Main.fieldbyname('Qty1').AsString); } + if Order_Main.FieldByName('SSel').AsBoolean=True then + begin + if Trim(Order_Main.fieldbyname('ToId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'To','Order_Sub_To',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Main.fieldbyname('ToId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Order_Sub_To where ToId='''+Trim(Order_Main.fieldbyname('ToId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(Order_Main.fieldbyname('ToId').AsString)='' then + Append + else + Edit; + FieldByName('ToId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv1,Order_Main,'Order_Sub_To',3); + Post; + end; + with Order_Main do + begin + Edit; + FieldByName('ToId').Value:=Trim(maxno); + Post; + end; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmOrderSubFH.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + with ADOQueryTemp do + begin + close; + sql.Clear; + sql.Add('select * from Order_Sub_ToSK where ToId='''+Trim(Order_Main.fieldbyname('ToId').AsString)+''''); + Open; + if not IsEmpty then + begin + Application.MessageBox('Ѿտɾ¼','ʾ',0); + Exit; + end; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; +end; + +function TfrmOrderSubFH.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Order_Sub_To where ToId='''+Trim(Order_Main.fieldbyname('ToId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmOrderSubFH.TBExportClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + TcxGridToExcel('б',cxGrid1); +end; + +procedure TfrmOrderSubFH.v1Column9PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PriceUnit'; + flagname:='Ƽ۵λ'; + if ShowModal=1 then + begin + Self.Order_Main.Edit; + Self.Order_Main.FieldByName('JJUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + //Self.Order_Main.FieldByName('CustomNo').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderSubFH.ToolButton1Click(Sender: TObject); +begin + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=1; + Post; + Next; + end; + end; + Order_Main.EnableControls; +end; + +procedure TfrmOrderSubFH.ToolButton2Click(Sender: TObject); +begin + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=0; + Post; + Next; + end; + end; + Order_Main.EnableControls; +end; + +procedure TfrmOrderSubFH.OneKeyPostHD(Tv1:TcxGridDBTableView;CDS_Sub:TClientDataSet); +var + FValue,FFValue,FColumn,FFColumn:String; +begin + FColumn:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + FFColumn:=Tv1.Controller.FocusedColumn.Summary.GroupFormat; + FValue:=Trim(CDS_Sub.fieldbyname(FColumn).AsString); + if Trim(FFColumn)<>'' then + begin + FFValue:=Trim(CDS_Sub.fieldbyname(FFColumn).AsString); + end; + with CDS_Sub do + begin + DisableControls; + First; + while not Eof do + begin + Edit; + if CDS_Sub.FieldByName('Ssel').AsBoolean=True then + begin + if FValue='' then + begin + CDS_Sub.FieldByName(FColumn).Value:=null; + end else + begin + CDS_Sub.FieldByName(FColumn).Value:=FValue; + end; + if Trim(FFColumn)<>'' then + begin + if FFValue='' then + begin + CDS_Sub.FieldByName(FFColumn).Value:=null; + end else + begin + CDS_Sub.FieldByName(FFColumn).Value:=FFValue; + end; + end; + Post; + end; + Next; + end; + EnableControls; + end; +end; + +procedure TfrmOrderSubFH.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + BegDate.SetFocus; + OneKeyPostHD(Tv1,Order_Main); +end; + +end. diff --git a/盛纺贸易管理/U_OrderSubKC.dfm b/盛纺贸易管理/U_OrderSubKC.dfm new file mode 100644 index 0000000..71ce9b1 --- /dev/null +++ b/盛纺贸易管理/U_OrderSubKC.dfm @@ -0,0 +1,377 @@ +object frmOrderSubKC: TfrmOrderSubKC + Left = 69 + Top = 113 + Width = 1154 + Height = 577 + Caption = #25104#21697#24211#23384 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1146 + Height = 33 + ButtonHeight = 18 + ButtonWidth = 36 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 40 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + end + object TBExport: TToolButton + Left = 80 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 120 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBTP: TToolButton + Left = 160 + Top = 0 + Caption = #26356#26032 + ImageIndex = 106 + OnClick = TBTPClick + end + object TBClose: TToolButton + Left = 196 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1146 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #26597#35810#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 15 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 15 + Width = 52 + Height = 12 + Caption = #35746#21333#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 430 + Top = 15 + Width = 26 + Height = 12 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 336 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = PRTCodeNameMChange + end + object PRTCodeNameM: TEdit + Tag = 2 + Left = 459 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = PRTCodeNameMChange + end + end + object cxGrid1: TcxGrid + Left = 8 + Top = 80 + Width = 1009 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'CustomNo' + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNoM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 72 + end + object v1Column2: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'PRTCodeNameM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + end + object v1PRTSpec: TcxGridDBColumn + Caption = #21697#21517'/'#35268#26684 + DataBinding.FieldName = 'PRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 66 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 41 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 33 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 39 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 59 + end + object v1Column1: TcxGridDBColumn + Caption = #25104#21697#25968 + DataBinding.FieldName = 'PRTQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 56 + end + object v1Column11: TcxGridDBColumn + Caption = #25104#21697#21305#25968 + DataBinding.FieldName = 'Qty1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 62 + end + object v1Column6: TcxGridDBColumn + Caption = #21457#36135#25968#37327 + DataBinding.FieldName = 'FHQtyM' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + end + object v1Column7: TcxGridDBColumn + Caption = #21457#36135#21305#25968 + DataBinding.FieldName = 'FHQty1M' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v1Column3: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'FHPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 54 + end + object v1Column4: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KCQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 61 + end + object v1Column10: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KCQty1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + end + object v1Column5: TcxGridDBColumn + Tag = 3 + Caption = #24211#23384#22320#28857 + DataBinding.FieldName = 'KCPlace' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Tag = 3 + Caption = #24211#23384#21407#22240 + DataBinding.FieldName = 'KCReason' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v1Column8: TcxGridDBColumn + Tag = 3 + Caption = #24211#23384#22791#27880 + DataBinding.FieldName = 'KCNote' + HeaderAlignmentHorz = taCenter + Width = 61 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 584 + Top = 120 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 624 + Top = 112 + end + object ADOQueryCmd: TADOQuery + Parameters = <> + Left = 648 + Top = 40 + end + object ADOQueryMain: TADOQuery + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 40 + end + object ADOQueryTemp: TADOQuery + LockType = ltReadOnly + Parameters = <> + Left = 736 + Top = 40 + end +end diff --git a/盛纺贸易管理/U_OrderSubKC.pas b/盛纺贸易管理/U_OrderSubKC.pas new file mode 100644 index 0000000..32b0f3b --- /dev/null +++ b/盛纺贸易管理/U_OrderSubKC.pas @@ -0,0 +1,245 @@ +unit U_OrderSubKC; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxCalendar, cxButtonEdit; + +type + TfrmOrderSubKC = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + TBTP: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label5: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNoM: TEdit; + PRTCodeNameM: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure PRTCodeNameMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + function DelData():Boolean; + public + { Public declarations } + end; + +var + frmOrderSubKC: TfrmOrderSubKC; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmOrderSubKC.FormDestroy(Sender: TObject); +begin + frmOrderSubKC:=nil; +end; + +procedure TfrmOrderSubKC.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderSubKC.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; +procedure TfrmOrderSubKC.InitGrid(); +var + fsj:String; +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_PRTKCQryList :Begdate,:EndDate '); + Parameters.ParamByName('Begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('EndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmOrderSubKC.FormShow(Sender: TObject); +begin + ReadCxGrid('Ʒб',Tv1,'ָʾ'); + InitGrid(); +end; + +procedure TfrmOrderSubKC.PRTCodeNameMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmOrderSubKC.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('Ʒб',Tv1,'ָʾ'); +end; + +procedure TfrmOrderSubKC.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); +end; + +procedure TfrmOrderSubKC.TBTPClick(Sender: TObject); + var + FQty,FQty1,MaxNo:String; +begin + if Order_Main.IsEmpty then Exit; + BegDate.SetFocus; + try + ADOQueryCmd.Connection.BeginTrans; + // with Order_Main do + //begin + //First; + // while not Eof do + //begin + {if Trim(Order_Main.fieldbyname('FHQty').AsString)='' then + FQty:='0.0' + else + FQty:=Trim(Order_Main.fieldbyname('FHQty').AsString); + if Trim(Order_Main.fieldbyname('Qty1').AsString)='' then + FQty1:='0.0' + else + FQty1:=Trim(Order_Main.fieldbyname('Qty1').AsString); } + if Trim(Order_Main.fieldbyname('KCId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'KC','Order_Sub_To',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(Order_Main.fieldbyname('KCId').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from Order_Sub_KC where KCId='''+Trim(Order_Main.fieldbyname('KCId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(Order_Main.fieldbyname('KCId').AsString)='' then + Append + else + Edit; + FieldByName('KCId').Value:=Trim(maxno); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + SSetSaveDataCDSNew(ADOQueryCmd,Tv1,Order_Main,'Order_Sub_To',3); + Post; + end; + //Next; + //end; + with Order_Main do + begin + Edit; + FieldByName('KCId').Value:=Trim(maxno); + Post; + end; + //end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('³ɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +function TfrmOrderSubKC.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete Order_Sub_KC where KCId='''+Trim(Order_Main.fieldbyname('KCId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmOrderSubKC.TBExportClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + TcxGridToExcel('Ʒб',cxGrid1); +end; + +end. diff --git a/盛纺贸易管理/U_OrderSubSel.dfm b/盛纺贸易管理/U_OrderSubSel.dfm new file mode 100644 index 0000000..c0af114 --- /dev/null +++ b/盛纺贸易管理/U_OrderSubSel.dfm @@ -0,0 +1,510 @@ +object frmOrderSubSel: TfrmOrderSubSel + Left = 33 + Top = 100 + Width = 1193 + Height = 593 + Align = alClient + Caption = #25351#31034#21333#26126#32454#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1177 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 106 + OnClick = ToolButton1Click + end + object ToolButton4: TToolButton + Left = 63 + Top = 0 + Caption = #20851#38381 + ImageIndex = 55 + OnClick = ToolButton4Click + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1177 + Height = 47 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 559 + Top = 16 + Width = 48 + Height = 12 + Caption = #23433#25490#21305#25968 + end + object Label2: TLabel + Left = 674 + Top = 16 + Width = 48 + Height = 12 + Caption = #23433#25490#25968#37327 + end + object Label3: TLabel + Left = 19 + Top = 16 + Width = 36 + Height = 12 + Caption = #20379#24212#21830 + end + object Label4: TLabel + Left = 275 + Top = 16 + Width = 36 + Height = 12 + Caption = #36319#21333#21592 + end + object Label5: TLabel + Left = 411 + Top = 16 + Width = 48 + Height = 12 + Caption = #20132#36135#26085#26399 + end + object PFTPPS: TEdit + Left = 607 + Top = 12 + Width = 48 + Height = 20 + TabOrder = 0 + end + object PFTPQty: TEdit + Left = 722 + Top = 12 + Width = 73 + Height = 20 + TabOrder = 1 + end + object FactoryName: TBtnEditA + Left = 56 + Top = 12 + Width = 202 + Height = 20 + ReadOnly = True + TabOrder = 2 + OnBtnClick = FactoryNameBtnClick + end + object PFTPUnit: TComboBox + Left = 797 + Top = 12 + Width = 44 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 3 + Items.Strings = ( + 'M' + 'Y' + 'KG') + end + object PFDlyDate: TDateTimePicker + Left = 460 + Top = 12 + Width = 83 + Height = 20 + Date = 41623.000000000000000000 + Time = 41623.000000000000000000 + TabOrder = 4 + end + object PFGenDanPerson: TBtnEditA + Tag = 2 + Left = 313 + Top = 12 + Width = 82 + Height = 20 + TabOrder = 5 + OnBtnClick = PFGenDanPersonBtnClick + end + end + object cxGrid3: TcxGrid + Left = 599 + Top = 78 + Width = 578 + Height = 476 + Align = alClient + TabOrder = 2 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv3CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v3Column2 + end + item + Format = '0' + Position = spFooter + Column = v3Column3 + end + item + Format = 'FactoryNo' + Column = cxGridDBColumn3 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v3Column3 + end + item + Kind = skSum + Column = v3Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v3Column6: TcxGridDBColumn + Tag = 22 + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 51 + end + object v3Column7: TcxGridDBColumn + Tag = 22 + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #20379#24212#21830 + DataBinding.FieldName = 'FactoryName' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 105 + end + object v3Column1: TcxGridDBColumn + Caption = #36319#21333#21592 + DataBinding.FieldName = 'PFGenDanPerson' + HeaderAlignmentHorz = taCenter + Width = 45 + end + object Tv3Column1: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'PFDlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 71 + end + object v3Column2: TcxGridDBColumn + Caption = #23433#25490#21305#25968 + DataBinding.FieldName = 'PFTPPS' + HeaderAlignmentHorz = taCenter + Width = 62 + end + object v3Column3: TcxGridDBColumn + Caption = #23433#25490#25968#37327 + DataBinding.FieldName = 'PFTPQty' + HeaderAlignmentHorz = taCenter + Width = 57 + end + object v3Column5: TcxGridDBColumn + Caption = #23433#25490#21333#20301 + DataBinding.FieldName = 'PFTPUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + #26465 + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 62 + end + object v3Column4: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + Width = 59 + end + object v3Column8: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + Width = 57 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 78 + Width = 529 + Height = 476 + Align = alLeft + PopupMenu = PopupMenu1 + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = cxGridDBColumn8 + end + item + Format = 'FactoryNo' + Column = cxGridDBColumn4 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn8 + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 44 + end + object cxGridDBColumn1: TcxGridDBColumn + Tag = 22 + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 57 + end + object cxGridDBColumn2: TcxGridDBColumn + Tag = 22 + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 44 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 53 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + #26465 + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 36 + end + object v1Column2: TcxGridDBColumn + Caption = #24050#23433#25490 + DataBinding.FieldName = 'APFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 68 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 529 + Top = 78 + Width = 70 + Height = 476 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object Button1: TButton + Left = 2 + Top = 184 + Width = 66 + Height = 40 + Caption = '>>>>>>>' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button1Click + end + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 288 + Top = 232 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 320 + Top = 232 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 344 + Top = 236 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 256 + Top = 229 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 752 + Top = 248 + end + object DataSource2: TDataSource + DataSet = ClientDataSet1 + Left = 784 + Top = 248 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 816 + Top = 252 + end + object PopupMenu1: TPopupMenu + Left = 176 + Top = 176 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_OrderSubSel.pas b/盛纺贸易管理/U_OrderSubSel.pas new file mode 100644 index 0000000..9b8e342 --- /dev/null +++ b/盛纺贸易管理/U_OrderSubSel.pas @@ -0,0 +1,307 @@ +unit U_OrderSubSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxDropDownEdit, + cxGridCustomPopupMenu, cxGridPopupMenu, DBClient, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, cxCheckBox, + ADODB, StdCtrls, BtnEdit, ExtCtrls, cxCalendar, Menus; + +type + TfrmOrderSubSel = class(TForm) + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton4: TToolButton; + Order_Sub: TClientDataSet; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQuery1: TADOQuery; + Panel1: TPanel; + Label1: TLabel; + PFTPPS: TEdit; + Label2: TLabel; + PFTPQty: TEdit; + Label3: TLabel; + FactoryName: TBtnEditA; + PFTPUnit: TComboBox; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + Tv3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + v3Column5: TcxGridDBColumn; + v3Column6: TcxGridDBColumn; + v3Column7: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Label4: TLabel; + Label5: TLabel; + PFDlyDate: TDateTimePicker; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + v1Column1: TcxGridDBColumn; + ClientDataSet1: TClientDataSet; + DataSource2: TDataSource; + cxGridPopupMenu2: TcxGridPopupMenu; + Panel2: TPanel; + Button1: TButton; + v3Column4: TcxGridDBColumn; + v3Column8: TcxGridDBColumn; + PFGenDanPerson: TBtnEditA; + v1Column2: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FactoryNameBtnClick(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Tv3CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure PFGenDanPersonBtnClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + FFFMainId:String; + end; + +var + frmOrderSubSel: TfrmOrderSubSel; + +implementation +uses + U_DataLink,U_ZDYHelp,U_Fun,U_GYSList; + +{$R *.dfm} + +procedure TfrmOrderSubSel.FormDestroy(Sender: TObject); +begin + //frmOrderSubSel:=nil; +end; + +procedure TfrmOrderSubSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmOrderSubSel.FormShow(Sender: TObject); +begin + PFDlyDate.Date:=SGetServerDate(ADOQuery1); + ReadCxGrid('ϸ',Tv1,'ϸѡ'); + ReadCxGrid('ϸ',Tv1,'ϸѡ'); + + try + ADOQuery1.DisableControls; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.*,APFlag=Cast(0 as bit) from JYOrder_Sub A Where MainId='''+Trim(FFFMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.PRTHX,PRTColor=isnull(B.PRTColorNo,'''')+'' ''+isnull(B.PRTColorEng,'''')+'' ''+isnull(B.PRTColor,''''), '); + sql.Add(' B.PRTOrderQty,B.OrderUnit from JYOrder_PCS_Sub A'); + sql.Add(' left join JYOrder_Sub B on A.SubId=B.SubId'); + sql.Add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQuery1,ClientDataSet1); + SInitCDSData20(ADOQuery1,ClientDataSet1); + finally + ADOQuery1.EnableControls; + end; + +end; + +procedure TfrmOrderSubSel.ToolButton4Click(Sender: TObject); +begin + WriteCxGrid('ϸ',Tv1,'ϸѡ'); + WriteCxGrid('ϸ',Tv1,'ϸѡ'); + Close; +end; + +procedure TfrmOrderSubSel.ToolButton1Click(Sender: TObject); +begin + {if Order_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; } + ModalResult:=1; +end; + +procedure TfrmOrderSubSel.FactoryNameBtnClick(Sender: TObject); +begin + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + FactoryName.TxtCode:=Trim(frmGYSList.CDS_HZ.fieldbyname('ATID').AsString) ; + FactoryName.Text:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmGYSList.Free; + end; +end; + +procedure TfrmOrderSubSel.Button1Click(Sender: TObject); +var + FReal:Double; +begin + if Order_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if Trim(FactoryName.Text)='' then + begin + Application.MessageBox('Ӧ̲Ϊ!','ʾ',0); + Exit; + end; + if Trim(PFGenDanPerson.Text)='' then + begin + Application.MessageBox('ԱΪ!','ʾ',0); + Exit; + end; + {if Trim(PFTPPS.Text)='' then + begin + Application.MessageBox('ƥΪ!','ʾ',0); + Exit; + end else + if TryStrToFloat(PFTPPS.Text,FReal)=False then + begin + Application.MessageBox('ƥǷ!','ʾ',0); + Exit; + end; } + if Trim(PFTPPS.Text)<>'' then + begin + if TryStrToFloat(PFTPPS.Text,FReal)=False then + begin + Application.MessageBox('ƥǷ!','ʾ',0); + Exit; + end; + end; + if Trim(PFTPQty.Text)='' then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end else + if TryStrToFloat(PFTPQty.Text,FReal)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end; + Order_Sub.DisableControls; + with Order_Sub do + begin + First; + while not Eof do + begin + if Order_Sub.FieldByName('SSel').AsBoolean=true then + begin + + with ClientDataSet1 do + begin + Append; + FieldByName('SubId').Value:=Order_Sub.fieldbyname('SubId').Value; + FieldByName('PRTHX').Value:=Order_Sub.fieldbyname('PRTHX').Value; + FieldByName('PRTColor').Value:=Trim(Order_Sub.fieldbyname('PRTColorNo').AsString)+' '+ + Trim(Order_Sub.fieldbyname('PRTColorEng').AsString)+' '+ + Trim(Order_Sub.fieldbyname('PRTColor').AsString); + FieldByName('FactoryName').Value:=Trim(FactoryName.Text); + FieldByName('FactoryNo').Value:=Trim(FactoryName.TxtCode); + FieldByName('PFGenDanPerson').Value:=Trim(PFGenDanPerson.Text); + FieldByName('PFDlyDate').Value:=PFDlyDate.Date; + if Trim(PFTPPS.Text)<>'' then + begin + FieldByName('PFTPPS').Value:=Trim(PFTPPS.Text); + end else + begin + FieldByName('PFTPPS').Value:=Null; + end; + + FieldByName('PFTPQty').Value:=Trim(PFTPQty.Text); + FieldByName('PFTPUnit').Value:=Trim(PFTPUnit.Text); + FieldByName('PRTOrderQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').Value; + FieldByName('OrderUnit').Value:=Order_Sub.fieldbyname('OrderUnit').Value; + Post; + end; + Edit; + FieldByName('APFlag').Value:=True; + FieldByName('SSel').Value:=False; + Post; + end; + Next; + end; + end; + Order_Sub.EnableControls; +end; + +procedure TfrmOrderSubSel.Tv3CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ClientDataSet1.IsEmpty then Exit; + ClientDataSet1.Delete; +end; + +procedure TfrmOrderSubSel.PFGenDanPersonBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PFGenDanPerson'; + flagname:='Ա'; + fnote:=True; + V1Note.Caption:='绰'; + if ShowModal=1 then + begin + PFGenDanPerson.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmOrderSubSel.N1Click(Sender: TObject); +begin + SelOKNo(Order_Sub,True); +end; + +procedure TfrmOrderSubSel.N2Click(Sender: TObject); +begin + SelOKNo(Order_Sub,False); +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderAnPai.dfm b/盛纺贸易管理/U_ProductOrderAnPai.dfm new file mode 100644 index 0000000..b4a8911 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderAnPai.dfm @@ -0,0 +1,956 @@ +object frmProductOrderAnPai: TfrmProductOrderAnPai + Left = 191 + Top = 81 + Width = 1203 + Height = 721 + Caption = #26816#39564#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1187 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + Visible = False + OnClick = ToolButton1Click + end + object ToolButton10: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = ToolButton10Click + end + object ToolButton5: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #30133#28857#31649#29702 + ImageIndex = 49 + OnClick = ToolButton5Click + end + object TBExport: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object ToolButton9: TToolButton + Left = 276 + Top = 0 + Caption = #26816#21069#22238#20462 + ImageIndex = 54 + Visible = False + OnClick = ToolButton9Click + end + object TBPrint: TToolButton + Left = 359 + Top = 0 + AutoSize = True + Caption = #25171#21360 + DropdownMenu = PopupMenu1 + ImageIndex = 12 + Style = tbsDropDown + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel2: TPanel + Left = 0 + Top = 366 + Width = 1187 + Height = 315 + Align = alClient + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object cxGrid2: TcxGrid + Left = 2 + Top = 85 + Width = 1183 + Height = 228 + Align = alClient + TabOrder = 0 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + Column = V2Column1 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V2Column1 + end + item + Kind = skSum + Column = V2Column7 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object V2Column10: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 39 + end + object V2Column2: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'ADefDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnEditValueChanged = cxGridDBColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 119 + end + object V2Column8: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'AOrddefstr4' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = V2Column8PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object V2Column11: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'AOrddefstr6' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = V2Column11PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'GangNo' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object V2Column3: TcxGridDBColumn + Caption = #26412#21378#32568#21495 + DataBinding.FieldName = 'AOrddefstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V2Column7: TcxGridDBColumn + Caption = #21305#25968#37327 + DataBinding.FieldName = 'AOrdQty2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 48 + end + object V2Column1: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'AOrdQty1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V2Column1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 69 + end + object V2Column4: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'AOrddefstr2' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object V2Column13: TcxGridDBColumn + Caption = #25442#31639#31995#25968 + DataBinding.FieldName = 'ZSXS' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DecimalPlaces = 4 + Properties.DisplayFormat = '0.####' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object V2Column5: TcxGridDBColumn + Caption = #26816#39564#38271#24230#21333#20301 + DataBinding.FieldName = 'AOrddefstr3' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + #30917 + '' + '') + HeaderAlignmentHorz = taCenter + Width = 86 + end + object V2Column9: TcxGridDBColumn + Caption = #22238#20179#31867#22411 + DataBinding.FieldName = 'APType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V2Column9PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 61 + end + object V2Column12: TcxGridDBColumn + Caption = #22238#20462#25968#25454 + DataBinding.FieldName = 'AOrdFlag1' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 65 + end + object V2Column14: TcxGridDBColumn + Caption = #26816#39564#38376#24133'(cm)' + DataBinding.FieldName = 'JYMF' + Width = 87 + end + object V2Column15: TcxGridDBColumn + Caption = #26816#39564#20811#37325'(g/'#13217')' + DataBinding.FieldName = 'JYKZ' + Width = 97 + end + object V2Column6: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'AOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 85 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1183 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20840#36873 + ImageIndex = 99 + OnClick = ToolButton8Click + end + object ToolButton7: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20840#24323 + ImageIndex = 129 + OnClick = ToolButton7Click + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 111 + OnClick = ToolButton4Click + end + object ToolButton6: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 96 + OnClick = ToolButton6Click + end + object ToolButton11: TToolButton + Left = 378 + Top = 0 + Caption = #28155#21152#32568#26631#31614 + ImageIndex = 97 + OnClick = ToolButton11Click + end + object LBGANG: TComboBox + Left = 473 + Top = 5 + Width = 145 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 0 + end + end + object Panel3: TPanel + Left = 2 + Top = 34 + Width = 1183 + Height = 51 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + object Label1: TLabel + Left = 26 + Top = 17 + Width = 52 + Height = 13 + Caption = #22238#20179#26102#38388 + end + object Label2: TLabel + Left = 205 + Top = 17 + Width = 39 + Height = 13 + Caption = #21152#24037#21378 + Visible = False + end + object Label4: TLabel + Left = 545 + Top = 17 + Width = 52 + Height = 13 + Caption = #25968#37327#21333#20301 + Visible = False + end + object Label5: TLabel + Left = 687 + Top = 17 + Width = 78 + Height = 13 + Caption = #26816#39564#25968#37327#21333#20301 + Visible = False + end + object Label7: TLabel + Left = 378 + Top = 17 + Width = 39 + Height = 13 + Caption = #22383#24067#21378 + Visible = False + end + object DateTimePicker1: TDateTimePicker + Left = 80 + Top = 13 + Width = 112 + Height = 21 + Date = 41281.501696319440000000 + Format = 'yyyy-MM-dd' + Time = 41281.501696319440000000 + TabOrder = 0 + end + object BtnEditA1: TBtnEditA + Left = 245 + Top = 13 + Width = 109 + Height = 21 + Enabled = False + TabOrder = 1 + Visible = False + OnBtnClick = BtnEditA1BtnClick + end + object ComboBox1: TComboBox + Left = 602 + Top = 13 + Width = 65 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 2 + Visible = False + Items.Strings = ( + 'M' + 'Kg') + end + object BtnEditA2: TBtnEditA + Left = 768 + Top = 13 + Width = 58 + Height = 21 + TabOrder = 3 + Visible = False + OnBtnClick = BtnEditA2BtnClick + end + object BtnEditA4: TBtnEditA + Left = 418 + Top = 13 + Width = 110 + Height = 21 + Enabled = False + TabOrder = 4 + Visible = False + OnBtnClick = BtnEditA4BtnClick + end + end + object MovePanel2: TMovePanel + Left = 488 + Top = 126 + Width = 273 + Height = 43 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1187 + Height = 280 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn2: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1Column3: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1JGFactoryName: TcxGridDBColumn + Caption = #21152#24037#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'PBFactory' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1Column6: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'TPPS' + Width = 61 + end + object v1Column7: TcxGridDBColumn + Caption = #25237#22383#25968#37327 + DataBinding.FieldName = 'TPQty' + Width = 62 + end + object v1Column11: TcxGridDBColumn + Caption = #25237#22383#21333#20301 + DataBinding.FieldName = 'TPUnit' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column10: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + HeaderAlignmentHorz = taCenter + Width = 82 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + Width = 54 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column4: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + Width = 60 + end + object v1Column5: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'HCPS' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column2: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'HCQty' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v1Column8: TcxGridDBColumn + Caption = #22238#20462#21305#25968 + DataBinding.FieldName = 'HXPS' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #22238#20462#25968#37327 + DataBinding.FieldName = 'HXQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'prtkuanNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1187 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + object Label3: TLabel + Left = 21 + Top = 18 + Width = 42 + Height = 13 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNoM: TEdit + Tag = 2 + Left = 65 + Top = 10 + Width = 205 + Height = 32 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnChange = OrderNoMChange + end + end + object cxGrid4: TcxGrid + Left = 56 + Top = 122 + Width = 374 + Height = 192 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + Visible = False + object Tv4: TcxGridDBTableView + OnDblClick = Tv4DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_OrderNo + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.FoneRed + object v4Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 179 + end + object v4Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 138 + end + end + object cxGrid4Level1: TcxGridLevel + GridView = Tv4 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 656 + Top = 192 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 192 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 192 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 784 + Top = 192 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 144 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 208 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 448 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 816 + Top = 192 + end + object PopupMenu1: TPopupMenu + Left = 544 + Top = 208 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 976 + Top = 392 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 968 + Top = 384 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 752 + Top = 192 + end + object CDS_OrderNo: TClientDataSet + Aggregates = <> + Params = <> + Left = 120 + Top = 104 + end + object DS_OrderNo: TDataSource + DataSet = CDS_OrderNo + Left = 192 + Top = 104 + end + object ADOQueryHC: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 720 + Top = 192 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 576 + Top = 512 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 256 + end +end diff --git a/盛纺贸易管理/U_ProductOrderAnPai.pas b/盛纺贸易管理/U_ProductOrderAnPai.pas new file mode 100644 index 0000000..e294dae --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderAnPai.pas @@ -0,0 +1,2355 @@ +unit U_ProductOrderAnPai; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC, BtnEdit, cxTextEdit, cxButtonEdit, cxDropDownEdit, MovePanel,StrUtils, + cxCurrencyEdit; + +type + TfrmProductOrderAnPai = class(TForm) + ToolBar1: TToolBar; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + DataSource2: TDataSource; + CDS_Sub: TClientDataSet; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton5: TToolButton; + ToolButton6: TToolButton; + ADOQueryPrint: TADOQuery; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGridDBColumn2: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1JGFactoryName: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + Panel1: TPanel; + Label3: TLabel; + OrderNoM: TEdit; + cxGrid4: TcxGrid; + Tv4: TcxGridDBTableView; + v4Column1: TcxGridDBColumn; + v4Column2: TcxGridDBColumn; + cxGrid4Level1: TcxGridLevel; + CDS_OrderNo: TClientDataSet; + DS_OrderNo: TDataSource; + V2Column5: TcxGridDBColumn; + V2Column7: TcxGridDBColumn; + V2Column8: TcxGridDBColumn; + ToolButton4: TToolButton; + ADOQueryHC: TADOQuery; + Panel3: TPanel; + DateTimePicker1: TDateTimePicker; + BtnEditA1: TBtnEditA; + ComboBox1: TComboBox; + BtnEditA2: TBtnEditA; + Label1: TLabel; + Label2: TLabel; + Label4: TLabel; + Label5: TLabel; + V2Column10: TcxGridDBColumn; + ToolButton7: TToolButton; + ToolButton8: TToolButton; + V2Column11: TcxGridDBColumn; + BtnEditA4: TBtnEditA; + Label7: TLabel; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + ToolButton9: TToolButton; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + ToolButton10: TToolButton; + V2Column12: TcxGridDBColumn; + MovePanel2: TMovePanel; + V2Column14: TcxGridDBColumn; + V2Column15: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + V2Column9: TcxGridDBColumn; + V2Column13: TcxGridDBColumn; + ADOQuery1: TADOQuery; + ToolButton11: TToolButton; + LBGANG: TComboBox; + v1Column12: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure AOrdDefNote12DblClick(Sender: TObject); + procedure AOrdDefNote7BtnDnClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure Tv4DblClick(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure V2Column1PropertiesEditValueChanged(Sender: TObject); + procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); + procedure V2Column4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton4Click(Sender: TObject); + procedure BtnEditA1BtnClick(Sender: TObject); + procedure BtnEditA2BtnClick(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + procedure BtnEditA4BtnClick(Sender: TObject); + procedure V2Column11PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure V2Column13PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column9PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton11Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + function SaveData():Boolean; + procedure UpdateHC(FFirstNo:String); + function YFData():Boolean; + function DELYFData():Boolean; + procedure GetGangLb(); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmProductOrderAnPai: TfrmProductOrderAnPai; + newh:hwnd; +implementation +uses + U_DataLink,U_OrderInPut,U_Fun, U_ZDYHelp,U_iniParam, U_ZDYHelpSel,U_BefChkHX; + +{$R *.dfm} +procedure TfrmProductOrderAnPai.GetGangLb(); +begin + LBGANG.Items.Clear; + ADOQueryTemp.DisableControls; + with ADOQueryTemp do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''LBGANGFLAG'' '); + open; + If not isEmpty then + begin + while not eof do + begin + LBGANG.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + LBGANG.ItemIndex:=0; + end; + end; + ADOQueryTemp.EnableControls; +end; +procedure TfrmProductOrderAnPai.FormDestroy(Sender: TObject); +begin + frmProductOrderAnPai:=nil; +end; + +procedure TfrmProductOrderAnPai.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderAnPai.FormCreate(Sender: TObject); +begin + + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderAnPai.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾϢ',Tv1,'زֹ'); + WriteCxGrid('زϢJZC1',Tv2,'زֹ'); +end; + +procedure TfrmProductOrderAnPai.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where LLId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Sub); + SInitCDSData20(ADOQueryMain,CDS_Sub); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderAnPai.InitGridFH(); +begin +end; + +procedure TfrmProductOrderAnPai.InitForm(); +var + i:Integer; +begin + DateTimePicker1.DateTime:=SGetServerDateTime(ADOQueryTemp); + ReadCxGrid('ָʾϢ',Tv1,'زֹ'); + ReadCxGrid('زϢJZC1',Tv2,'زֹ'); +end; + +function TfrmProductOrderAnPai.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + if IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderAnPai.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ɹб'); +end; + +procedure TfrmProductOrderAnPai.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɹ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); + //SelPrintData(TV4,ADOQueryMain,'ͬѯ'); +end; + +procedure TfrmProductOrderAnPai.FormShow(Sender: TObject); +begin + InitForm(); + GetGangLb(); +end; + +procedure TfrmProductOrderAnPai.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderAnPai.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderAnPai.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderAnPai.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderAnPai.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderAnPai.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderAnPai.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton2Click(Sender: TObject); +var + FLBName:String; +begin + {if CDS_Sub.IsEmpty=False then + begin + FLBName:=Trim(CDS_Sub.fieldbyname('LBName').AsString); + end; } + if Order_Main.IsEmpty then exit; + if CDS_Sub.IsEmpty then + begin + with CDS_Sub do + begin + Append; + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('ADefDate1').Value:=DateTimePicker1.Date; + FieldByName('AOrddefstr4').Value:=Trim(BtnEditA1.Text); + FieldByName('AOrddefstr5').Value:=Trim(BtnEditA1.TxtCode); + FieldByName('AOrddefstr2').Value:=Trim(Order_Main.fieldbyname('TPUnit').AsString); + IF Trim(BtnEditA2.Text)<>'' then + FieldByName('AOrddefstr3').Value:=Trim(BtnEditA2.Text) + else + FieldByName('AOrddefstr3').Value:=trim(Order_Main.FieldByName('Sorddefstr9').AsString); + FieldByName('AOrddefstr6').Value:=Trim(BtnEditA4.Text); + Post; + end; + end else + begin + ToolBar1.SetFocus; + //CopyAddRowCDS(CDS_Sub); + CopyAddRow(TV2,CDS_Sub); + with CDS_Sub do + begin + Edit; + FieldByName('APID').Value:=null; + FieldByName('GangNo').Value:=null; + FieldByName('AOrddefstr1').Value:=null; + FieldByName('AOrdQty2').Value:=null; + FieldByName('AOrdQty1').Value:=null; + FieldByName('GangNo').Value:=null; + //Post; + end; + end; + + +end; + +procedure TfrmProductOrderAnPai.ToolButton3Click(Sender: TObject); +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.fieldbyname('APID').AsString)<>'' then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from WFB_MJJY where APID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѳݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub_AnPai where APID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=(select isnull(sum(AOrdQty2),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(',HCMQty=(select isnull(sum(HCMQty),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_LL Set HCQty=HCMQty*1.00/TPMQty*TPQty '); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + if DELYFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧʧ!','ʾ',0); + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + end; + end; + with CDS_Sub do + begin + Delete; + end; + if CDS_Sub.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub Set SOrdFlag20=0 where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + {with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=0,HCQty=0,HCMQty=0 where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryHC do + begin + Close; + sql.Clear; + sql.Add('select distinct(AOrddefstr5) AOrddefstr5 from JYOrder_Sub_AnPai where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryHC.IsEmpty then + UpdateHC(Trim(ADOQueryHC.fieldbyname('AOrddefstr5').AsString)) + else + begin + with ADOQueryHC do + begin + First; + while not Eof do + begin + UpdateHC(Trim(ADOQueryHC.fieldbyname('AOrddefstr5').AsString)); + Next; + end; + end; + end; } + +end; + +function TfrmProductOrderAnPai.SaveData():Boolean; +var + maxno,CRID,OrdMainId,YFID,YFIDMaxNo:String; +begin + try + ADOQueryCmd.Connection.BeginTrans; + ///ӱ + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(CDS_Sub.fieldbyname('APId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'','JYOrder_Sub_AnPai',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('APId').AsString); + end; + IF CDS_Sub.FieldByName('ZSXS').AsFloat>10.0 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ϵܴ10','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(CDS_Sub.fieldbyname('APId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('ApId').Value:=Trim(maxno); + FieldByName('ADefDate1').Value:=CDS_Sub.fieldbyname('ADefDate1').Value; + FieldByName('AOrddefstr4').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('AOrddefstr5').Value:=Trim(Order_Main.fieldbyname('FirstNo').AsString); + FieldByName('GangNo').Value:=CDS_Sub.fieldbyname('GangNo').Value; + FieldByName('AOrddefstr1').Value:=CDS_Sub.fieldbyname('AOrddefstr1').Value; + FieldByName('AOrddefstr2').Value:=CDS_Sub.fieldbyname('AOrddefstr2').Value; + FieldByName('LBName').Value:=CDS_Sub.fieldbyname('LBName').Value; + if Trim(CDS_Sub.fieldbyname('ZSXS').AsString)<>'' then + FieldByName('ZSXS').Value:=CDS_Sub.fieldbyname('ZSXS').Value + else + FieldByName('ZSXS').Value:=0; + {if Trim(CDS_Sub.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('JGPrice').Value:=CDS_Sub.fieldbyname('JGPrice').Value + else + FieldByName('JGPrice').Value:=0; } + FieldByName('AOrdQty2').Value:=CDS_Sub.fieldbyname('AOrdQty2').Value; + FieldByName('AOrdQty1').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + FieldByName('AOrddefstr3').Value:=CDS_Sub.fieldbyname('AOrddefstr3').Value; + FieldByName('AOrdDefNote1').Value:=CDS_Sub.fieldbyname('AOrdDefNote1').Value; + FieldByName('LLID').Value:=Order_Main.fieldbyname('LLID').Value; + FieldByName('AOrddefstr6').Value:=CDS_Sub.fieldbyname('AOrddefstr6').Value; + FieldByName('AOrdDefNote1').Value:=CDS_Sub.fieldbyname('AOrdDefNote1').Value; + FieldByName('APType').Value:=CDS_Sub.fieldbyname('APType').Value; + if Trim(CDS_Sub.fieldbyname('JYMF').AsString)<>'' then + FieldByName('JYMF').Value:=CDS_Sub.fieldbyname('JYMF').Value; + if Trim(CDS_Sub.fieldbyname('JYKZ').AsString)<>'' then + FieldByName('JYKZ').Value:=CDS_Sub.fieldbyname('JYKZ').Value; + if CDS_Sub.fieldbyname('AOrdFlag1').AsBoolean=True then + FieldByName('AOrdFlag1').Value:=1 + else + FieldByName('AOrdFlag1').Value:=0; + if Trim(CDS_Sub.fieldbyname('APId').AsString)='' then + FieldByName('Filler').Value:=Trim(DName) + else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from Contract_Cloth_LL where LLId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('TPUnit').AsString)=Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString) then + begin + FieldByName('HCYZQty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + end else + begin + if Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)='M' then + begin + FieldByName('HCYZQty').Value:=(CDS_Sub.fieldbyname('AOrdQty1').Value*1.00/ADOQueryTemp.fieldbyname('TPMQty').Value) + *ADOQueryTemp.fieldbyname('TPQty').Value ; + end; + end; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub Set SOrdFlag20=1 where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('APId').Value:=Trim(maxno); + CDS_Sub.FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + { with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' UPdate WFB_MJJY Set MJTypeOther='''+Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString)+''''); + SQL.Add(' where APId='''+Trim(maxno)+''''); + sql.Add(' UPdate CK_BanCP_KC Set KCQtyUnit='''+Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString)+''''); + SQL.Add(' where MJId in (select MJID from WFB_MJJY where APID='''+Trim(maxno)+''')'); + sql.Add(' UPdate CK_BanCP_CR Set QtyUnit='''+Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString)+''''); + SQL.Add(' where MJId in (select MJID from WFB_MJJY where APID='''+Trim(maxno)+''')'); + ExecSQL; + end; } + //OrdMainId:=Trim(Order_Main.fieldbyname('MainId').AsString); + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQuery1.IsEmpty=False then + begin + CRID:=ADOQuery1.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + if CDS_Sub.FieldByName('AOrdFlag1').AsBoolean<>True then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + sql.Add(' and YFName=''Ⱦ'' ') + else + sql.Add(' and YFName=''ӹ'' '); + + Open; + end; + YFID:=Trim(ADOQuery1.fieldbyname('YFID').AsString); + // if Trim(YFID)='' then + if Trim(YFID)='' then + begin + if GetLSNo(ADOQueryCmd,YFIDMaxNo,'RJ','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡȾӦʧ!','ʾ',0); + Exit; + end; + end else + begin + YFIDMaxNo:=YFID; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where YFID='''+Trim(YFID)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(YFID)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end + else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end; + FieldByName('YFID').Value:=Trim(YFIDMaxNo); + FieldByName('YFTypeId').Value:=Trim(CDS_Sub.fieldbyname('APId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=CDS_Sub.fieldbyname('ADefDate1').Value; + if Trim(CDS_Sub.fieldbyname('AOrdQty1').AsString)<>'' then + FieldByName('Qty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value + else + FieldByName('Qty').Value:=0; + FieldByName('YFType').Value:='Զ'; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=Trim(Order_Main.fieldbyname('OrdDefStr2').AsString); + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('TPUnit').AsString); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + FieldByName('YFName').Value:='Ⱦ' + else + FieldByName('YFName').Value:='ӹ'; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + Post; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFIDMaxNo)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + {if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('²Ӧʧ!','ʾ',0); + Exit; + end;} + Next; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=(select isnull(sum(AOrdQty2),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(',HCMQty=(select isnull(sum(HCMQty),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if (Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)=Trim(Order_Main.fieldbyname('TPUnit').AsString)) then + sql.Add('Update Contract_Cloth_LL Set HCQty=(select isnull(Sum(AOrdQty1),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID) ') + else + sql.Add('Update Contract_Cloth_LL Set HCQty=HCMQty*1.00/TPMQty*TPQty '); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderAnPai.AOrdDefNote12DblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.AOrdDefNote7BtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmProductOrderAnPai.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderAnPai.ToolButton5Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCD'; + flagname:='õ'; + fnote:=True; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton6Click(Sender: TObject); +var + fPrintFile,JYNote:string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; +begin + if CDS_Sub.IsEmpty then Exit; + if CDS_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('δѡҪӡ!','ʾ',0); + Exit; + end; + IF Trim(LBGANG.Text)='' then + begin + Application.MessageBox('ѡҪӡĸױǩ','ʾ',0); + Exit; + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if CDS_Sub.FieldByName('SSel').AsBoolean=True then + begin + if Trim(CDS_Sub.fieldbyname('APID').AsString) ='' then + begin + CDS_Sub.EnableControls; + Application.MessageBox('δ治ܴӡ!','ʾ',0); + Exit; + end; + + end; + Next; + end; + end; + CDS_Sub.EnableControls; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBGANG.Text)+'.rmf' ; + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + //RM1.LoadFromFile(fPrintFile); + //RM1.ShowReport; + //RM1.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if CDS_Sub.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,OrderNoM=B.OrderNo,B.OrderNo,B.conNO,B.CustomerNoName,B.OrdPerson1,B.MPRTCodeName,B.MPrtkuanNO,C.prtkuanNo,C.PRTColor,C.PRTHX,B.MPRTBZNote,B.MPRTKaiJian, '); + sql.Add('khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=B.conNO), '); + sql.Add('B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,C.SOrddefstr1,C.SOrddefstr4'); + sql.Add(' from JYOrder_Sub_AnPai A inner join JYOrder_Main B on A.MainId=B.MainId'); + sql.Add('inner join JYOrder_Sub C on A.SubId=C.SubId where A.APID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrint.fieldbyname('APID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + JYNote:='װҪ:'+Trim(ADOQueryPrint.fieldbyname('MPRTBZNote').AsString)+#13 + +'͹ҹ:'+Trim(ADOQueryPrint.fieldbyname('MPRTYaoFeng').AsString)+#13 + +'̽:'+Trim(ADOQueryPrint.fieldbyname('MPRTTangJin').AsString)+#13 + +'Ҫ:'+Trim(ADOQueryPrint.fieldbyname('MPRTJiBenNote').AsString)+#13 + +'رʾ:'+Trim(ADOQueryPrint.fieldbyname('MPRTTeBieNote').AsString); + RMVariables['JYNote']:=Trim(JYNote); + RMVariables['QRBARCODE']:=fImagePath; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end; + Next; + end; + end; + CDS_Sub.EnableControls; + + + +end; + +procedure TfrmProductOrderAnPai.OrderNoMChange(Sender: TObject); +var + mvalue:String; +begin + mvalue:=Trim(OrderNoM.Text); + if Length(Trim(mvalue))<3 then + begin + cxGrid4.Visible:=False; + Exit; + end; + mvalue:='%'+Trim(mvalue)+'%'; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrderNo,MPRTCodeName,A.MainId from JYOrder_Main A'); + sql.Add(' where A.orderno like :orderno '); + sql.Add(' and A.MainId in(select MainId from JYOrder_Sub B where B.Mainid=A.MainId and B.subId in(select OrdSubId from Contract_Cloth_LL))'); + Parameters.ParamByName('orderno').Value:=mvalue; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_OrderNo); + SInitCDSData20(ADOQueryTemp,CDS_OrderNo); + if CDS_OrderNo.IsEmpty then cxGrid4.Visible:=False else cxGrid4.Visible:=True; +end; + +procedure TfrmProductOrderAnPai.Tv4DblClick(Sender: TObject); +begin + cxGrid4.Visible:=False; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add(' select isnull(PBFactory10,PBFactory20) PBFactory,AA.* from('); + sql.Add('select A.*,B.PRTColor,B.SubId,B.PRTOrderQty,B.OrderUnit,B.PrtkuanNO,B.SLbName,C.FirstName,C.FirstNo,B.SOrddefstr1,B.SOrddefstr4,B.SOrddefstr9, '); + sql.Add('C.TPPS,C.TPQty,C.LLID,C.HCPS,C.HCQty,C.HXUnit,C.DHIDHelp,C.DHID,C.TPUnit,'); + sql.Add('HXPS=(select Sum(HXPS) from Contract_Cloth_BefChkHX HX where HX.LLID=C.LLID),'); + sql.Add('HXQty=(select Sum(HXQty) from Contract_Cloth_BefChkHX HX where HX.LLID=C.LLID),'); + sql.Add('PBFactory10=(select Top 1 AA.factoryNoName from Contract_Main AA inner join Contract_Cloth_DH BB on AA.MainId=BB.MainId'); + sql.Add(' where BB.DHID=C.DHID)'); + sql.Add(',PBFactory20=(select Top 1 FirstName from ContractSX_Cloth_DH SD where SD.DHID=C.SXDHID)'); + sql.Add('from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' inner join Contract_Cloth_LL C on C.OrdSubId=B.SubId'); + sql.Add('where A.MainId='''+Trim(CDS_OrderNo.fieldbyname('MainId').AsString)+''''); + // sql.Add(' and C.JXJGFlag=0'); +// sql.Add(' and exists(select * from Contract_Cloth_LLMX LM where LM.OrdSubId=B.SubId and LM.OrdSubId=C.OrdSubId )'); + sql.Add(' and exists( select * from Contract_Cloth_LLMX LLM where LLM.DHID=isnull(C.DHIdHelp,C.DHID)) )AA'); + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQueryTemp,Order_Main); + SInitCDSData20(ADOQueryTemp,Order_Main); +end; + +procedure TfrmProductOrderAnPai.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitGrid(); + BtnEditA1.TxtCode:=Trim(Order_Main.fieldbyname('FirstNo').AsString); + BtnEditA1.Text:=Trim(Order_Main.fieldbyname('FirstName').AsString); + BtnEditA4.Text:=Trim(Order_Main.fieldbyname('PBFactory').AsString); +end; + +procedure TfrmProductOrderAnPai.V2Column1PropertiesEditValueChanged( + Sender: TObject); +//var + //mvalue,FFieldName,mvalue10,mvalue20:String; + //FHCPS,FHCQty,FHCMQty:Double; +begin + {if Trim(CDS_Sub.fieldbyname('AOrddefstr4').AsString)='' then + begin + Application.MessageBox('ȾΪ!','ʾ',0); + Exit; + end; + with Self.ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A '); + sql.Add(' where A.FirstNo='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + sql.Add(' and A.OrdSubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if Self.ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ȾûӦ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + if FFieldName='AOrdQty1' then + begin + if Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)='' then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + end; + if Trim(mvalue)='' then + begin + if FFieldName='ZSXS' then + mvalue:='1' + else + if FFieldName='AOrddefstr2' then + mvalue:='' + else + mvalue:='0'; + end; + + with CDS_Sub do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + if Trim(FFieldName)='AOrddefstr2' then + begin + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + end else + begin + sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); + end; + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + if Trim(FFieldName)='AOrdQty2' then + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(AOrdQty2),0) HCPS,isnull(Sum(AOrdQty1),0) HCQty from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + Open; + end; + FHCPS:=ADOQueryTemp.FieldByName('HCPS').Value; + if FHCPS>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCPS>0) do + begin + if FHCPS>=FieldByName('TPPS').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS=TPPS '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=FHCPS-FieldByName('TPPS').Value; + end else + begin + + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS='+FloatToStr(FHCPS)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=0; + end; + Next; + end; + end; + end; + end; + if Trim(FFieldName)='AOrdQty1' then + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(AOrdQty2),0) HCPS,isnull(Sum(AOrdQty1),0) HCQty from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + Open; + end; + FHCQty:=ADOQueryTemp.FieldByName('HCQty').Value; + if FHCQty>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCQty>0) do + begin + if FHCQty>=FieldByName('BCPQty').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty=BCPQty '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCQty:=FHCQty-FieldByName('BCPQty').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty='+FloatToStr(FHCQty)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCQty:=0; + end; + Next; + end; + end; + end; + end;} +end; +procedure TfrmProductOrderAnPai.UpdateHC(FFirstNo:String); +var + FHCPS,FHCYZQty,FHCMQty:Double; +begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(AOrdQty2),0) HCPS from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(FFirstNo)+''''); + Open; + end; + FHCPS:=ADOQueryTemp.FieldByName('HCPS').Value; + if FHCPS=0 then + begin + + end; + if FHCPS>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(FFirstNo)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCPS>0) do + begin + if FHCPS>=FieldByName('TPPS').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS=TPPS '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=FHCPS-FieldByName('TPPS').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS='+FloatToStr(FHCPS)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=0; + end; + Next; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(HCYZQty),0) HCYZQty,isnull(Sum(HCMQty),0) HCMQty from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(FFirstNo)+''''); + Open; + end; + FHCYZQty:=ADOQueryTemp.FieldByName('HCYZQty').Value; + FHCMQty:=ADOQueryTemp.FieldByName('HCMQty').Value; + if FHCYZQty>=0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(FFirstNo)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCYZQty>0) do + begin + if FHCYZQty>=FieldByName('BCPQty').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty=BCPQty '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCYZQty:=FHCYZQty-FieldByName('BCPQty').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty='+FloatToStr(FHCYZQty)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCYZQty:=0; + end; + Next; + end; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCMQty>0) do + begin + if FHCMQty>=FieldByName('BCPMQty').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCMQty=BCPMQty '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCMQty:=FHCMQty-FieldByName('BCPMQty').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCMQty='+FloatToStr(FHCMQty)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCMQty:=0; + end; + Next; + end; + end; + end; +end; + +procedure TfrmProductOrderAnPai.cxGridDBColumn1PropertiesEditValueChanged( + Sender: TObject); +//var + //mvalue,FFieldName:String; +begin + {mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_Sub do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + if Trim(mvalue)<>'' then + begin + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + end else + begin + sql.Add(' Set '+FFieldName+'=NULL'); + end; + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; } +end; + + +procedure TfrmProductOrderAnPai.V2Column4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('AOrddefstr2').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + sql.Add(' Set AOrddefstr2='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + sql.Add(' UPdate WFB_MJJY Set MJStr1='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.V2Column5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('AOrddefstr3').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.V2Column6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + mvalue:string; +begin + mvalue:=Trim(CDS_Sub.FieldByName('AOrdDefNote1').AsString); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='JYYQ'; + flagname:='Ҫ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('AOrdDefNote1').Value:=mvalue+frmZDYHelpSel.ReturnStr; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + sql.Add(' Set AOrdDefNote1='''+Trim(mvalue+frmZDYHelpSel.ReturnStr)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; } + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmProductOrderAnPai.V2Column8PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A '); + sql.Add(' where A.FirstNo='''+Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + sql.Add(' and A.OrdSubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ȾûӦ!','ʾ',0); + + end else + begin + with CDS_Sub do + begin + Edit; + FieldByName('AOrddefstr4').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + FieldByName('AOrddefstr5').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + sql.Add(' Set AOrddefstr5='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + sql.Add(' ,AOrddefstr4='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end;} + end; + + end; + end; + finally + //frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton4Click(Sender: TObject); +var + FDW:String; + I:integer; +begin + IF CDS_Sub.IsEmpty then exit; + if CDS_Sub.Locate('ADefDate1',null,[])=True then + begin + Application.MessageBox('زʱ䲻Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr4',null,[])=True then + begin + Application.MessageBox('ȾΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr4','',[])=True then + begin + Application.MessageBox('ȾΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('GangNo',null,[])=True then + begin + Application.MessageBox('׺ŲΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr2',null,[])=True then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr2','',[])=True then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr3',null,[])=True then + begin + Application.MessageBox('鳤ȵλΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr3','',[])=True then + begin + Application.MessageBox('鳤ȵλΪ!','ʾ',0); + Exit; + end; + {if CDS_Sub.Locate('AOrddefstr2','Kg',[])=True then + begin + if Trim(CDS_Sub.FieldByName('ZSXS').AsString)='' then + begin + Application.MessageBox('ϵΪ!','ʾ',0); + Exit; + end; + end;} + if CDS_Sub.Locate('AOrdQty2',null,[])=True then + begin + Application.MessageBox('ƥΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrdQty1',null,[])=True then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + {if CDS_Sub.Locate('LBName','',[])=True then + begin + Application.MessageBox('ǩƲΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('LBName','',[])=True then + begin + Application.MessageBox('ǩƲΪ!','ʾ',0); + Exit; + end;} + { if CDS_Sub.Locate('AOrdQty1','',[])=True then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end;} + FDW:=Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString); + if CDS_Sub.Locate('AOrddefstr2',FDW,[])=False then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + {if CDS_Sub.Locate('AOrddefstr3',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr3','',[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + FDW:=Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString); + if CDS_Sub.Locate('AOrddefstr3',FDW,[])=False then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; } + + { with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('TPUnit').AsString)='M' then + begin + if CDS_Sub.Locate('AOrddefstr2','Kg',[]) then + begin + Application.MessageBox('λΪM,زλΪKg!','ʾ',0); + Exit; + end; + end; } + + i:=0; + with CDS_Sub do + begin + DisableControls; + First; + while not eof do + begin + IF trim(Order_Main.FieldByName('TPUnit').AsString)<>trim(CDS_Sub.FieldByName('AOrddefstr2').AsString) then + begin + I:=i+1; + end; + next; + end; + First; + EnableControls; + end; + IF i=0 then + begin + IF tv2.DataController.Summary.FooterSummaryValues[0]>order_main.FieldByName('TPQty').AsFloat*1.05 then + begin + Application.MessageBox('زܴͶ5%!','ʾ',0); + Exit; + end; + end; + OrderNoM.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + if SaveData() then + begin + MovePanel2.Visible:=False; + Application.MessageBox('ɹ!','ʾ',0); + Exit; + end; + MovePanel2.Visible:=False; +end; + +procedure TfrmProductOrderAnPai.BtnEditA1BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='Ⱦ'; + if ShowModal=1 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A '); + sql.Add(' where A.FirstNo='''+Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + sql.Add(' and A.OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ȾûӦ!','ʾ',0); + + end else + begin + BtnEditA1.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + BtnEditA1.TxtCode:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + end; + finally + //frmZDYHelp.Free; + end; +end; +function TfrmProductOrderAnPai.YFData():Boolean; +var + CRID,OrdMainId,YFID,Price,LLID:String; +begin + Result:=False; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFTypeID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + ExecSQL; + end;} + OrdMainId:=Trim(Order_Main.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + if CDS_Sub.FieldByName('AOrdFlag1').AsBoolean=False then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + sql.Add(' and YFName=''Ⱦ'' ') + else + sql.Add(' and YFName=''ӹ'' '); + + Open; + end; + + if ADOQuery1.RecordCount<1 then + begin + + if GetLSNo(ADOQueryCmd,YFID,'RJ','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡȾӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(CDS_Sub.fieldbyname('APId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=CDS_Sub.fieldbyname('ADefDate1').Value; + FieldByName('Qty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + FieldByName('YFType').Value:='Զ'; + {if Trim(CDS_Sub.fieldbyname('JGPrice').AsString)<>'' then + FieldByName('Price').Value:=CDS_Sub.fieldbyname('JGPrice').Value + else + FieldByName('Price').Value:=0;} + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=Trim(Order_Main.fieldbyname('OrdDefStr2').AsString); + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('TPUnit').AsString); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + FieldByName('YFName').Value:='Ⱦ' + else + FieldByName('YFName').Value:='ӹ'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end else + begin + YFID:=Trim(ADOQuery1.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR Set '); + sql.Add('Qty='+CDS_Sub.fieldbyname('AOrdQty1').AsString); + SQL.Add(',CRTime='''+Trim(CDS_Sub.fieldbyname('ADefDate1').AsString)+''''); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +function TfrmProductOrderAnPai.DELYFData():Boolean; +var + CRID,OrdMainId,YFID,Price,LLID:String; +begin + Result:=False; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFTypeID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + OrdMainId:=Trim(Order_Main.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select Case when HXQty>0 then HCQty-HXQty else HCQty end as HCQty'); + SQL.Add(',Case when HXPS>0 then HCPS-HXPS else HCPS end as HCPS'); + SQL.Add(' from Contract_Cloth_LL where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + Open; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; + +procedure TfrmProductOrderAnPai.BtnEditA2BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + BtnEditA2.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton8Click(Sender: TObject); +begin + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + Next; + end; + end; + CDS_Sub.EnableControls; +end; + +procedure TfrmProductOrderAnPai.ToolButton7Click(Sender: TObject); +begin + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=False; + Post; + Next; + end; + end; + CDS_Sub.EnableControls; +end; + +procedure TfrmProductOrderAnPai.BtnEditA4BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + if ShowModal=1 then + begin + BtnEditA4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.V2Column11PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:=''; + if ShowModal=1 then + begin + begin + with CDS_Sub do + begin + Edit; + FieldByName('AOrddefstr6').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + + end; + end; + finally + //frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton9Click(Sender: TObject); +begin + try + frmBefChkHX:=TfrmBefChkHX.Create(Application); + with frmBefChkHX do + begin + orderno.Caption:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + PRTColor.Caption:=Trim(Self.Order_Main.fieldbyname('PRTColor').AsString); + FirstName.Caption:=Trim(Self.Order_Main.fieldbyname('FirstName').AsString); + PBFactory.Caption:=Trim(Self.Order_Main.fieldbyname('PBFactory').AsString); + FLLID:=Trim(Self.Order_Main.fieldbyname('LLID').AsString); + HXUnit:=Trim(Self.Order_Main.fieldbyname('TPUnit').AsString); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_BefChkHX where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,ClientDataSet1); + SInitCDSData20(ADOQuery1,ClientDataSet1); + if ShowModal=1 then + begin + + end; + end; + finally + frmBefChkHX.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton10Click(Sender: TObject); +begin + if Order_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,C.FirstName,C.FirstNo,C.TPPS,C.TPQty,C.LLID,C.HXPS,C.HXQty,C.HXUnit,C.HCPS,C.HCQty,C.TPUnit,B.SOrddefstr1,B.SOrddefstr4 '); + sql.Add(',HXPS=(select Sum(HXPS) from Contract_Cloth_BefChkHX HX where HX.LLID=C.LLID),'); + sql.Add('HXQty=(select Sum(HXQty) from Contract_Cloth_BefChkHX HX where HX.LLID=C.LLID),'); + sql.Add('PBFactory=(select Top 1 AA.factoryNoName from Contract_Main AA inner join Contract_Cloth_DH BB on AA.MainId=BB.MainId'); + sql.Add(' where BB.DHID=C.DHID)'); + //sql.Add(',HCQty=(select sum(AOrdQty1) from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + //sql.Add(',HCPS=(select sum(AOrdQty2) from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + //sql.Add(',HCUnit=(select Top 1 AOrddefstr2 from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + sql.Add('from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' inner join Contract_Cloth_LL C on C.OrdSubId=B.SubId'); + sql.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and C.JXJGFlag=0'); + Open; + end; + SCreateCDS20(ADOQueryTemp,Order_Main); + SInitCDSData20(ADOQueryTemp,Order_Main); + end; +end; + +procedure TfrmProductOrderAnPai.V2Column13PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with CDS_Sub do + begin + Edit; + FieldByName('LbName').Value:=labname; + //Post; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + +end; + +procedure TfrmProductOrderAnPai.V2Column9PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='APType'; + flagname:='ز'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('APType').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPai.ToolButton11Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='LBGANGFLAG'; + flagname:='ױǩ'; + if ShowModal=1 then + begin + end; + GetGangLb(); + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderAnPaiGQX.dfm b/盛纺贸易管理/U_ProductOrderAnPaiGQX.dfm new file mode 100644 index 0000000..27fc1c6 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderAnPaiGQX.dfm @@ -0,0 +1,970 @@ +object frmProductOrderAnPaiGQX: TfrmProductOrderAnPaiGQX + Left = 86 + Top = 8 + Width = 1024 + Height = 721 + Caption = #26816#39564#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1008 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + Visible = False + OnClick = ToolButton1Click + end + object ToolButton10: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = ToolButton10Click + end + object ToolButton5: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #30133#28857#31649#29702 + ImageIndex = 49 + Visible = False + OnClick = ToolButton5Click + end + object TBExport: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object ToolButton9: TToolButton + Left = 276 + Top = 0 + Caption = #26816#21069#22238#20462 + ImageIndex = 54 + Visible = False + OnClick = ToolButton9Click + end + object TBPrint: TToolButton + Left = 359 + Top = 0 + AutoSize = True + Caption = #25171#21360 + DropdownMenu = PopupMenu1 + ImageIndex = 12 + Style = tbsDropDown + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 439 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel2: TPanel + Left = 0 + Top = 341 + Width = 1008 + Height = 342 + Align = alClient + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object cxGrid2: TcxGrid + Left = 2 + Top = 81 + Width = 1004 + Height = 259 + Align = alClient + TabOrder = 0 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + Column = V2Column1 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V2Column1 + end + item + Kind = skSum + Column = V2Column7 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object V2Column10: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 39 + end + object V2Column2: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'ADefDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnEditValueChanged = cxGridDBColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 119 + end + object V2Column8: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'AOrddefstr4' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = V2Column8PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object V2Column11: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'AOrddefstr6' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V2Column11PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #26579#21378#32568#21495 + DataBinding.FieldName = 'GangNo' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object V2Column3: TcxGridDBColumn + Caption = #26412#21378#32568#21495 + DataBinding.FieldName = 'AOrddefstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object V2Column4: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'AOrddefstr2' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 59 + end + object V2Column9: TcxGridDBColumn + Caption = #25240#31639#25104#31859#31995#25968 + DataBinding.FieldName = 'ZSXS' + Width = 85 + end + object V2Column7: TcxGridDBColumn + Caption = #21305#25968#37327 + DataBinding.FieldName = 'AOrdQty2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 48 + end + object V2Column1: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'AOrdQty1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V2Column1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 69 + end + object V2Column5: TcxGridDBColumn + Caption = #26816#39564#25968#37327#21333#20301 + DataBinding.FieldName = 'AOrddefstr3' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = V2Column5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 83 + end + object V2Column6: TcxGridDBColumn + Caption = #26816#39564#35201#27714 + DataBinding.FieldName = 'AOrdDefNote1' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V2Column6PropertiesButtonClick + Properties.OnEditValueChanged = cxGridDBColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 101 + end + object V2Column12: TcxGridDBColumn + Caption = #22238#20462#25968#25454 + DataBinding.FieldName = 'AOrdFlag1' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 65 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object ToolBar2: TToolBar + Left = 2 + Top = 2 + Width = 1004 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton8: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20840#36873 + ImageIndex = 99 + Visible = False + OnClick = ToolButton8Click + end + object ToolButton7: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20840#24323 + ImageIndex = 129 + Visible = False + OnClick = ToolButton7Click + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 111 + Visible = False + OnClick = ToolButton4Click + end + object ToolButton6: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 96 + Visible = False + OnClick = ToolButton6Click + end + object ToolButton11: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #19968#38190#20445#23384 + ImageIndex = 97 + OnClick = ToolButton11Click + end + end + object Panel3: TPanel + Left = 2 + Top = 34 + Width = 1004 + Height = 47 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 2 + Visible = False + object Label1: TLabel + Left = 24 + Top = 16 + Width = 48 + Height = 12 + Caption = #22238#20179#26102#38388 + end + object Label2: TLabel + Left = 189 + Top = 16 + Width = 36 + Height = 12 + Caption = #21152#24037#21378 + end + object Label4: TLabel + Left = 503 + Top = 16 + Width = 48 + Height = 12 + Caption = #25968#37327#21333#20301 + end + object Label5: TLabel + Left = 634 + Top = 16 + Width = 72 + Height = 12 + Caption = #26816#39564#25968#37327#21333#20301 + end + object Label6: TLabel + Left = 782 + Top = 16 + Width = 48 + Height = 12 + Caption = #26816#39564#35201#27714 + end + object Label7: TLabel + Left = 349 + Top = 16 + Width = 36 + Height = 12 + Caption = #22383#24067#21378 + end + object DateTimePicker1: TDateTimePicker + Left = 74 + Top = 12 + Width = 103 + Height = 20 + Date = 41281.501696319440000000 + Format = 'yyyy-MM-dd' + Time = 41281.501696319440000000 + TabOrder = 0 + end + object BtnEditA1: TBtnEditA + Left = 226 + Top = 12 + Width = 101 + Height = 20 + Enabled = False + TabOrder = 1 + OnBtnClick = BtnEditA1BtnClick + end + object ComboBox1: TComboBox + Left = 556 + Top = 12 + Width = 60 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 2 + Items.Strings = ( + 'M' + 'Kg') + end + object BtnEditA2: TBtnEditA + Left = 709 + Top = 12 + Width = 53 + Height = 20 + TabOrder = 3 + OnBtnClick = BtnEditA2BtnClick + end + object BtnEditA3: TBtnEditA + Left = 833 + Top = 12 + Width = 114 + Height = 20 + TabOrder = 4 + OnBtnClick = BtnEditA3BtnClick + end + object BtnEditA4: TBtnEditA + Left = 386 + Top = 12 + Width = 101 + Height = 20 + Enabled = False + TabOrder = 5 + OnBtnClick = BtnEditA4BtnClick + end + end + object MovePanel2: TMovePanel + Left = 342 + Top = 128 + Width = 252 + Height = 40 + BevelInner = bvLowered + Caption = #27491#22312#25191#34892#25968#25454#25805#20316#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 82 + Width = 1008 + Height = 259 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn2: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20844#21496#32534#21495 + DataBinding.FieldName = 'OrdDefStr1' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #20844#21496#21488#22836 + DataBinding.FieldName = 'OrdDefStr2' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1JGFactoryName: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'FirstName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #22383#24067#21378 + DataBinding.FieldName = 'PBFactory' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1Column6: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'TPPS' + Width = 61 + end + object v1Column7: TcxGridDBColumn + Caption = #25237#22383#31859#25968#37327 + DataBinding.FieldName = 'TPMQty' + Width = 71 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTCF: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'MPRTCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + Width = 54 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #22791#27880#21450#35201#27714 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 92 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1Column4: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrderUnit' + Width = 60 + end + object v1Column5: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'HCPS' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column2: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'HCQty' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v1Column3: TcxGridDBColumn + Caption = #22238#20179#21333#20301 + DataBinding.FieldName = 'HCUnit' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #22238#20462#21305#25968 + DataBinding.FieldName = 'HXPS' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #22238#20462#25968#37327 + DataBinding.FieldName = 'HXQty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column10: TcxGridDBColumn + Caption = #22238#20462#21333#20301 + DataBinding.FieldName = 'HXUnit' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #30830#35748#33394#21345 + DataBinding.FieldName = 'SOrddefstr2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #26631#31614 + DataBinding.FieldName = 'SLbName' + HeaderAlignmentHorz = taCenter + Width = 85 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1008 + Height = 50 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + object Label3: TLabel + Left = 19 + Top = 17 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNoM: TEdit + Tag = 2 + Left = 60 + Top = 9 + Width = 189 + Height = 32 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnChange = OrderNoMChange + end + end + object cxGrid4: TcxGrid + Left = 60 + Top = 72 + Width = 345 + Height = 177 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + Visible = False + object Tv4: TcxGridDBTableView + OnDblClick = Tv4DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_OrderNo + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.FoneRed + object v4Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 179 + end + object v4Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 138 + end + end + object cxGrid4Level1: TcxGridLevel + GridView = Tv4 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 656 + Top = 192 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 624 + Top = 192 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 688 + Top = 192 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 784 + Top = 192 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 144 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 496 + Top = 208 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 448 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 816 + Top = 192 + end + object PopupMenu1: TPopupMenu + Left = 544 + Top = 208 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object DataSource2: TDataSource + DataSet = CDS_Sub + Left = 944 + Top = 384 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 968 + Top = 384 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 752 + Top = 192 + end + object CDS_OrderNo: TClientDataSet + Aggregates = <> + Params = <> + Left = 120 + Top = 104 + end + object DS_OrderNo: TDataSource + DataSet = CDS_OrderNo + Left = 192 + Top = 104 + end + object ADOQueryHC: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 720 + Top = 192 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 576 + Top = 512 + end +end diff --git a/盛纺贸易管理/U_ProductOrderAnPaiGQX.pas b/盛纺贸易管理/U_ProductOrderAnPaiGQX.pas new file mode 100644 index 0000000..67a6f41 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderAnPaiGQX.pas @@ -0,0 +1,2138 @@ +unit U_ProductOrderAnPaiGQX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC, BtnEdit, cxTextEdit, cxButtonEdit, cxDropDownEdit, MovePanel; + +type + TfrmProductOrderAnPaiGQX = class(TForm) + ToolBar1: TToolBar; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + DataSource2: TDataSource; + CDS_Sub: TClientDataSet; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton5: TToolButton; + ToolButton6: TToolButton; + ADOQueryPrint: TADOQuery; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGridDBColumn2: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1JGFactoryName: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1MPRTCF: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + Panel1: TPanel; + Label3: TLabel; + OrderNoM: TEdit; + cxGrid4: TcxGrid; + Tv4: TcxGridDBTableView; + v4Column1: TcxGridDBColumn; + v4Column2: TcxGridDBColumn; + cxGrid4Level1: TcxGridLevel; + CDS_OrderNo: TClientDataSet; + DS_OrderNo: TDataSource; + V2Column5: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + V2Column7: TcxGridDBColumn; + V2Column8: TcxGridDBColumn; + V2Column9: TcxGridDBColumn; + ToolButton4: TToolButton; + ADOQueryHC: TADOQuery; + Panel3: TPanel; + DateTimePicker1: TDateTimePicker; + BtnEditA1: TBtnEditA; + ComboBox1: TComboBox; + BtnEditA2: TBtnEditA; + Label1: TLabel; + Label2: TLabel; + Label4: TLabel; + Label5: TLabel; + BtnEditA3: TBtnEditA; + Label6: TLabel; + V2Column10: TcxGridDBColumn; + ToolButton7: TToolButton; + ToolButton8: TToolButton; + V2Column11: TcxGridDBColumn; + BtnEditA4: TBtnEditA; + Label7: TLabel; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGridPopupMenu2: TcxGridPopupMenu; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + ToolButton9: TToolButton; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + ToolButton10: TToolButton; + V2Column12: TcxGridDBColumn; + MovePanel2: TMovePanel; + ToolButton11: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure AOrdDefNote12DblClick(Sender: TObject); + procedure AOrdDefNote7BtnDnClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure Tv4DblClick(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure V2Column1PropertiesEditValueChanged(Sender: TObject); + procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); + procedure V2Column4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V2Column8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton4Click(Sender: TObject); + procedure BtnEditA1BtnClick(Sender: TObject); + procedure BtnEditA2BtnClick(Sender: TObject); + procedure BtnEditA3BtnClick(Sender: TObject); + procedure ToolButton8Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + procedure BtnEditA4BtnClick(Sender: TObject); + procedure V2Column11PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton9Click(Sender: TObject); + procedure ToolButton10Click(Sender: TObject); + procedure ToolButton11Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + function SaveData():Boolean; + procedure UpdateHC(FFirstNo:String); + function YFData():Boolean; + function DELYFData():Boolean; + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmProductOrderAnPaiGQX: TfrmProductOrderAnPaiGQX; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun, U_ZDYHelp,U_iniParam, U_ZDYHelpSel,U_BefChkHX; + +{$R *.dfm} + +procedure TfrmProductOrderAnPaiGQX.FormDestroy(Sender: TObject); +begin + frmProductOrderAnPaiGQX:=nil; +end; + +procedure TfrmProductOrderAnPaiGQX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderAnPaiGQX.FormCreate(Sender: TObject); +begin + + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderAnPaiGQX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾϢ',Tv1,'زֹ'); + WriteCxGrid('زϢ',Tv2,'زֹ'); +end; + +procedure TfrmProductOrderAnPaiGQX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where LLId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Sub); + SInitCDSData20(ADOQueryMain,CDS_Sub); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderAnPaiGQX.InitGridFH(); +begin +end; + +procedure TfrmProductOrderAnPaiGQX.InitForm(); +var + i:Integer; +begin + DateTimePicker1.DateTime:=SGetServerDateTime(ADOQueryTemp); + ReadCxGrid('ָʾϢ',Tv1,'زֹ'); + ReadCxGrid('زϢ',Tv2,'زֹ'); +end; + +function TfrmProductOrderAnPaiGQX.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + if IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ɾ쳣','ʾ',0); + Result:=False; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ɹб'); +end; + +procedure TfrmProductOrderAnPaiGQX.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɹ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); + //SelPrintData(TV4,ADOQueryMain,'ͬѯ'); +end; + +procedure TfrmProductOrderAnPaiGQX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderAnPaiGQX.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderAnPaiGQX.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderAnPaiGQX.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderAnPaiGQX.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderAnPaiGQX.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderAnPaiGQX.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton2Click(Sender: TObject); +begin + with CDS_Sub do + begin + Append; + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('ADefDate1').Value:=DateTimePicker1.Date; + FieldByName('AOrddefstr4').Value:=Trim(BtnEditA1.Text); + FieldByName('AOrddefstr5').Value:=Trim(BtnEditA1.TxtCode); + FieldByName('AOrddefstr2').Value:=Trim(ComboBox1.Text); + FieldByName('AOrddefstr3').Value:=Trim(BtnEditA2.Text); + FieldByName('AOrdDefNote1').Value:=Trim(BtnEditA3.Text); + FieldByName('AOrddefstr6').Value:=Trim(BtnEditA4.Text); + Post; + end; + +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton3Click(Sender: TObject); +begin + if CDS_Sub.IsEmpty then Exit; + if Trim(CDS_Sub.fieldbyname('APID').AsString)<>'' then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from WFB_MJJY where APID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѳݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub_AnPai where APID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=(select isnull(sum(AOrdQty2),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(',HCMQty=(select isnull(sum(HCMQty),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update Contract_Cloth_LL Set HCQty=HCMQty*1.00/TPMQty*TPQty '); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + if DELYFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧʧ!','ʾ',0); + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + end; + end; + with CDS_Sub do + begin + Delete; + end; + if CDS_Sub.IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub Set SOrdFlag20=0 where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + {with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=0,HCQty=0,HCMQty=0 where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryHC do + begin + Close; + sql.Clear; + sql.Add('select distinct(AOrddefstr5) AOrddefstr5 from JYOrder_Sub_AnPai where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryHC.IsEmpty then + UpdateHC(Trim(ADOQueryHC.fieldbyname('AOrddefstr5').AsString)) + else + begin + with ADOQueryHC do + begin + First; + while not Eof do + begin + UpdateHC(Trim(ADOQueryHC.fieldbyname('AOrddefstr5').AsString)); + Next; + end; + end; + end; } + +end; + +function TfrmProductOrderAnPaiGQX.SaveData():Boolean; +var + maxno:String; +begin + try + ADOQueryCmd.Connection.BeginTrans; + ///ӱ + with CDS_Sub do + begin + First; + while not Eof do + begin + if Trim(CDS_Sub.fieldbyname('APId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,maxno,'','JYOrder_Sub_AnPai',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('APId').AsString); + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + Open; + end; + with ADOQueryCmd do + begin + if Trim(CDS_Sub.fieldbyname('APId').AsString)='' then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + FieldByName('ApId').Value:=Trim(maxno); + FieldByName('ADefDate1').Value:=CDS_Sub.fieldbyname('ADefDate1').Value; + FieldByName('AOrddefstr4').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('AOrddefstr5').Value:=Trim(Order_Main.fieldbyname('FirstNo').AsString); + FieldByName('GangNo').Value:=CDS_Sub.fieldbyname('GangNo').Value; + FieldByName('AOrddefstr1').Value:=CDS_Sub.fieldbyname('AOrddefstr1').Value; + FieldByName('AOrddefstr2').Value:=CDS_Sub.fieldbyname('AOrddefstr2').Value; + if Trim(CDS_Sub.fieldbyname('ZSXS').AsString)<>'' then + FieldByName('ZSXS').Value:=CDS_Sub.fieldbyname('ZSXS').Value + else + FieldByName('ZSXS').Value:=1; + FieldByName('AOrdQty2').Value:=CDS_Sub.fieldbyname('AOrdQty2').Value; + FieldByName('AOrdQty1').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + FieldByName('AOrddefstr3').Value:=CDS_Sub.fieldbyname('AOrddefstr3').Value; + FieldByName('AOrdDefNote1').Value:=CDS_Sub.fieldbyname('AOrdDefNote1').Value; + FieldByName('LLID').Value:=Order_Main.fieldbyname('LLID').Value; + FieldByName('AOrddefstr6').Value:=CDS_Sub.fieldbyname('AOrddefstr6').Value; + if CDS_Sub.fieldbyname('AOrdFlag1').AsBoolean=True then + FieldByName('AOrdFlag1').Value:=1 + else + FieldByName('AOrdFlag1').Value:=0; + + //RTSetSaveDataCDS(ADOQueryCmd,Tv2,CDS_Sub,'JYOrder_Sub_AnPai',0); + {if Trim(CDS_Sub.fieldbyname('APID').AsString)<>'' then + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end else + begin + + end; } + if Trim(CDS_Sub.fieldbyname('APId').AsString)='' then + FieldByName('Filler').Value:=Trim(DName) + else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from Contract_Cloth_LL where LLId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('TPUnit').AsString)=Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString) then + begin + FieldByName('HCYZQty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + end else + begin + if Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)='M' then + begin + FieldByName('HCYZQty').Value:=(CDS_Sub.fieldbyname('AOrdQty1').Value*1.00/ADOQueryTemp.fieldbyname('TPMQty').Value) + *ADOQueryTemp.fieldbyname('TPQty').Value ; + end; + end; + if Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)='M' then + begin + FieldByName('HCMQty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + end else + begin + FieldByName('HCMQty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value*CDS_Sub.fieldbyname('ZSXS').Value; + end; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub Set SOrdFlag20=1 where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + CDS_Sub.Edit; + CDS_Sub.FieldByName('APId').Value:=Trim(maxno); + CDS_Sub.FieldByName('SubId').Value:=Trim(Order_Main.fieldbyname('SubId').AsString); + + //Order_Sub.Post; + { with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' UPdate WFB_MJJY Set MJTypeOther='''+Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString)+''''); + SQL.Add(' where APId='''+Trim(maxno)+''''); + sql.Add(' UPdate CK_BanCP_KC Set KCQtyUnit='''+Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString)+''''); + SQL.Add(' where MJId in (select MJID from WFB_MJJY where APID='''+Trim(maxno)+''')'); + sql.Add(' UPdate CK_BanCP_CR Set QtyUnit='''+Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString)+''''); + SQL.Add(' where MJId in (select MJID from WFB_MJJY where APID='''+Trim(maxno)+''')'); + ExecSQL; + end; + } + if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('²Ӧʧ!','ʾ',0); + Exit; + end; + Next; + end; + end; + { with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=0,HCQty=0,HCMQty=0 where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryHC do + begin + Close; + sql.Clear; + sql.Add('select distinct(AOrddefstr5) AOrddefstr5 from JYOrder_Sub_AnPai where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + with ADOQueryHC do + begin + First; + while not Eof do + begin + UpdateHC(Trim(ADOQueryHC.fieldbyname('AOrddefstr5').AsString)); + Next; + end; + end; } + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Contract_Cloth_LL Set HCPS=(select isnull(sum(AOrdQty2),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(',HCMQty=(select isnull(sum(HCMQty),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID )'); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if (Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)=Trim(Order_Main.fieldbyname('TPUnit').AsString)) then + sql.Add('Update Contract_Cloth_LL Set HCQty=(select isnull(Sum(AOrdQty1),0) from JYOrder_Sub_AnPai A where A.LLID=Contract_Cloth_LL.LLID) ') + else + sql.Add('Update Contract_Cloth_LL Set HCQty=HCMQty*1.00/TPMQty*TPQty '); + sql.Add(' where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + {if YFData()=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('²Ӧʧ!','ʾ',0); + Exit; + end; } + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + Result:=False; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderAnPaiGQX.AOrdDefNote12DblClick(Sender: TObject); +var + fsj:string; + FWZ:Integer; +begin + fsj:=Trim(TEdit(Sender).Hint); + FWZ:=Pos('/',fsj); + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:=Copy(fsj,1,FWZ-1); + flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); + if ShowModal=1 then + begin + TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.AOrdDefNote7BtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmProductOrderAnPaiGQX.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton5Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBCD'; + flagname:='õ'; + fnote:=True; + V1Note.Caption:='Ӣ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton6Click(Sender: TObject); +var + fPrintFile:string; +begin + if CDS_Sub.IsEmpty then Exit; + if CDS_Sub.Locate('SSel',True,[])=False then + begin + Application.MessageBox('δѡҪӡ!','ʾ',0); + Exit; + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if CDS_Sub.FieldByName('SSel').AsBoolean=True then + begin + if Trim(CDS_Sub.fieldbyname('APID').AsString) ='' then + begin + CDS_Sub.EnableControls; + Application.MessageBox('δ治ܴӡ!','ʾ',0); + Exit; + end; + + end; + Next; + end; + end; + CDS_Sub.EnableControls; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾǩ.rmf' ; + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + //RM1.LoadFromFile(fPrintFile); + //RM1.ShowReport; + //RM1.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾǩ.rmf'),'ʾ',0); + Exit; + end; + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + if CDS_Sub.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,OrderNoM=B.OrderNo ,B.MPRTCodeName,C.PRTColor from JYOrder_Sub_AnPai A '); + sql.Add('inner join JYOrder_Main B on A.MainId=B.MainId'); + sql.Add('inner join JYOrder_Sub C on A.SubId=C.SubId where A.APID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + Open; + end; + RM1.LoadFromFile(fPrintFile); + RM1.PrintReport; + end; + Next; + end; + end; + CDS_Sub.EnableControls; + + + +end; + +procedure TfrmProductOrderAnPaiGQX.OrderNoMChange(Sender: TObject); +var + mvalue:String; +begin + mvalue:=Trim(OrderNoM.Text); + if Length(Trim(mvalue))<4 then + begin + cxGrid4.Visible:=False; + Exit; + end; + mvalue:='%'+Trim(mvalue)+'%'; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select OrderNo,MPRTCodeName,A.MainId from JYOrder_Main A'); + sql.Add(' where A.orderno like :orderno '); + sql.Add(' and A.MainId in(select MainId from JYOrder_Sub B where B.Mainid=A.MainId and B.subId in(select OrdSubId from Contract_Cloth_LL))'); + Parameters.ParamByName('orderno').Value:=mvalue; + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_OrderNo); + SInitCDSData20(ADOQueryTemp,CDS_OrderNo); + if CDS_OrderNo.IsEmpty then cxGrid4.Visible:=False else cxGrid4.Visible:=True; +end; + +procedure TfrmProductOrderAnPaiGQX.Tv4DblClick(Sender: TObject); +begin + cxGrid4.Visible:=False; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,C.FirstName,C.FirstNo,C.TPPS,C.TPMQty,C.LLID,C.HXPS,C.HXQty,C.HXUnit,C.DHIDHelp,C.DHID,C.TPUnit '); + sql.Add(',PBFactory=(select Top 1 AA.factoryNoName from Contract_Main AA inner join Contract_Cloth_DH BB on AA.MainId=BB.MainId'); + sql.Add(' where BB.DHID=C.DHID)'); + sql.Add(',HCUnit=(select Top 1 AOrddefstr2 from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + sql.Add('from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' inner join Contract_Cloth_LL C on C.OrdSubId=B.SubId'); + sql.Add('where A.MainId='''+Trim(CDS_OrderNo.fieldbyname('MainId').AsString)+''''); + sql.Add(' and C.JXJGFlag=0'); + sql.Add(' and exists(select * from Contract_Cloth_LLMX LM where LM.OrdSubId=B.SubId and LM.OrdSubId=C.OrdSubId )'); + //ShowMessage(SQL.Text); + Open; + end; + SCreateCDS20(ADOQueryTemp,Order_Main); + SInitCDSData20(ADOQueryTemp,Order_Main); +end; + +procedure TfrmProductOrderAnPaiGQX.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitGrid(); + BtnEditA1.TxtCode:=Trim(Order_Main.fieldbyname('FirstNo').AsString); + BtnEditA1.Text:=Trim(Order_Main.fieldbyname('FirstName').AsString); + BtnEditA4.Text:=Trim(Order_Main.fieldbyname('PBFactory').AsString); +end; + +procedure TfrmProductOrderAnPaiGQX.V2Column1PropertiesEditValueChanged( + Sender: TObject); +//var + //mvalue,FFieldName,mvalue10,mvalue20:String; + //FHCPS,FHCQty,FHCMQty:Double; +begin + {if Trim(CDS_Sub.fieldbyname('AOrddefstr4').AsString)='' then + begin + Application.MessageBox('ȾΪ!','ʾ',0); + Exit; + end; + with Self.ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A '); + sql.Add(' where A.FirstNo='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + sql.Add(' and A.OrdSubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if Self.ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ȾûӦ!','ʾ',0); + Exit; + end; + mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + if FFieldName='AOrdQty1' then + begin + if Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString)='' then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + end; + if Trim(mvalue)='' then + begin + if FFieldName='ZSXS' then + mvalue:='1' + else + if FFieldName='AOrddefstr2' then + mvalue:='' + else + mvalue:='0'; + end; + + with CDS_Sub do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + if Trim(FFieldName)='AOrddefstr2' then + begin + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + end else + begin + sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); + end; + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + if Trim(FFieldName)='AOrdQty2' then + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(AOrdQty2),0) HCPS,isnull(Sum(AOrdQty1),0) HCQty from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + Open; + end; + FHCPS:=ADOQueryTemp.FieldByName('HCPS').Value; + if FHCPS>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCPS>0) do + begin + if FHCPS>=FieldByName('TPPS').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS=TPPS '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=FHCPS-FieldByName('TPPS').Value; + end else + begin + + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS='+FloatToStr(FHCPS)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=0; + end; + Next; + end; + end; + end; + end; + if Trim(FFieldName)='AOrdQty1' then + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(AOrdQty2),0) HCPS,isnull(Sum(AOrdQty1),0) HCQty from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + Open; + end; + FHCQty:=ADOQueryTemp.FieldByName('HCQty').Value; + if FHCQty>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(CDS_Sub.fieldbyname('AOrddefstr5').AsString)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCQty>0) do + begin + if FHCQty>=FieldByName('BCPQty').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty=BCPQty '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCQty:=FHCQty-FieldByName('BCPQty').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty='+FloatToStr(FHCQty)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCQty:=0; + end; + Next; + end; + end; + end; + end;} +end; +procedure TfrmProductOrderAnPaiGQX.UpdateHC(FFirstNo:String); +var + FHCPS,FHCYZQty,FHCMQty:Double; +begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(AOrdQty2),0) HCPS from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(FFirstNo)+''''); + Open; + end; + FHCPS:=ADOQueryTemp.FieldByName('HCPS').Value; + if FHCPS=0 then + begin + + end; + if FHCPS>0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(FFirstNo)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCPS>0) do + begin + if FHCPS>=FieldByName('TPPS').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS=TPPS '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=FHCPS-FieldByName('TPPS').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCPS='+FloatToStr(FHCPS)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCPS:=0; + end; + Next; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select isnull(Sum(HCYZQty),0) HCYZQty,isnull(Sum(HCMQty),0) HCMQty from JYOrder_Sub_AnPai '); + sql.Add(' where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and AOrddefstr5='''+Trim(FFirstNo)+''''); + Open; + end; + FHCYZQty:=ADOQueryTemp.FieldByName('HCYZQty').Value; + FHCMQty:=ADOQueryTemp.FieldByName('HCMQty').Value; + if FHCYZQty>=0 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + sql.Add(' and FirstNo='''+Trim(FFirstNo)+''''); + SQL.Add(' order by LLIdx'); + Open; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCYZQty>0) do + begin + if FHCYZQty>=FieldByName('BCPQty').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty=BCPQty '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCYZQty:=FHCYZQty-FieldByName('BCPQty').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCQty='+FloatToStr(FHCYZQty)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCYZQty:=0; + end; + Next; + end; + end; + with ADOQueryTemp do + begin + First; + while (not eof) and (FHCMQty>0) do + begin + if FHCMQty>=FieldByName('BCPMQty').Value then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCMQty=BCPMQty '); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCMQty:=FHCMQty-FieldByName('BCPMQty').Value; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update Contract_Cloth_LL Set HCMQty='+FloatToStr(FHCMQty)); + sql.Add(' where LLID='''+Trim(ADOQueryTemp.fieldbyname('LLID').AsString)+''''); + ExecSQL; + end; + FHCMQty:=0; + end; + Next; + end; + end; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.cxGridDBColumn1PropertiesEditValueChanged( + Sender: TObject); +//var + //mvalue,FFieldName:String; +begin + {mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_Sub do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + if Trim(mvalue)<>'' then + begin + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + end else + begin + sql.Add(' Set '+FFieldName+'=NULL'); + end; + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; } +end; + + +procedure TfrmProductOrderAnPaiGQX.V2Column4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('AOrddefstr2').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + sql.Add(' Set AOrddefstr2='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + { sql.Add(' UPdate WFB_MJJY Set MJStr1='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); } + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.V2Column5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('AOrddefstr3').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.V2Column6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + mvalue:string; +begin + mvalue:=Trim(CDS_Sub.FieldByName('AOrdDefNote1').AsString); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='JYYQ'; + flagname:='Ҫ'; + if ShowModal=1 then + begin + Self.CDS_Sub.Edit; + Self.CDS_Sub.FieldByName('AOrdDefNote1').Value:=mvalue+frmZDYHelpSel.ReturnStr; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + sql.Add(' Set AOrdDefNote1='''+Trim(mvalue+frmZDYHelpSel.ReturnStr)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; } + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.V2Column8PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + //flag:='RKPlace'; + flag:='FactoryNo1Name'; + flagname:='Ⱦ'; + MainType:='Ⱦ'; + if ShowModal=1 then + begin + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A '); + sql.Add(' where A.FirstNo='''+Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + sql.Add(' and A.OrdSubId='''+Trim(CDS_Sub.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ȾûӦ!','ʾ',0); + + end else + begin + with CDS_Sub do + begin + Edit; + FieldByName('AOrddefstr4').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + FieldByName('AOrddefstr5').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + {with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate JYOrder_Sub_AnPai '); + sql.Add(' Set AOrddefstr5='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + sql.Add(' ,AOrddefstr4='''+Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where APId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + ExecSQL; + end;} + end; + + end; + end; + finally + //frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton4Click(Sender: TObject); +var + FDW:String; +begin + if CDS_Sub.Locate('ADefDate1',null,[])=True then + begin + Application.MessageBox('زʱ䲻Ϊ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr4',null,[])=True then + begin + Application.MessageBox('ȾΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr4','',[])=True then + begin + Application.MessageBox('ȾΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('GangNo',null,[])=True then + begin + Application.MessageBox('׺ŲΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr2',null,[])=True then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr2','',[])=True then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr2','Kg',[])=True then + begin + if Trim(CDS_Sub.FieldByName('ZSXS').AsString)='' then + begin + Application.MessageBox('ϵΪ!','ʾ',0); + Exit; + end; + end; + if CDS_Sub.Locate('AOrdQty2',null,[])=True then + begin + Application.MessageBox('ƥΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrdQty1',null,[])=True then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + { if CDS_Sub.Locate('AOrdQty1','',[])=True then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end;} + FDW:=Trim(CDS_Sub.fieldbyname('AOrddefstr2').AsString); + if CDS_Sub.Locate('AOrddefstr2',FDW,[])=False then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr3',null,[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + if CDS_Sub.Locate('AOrddefstr3','',[]) then + begin + Application.MessageBox('λΪ!','ʾ',0); + Exit; + end; + FDW:=Trim(CDS_Sub.fieldbyname('AOrddefstr3').AsString); + if CDS_Sub.Locate('AOrddefstr3',FDW,[])=False then + begin + Application.MessageBox('λһ!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1* from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('Subid').AsString)+''''); + Open; + end; + if Trim(ADOQueryTemp.fieldbyname('TPUnit').AsString)='M' then + begin + if CDS_Sub.Locate('AOrddefstr2','Kg',[]) then + begin + Application.MessageBox('λΪM,زλΪKg!','ʾ',0); + Exit; + end; + end; + OrderNoM.SetFocus; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + if SaveData() then + begin + MovePanel2.Visible:=False; + Application.MessageBox('ɹ!','ʾ',0); + Exit; + end; + MovePanel2.Visible:=False; +end; + +procedure TfrmProductOrderAnPaiGQX.BtnEditA1BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='FactoryNo1Name'; + flagname:='Ⱦ'; + MainType:='Ⱦ'; + if ShowModal=1 then + begin + + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_LL A '); + sql.Add(' where A.FirstNo='''+Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString)+''''); + sql.Add(' and A.OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ȾûӦ!','ʾ',0); + + end else + begin + BtnEditA1.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + BtnEditA1.TxtCode:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + + end; + end; + finally + //frmZDYHelp.Free; + end; +end; +function TfrmProductOrderAnPaiGQX.YFData():Boolean; +var + CRID,OrdMainId,YFID,Price,LLID:String; +begin + Result:=False; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFTypeID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + OrdMainId:=Trim(Order_Main.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + sql.Add('select Top 1 * from Contract_Cloth_LLMX where DHID='''+Trim(Order_Main.fieldbyname('DHID').AsString)+'''') + else + sql.Add('select Top 1 * from Contract_Cloth_LLMX where DHID='''+Trim(Order_Main.fieldbyname('DHIDHelp').AsString)+'''') ; + Open; + end; + Price:=ADOQueryTemp.fieldbyname('JGPrice').AsString; + if Trim(Price)='' then Price:='0'; + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(Order_Main.fieldbyname('LLid').AsString)+''''); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + sql.Add(' and YFName=''Ⱦ'' ') + else + sql.Add(' and YFName=''ӹ'' '); + Open; + end;} + if CDS_Sub.FieldByName('AOrdFlag1').AsBoolean=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + sql.Add(' and YFTypeId='''+Trim(CDS_Sub.fieldbyname('APId').AsString)+''''); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + sql.Add(' and YFName=''Ⱦ'' ') + else + sql.Add(' and YFName=''ӹ'' '); + Open; + end; + + if ADOQueryTemp.IsEmpty then + begin + + if GetLSNo(ADOQueryCmd,YFID,'RJ','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡȾӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(CDS_Sub.fieldbyname('APId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('CRTime').Value:=CDS_Sub.fieldbyname('ADefDate1').Value; + FieldByName('Qty').Value:=CDS_Sub.fieldbyname('AOrdQty1').Value; + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=Price; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('ComTaiTou').Value:=Trim(Order_Main.fieldbyname('OrdDefStr2').AsString); + FieldByName('QtyUnit').Value:=Trim(Order_Main.fieldbyname('TPUnit').AsString); + if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + FieldByName('YFName').Value:='Ⱦ' + else + FieldByName('YFName').Value:='ӹ'; + FieldByName('MainId').Value:=Trim(OrdMainId); + Post; + end; + end else + begin + YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR Set Price='+Price); + sql.Add(',Qty='+CDS_Sub.fieldbyname('AOrdQty1').AsString); + SQL.Add(',CRTime='''+Trim(CDS_Sub.fieldbyname('ADefDate1').AsString)+''''); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + end; + end; + + + //if Trim(Order_Main.fieldbyname('DHIDHelp').AsString)='' then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select Case when HXQty>0 then HCQty-HXQty else HCQty end as HCQty'); + SQL.Add(',Case when HXPS>0 then HCPS-HXPS else HCPS end as HCPS'); + SQL.Add(' from Contract_Cloth_LL where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + Open; + end; + { with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty='+ADOQueryTemp.fieldbyname('HCQty').AsString); + sql.Add(',PS='+ADOQueryTemp.fieldbyname('HCPS').AsString); + sql.Add(' where YFTypeId='''+Trim(Order_Main.fieldbyname('LLid').AsString)+''''); + ExecSQL; + end; } + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; +function TfrmProductOrderAnPaiGQX.DELYFData():Boolean; +var + CRID,OrdMainId,YFID,Price,LLID:String; +begin + Result:=False; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFTypeID='''+Trim(CDS_Sub.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + OrdMainId:=Trim(Order_Main.fieldbyname('MainId').AsString); + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main.fieldbyname('FirstName').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(Order_Main.fieldbyname('FirstName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select Case when HXQty>0 then HCQty-HXQty else HCQty end as HCQty'); + SQL.Add(',Case when HXPS>0 then HCPS-HXPS else HCPS end as HCPS'); + SQL.Add(' from Contract_Cloth_LL where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + Open; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + Result:=True; +end; + +procedure TfrmProductOrderAnPaiGQX.BtnEditA2BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + BtnEditA2.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.BtnEditA3BtnClick(Sender: TObject); +begin + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='JYYQ'; + flagname:='Ҫ'; + if ShowModal=1 then + begin + BtnEditA3.Text:=Trim(BtnEditA3.Text)+frmZDYHelpSel.ReturnStr; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton8Click(Sender: TObject); +begin + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + Next; + end; + end; + CDS_Sub.EnableControls; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton7Click(Sender: TObject); +begin + CDS_Sub.DisableControls; + with CDS_Sub do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=False; + Post; + Next; + end; + end; + CDS_Sub.EnableControls; +end; + +procedure TfrmProductOrderAnPaiGQX.BtnEditA4BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='FactoryNo1Name'; + flagname:=''; + MainType:=''; + if ShowModal=1 then + begin + BtnEditA4.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.V2Column11PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='FactoryNo1Name'; + flagname:=''; + MainType:=''; + if ShowModal=1 then + begin + begin + with CDS_Sub do + begin + Edit; + FieldByName('AOrddefstr6').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + + end; + end; + finally + //frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton9Click(Sender: TObject); +begin + try + frmBefChkHX:=TfrmBefChkHX.Create(Application); + with frmBefChkHX do + begin + orderno.Caption:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + PRTColor.Caption:=Trim(Self.Order_Main.fieldbyname('PRTColor').AsString); + FirstName.Caption:=Trim(Self.Order_Main.fieldbyname('FirstName').AsString); + PBFactory.Caption:=Trim(Self.Order_Main.fieldbyname('PBFactory').AsString); + FLLID:=Trim(Self.Order_Main.fieldbyname('LLID').AsString); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_BefChkHX where LLID='''+Trim(Order_Main.fieldbyname('LLID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,ClientDataSet1); + SInitCDSData20(ADOQuery1,ClientDataSet1); + if ShowModal=1 then + begin + + end; + end; + finally + frmBefChkHX.Free; + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton10Click(Sender: TObject); +begin + if Order_Main.IsEmpty=False then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,C.FirstName,C.FirstNo,C.TPPS,C.TPMQty,C.LLID,C.HXPS,C.HXQty,C.HXUnit '); + sql.Add(',PBFactory=(select Top 1 AA.factoryNoName from Contract_Main AA inner join Contract_Cloth_DH BB on AA.MainId=BB.MainId'); + sql.Add(' where BB.DHID=C.DHID)'); + sql.Add(',HCQty=(select sum(AOrdQty1) from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + sql.Add(',HCPS=(select sum(AOrdQty2) from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + sql.Add(',HCUnit=(select Top 1 AOrddefstr2 from JYOrder_Sub_AnPai AA where AA.SubId=B.SubId)'); + sql.Add('from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' inner join Contract_Cloth_LL C on C.OrdSubId=B.SubId'); + sql.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' and C.JXJGFlag=0'); + Open; + end; + SCreateCDS20(ADOQueryTemp,Order_Main); + SInitCDSData20(ADOQueryTemp,Order_Main); + end; +end; + +procedure TfrmProductOrderAnPaiGQX.ToolButton11Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + MovePanel2.Visible:=True; + MovePanel2.Refresh; + try + ADOQueryCmd.Connection.BeginTrans; + Order_Main.DisableControls; + with Order_Main do + begin + First; + while not Eof do + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub_AnPai where LLId='''+Trim(Order_Main.fieldbyname('LLId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Sub); + SInitCDSData20(ADOQueryTemp,CDS_Sub); + with CDS_Sub do + begin + First; + while not Eof do + begin + if YFData()=False then + begin + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('²Ӧʧ!','ʾ',0); + Exit; + end; + Next; + end; + end; + Next; + end; + end; + Order_Main.EnableControls; + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ!','ʾ',0); + Exit; + except + MovePanel2.Visible:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderLBNameSet.dfm b/盛纺贸易管理/U_ProductOrderLBNameSet.dfm new file mode 100644 index 0000000..06389aa --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderLBNameSet.dfm @@ -0,0 +1,699 @@ +object frmProductOrderLBNameSet: TfrmProductOrderLBNameSet + Left = 358 + Top = 258 + Width = 1382 + Height = 754 + Caption = #26631#31614#35774#32622 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #21367#26631#31614#35774#32622 + ImageIndex = 60 + OnClick = ToolButton2Click + end + object TJBQ: TToolButton + Left = 288 + Top = 0 + AutoSize = True + Caption = #21367#26631#31614#39044#35272 + ImageIndex = 12 + OnClick = TJBQClick + end + object ToolButton6: TToolButton + Left = 387 + Top = 0 + AutoSize = True + Caption = #21103#26631#31614#35774#32622 + ImageIndex = 60 + OnClick = ToolButton6Click + end + object ToolButton7: TToolButton + Left = 486 + Top = 0 + AutoSize = True + Caption = #21103#26631#31614#39044#35272 + ImageIndex = 12 + Wrap = True + OnClick = ToolButton7Click + end + object ToolButton4: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #21253#26631#31614#35774#32622 + ImageIndex = 60 + OnClick = ToolButton4Click + end + object TBYL: TToolButton + Left = 99 + Top = 30 + AutoSize = True + Caption = #21253#26631#31614#39044#35272 + ImageIndex = 12 + OnClick = TBYLClick + end + object ToolButton3: TToolButton + Left = 198 + Top = 30 + AutoSize = True + Caption = #30382#37325#35774#32622'(Kg)' + ImageIndex = 29 + OnClick = ToolButton3Click + end + object ToolButton5: TToolButton + Left = 309 + Top = 30 + AutoSize = True + Caption = #31995#25968#35774#32622 + ImageIndex = 29 + OnClick = ToolButton5Click + end + object PiZhong: TEdit + Left = 396 + Top = 30 + Width = 121 + Height = 30 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + end + object TBClose: TToolButton + Left = 517 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1366 + Height = 66 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 15 + Width = 52 + Height = 12 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 327 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 476 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 39 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 476 + Top = 39 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 327 + Top = 39 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 621 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 621 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 723 + Top = 15 + Width = 35 + Height = 12 + Caption = 'PO #' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 723 + Top = 39 + Width = 39 + Height = 12 + Caption = #19994#21153#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 89 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 89 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 231 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 380 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 529 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + object ConNoHZ: TEdit + Tag = 2 + Left = 231 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + OnKeyPress = ConNoHZKeyPress + end + object MPRTSpec: TEdit + Tag = 2 + Left = 529 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 380 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 650 + Top = 35 + Width = 56 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 650 + Top = 11 + Width = 56 + Height = 20 + TabOrder = 9 + OnChange = OrderNoChange + end + object KHconNoHZ: TEdit + Tag = 2 + Left = 764 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 10 + OnChange = OrderNoChange + end + object YWY: TEdit + Tag = 2 + Left = 764 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 11 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 128 + Width = 1366 + Height = 587 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1ComTaiTou: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'ComTaiTou' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1khconNoHZ: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHconNoHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 74 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 59 + end + object v1Column2: TcxGridDBColumn + Caption = #30382#37325'(Kg)' + DataBinding.FieldName = 'PiZhong' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 72 + end + object v1Column5: TcxGridDBColumn + Caption = #25442#31639#31995#25968 + DataBinding.FieldName = 'Xs' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Column6: TcxGridDBColumn + Caption = #25442#31639#31995#25968#31867#22411 + DataBinding.FieldName = 'xsType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column6PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1LengUnit: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'LengUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + '' + 'Y' + 'M' + 'KG') + Properties.OnEditValueChanged = v1LengUnitPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1LBName: TcxGridDBColumn + Caption = #21367#26631#31614 + DataBinding.FieldName = 'LBName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1NLBName: TcxGridDBColumn + Caption = #21253#26631#31614 + DataBinding.FieldName = 'NLBName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1FBQName: TcxGridDBColumn + Caption = #21103#26631#31614 + DataBinding.FieldName = 'FBQName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 354 + Top = 227 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 376 + Top = 232 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 300 + Top = 224 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 356 + Top = 200 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 300 + Top = 196 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 332 + Top = 204 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 384 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 336 + Top = 228 + end + object PopupMenu1: TPopupMenu + Left = 289 + Top = 196 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 248 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 332 + Top = 268 + end +end diff --git a/盛纺贸易管理/U_ProductOrderLBNameSet.pas b/盛纺贸易管理/U_ProductOrderLBNameSet.pas new file mode 100644 index 0000000..aadfc10 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderLBNameSet.pas @@ -0,0 +1,927 @@ +unit U_ProductOrderLBNameSet; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, + RM_Common, RM_Class, RM_GridReport, RM_e_Xls, StrUtils, Menus, cxTextEdit, + cxDropDownEdit, cxButtonEdit, cxLookAndFeels, cxLookAndFeelPainters, + cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, + dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, + dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter; + +type + TfrmProductOrderLBNameSet = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNoHZ: TEdit; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + v1Column2: TcxGridDBColumn; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + PiZhong: TEdit; + ToolButton4: TToolButton; + v1Column5: TcxGridDBColumn; + ToolButton5: TToolButton; + v1Column6: TcxGridDBColumn; + v1khconNoHZ: TcxGridDBColumn; + v1ComTaiTou: TcxGridDBColumn; + Label2: TLabel; + Label5: TLabel; + KHconNoHZ: TEdit; + YWY: TEdit; + v1LengUnit: TcxGridDBColumn; + v1OrderNo: TcxGridDBColumn; + v1LBName: TcxGridDBColumn; + v1NLBName: TcxGridDBColumn; + TJBQ: TToolButton; + TBYL: TToolButton; + ToolButton6: TToolButton; + ToolButton7: TToolButton; + v1FBQName: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + procedure ConNoHZKeyPress(Sender: TObject; var Key: Char); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure v1Column6PropertiesEditValueChanged(Sender: TObject); + procedure v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + procedure v1LengUnitPropertiesEditValueChanged(Sender: TObject); + procedure TJBQClick(Sender: TObject); + procedure TBYLClick(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + private + DQdate: TDateTime; + procedure InitGrid(); + procedure InitForm(); + + { Private declarations } + public + FFInt, FCloth: Integer; + canshu1: string; + { Public declarations } + end; + +var + frmProductOrderLBNameSet: TfrmProductOrderLBNameSet; + +implementation + +uses + U_DataLink, U_Fun, U_ZDYHelp, U_CustModelLabel, U_OrderInPutPrice; + +{$R *.dfm} + +procedure TfrmProductOrderLBNameSet.FormDestroy(Sender: TObject); +begin + frmProductOrderLBNameSet := nil; +end; + +procedure TfrmProductOrderLBNameSet.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmProductOrderLBNameSet.FormCreate(Sender: TObject); +begin + cxgrid1.Align := alClient; + DQdate := SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderLBNameSet.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ǩ2', Tv1, 'ָʾ'); +end; + +procedure TfrmProductOrderLBNameSet.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.add('exec P_View_OrderLabelSet :begdate,:enddate,:WSql'); + if trim(canshu1) <> 'Ȩ' then + Parameters.ParamByName('WSql').Value := ' and (Filler=''' + Trim(DName) + ''' or LiDanPerson=''' + Trim(DName) + ''' or YWY=''' + Trim(DName) + ''')' + else + Parameters.ParamByName('WSql').Value := ''; + Parameters.ParamByName('begdate').Value := FormatDateTime('yyyy-MM-dd', BegDate.DateTime); + Parameters.ParamByName('enddate').Value := FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderLBNameSet.InitForm(); +begin + ReadCxGrid('ǩ2', Tv1, 'ָʾ'); + BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 7; + EndDate.DateTime := SGetServerDate10(ADOQueryTemp); + canshu1 := trim(DParameters1); +end; + +procedure TfrmProductOrderLBNameSet.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmProductOrderLBNameSet.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderLBNameSet.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmProductOrderLBNameSet.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderLBNameSet.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible = False then + Exit; + ToolButton1.Click; +end; + +procedure TfrmProductOrderLBNameSet.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderLBNameSet.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderLBNameSet.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + try + frmOrderInPutPrice := TfrmOrderInPutPrice.Create(Application); + with frmOrderInPutPrice do + begin + PState := 1; + FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible := False; + ToolBar3.Visible := False; + ToolBar4.Visible := False; + TBSave.Visible := False; + if ShowModal = 1 then + begin + + end; + end; + finally + frmOrderInPutPrice.Free; + end; +end; + +procedure TfrmProductOrderLBNameSet.OrderNoKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + if Length(OrderNo.Text) < 3 then + Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.add('exec P_View_OrderLabelSet :begdate,:enddate,:WSql'); + begin + Parameters.ParamByName('WSql').Value := ' and orderno like ''' + '%' + Trim(OrderNo.Text) + '%' + ''''; + end; + Parameters.ParamByName('begdate').Value := ''; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderLBNameSet.ConNoHZKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + if Length(connoHZ.Text) < 3 then + Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.add('exec P_View_OrderLabelSet :begdate,:enddate,:WSql'); + begin + Parameters.ParamByName('WSql').Value := ' and connoHZ like ''' + '%' + Trim(connoHZ.Text) + '%' + ''''; + end; + Parameters.ParamByName('begdate').Value := ''; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderLBNameSet.ToolButton2Click(Sender: TObject); +var + labname: string; +begin + if Order_Main.IsEmpty then + Exit; + {if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end;} + try + frmCustModelLabel := TfrmCustModelLabel.Create(Application); + with frmCustModelLabel do + begin + if ShowModal = 1 then + begin + labname := Trim(frmCustModelLabel.ClientDataSet1.fieldbyname('labelCaption').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set LBName=''' + Trim(labname) + ''''); + sql.Add(' where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('LbName').Value := labname; + Post; + end; + end; + end; + finally + frmCustModelLabel.Free; + end; + +end; + +procedure TfrmProductOrderLBNameSet.ToolButton3Click(Sender: TObject); +var + FPiZhong: string; + FReal: Double; +begin + + if Trim(PiZhong.Text) = '' then + begin + Application.MessageBox('ƤزΪ!', 'ʾ', 0); + Exit; + end; + if TryStrToFloat(PiZhong.Text, FReal) = False then + begin + Application.MessageBox('ƤطǷ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set PiZhong=' + (PiZhong.Text)); + sql.Add(' where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('PiZhong').Value := PiZhong.Text; + Post; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSet.ToolButton4Click(Sender: TObject); +var + labname: string; +begin + if Order_Main.IsEmpty then + Exit; + {if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end;} + try + frmCustModelLabel := TfrmCustModelLabel.Create(Application); + with frmCustModelLabel do + begin + if ShowModal = 1 then + begin + labname := Trim(frmCustModelLabel.ClientDataSet1.fieldbyname('labelCaption').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set NLBName=''' + Trim(labname) + ''''); + sql.Add(' where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('NLBName').Value := labname; + Post; + end; + end; + end; + finally + frmCustModelLabel.Free; + end; +end; + +procedure TfrmProductOrderLBNameSet.ToolButton5Click(Sender: TObject); +var + FReal: Double; +begin + + if Trim(PiZhong.Text) = '' then + begin + Application.MessageBox('ϵΪ!', 'ʾ', 0); + Exit; + end; + if TryStrToFloat(PiZhong.Text, FReal) = False then + begin + Application.MessageBox('ϵǷ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set XS=''' + trim(PiZhong.Text) + ''''); + sql.Add(' where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('XS').Value := PiZhong.Text; + Post; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSet.v1Column6PropertiesEditValueChanged(Sender: TObject); +var + mvalues: string; +begin + mvalues := TCXTextEdit(Sender).Text; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set XSType=''' + trim(mvalues) + ''' '); + sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + edit; + fieldbyname('XSType').Value := mvalues; + post; + end; + + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSet.v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp := TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag := 'xsType'; + flagname := 'ϵ'; + if ShowModal = 1 then + begin + with Order_Main do + begin + edit; + fieldbyname('xsType').AsString := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main set xsType=''' + trim(ClientDataSet1.fieldbyname('ZdyName').AsString) + ''' '); + sql.Add(' where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderLBNameSet.v1LengUnitPropertiesEditValueChanged(Sender: TObject); +var + mvalues: string; +begin + mvalues := TCXTextEdit(Sender).Text; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set LengUnit=''' + trim(mvalues) + ''' '); + sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + edit; + fieldbyname('LengUnit').Value := mvalues; + post; + end; +end; + +procedure TfrmProductOrderLBNameSet.TJBQClick(Sender: TObject); +var + fPrintFile, fPrintFile1, fPrintFile2: string; + Txt, Txt1, Txt2, Txt3, fImagePath, fImagePath1, fImagePath2, fImagePath3, FKHZ, FDETM, FKHY, FTM, Txt4, fImagePath4: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + if Order_Main.IsEmpty then + Exit; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 ConNoHZ=(select Top 1 Q.ConNo from JYOrderCon_Main Q '); + sql.Add(' inner join JYOrder_ConORD W on Q.MainId=W.ConMainId where W.MainId=B.MainId)'); + sql.Add(',KHConNo=(select Top 1 Q.KHConNo from JYOrderCon_Main Q '); + sql.Add(' inner join JYOrder_ConORD W on Q.MainId=W.ConMainId where W.MainId=B.MainId)'); + sql.Add(',QtyUnit=C.OrderUnit,B.orderNo,GangNo=cast(''0001'' as varchar(6)),mjxh=cast(''0001'' as varchar(6)),MZ=cast(''0001'' as varchar(6))'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.FBQName,MJQty4=cast(20 as decimal(18,2)),MJLen=cast(50.00 as decimal(18,2)) '); + sql.Add(',TLen=cast(50.00 as varchar(10))'); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.PRTColorEng OrdPRTColorEng,SOrddefstr4=cast('''' as varchar(50))'); + sql.Add(',B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,PiQty=Cast(0 as decimal(18,2)) '); + sql.Add(',MQty=cast(1.58 as decimal(18,2)),HS=cast(''1803'' as varchar(6)),C.XHInt XHNo'); + sql.Add(',mjstr4=''1'' '); + SQL.ADD(',B.MPRTMF PRTMF,B.MPRTKZ PRTKZ,B.MPRTCodeName PRTCodeName,PRTCode=cast('''' as varchar(50)),B.CustomerNoName,C.*'); + sql.Add(',MJXH1=cast('''' as varchar(100)),TM=cast('''' as varchar(30)),DETM=cast('''' as varchar(40)),MJMaoZ=cast(20 as decimal(18,2))'); + sql.Add(' from JYOrder_Main B '); + sql.Add(' inner join JYOrder_Sub C on B.Mainid=C.Mainid'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + SQL.Add(' where B.Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + FKHZ := Copy(Trim(CDS_Print.fieldbyname('styleNo').AsString), 1, 3); + FKHY := Copy(Trim(CDS_Print.fieldbyname('styleNo').AsString), 5, 7); + if CDS_Print.FieldByName('CustomerNoName').AsString = 'MARLAN' then + begin + FDETM := FormatDateTime('yy', SGetServerDate(ADOQueryCmd)) + Trim(CDS_Print.fieldbyname('KHConNo').AsString) + '@' + Trim(CDS_Print.fieldbyname('styleNo').AsString) + Trim(CDS_Print.fieldbyname('PRTHX').AsString) + Trim(CDS_Print.fieldbyname('PRTColorEng').AsString) + '@' + '1200'; + with CDS_Print do + begin + Edit; + FieldByName('DETM').AsString := Trim(FDETM); + end; + end + else + begin + FTM := trim(FKHZ) + trim(FKHY) + copy(Trim(CDS_Print.fieldbyname('PRTHX').AsString) + Trim(CDS_Print.fieldbyname('PRTColorEng').AsString), 1, 3) + '0500000010001'; + with CDS_Print do + begin + Edit; + FieldByName('TM').AsString := Trim(FTM); + end; + end; + with CDS_Print do + begin + Edit; + FieldByName('MJXH1').AsString := '32' + copy(Trim(CDS_Print.fieldbyname('OrderNo').AsString), 3, 4) + '20200101' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(CDS_Print.fieldbyname('TM').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt1 := '32' + copy(Trim(CDS_Print.fieldbyname('OrderNo').AsString), 3, 4) + '20100101' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath1 := ExtractFilePath(Application.ExeName) + 'image\temp1.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath1) then + DeleteFile(fImagePath1); + Makebar(pchar(Txt1), Length(Txt1), 3, 3, 0, PChar(fImagePath1), 4); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt2 := 'NWJ01.100;' + Trim(ADOQueryPrint.fieldbyname('styleNo').AsString) + ';801;' + Trim(ADOQueryPrint.fieldbyname('PRTHX').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJQty4').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + ';' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\temp2.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath2) then + DeleteFile(fImagePath2); + Makebar(pchar(Txt2), Length(Txt2), 3, 3, 0, PChar(fImagePath2), 4); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt3 := Trim(CDS_Print.fieldbyname('MJXH1').AsString); + fImagePath3 := ExtractFilePath(Application.ExeName) + 'image\temp3.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath3) then + DeleteFile(fImagePath3); + Makebar(pchar(Txt3), Length(Txt3), 3, 3, 0, PChar(fImagePath3), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt4 := '{"A":"' + Trim(ADOQueryPrint.fieldbyname('KHConNO').AsString) + '","B":"' + Trim(ADOQueryPrint.fieldbyname('StyleNo').AsString) + '","C":"' + Trim(ADOQueryPrint.fieldbyname('mjqty4').AsString) + '","D":"' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + '","E":"' + Trim(ADOQueryPrint.fieldbyname('mjstr4').AsString) + '","F":"' + RightStr(('10000' + trim(ADOQueryPrint.fieldbyName('MJXH').AsString)), 4) + '"}'; + fImagePath4 := ExtractFilePath(Application.ExeName) + 'image\temp4.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath4) then + DeleteFile(fImagePath4); + Makebar(pchar(Txt4), Length(Txt4), 3, 3, 0, PChar(fImagePath4), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + if Trim(CDS_Print.fieldbyname('LBName').AsString) <> '' then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(CDS_Print.fieldbyname('LBName').AsString) + '.rmf' + else + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨӢıǩ.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['QRBARCODE1'] := fImagePath1; + RMVariables['QRBARCODE2'] := fImagePath2; + RMVariables['QRBARCODE3'] := fImagePath3; //'32' + copy(Trim(CDS_Print.fieldbyname('OrderNo').AsString), 3, 4) + '20200101' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); + RMVariables['QRBARCODE4'] := fImagePath4; + RMVariables['MJXH1'] := trim(Txt3); + RMVariables['ID'] := trim(CDS_Print.fieldbyname('HS').AsString) + Trim(CDS_Print.fieldbyname('XHNo').AsString); + RMVariables['FMPRTMF'] := StrToFloatDef(CDS_Print.fieldbyname('MPRTMF').AsString, 0) / 100; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; +end; + +procedure TfrmProductOrderLBNameSet.TBYLClick(Sender: TObject); +var + fPrintFile: string; + Txt, fImagePath, FKHZ, FDETM, FKHY, FTM: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + if Order_Main.IsEmpty then + Exit; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 ConNoHZ=(select Top 1 Q.ConNo from JYOrderCon_Main Q '); + sql.Add(' inner join JYOrder_ConORD W on Q.MainId=W.ConMainId where W.MainId=B.MainId)'); + sql.Add(',KHConNo=(select Top 1 Q.KHConNo from JYOrderCon_Main Q '); + sql.Add(' inner join JYOrder_ConORD W on Q.MainId=W.ConMainId where W.MainId=B.MainId)'); + sql.Add(',QtyUnit=C.OrderUnit,B.orderNo,GangNo=cast(''0001'' as varchar(6)),mjxh=cast(''0001'' as varchar(6)),MZ=cast(''0001'' as varchar(6))'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,MJQty4=cast(12 as decimal(18,2)),MJLen=cast(12 as decimal(18,2)) '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.PRTColorEng OrdPRTColorEng,SOrddefstr4=cast('''' as varchar(50))'); + sql.Add(',B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,PiQty=Cast(0 as decimal(18,2)) '); + sql.Add(',MQty=cast(1.58 as decimal(18,2)),HS=cast(''1803'' as varchar(6)),C.XHInt XHNo'); + SQL.ADD(',B.MPRTMF PRTMF,B.MPRTKZ PRTKZ,B.MPRTCodeName PRTCodeName,PRTCode=cast('''' as varchar(50)),B.CustomerNoName,C.*'); + sql.Add(',TM=cast('''' as varchar(30)),DETM=cast('''' as varchar(40)),MJMaoZ=cast(12 as decimal(18,2)),BaoNo=cast(''1'' as varchar(50)),BaoID=cast(''123'' as varchar(50))'); + sql.Add(' from JYOrder_Main B '); + sql.Add(' inner join JYOrder_Sub C on B.Mainid=C.Mainid'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + SQL.Add(' where B.Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + FKHZ := Copy(Trim(CDS_Print.fieldbyname('styleNo').AsString), 1, 3); + FKHY := Copy(Trim(CDS_Print.fieldbyname('styleNo').AsString), 5, 7); + if CDS_Print.FieldByName('CustomerNoName').AsString = 'MARLAN' then + begin + FDETM := FormatDateTime('yy', SGetServerDate(ADOQueryCmd)) + Trim(CDS_Print.fieldbyname('KHConNo').AsString) + '@' + Trim(CDS_Print.fieldbyname('styleNo').AsString) + Trim(CDS_Print.fieldbyname('PRTHX').AsString) + Trim(CDS_Print.fieldbyname('PRTColorEng').AsString) + '@' + '1200'; + with CDS_Print do + begin + Edit; + FieldByName('DETM').AsString := Trim(FDETM); + end; + end + else + begin + FTM := trim(FKHZ) + trim(FKHY) + copy(Trim(CDS_Print.fieldbyname('PRTHX').AsString) + Trim(CDS_Print.fieldbyname('PRTColorEng').AsString), 1, 3) + '0120000010001'; + with CDS_Print do + begin + Edit; + FieldByName('TM').AsString := Trim(FTM); + end; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(CDS_Print.fieldbyname('TM').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + if Trim(CDS_Print.fieldbyname('NLBName').AsString) <> '' then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(CDS_Print.fieldbyname('NLBName').AsString) + '.rmf' + else + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨӢıǩ.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['ID'] := trim(CDS_Print.fieldbyname('HS').AsString) + Trim(CDS_Print.fieldbyname('XHNo').AsString); + RMVariables['FMPRTMF'] := StrToFloatDef(CDS_Print.fieldbyname('MPRTMF').AsString, 0) / 100; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; +end; + +procedure TfrmProductOrderLBNameSet.ToolButton6Click(Sender: TObject); +var + labname: string; +begin + if Order_Main.IsEmpty then + Exit; + try + frmCustModelLabel := TfrmCustModelLabel.Create(Application); + with frmCustModelLabel do + begin + if ShowModal = 1 then + begin + labname := Trim(frmCustModelLabel.ClientDataSet1.fieldbyname('labelCaption').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set FBQName=''' + Trim(labname) + ''''); + sql.Add(' where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('FBQName').Value := labname; + Post; + end; + end; + end; + finally + frmCustModelLabel.Free; + end; +end; + +procedure TfrmProductOrderLBNameSet.ToolButton7Click(Sender: TObject); +var + fPrintFile: string; + Txt, fImagePath, FKHZ, FDETM, FKHY, FTM: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; +begin + if Order_Main.IsEmpty then + Exit; + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select Top 1 ConNoHZ=(select Top 1 Q.ConNo from JYOrderCon_Main Q '); + sql.Add(' inner join JYOrder_ConORD W on Q.MainId=W.ConMainId where W.MainId=B.MainId)'); + sql.Add(',KHConNo=(select Top 1 Q.KHConNo from JYOrderCon_Main Q '); + sql.Add(' inner join JYOrder_ConORD W on Q.MainId=W.ConMainId where W.MainId=B.MainId)'); + sql.Add(',QtyUnit=C.OrderUnit,B.orderNo,GangNo=cast(''0001'' as varchar(6)),mjxh=cast(''0001'' as varchar(6)),MZ=cast(''0001'' as varchar(6))'); + sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.FBQName,MJQty4=cast(12 as decimal(18,2)),MJLen=cast(12 as decimal(18,2)) '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.PRTColorEng OrdPRTColorEng,SOrddefstr4=cast('''' as varchar(50))'); + sql.Add(',B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,PiQty=Cast(0 as decimal(18,2)) '); + sql.Add(',MQty=cast(1.58 as decimal(18,2)),HS=cast(''1803'' as varchar(6)),C.XHInt XHNo'); + SQL.ADD(',B.MPRTMF PRTMF,B.MPRTKZ PRTKZ,B.MPRTCodeName PRTCodeName,PRTCode=cast('''' as varchar(50)),B.CustomerNoName,C.*'); + sql.Add(',TM=cast('''' as varchar(30)),DETM=cast('''' as varchar(40)),MJMaoZ=cast(12 as decimal(18,2))'); + sql.Add(' from JYOrder_Main B '); + sql.Add(' inner join JYOrder_Sub C on B.Mainid=C.Mainid'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + SQL.Add(' where B.Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + FKHZ := Copy(Trim(CDS_Print.fieldbyname('styleNo').AsString), 1, 3); + FKHY := Copy(Trim(CDS_Print.fieldbyname('styleNo').AsString), 5, 7); + if CDS_Print.FieldByName('CustomerNoName').AsString = 'MARLAN' then + begin + FDETM := FormatDateTime('yy', SGetServerDate(ADOQueryCmd)) + Trim(CDS_Print.fieldbyname('KHConNo').AsString) + '@' + Trim(CDS_Print.fieldbyname('styleNo').AsString) + Trim(CDS_Print.fieldbyname('PRTHX').AsString) + Trim(CDS_Print.fieldbyname('PRTColorEng').AsString) + '@' + '1200'; + with CDS_Print do + begin + Edit; + FieldByName('DETM').AsString := Trim(FDETM); + end; + end + else + begin + FTM := trim(FKHZ) + trim(FKHY) + copy(Trim(CDS_Print.fieldbyname('PRTHX').AsString) + Trim(CDS_Print.fieldbyname('PRTColorEng').AsString), 1, 3) + '0120000010001'; + with CDS_Print do + begin + Edit; + FieldByName('TM').AsString := Trim(FTM); + end; + end; + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(CDS_Print.fieldbyname('TM').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + if Trim(CDS_Print.fieldbyname('FBQName').AsString) <> '' then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(CDS_Print.fieldbyname('FBQName').AsString) + '.rmf' + else + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨӢıǩ.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['ID'] := trim(CDS_Print.fieldbyname('HS').AsString) + Trim(CDS_Print.fieldbyname('XHNo').AsString); + RMVariables['FMPRTMF'] := StrToFloatDef(CDS_Print.fieldbyname('MPRTMF').AsString, 0) / 100; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Order_Main.EnableControls; + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ǩ.rmf'), 'ʾ', 0); + Exit; + end; +end; + +end. + diff --git a/盛纺贸易管理/U_ProductOrderLBNameSet11.dfm b/盛纺贸易管理/U_ProductOrderLBNameSet11.dfm new file mode 100644 index 0000000..c92966b --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderLBNameSet11.dfm @@ -0,0 +1,579 @@ +object frmProductOrderLBNameSet11: TfrmProductOrderLBNameSet11 + Left = 189 + Top = 138 + Width = 1141 + Height = 601 + Caption = #26631#31614#35774#32622 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1125 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + Visible = False + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #21367#26631#31614#35774#32622 + ImageIndex = 60 + OnClick = ToolButton2Click + end + object ToolButton4: TToolButton + Left = 288 + Top = 0 + AutoSize = True + Caption = #21253#26631#31614#35774#32622 + ImageIndex = 60 + OnClick = ToolButton4Click + end + object ToolButton3: TToolButton + Left = 387 + Top = 0 + AutoSize = True + Caption = #30382#37325#35774#32622'(Kg)' + ImageIndex = 29 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton5: TToolButton + Left = 498 + Top = 0 + AutoSize = True + Caption = #31995#25968#35774#32622 + ImageIndex = 29 + Visible = False + end + object PiZhong: TEdit + Left = 585 + Top = 0 + Width = 121 + Height = 30 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + end + object TBClose: TToolButton + Left = 706 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1125 + Height = 72 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 56 + Height = 13 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 203 + Top = 16 + Width = 60 + Height = 13 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 203 + Top = 42 + Width = 58 + Height = 13 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 367 + Top = 42 + Width = 56 + Height = 13 + Caption = #20132#26399#35828#26126 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 367 + Top = 16 + Width = 58 + Height = 13 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 82 + Top = 12 + Width = 92 + Height = 21 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 82 + Top = 38 + Width = 92 + Height = 21 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 260 + Top = 12 + Width = 82 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + end + object ConNO: TEdit + Tag = 2 + Left = 259 + Top = 38 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + OnKeyPress = ConNOKeyPress + end + object DlyNote: TEdit + Tag = 2 + Left = 425 + Top = 38 + Width = 82 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object ConPerson1: TEdit + Tag = 2 + Left = 425 + Top = 12 + Width = 82 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 104 + Width = 1125 + Height = 457 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1ConNO: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNO' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1SYSName: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'SYSName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1ConPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'ConPerson1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1DlyNote: TcxGridDBColumn + Caption = #20132#26399#35828#26126 + DataBinding.FieldName = 'DlyNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1PriceNote: TcxGridDBColumn + Caption = #20215#26684#26415#35821 + DataBinding.FieldName = 'PriceNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1ConLBName: TcxGridDBColumn + Caption = #21367#26631#31614#21517#31216 + DataBinding.FieldName = 'ConLBName' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1ConNLBName: TcxGridDBColumn + Caption = #21253#26631#31614#21517#31216 + DataBinding.FieldName = 'ConNLBName' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column3PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 444 + Top = 148 + Width = 250 + Height = 234 + TabOrder = 3 + Visible = False + object Label14: TLabel + Left = 52 + Top = 95 + Width = 7 + Height = 13 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 248 + Height = 25 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -18 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 223 + Top = 3 + Width = 24 + Height = 18 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 90 + Top = 191 + Width = 81 + Height = 27 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 61 + Top = 26 + Width = 139 + Height = 157 + ItemIndex = 0 + Items.Strings = ( + #21253#35013#25351#31034#21333 + #39068#33394#26679 + #21697#36136#26679 + #33457#22411#26679) + TabOrder = 2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 280 + Top = 240 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 376 + Top = 240 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 236 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 308 + Top = 264 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 356 + Top = 212 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 296 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 328 + Top = 212 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 384 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 332 + Top = 240 + end + object PopupMenu1: TPopupMenu + Left = 268 + Top = 196 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 356 + Top = 260 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 328 + Top = 284 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + end +end diff --git a/盛纺贸易管理/U_ProductOrderLBNameSet11.pas b/盛纺贸易管理/U_ProductOrderLBNameSet11.pas new file mode 100644 index 0000000..0f2a18c --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderLBNameSet11.pas @@ -0,0 +1,865 @@ +unit U_ProductOrderLBNameSet11; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls,StrUtils, + Menus, cxTextEdit, cxDropDownEdit, cxButtonEdit; + +type + TfrmProductOrderLBNameSet11 = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNO: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label9: TLabel; + ConNO: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + v1Column4: TcxGridDBColumn; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + v1ConLBName: TcxGridDBColumn; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + PiZhong: TEdit; + ToolButton4: TToolButton; + v1ConNLBName: TcxGridDBColumn; + ToolButton5: TToolButton; + v1SYSName: TcxGridDBColumn; + Label2: TLabel; + Label5: TLabel; + DlyNote: TEdit; + ConPerson1: TEdit; + v1PriceNote: TcxGridDBColumn; + v1ConPerson1: TcxGridDBColumn; + v1DlyNote: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure ToolButton1Click(Sender: TObject); + procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); + procedure ConNOKeyPress(Sender: TObject; var Key: Char); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Button1Click(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + procedure v1Column1PropertiesEditValueChanged(Sender: TObject); + procedure v1Column6PropertiesEditValueChanged(Sender: TObject); + procedure v1Column6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1LengUnitPropertiesEditValueChanged(Sender: TObject); + procedure v1conDefstr3PropertiesEditValueChanged(Sender: TObject); + procedure v1ConPerson2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1conDefstr2PropertiesEditValueChanged(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + + { Private declarations } + public + FFInt,FCloth:Integer; + Canshu1:string; + { Public declarations } + end; + +var + frmProductOrderLBNameSet11: TfrmProductOrderLBNameSet11; + newh:hwnd; +implementation +uses + U_DataLink,U_OrderInPut,U_Fun, U_OrderInPutPrice, U_ZDYHelp, + U_ConInPutNX; + +{$R *.dfm} + +procedure TfrmProductOrderLBNameSet11.FormDestroy(Sender: TObject); +begin + frmProductOrderLBNameSet11:=nil; +end; + +procedure TfrmProductOrderLBNameSet11.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderLBNameSet11.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderLBNameSet11.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ǩ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderLBNameSet11.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select A.* from JYorderCon_Main A ') ; + //sql.add(' inner join JYorderCon_Sub B on B.Mainid=A.Mainid '); //ݺͬѡʽ + SQL.Add('where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''' '); + SQL.Add(' and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add('and (A.KeFu='''+Trim(DName)+''''); + sql.Add(' or A.ConPerson1='''+Trim(DName)+''' '); + sql.add(' or exists (select B.Chker from OrdCon_Chk B where B.Mainid=A.Mainid and B.Chker='''+trim(DName)+'''))'); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmProductOrderLBNameSet11.InitForm(); +begin + ReadCxGrid('ǩ',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + canShu1:=trim(DParameters1); +end; + +procedure TfrmProductOrderLBNameSet11.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; +procedure TfrmProductOrderLBNameSet11.TBRafreshClick(Sender: TObject); +begin + ToolBar1.SetFocus; + InitGrid(); +end; + +procedure TfrmProductOrderLBNameSet11.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderLBNameSet11.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderLBNameSet11.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + //ToolButton1.Click; +end; + +procedure TfrmProductOrderLBNameSet11.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderLBNameSet11.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderLBNameSet11.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderLBNameSet11.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderLBNameSet11.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmConInPutNX:=TfrmConInPutNX.Create(Application); + with frmConInPutNX do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Button1.Visible:=False; + Button2.Visible:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmConInPutNX.Free; + end; +end; + +procedure TfrmProductOrderLBNameSet11.OrderNoMKeyPress(Sender: TObject; + var Key: Char); +begin + {if Key=#13 then + begin + if Length(OrderNoM.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + begin + Parameters.ParamByName('WSql').Value:=' and orderno like '''+'%'+Trim(OrderNoM.Text)+'%'+''''; + end; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end;} +end; + +procedure TfrmProductOrderLBNameSet11.ConNOKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(conno.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select A.* from JYorderCon_Main A ') ; + SQL.Add('where A.ConNo like '''+'%'+trim(ConNo.Text)+'%'+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderLBNameSet11.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmProductOrderLBNameSet11.Button1Click(Sender: TObject); +var + fPrintFile:string; + Porderno,LBName:string; + i,j:Integer; + OrderKg:Double; +begin + if Order_Main.IsEmpty then Exit; + LBName:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ; + if RadioGroup1.ItemIndex=0 then + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,ColorCount=(select isnull(Count(*),0) from JYOrder_Sub where MainId=A.MainId), '); + sql.add('ZQty=(select sum(PRTOrderQty) from JYOrder_Sub where MainId=A.MainId)'); + SQL.Add(', Case when B.OrderUnit=''M'' then Cast (dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as varchar(20))+''Kg'' '); + SQL.Add(' when B.OrderUnit=''Y'' then Cast (dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as varchar(20))+''Kg'' '); + sql.Add(' else '''' end as PRTOrderKgQtyStr '); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + + end else + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('exec P_View_OrderSub :begdate,:enddate,:wsql '); + Parameters.ParamByName('WSql').Value:=' and A.MainId='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Open; + end; + if Trim(ADOQueryPrint.FieldByName('PRTHX').AsString)<>'' then + begin + if Trim(LBName)='ɫ' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɫ.rmf' ; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(sum(PRTOrderKgQty),0) PRTOrderKgHZQty from('); + sql.Add('select '); + SQL.Add(' Case when B.OrderUnit=''M'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as decimal(18,2))'); + SQL.Add(' when B.OrderUnit=''Y'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 As decimal(18,2)) '); + sql.Add(' else 0 end as PRTOrderKgQty'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''')AA'); + Open; + end; + OrderKg:=ADOQueryTemp.fieldbyname('PRTOrderKgHZQty').Value; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + if OrderKg>0 then + RMVariables['OrderKg']:='/'+Trim(FloatToStr(OrderKg))+'Kg' + else + RMVariables['OrderKg']:=''; + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderLBNameSet11.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmProductOrderLBNameSet11.ToolButton2Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConLBName='''+Trim(labname)+''''); + sql.Add(' where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('ConLbName').Value:=labname; + Post; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSet11.ToolButton3Click(Sender: TObject); +var + FPiZhong:string; + FReal:Double; +begin + if Trim(PiZhong.Text)='' then + begin + Application.MessageBox('ƤزΪ!','ʾ',0); + Exit; + end; + if TryStrToFloat(PiZhong.Text,FReal)=False then + begin + Application.MessageBox('ƤطǷ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set PiZhong='+(PiZhong.Text)); + sql.Add(' where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('PiZhong').Value:=PiZhong.Text; + Post; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSet11.ToolButton4Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConNLBName='''+Trim(labname)+''''); + sql.Add(' where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('ConNLbName').Value:=labname; + Post; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + tv1.Controller.EditingController.ShowEdit(); +end; + + +procedure TfrmProductOrderLBNameSet11.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + + with Order_Main do + begin + edit; + fieldbyname('ConNLBName').Value:=mvalues; + post; + end; + tv1.Controller.EditingController.ShowEdit(); + IF trim(mvalues)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConNLBName='''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end; +end; + +procedure TfrmProductOrderLBNameSet11.v1Column1PropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + + with Order_Main do + begin + edit; + fieldbyname('ConLBName').Value:=mvalues; + post; + end; + tv1.Controller.EditingController.ShowEdit(); + IF trim(mvalues)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConLBName='''+trim(mvalues)+''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end; +end; +procedure TfrmProductOrderLBNameSet11.v1Column6PropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set XSType='''+trim(mvalues)+''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + edit; + fieldbyname('XSType').Value:=mvalues; + post; + end; + + + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSet11.v1Column6PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='xsType'; + flagname:='ϵ'; + if ShowModal=1 then + begin + with Order_Main do + begin + edit; + fieldbyname('xsType').AsString:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmProductOrderLBNameSet11.v1LengUnitPropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set LengUnit='''+trim(mvalues)+''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + edit; + fieldbyname('LengUnit').Value:=mvalues; + post; + end; +end; + +procedure TfrmProductOrderLBNameSet11.v1conDefstr3PropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + + with Order_Main do + begin + edit; + fieldbyname('conDefstr3').Value:=mvalues; + post; + end; + tv1.Controller.EditingController.ShowEdit(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set conDefstr3='''+trim(mvalues)+''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductOrderLBNameSet11.v1ConPerson2PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + frmZDYHelp:=TfrmZDYHelp.Create(self); + with frmZDYHelp do + begin + flag:='ConPerson2'; + flagname:='ջ'; + if showmodal=1 then + begin + with Order_Main do + begin + edit; + fieldbyname('ConPerson2').Value:=trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + with self.ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select Top 1 * from JYOrderCon_Main '); + sql.Add('where ConPerson2='''+Trim(Order_Main.fieldbyname('ConPerson2').asstring)+''' '); + sql.add('order by OrdDate desc'); + open; + end; + with Order_Main do + begin + edit; + fieldbyname('conDefstr2').Value:=trim(self.ADOQueryCmd.fieldbyname('conDefstr2').AsString); + fieldbyname('conDefstr3').Value:=trim(self.ADOQueryCmd.fieldbyname('conDefstr3').AsString); + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set ConPerson2='''+trim(Order_Main.fieldbyname('ConPerson2').AsString)+''', '); + sql.add('conDefstr2='''+trim(Order_Main.fieldbyname('conDefstr2').AsString)+''','); + sql.add('conDefstr3='''+trim(Order_Main.fieldbyname('conDefstr3').AsString)+''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end; + free; + end; +end; + +procedure TfrmProductOrderLBNameSet11.v1conDefstr2PropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + + with Order_Main do + begin + edit; + fieldbyname('conDefstr2').Value:=mvalues; + post; + end; + tv1.Controller.EditingController.ShowEdit(); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrderCon_Main Set conDefstr2='''+trim(mvalues)+''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderLBNameSetFZ.dfm b/盛纺贸易管理/U_ProductOrderLBNameSetFZ.dfm new file mode 100644 index 0000000..e22fb87 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderLBNameSetFZ.dfm @@ -0,0 +1,671 @@ +object frmProductOrderLBNameSetFZ: TfrmProductOrderLBNameSetFZ + Left = 215 + Top = 114 + Width = 1094 + Height = 600 + Caption = #26816#39564#25187#20998#35774#32622 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1078 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #25187#20998#35774#32622 + ImageIndex = 29 + OnClick = ToolButton3Click + end + object ToolButton2: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #26631#31614#35774#32622 + ImageIndex = 60 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton4: TToolButton + Left = 426 + Top = 0 + AutoSize = True + Caption = #21103#26631#31614#35774#32622 + ImageIndex = 60 + Visible = False + OnClick = ToolButton4Click + end + object PiZhong: TEdit + Left = 525 + Top = 0 + Width = 121 + Height = 30 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + end + object TBClose: TToolButton + Left = 646 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1078 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 318 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 476 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 476 + Top = 39 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 318 + Top = 39 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 621 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 621 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 220 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 371 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 529 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object ConNo: TEdit + Tag = 2 + Left = 220 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + OnKeyPress = ConNoKeyPress + end + object MPRTSpec: TEdit + Tag = 2 + Left = 529 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoMChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 371 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoMChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 650 + Top = 35 + Width = 56 + Height = 20 + TabOrder = 8 + OnChange = OrderNoMChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 650 + Top = 11 + Width = 56 + Height = 20 + TabOrder = 9 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 99 + Width = 1078 + Height = 369 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1ConNoHZ: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 91 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 66 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 88 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 72 + end + object v1Column1: TcxGridDBColumn + Caption = #26816#39564#25187#20998#26631#20934 + DataBinding.FieldName = 'KouFenQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 121 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 410 + Top = 137 + Width = 231 + Height = 216 + TabOrder = 3 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 229 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 206 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 83 + Top = 176 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 56 + Top = 24 + Width = 129 + Height = 145 + ItemIndex = 0 + Items.Strings = ( + #21253#35013#25351#31034#21333 + #39068#33394#26679 + #21697#36136#26679 + #33457#22411#26679) + TabOrder = 2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/盛纺贸易管理/U_ProductOrderLBNameSetFZ.pas b/盛纺贸易管理/U_ProductOrderLBNameSetFZ.pas new file mode 100644 index 0000000..86ee7b7 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderLBNameSetFZ.pas @@ -0,0 +1,679 @@ +unit U_ProductOrderLBNameSetFZ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls,StrUtils, + Menus, cxTextEdit; + +type + TfrmProductOrderLBNameSetFZ = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNoHZ: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + v1Column4: TcxGridDBColumn; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + v1Column1: TcxGridDBColumn; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + PiZhong: TEdit; + ToolButton4: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure ToolButton1Click(Sender: TObject); + procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Button1Click(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure v1Column3PropertiesEditValueChanged(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderLBNameSetFZ: TfrmProductOrderLBNameSetFZ; + newh:hwnd; +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmProductOrderLBNameSetFZ.FormDestroy(Sender: TObject); +begin + frmProductOrderLBNameSetFZ:=nil; +end; + +procedure TfrmProductOrderLBNameSetFZ.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderLBNameSetFZ.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderLBNameSetFZ.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption,Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderLBNameSetFZ.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + Parameters.ParamByName('WSql').Value:=''; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmProductOrderLBNameSetFZ.InitForm(); +begin + ReadCxGrid(self.Caption,Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); +end; + +procedure TfrmProductOrderLBNameSetFZ.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; +procedure TfrmProductOrderLBNameSetFZ.TBPrintClick(Sender: TObject); +begin + Panel4.Visible:=True; +end; + +procedure TfrmProductOrderLBNameSetFZ.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderLBNameSetFZ.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderLBNameSetFZ.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderLBNameSetFZ.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmProductOrderLBNameSetFZ.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderLBNameSetFZ.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderLBNameSetFZ.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderLBNameSetFZ.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderLBNameSetFZ.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderLBNameSetFZ.OrderNoMKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(OrderNoM.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + begin + Parameters.ParamByName('WSql').Value:=' and orderno like '''+'%'+Trim(OrderNoM.Text)+'%'+''''; + end; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderLBNameSetFZ.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(conno.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + begin + Parameters.ParamByName('WSql').Value:=' and conno like '''+'%'+Trim(conno.Text)+'%'+''''; + end; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderLBNameSetFZ.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmProductOrderLBNameSetFZ.Button1Click(Sender: TObject); +var + fPrintFile:string; + Porderno,LBName:string; + i,j:Integer; + OrderKg:Double; +begin + if Order_Main.IsEmpty then Exit; + LBName:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ; + if RadioGroup1.ItemIndex=0 then + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,ColorCount=(select isnull(Count(*),0) from JYOrder_Sub where MainId=A.MainId), '); + sql.add('ZQty=(select sum(PRTOrderQty) from JYOrder_Sub where MainId=A.MainId)'); + SQL.Add(', Case when B.OrderUnit=''M'' then Cast (dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as varchar(20))+''Kg'' '); + SQL.Add(' when B.OrderUnit=''Y'' then Cast (dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as varchar(20))+''Kg'' '); + sql.Add(' else '''' end as PRTOrderKgQtyStr '); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + + end else + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('exec P_View_OrderSub :begdate,:enddate,:wsql '); + Parameters.ParamByName('WSql').Value:=' and A.MainId='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Open; + end; + if Trim(ADOQueryPrint.FieldByName('PRTHX').AsString)<>'' then + begin + if Trim(LBName)='ɫ' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɫ.rmf' ; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(sum(PRTOrderKgQty),0) PRTOrderKgHZQty from('); + sql.Add('select '); + SQL.Add(' Case when B.OrderUnit=''M'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as decimal(18,2))'); + SQL.Add(' when B.OrderUnit=''Y'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 As decimal(18,2)) '); + sql.Add(' else 0 end as PRTOrderKgQty'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''')AA'); + Open; + end; + OrderKg:=ADOQueryTemp.fieldbyname('PRTOrderKgHZQty').Value; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + if OrderKg>0 then + RMVariables['OrderKg']:='/'+Trim(FloatToStr(OrderKg))+'Kg' + else + RMVariables['OrderKg']:=''; + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderLBNameSetFZ.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmProductOrderLBNameSetFZ.ToolButton2Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set LBName='''+Trim(labname)+''''); + sql.Add(' where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('LbName').Value:=labname; + Post; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSetFZ.ToolButton3Click(Sender: TObject); +var + FPiZhong:string; + FReal:Double; +begin + if Trim(PiZhong.Text)='' then + begin + Application.MessageBox('۷ֲΪ!','ʾ',0); + Exit; + end; + if TryStrToFloat(PiZhong.Text,FReal)=False then + begin + Application.MessageBox('۷ַǷ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set KouFenQty='+Trim(PiZhong.Text)); + sql.Add(' where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('KouFenQty').Value:=PiZhong.Text; + Post; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmProductOrderLBNameSetFZ.ToolButton4Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; + LabInt,labname:String; +begin + //if PPInt=2 then Exit; + Ddatabase:=StringOfChar(' ', 32); + Th := LoadLibrary('LabelSet.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,2,0,0, + PChar(DCode), + PChar(DName), + PChar(Ddatabase), + PChar('ǩģ'), + PChar(''), + PChar(''), + '','','','','','','','',PChar(DConString) + ); + if Trim(PChar(Ddatabase))<>'' then + begin + Ddatabase:=Trim(PChar(Ddatabase)); + LabInt:=Trim( LeftBStr(Ddatabase,Pos('|',Ddatabase)-1) ) ; + labname:=Trim(RightBStr(Ddatabase,Length(Ddatabase)-Pos('|',Ddatabase) ) ); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set NLBName='''+Trim(labname)+''''); + sql.Add(' where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('NLbName').Value:=labname; + Post; + end; + end; + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim('LabelSet.dll')); + end; + tv1.Controller.EditingController.ShowEdit(); +end; + + +procedure TfrmProductOrderLBNameSetFZ.v1Column3PropertiesEditValueChanged( + Sender: TObject); +var + mvalues:string; +begin + mvalues:=TCXTextEdit(Sender).Text; + + with Order_Main do + begin + edit; + fieldbyname('NLBName').Value:=mvalues; + post; + end; + tv1.Controller.EditingController.ShowEdit(); + IF trim(mvalues)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update JYOrder_Main Set NLBName='''' '); + sql.Add('where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderList.dfm b/盛纺贸易管理/U_ProductOrderList.dfm new file mode 100644 index 0000000..86b5f3f --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderList.dfm @@ -0,0 +1,745 @@ +object frmProductOrderList: TfrmProductOrderList + Left = 134 + Top = 115 + Width = 1094 + Height = 600 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1249 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object TBAdd: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton2: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 374 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 437 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 500 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 563 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 626 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1249 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 318 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 318 + Top = 39 + Width = 26 + Height = 12 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 441 + Top = 15 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 588 + Top = 39 + Width = 54 + Height = 12 + Caption = #25104' '#20998 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 741 + Top = 39 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 588 + Top = 15 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 741 + Top = 15 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 441 + Top = 39 + Width = 52 + Height = 12 + Caption = #20844#21496#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 861 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 861 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 220 + Top = 11 + Width = 77 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 2 + OnChange = OrderNoMChange + end + object CustomerNoName: TEdit + Tag = 2 + Left = 347 + Top = 11 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 3 + OnChange = OrderNoMChange + end + object JGFactoryName: TEdit + Tag = 2 + Left = 347 + Top = 35 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = OrderNoMChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 495 + Top = 11 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 5 + OnChange = OrderNoMChange + end + object MPRTCF: TEdit + Tag = 2 + Left = 641 + Top = 35 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = OrderNoMChange + end + object PRTColor: TEdit + Tag = 2 + Left = 770 + Top = 35 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = OrderNoMChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 641 + Top = 11 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 8 + OnChange = OrderNoMChange + end + object ConNo: TEdit + Tag = 2 + Left = 220 + Top = 35 + Width = 77 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 9 + OnChange = OrderNoMChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 770 + Top = 11 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 10 + OnChange = OrderNoMChange + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 495 + Top = 35 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 11 + OnChange = OrderNoMChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 890 + Top = 35 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 12 + OnChange = OrderNoMChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 890 + Top = 11 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 13 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 112 + Width = 1249 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20844#21496#32534#21495 + DataBinding.FieldName = 'OrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1Column1: TcxGridDBColumn + Caption = #20844#21496#21488#22836 + DataBinding.FieldName = 'OrdDefStr2' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1JGFactoryName: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'JGFactoryName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTCF: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'MPRTCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + Options.Focusing = False + Width = 54 + end + object v1Column8: TcxGridDBColumn + Caption = #22791#27880#21450#35201#27714 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 92 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1Column2: TcxGridDBColumn + Caption = #30830#35748#33394#21345 + DataBinding.FieldName = 'SOrddefstr2' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 60 + end + object v1Column3: TcxGridDBColumn + Caption = #26631#31614 + DataBinding.FieldName = 'SLbName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 85 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 288 + Top = 184 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/盛纺贸易管理/U_ProductOrderList.pas b/盛纺贸易管理/U_ProductOrderList.pas new file mode 100644 index 0000000..872724e --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderList.pas @@ -0,0 +1,657 @@ +unit U_ProductOrderList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus; + +type + TfrmProductOrderList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1JGFactoryName: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1MPRTCF: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + v1PRTPrice: TcxGridDBColumn; + ToolButton1: TToolButton; + Label2: TLabel; + JGFactoryName: TEdit; + Label5: TLabel; + OrdPerson1: TEdit; + Label6: TLabel; + MPRTCF: TEdit; + Label7: TLabel; + PRTColor: TEdit; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + v1Column8: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + OrdDefStr1: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderList: TfrmProductOrderList; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmProductOrderList.FormDestroy(Sender: TObject); +begin + frmProductOrderList:=nil; +end; + +procedure TfrmProductOrderList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderList.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ָʾб',Tv1,'ָʾ') + else + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,A.OrderNo OrderNoM from JYOrder_Main A left join JYOrder_Sub B on A.MainId=B.MainId '); + SQL.Add('where OrdDate>=:begdate and OrdDate<:enddate'); + if Trim(DParameters1)<>'Ȩ' then + begin + sql.Add('and A.Filler='''+Trim(DName)+''''); + end; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderList.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderList.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2014-07-11') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + if FCloth<>1 then + ReadCxGrid('ָʾб',Tv1,'ָʾ') + else + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + + if FCloth=1 then + begin + v1Column4.Visible:=True; + v1PRTPrice.Visible:=False; + v1PRTPrice.Hidden:=True; + end else + begin + v1Column4.Visible:=False; + v1PRTPrice.Visible:=True; + v1PRTPrice.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmProductOrderList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select * from Contract_Cloth_LL where OrdSubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѳݲɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmProductOrderList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + if IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾб'); +end; + +procedure TfrmProductOrderList.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,PRTColorEng=(select Note from KH_Zdy CC where ZdyName=B.PRTColor and CC.Type=''OrdColor'' ) '); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + i:=ADOQueryPrint.RecordCount; + ADOQueryPrint.First; + if i<19 then + begin + for j:=1 to 19-i do + begin + with CDS_Print do + begin + Append; + Post; + end; + end; + end; + with CDS_Print do + begin + Append; + FieldByName('Note').Value:=Trim(Order_Main.fieldbyname('Note').AsString); + FieldByName('OrdDefStr3').Value:=Trim(Order_Main.fieldbyname('OrdDefStr3').AsString); + FieldByName('SOrddefstr10').Value:=Trim(Order_Main.fieldbyname('OrderUnit').AsString); + FieldByName('SLbName').Value:=Trim(Order_Main.fieldbyname('SLbName').AsString); + FieldByName('OrdPerson1').Value:=Trim(Order_Main.fieldbyname('OrdPerson1').AsString); + Post; + end; + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderList.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + InitGrid(); +end; + +procedure TfrmProductOrderList.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderList.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmProductOrderList.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderList.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderList.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderList.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderList.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderList.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderListNew.dfm b/盛纺贸易管理/U_ProductOrderListNew.dfm new file mode 100644 index 0000000..2e3a39d --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListNew.dfm @@ -0,0 +1,1344 @@ +object frmProductOrderListNew: TfrmProductOrderListNew + Left = -1 + Top = 50 + Width = 1277 + Height = 684 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1269 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBOrder.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton2: TToolButton + Left = 252 + Top = 0 + Caption = #29983#20135#35745#21010#21333 + ImageIndex = 58 + OnClick = ToolButton2Click + end + object TBChk: TToolButton + Left = 347 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 132 + OnClick = TBChkClick + end + object TBCChk: TToolButton + Left = 410 + Top = 0 + AutoSize = True + Caption = #23457#26680#25764#38144 + ImageIndex = 105 + Wrap = True + OnClick = TBCChkClick + end + object TBCopy: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 113 + OnClick = TBCopyClick + end + object TBCK: TToolButton + Left = 63 + Top = 30 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 57 + OnClick = TBCKClick + end + object TBDel: TToolButton + Left = 126 + Top = 30 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 189 + Top = 30 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBBQPrint: TToolButton + Left = 252 + Top = 30 + AutoSize = True + Caption = #25171#21360#26631#31614 + ImageIndex = 96 + OnClick = TBBQPrintClick + end + object TBPrint: TToolButton + Left = 339 + Top = 30 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 402 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1269 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #19979#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 161 + Top = 15 + Width = 18 + Height = 12 + Caption = '---' + end + object Label3: TLabel + Left = 283 + Top = 15 + Width = 52 + Height = 12 + Caption = #35746#21333#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 430 + Top = 15 + Width = 26 + Height = 12 + Caption = #20195#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 566 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 179 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 336 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + object WFBCodeName: TEdit + Tag = 2 + Left = 459 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object CustomNoName: TEdit + Tag = 2 + Left = 595 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 1024 + Top = 104 + Width = 169 + Height = 121 + TabOrder = 2 + Visible = False + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBOrder.SHuangSe + Styles.IncSearch = DataLink_WFBOrder.SHuangSe + Styles.Selection = DataLink_WFBOrder.SHuangSe + object v1Column3: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBOrder.Default + Width = 39 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 72 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 66 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'WFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'WFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 62 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'WFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 76 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 63 + end + object v1OrderDate: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 70 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 63 + end + object v1FactoryNo2Name: TcxGridDBColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 60 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 60 + end + object v1FactoryNo3Name: TcxGridDBColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 94 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 90 + end + object v1Note: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 67 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'OrdPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 57 + end + object v1PRTQty: TcxGridDBColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 62 + end + object v1Column5: TcxGridDBColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 62 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBOrder.Default + Width = 59 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 104 + Width = 1269 + Height = 263 + Align = alClient + TabOrder = 3 + object cxGrid2DBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + object TV2: TcxGridDBBandedTableView + OnMouseDown = TV2MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV2CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBOrder.SHuangSe + Styles.IncSearch = DataLink_WFBOrder.SHuangSe + Styles.Selection = DataLink_WFBOrder.SHuangSe + Styles.Header = DataLink_WFBOrder.Default + Bands = < + item + Caption = #21367#26448 + Styles.Header = cxStyle2 + Width = 1374 + end> + object V2Column1: TcxGridDBBandedColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V2Column2: TcxGridDBBandedColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V2Column3: TcxGridDBBandedColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object V2Column4: TcxGridDBBandedColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'SWFBFK' + HeaderAlignmentHorz = taCenter + Width = 46 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object V2Column5: TcxGridDBBandedColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object V2Column6: TcxGridDBBandedColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object V2Column7: TcxGridDBBandedColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object V2Column8: TcxGridDBBandedColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object V2Column9: TcxGridDBBandedColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object V2Column10: TcxGridDBBandedColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object V2Column11: TcxGridDBBandedColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object V2Column12: TcxGridDBBandedColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object V2Column13: TcxGridDBBandedColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object V2Column14: TcxGridDBBandedColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 16 + Position.RowIndex = 0 + end + object V2Column15: TcxGridDBBandedColumn + Caption = #21333#20215 + DataBinding.FieldName = 'SOrdPrice' + HeaderAlignmentHorz = taCenter + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 17 + Position.RowIndex = 0 + end + object V2Column16: TcxGridDBBandedColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 43 + Position.BandIndex = 0 + Position.ColIndex = 19 + Position.RowIndex = 0 + end + object V2Column17: TcxGridDBBandedColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Width = 38 + Position.BandIndex = 0 + Position.ColIndex = 20 + Position.RowIndex = 0 + end + object V2Column18: TcxGridDBBandedColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Width = 43 + Position.BandIndex = 0 + Position.ColIndex = 21 + Position.RowIndex = 0 + end + object V2Column19: TcxGridDBBandedColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 23 + Position.RowIndex = 0 + end + object V2Column20: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object V2Column21: TcxGridDBBandedColumn + Caption = #37329#39069 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 18 + Position.RowIndex = 0 + end + object V2Column22: TcxGridDBBandedColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object V2Column23: TcxGridDBBandedColumn + Caption = #32534#21495 + DataBinding.FieldName = 'OrderCode' + HeaderAlignmentHorz = taCenter + Width = 82 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V2Column24: TcxGridDBBandedColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 24 + Position.RowIndex = 0 + end + object V2Column25: TcxGridDBBandedColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 22 + Position.RowIndex = 0 + end + object V2Column26: TcxGridDBBandedColumn + Caption = #24050#29983#25104#35745#21010#21333 + DataBinding.FieldName = 'JHDFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Options.Focusing = False + Width = 85 + Position.BandIndex = 0 + Position.ColIndex = 25 + Position.RowIndex = 0 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = TV2 + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 375 + Width = 1269 + Height = 272 + Align = alBottom + TabOrder = 4 + object cxGridDBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + object Tv3: TcxGridDBBandedTableView + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV2CellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBOrder.SHuangSe + Styles.IncSearch = DataLink_WFBOrder.SHuangSe + Styles.Selection = DataLink_WFBOrder.SHuangSe + Styles.Header = DataLink_WFBOrder.Default + Bands = < + item + Caption = #21046#21697 + Styles.Header = cxStyle1 + Width = 1374 + end> + object cxGridDBBandedColumn1: TcxGridDBBandedColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 63 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn2: TcxGridDBBandedColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Width = 46 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn3: TcxGridDBBandedColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn5: TcxGridDBBandedColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn6: TcxGridDBBandedColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn7: TcxGridDBBandedColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn8: TcxGridDBBandedColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn9: TcxGridDBBandedColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn10: TcxGridDBBandedColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 52 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn11: TcxGridDBBandedColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn12: TcxGridDBBandedColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn13: TcxGridDBBandedColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn14: TcxGridDBBandedColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 67 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn15: TcxGridDBBandedColumn + Caption = #21333#20215 + DataBinding.FieldName = 'SOrdPrice' + HeaderAlignmentHorz = taCenter + Width = 46 + Position.BandIndex = 0 + Position.ColIndex = 16 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn16: TcxGridDBBandedColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 18 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn17: TcxGridDBBandedColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 19 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn18: TcxGridDBBandedColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 20 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn19: TcxGridDBBandedColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 22 + Position.RowIndex = 0 + end + object v3Column1: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v3Column2: TcxGridDBBandedColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v3Column3: TcxGridDBBandedColumn + Caption = #37329#39069 + DataBinding.FieldName = 'Money' + HeaderAlignmentHorz = taCenter + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 17 + Position.RowIndex = 0 + end + object v3Column4: TcxGridDBBandedColumn + Caption = #32534#21495 + DataBinding.FieldName = 'OrderCode' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v3Column5: TcxGridDBBandedColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 23 + Position.RowIndex = 0 + end + object v3Column6: TcxGridDBBandedColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 71 + Position.BandIndex = 0 + Position.ColIndex = 21 + Position.RowIndex = 0 + end + object v3Column7: TcxGridDBBandedColumn + Caption = #24050#29983#25104#35745#21010#21333 + DataBinding.FieldName = 'JHDFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 24 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object Panel3: TPanel + Left = 488 + Top = 153 + Width = 201 + Height = 195 + TabOrder = 5 + Visible = False + object Label8: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Button1: TButton + Left = 24 + Top = 159 + Width = 65 + Height = 25 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button1Click + end + object Button2: TButton + Left = 120 + Top = 159 + Width = 49 + Height = 25 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 199 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #35746#21333#31867#22411 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 173 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RadioGroup1: TRadioGroup + Left = 48 + Top = 24 + Width = 97 + Height = 127 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemIndex = 0 + Items.Strings = ( + #21367#26448 + #21046#21697) + ParentFont = False + TabOrder = 3 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 367 + Width = 1269 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid3 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 336 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + Parameters = <> + Left = 832 + Top = 144 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 808 + Top = 144 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBOrder.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 864 + Top = 144 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 392 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 424 + Top = 176 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 840 + Top = 256 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 848 + Top = 208 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 384 + Top = 240 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 792 + Top = 288 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 288 + Top = 208 + ReportData = {} + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 344 + Top = 408 + end + object DataSource2: TDataSource + DataSet = CDS_ZP + Left = 504 + Top = 440 + end + object CDS_ZP: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 448 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle2: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository3: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end +end diff --git a/盛纺贸易管理/U_ProductOrderListNew.pas b/盛纺贸易管理/U_ProductOrderListNew.pas new file mode 100644 index 0000000..bc89eee --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListNew.pas @@ -0,0 +1,1041 @@ +unit U_ProductOrderListNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + cxGridBandedTableView, cxGridDBBandedTableView; + +type + TfrmProductOrderListNew = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Label2: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Label5: TLabel; + WFBCodeName: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1OrderDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1FactoryNo2Name: TcxGridDBColumn; + v1FactoryNo3Name: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTQty: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomNoName: TEdit; + v1Column3: TcxGridDBColumn; + TBCK: TToolButton; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + TBChk: TToolButton; + TBCChk: TToolButton; + v1Column6: TcxGridDBColumn; + TBBQPrint: TToolButton; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + TBCopy: TToolButton; + cxGrid2DBTableView1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + TV2: TcxGridDBBandedTableView; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + V2Column1: TcxGridDBBandedColumn; + V2Column2: TcxGridDBBandedColumn; + V2Column3: TcxGridDBBandedColumn; + V2Column4: TcxGridDBBandedColumn; + V2Column5: TcxGridDBBandedColumn; + V2Column6: TcxGridDBBandedColumn; + V2Column7: TcxGridDBBandedColumn; + V2Column8: TcxGridDBBandedColumn; + V2Column9: TcxGridDBBandedColumn; + V2Column10: TcxGridDBBandedColumn; + V2Column11: TcxGridDBBandedColumn; + V2Column12: TcxGridDBBandedColumn; + V2Column13: TcxGridDBBandedColumn; + V2Column14: TcxGridDBBandedColumn; + V2Column15: TcxGridDBBandedColumn; + V2Column16: TcxGridDBBandedColumn; + V2Column17: TcxGridDBBandedColumn; + V2Column18: TcxGridDBBandedColumn; + V2Column19: TcxGridDBBandedColumn; + cxGrid3: TcxGrid; + cxGridDBTableView1: TcxGridDBTableView; + Tv3: TcxGridDBBandedTableView; + cxGridDBBandedColumn1: TcxGridDBBandedColumn; + cxGridDBBandedColumn2: TcxGridDBBandedColumn; + cxGridDBBandedColumn3: TcxGridDBBandedColumn; + cxGridDBBandedColumn5: TcxGridDBBandedColumn; + cxGridDBBandedColumn6: TcxGridDBBandedColumn; + cxGridDBBandedColumn7: TcxGridDBBandedColumn; + cxGridDBBandedColumn8: TcxGridDBBandedColumn; + cxGridDBBandedColumn9: TcxGridDBBandedColumn; + cxGridDBBandedColumn10: TcxGridDBBandedColumn; + cxGridDBBandedColumn11: TcxGridDBBandedColumn; + cxGridDBBandedColumn12: TcxGridDBBandedColumn; + cxGridDBBandedColumn13: TcxGridDBBandedColumn; + cxGridDBBandedColumn14: TcxGridDBBandedColumn; + cxGridDBBandedColumn15: TcxGridDBBandedColumn; + cxGridDBBandedColumn16: TcxGridDBBandedColumn; + cxGridDBBandedColumn17: TcxGridDBBandedColumn; + cxGridDBBandedColumn18: TcxGridDBBandedColumn; + cxGridDBBandedColumn19: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + Panel3: TPanel; + Label8: TLabel; + Button1: TButton; + Button2: TButton; + Panel10: TPanel; + Image2: TImage; + RadioGroup1: TRadioGroup; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + CDS_ZP: TClientDataSet; + cxStyleRepository2: TcxStyleRepository; + cxStyle2: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle3: TcxStyle; + V2Column20: TcxGridDBBandedColumn; + V2Column21: TcxGridDBBandedColumn; + V2Column22: TcxGridDBBandedColumn; + V2Column23: TcxGridDBBandedColumn; + cxSplitter1: TcxSplitter; + v3Column1: TcxGridDBBandedColumn; + v3Column2: TcxGridDBBandedColumn; + v3Column3: TcxGridDBBandedColumn; + v3Column4: TcxGridDBBandedColumn; + ToolButton2: TToolButton; + V2Column24: TcxGridDBBandedColumn; + V2Column25: TcxGridDBBandedColumn; + v3Column5: TcxGridDBBandedColumn; + v3Column6: TcxGridDBBandedColumn; + V2Column26: TcxGridDBBandedColumn; + v3Column7: TcxGridDBBandedColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBViewClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBBQPrintClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure TBCKClick(Sender: TObject); + procedure TBChkClick(Sender: TObject); + procedure TBCChkClick(Sender: TObject); + procedure TBCopyClick(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + private + PPInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData(Order_Main10:TClientDataSet):Boolean; + procedure InitGridFH(); + procedure CopyOrderData(Order_MainFF:TClientDataSet); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmProductOrderListNew: TfrmProductOrderListNew; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun,U_OrderInPutZP,U_OrderInPutNew,U_OrderInPutZPNew + ,U_OrderInPutZPLNew,U_OrderAttachment; + +{$R *.dfm} + +procedure TfrmProductOrderListNew.FormDestroy(Sender: TObject); +begin + frmProductOrderListNew:=nil; +end; + +procedure TfrmProductOrderListNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderListNew.FormCreate(Sender: TObject); +begin + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + if DParameters1='' then + begin + TBChk.Visible:=True; + TBCChk.Visible:=True; + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBCopy.Visible:=False; + end else + begin + TBChk.Visible:=False; + TBCChk.Visible:=False; + TBAdd.Visible:=True; + TBEdit.Visible:=True; + TBCopy.Visible:=True; + end; +end; + +procedure TfrmProductOrderListNew.TBCloseClick(Sender: TObject); +begin + Close; + //WriteCxGrid('޷IJָʾб',Tv1,'ָʾ'); + WriteCxBandedGrid('޷IJָʾб',Tv2,'ָʾ'); + WriteCxBandedGrid('޷IJָʾбDD',Tv3,'ָʾ'); +end; + +procedure TfrmProductOrderListNew.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); + Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('endate').Value:=Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)); + Parameters.ParamByName('MainId').Value:=''; + Open; + end; + SDofilter(ADOQueryMain,'OrderType='''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + SDofilter(ADOQueryMain,'OrderType=''Ʒ'''); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderListNew.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderListNew.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2013-06-19') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + ReadCxBandedGrid('޷IJָʾб',Tv2,'ָʾ'); + ReadCxBandedGrid('޷IJָʾбDD',Tv3,'ָʾ'); + if FFInt>0 then + begin + v1Column3.Hidden:=False; + v1Column3.Visible:=True; + end else + begin + v1Column3.Hidden:=True; + v1Column3.Visible:=False; + end; + if Trim(DParameters1)='1' then + begin + v1CustomerNoName.Visible:=False; + v1CustomerNoName.Hidden:=True; + end else + begin + v1CustomerNoName.Visible:=True; + v1CustomerNoName.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + {if Trim(DParameters1)='1' then + begin + TBChk.Visible:=False; + TBCChk.Visible:=False; + end;} +end; + +procedure TfrmProductOrderListNew.TBFindClick(Sender: TObject); +var + fsj:string; +begin + if ADOQueryMain.Active=False then Exit; + if Trim(SGetFilters(Panel1,1,2))<>'' then + begin + fsj:='OrderType='''' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end else + begin + fsj:='OrderType='''''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end; +end; + +procedure TfrmProductOrderListNew.TBEditClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + Application.MessageBox('˶ͨ޸ģ','ʾ',0); + Exit; + end; + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + //OrderType:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.Order_Main.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Trim(CDS_ZP.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + Application.MessageBox('˶ͨ޸ģ','ʾ',0); + Exit; + end; + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=1; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + OrderType:='Ʒ'; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.CDS_ZP.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; +end; + +procedure TfrmProductOrderListNew.TBDelClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Chker').AsString)<>'' then + begin + Application.MessageBox('Ѿ˲ɾ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData(Order_Main) then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Trim(CDS_ZP.fieldbyname('Chker').AsString)<>'' then + begin + Application.MessageBox('Ѿ˲ɾ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData(CDS_ZP) then + begin + //TBRafresh.Click; + //TBFind.Click; + CDS_ZP.Delete; + end; + end; + + +end; + +function TfrmProductOrderListNew.DelData(Order_Main10:TClientDataSet):Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBOrder_Main where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFBOrder_Sub where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFB_DB where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFBYCL_PB where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFBYCL_PBSub where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderListNew.TBViewClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + ShowMessage(DCode); + +end; + +procedure TfrmProductOrderListNew.TBExportClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + TcxGridToExcel('ָʾб()',cxGrid2); + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + TcxGridToExcel('ָʾб(Ʒ)',cxGrid3); + end; + + +end; + +procedure TfrmProductOrderListNew.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); + //SelPrintData(TV4,ADOQueryMain,'ͬѯ'); +end; + +procedure TfrmProductOrderListNew.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + InitGrid(); +end; + +procedure TfrmProductOrderListNew.TBAddClick(Sender: TObject); +begin + Panel3.Visible:=True; +end; + +procedure TfrmProductOrderListNew.OrderNoChange(Sender: TObject); +var + fsj:string; +begin + if ADOQueryMain.Active=False then Exit; + if Trim(SGetFilters(Panel1,1,2))<>'' then + begin + fsj:='OrderType='''' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end else + begin + fsj:='OrderType='''''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end; +end; + +procedure TfrmProductOrderListNew.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderListNew.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + // if FFInt=1 then + //ModalResult:=1; + TBCK.Click; +end; + +procedure TfrmProductOrderListNew.TBBQPrintClick(Sender: TObject); +var + fPrintFile:String; +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + RMDB_Main.DataSet:=Order_Main; + end; + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + RMDB_Main.DataSet:=CDS_ZP; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderListNew.ToolButton2Click(Sender: TObject); + var + fsj:string; +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + fsj:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + fsj:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + end else + begin + Application.MessageBox('δѡж!','ʾ',0); + Exit; + end; + try + frmOrderAttachment:=TfrmOrderAttachment.Create(Application); + with frmOrderAttachment do + begin + FAMainId:=Trim(fsj); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderAttachment.Free; + end; +end; + +procedure TfrmProductOrderListNew.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderListNew.ToolButton4Click(Sender: TObject); +begin + if Application.MessageBox('ȷҪִɲ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Order_Main Set Status='''' '); + sql.Add('where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + //InitGrid(); +end; + +procedure TfrmProductOrderListNew.ToolButton5Click(Sender: TObject); +begin + if Application.MessageBox('ȷҪִɳ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Order_Main Set Status='''' '); + sql.Add('where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductOrderListNew.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderListNew.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderListNew.TBCKClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=3; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + cxGrid4.Enabled:=False; + //ScrollBox1.Enabled:=False; + //ScrollBox2.Enabled:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=3; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + cxGrid4.Enabled:=False; + //ScrollBox1.Enabled:=False; + //ScrollBox2.Enabled:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + +end; + +procedure TfrmProductOrderListNew.TBChkClick(Sender: TObject); +begin + + if PPInt=1 then + begin + if Trim(Order_Main.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + if Application.MessageBox('˶ͨǷٴˣ','ʾ',32+4)<>IDYES then Exit; + end; + if Order_Main.IsEmpty then Exit; + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=2; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + //OrderType:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.Order_Main.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Trim(CDS_ZP.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + if Application.MessageBox('˶ͨǷٴˣ','ʾ',32+4)<>IDYES then Exit; + end; + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=2; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + OrderType:='Ʒ'; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.CDS_ZP.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + +end; + +procedure TfrmProductOrderListNew.TBCChkClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Main Set ChkStatus='''' '); + sql.Add(' ,Chker='''' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('Chker').Value:=''; + FieldByName('ChkStatus').Value:=''; + Post; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Main Set ChkStatus='''' '); + sql.Add(', Chker='''' where MainId='''+Trim(CDS_ZP.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + with CDS_ZP do + begin + Edit; + FieldByName('Chker').Value:=''; + FieldByName('ChkStatus').Value:=''; + Post; + end; + end ; + +end; +procedure TfrmProductOrderListNew.CopyOrderData(Order_MainFF:TClientDataSet); +var + FFMainId:string; +begin + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + //sql.Add('exec P_Copy_WFBOrder :MainId,:Filler'); + sql.Add('exec P_Copy_WFBOrder_NoQty :MainId,:Filler'); + Parameters.ParamByName('MainId').Value:=Trim(Order_MainFF.fieldbyname('MainId').AsString); + Parameters.ParamByName('Filler').Value:=Trim(DName); + ExecSQL; + end; + FFMainId:=Trim(Order_MainFF.fieldbyname('MainId').AsString)+'FZ'; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update WFBYCL_PB Set CRID=(select isnull(Max(A.CRID),(select Max(AA.CRID) from CK_YCL_Sub AA '); + SQL.Add(' where AA.YCLCode=WFBYCL_PB.YCLCode) ) '); + sql.Add(' from CK_YCL_Sub A '); + sql.Add(' inner join CK_YCL_KC B on B.CRID=A.CRID '); + sql.Add(' where A.YCLCode=WFBYCL_PB.YCLCode and B.KCQty>0 )'); + sql.Add(' where MainId='''+Trim(FFMainId)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PB Set YLKC=(select KCQty from CK_YCL_KC A where A.CRID=WFBYCL_PB.CRID)'); + sql.Add(' where MainId='''+Trim(FFMainId)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PB Set YCLYJKC=(select YJKC=AA.KCQty-isnull((select sum(isnull(YLQty,0)) from WFBYCL_PB WP where WP.CRID=AA.CRID '); + sql.Add(' and not exists(select * from CK_YCL_Sub CS '); + sql.Add(' inner join WFBOrder_Main WM on CS.OrderNo=WM.OrderNO'); + sql.Add(' where WM.MainId=WP.MainId and CS.CRID=WP.CRID ) ),0)'); + sql.Add(' FROM CK_YCL_KC AA where AA.CRID=WFBYCL_PB.CRID)'); + sql.Add(' where MainId='''+Trim(FFMainId)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +procedure TfrmProductOrderListNew.TBCopyClick(Sender: TObject); +var + FFMainId:string; +begin + + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + CopyOrderData(Self.Order_Main); + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=1; + CopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString)+'FZ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + CopyOrderData(Self.CDS_ZP); + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=1; + CopyInt:=1; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString)+'FZ'; + OrderType:='Ʒ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + +end; + +procedure TfrmProductOrderListNew.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel3).perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmProductOrderListNew.Image2Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNew.Button1Click(Sender: TObject); +begin + if RadioGroup1.ItemIndex=0 then + begin + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.Order_Main.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + begin + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=0; + FMainId:=''; + OrderType:='Ʒ'; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.CDS_ZP.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNew.Button2Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNew.TV2CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Trim(DParameters1)='' then + begin + TBChk.Click; + end else + begin + TBEdit.Click; + end; +end; + +procedure TfrmProductOrderListNew.TV2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + PPInt:=1; + Tv2.Bands[0].Caption:='ġ'; + Tv3.Bands[0].Caption:='Ʒ'; + + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmProductOrderListNew.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + PPInt:=2; + Tv2.Bands[0].Caption:=''; + Tv3.Bands[0].Caption:='Ʒ'; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderListNewCK.dfm b/盛纺贸易管理/U_ProductOrderListNewCK.dfm new file mode 100644 index 0000000..0c73794 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListNewCK.dfm @@ -0,0 +1,1300 @@ +object frmProductOrderListNewCK: TfrmProductOrderListNewCK + Left = -60 + Top = 45 + Width = 1277 + Height = 684 + Caption = #29983#20135#25351#31034#21333#26597#30475 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1269 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBCK: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 57 + OnClick = TBCKClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1269 + Height = 81 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #19979#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 189 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 324 + Top = 15 + Width = 26 + Height = 12 + Caption = #20195#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 460 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 189 + Top = 39 + Width = 40 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 324 + Top = 39 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 460 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 596 + Top = 15 + Width = 26 + Height = 12 + Caption = #33457#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 230 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + object WFBCodeName: TEdit + Tag = 2 + Left = 353 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object CustomNoName: TEdit + Tag = 2 + Left = 489 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + object SWFBColor: TEdit + Tag = 2 + Left = 230 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object SWFBFK: TEdit + Tag = 2 + Left = 353 + Top = 35 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = OrderNoChange + end + object SWFBKZ: TEdit + Tag = 2 + Left = 489 + Top = 35 + Width = 83 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object SWFBHW: TEdit + Tag = 2 + Left = 625 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 1024 + Top = 104 + Width = 169 + Height = 121 + TabOrder = 2 + Visible = False + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + object v1Column3: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 39 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 72 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 66 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'WFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'WFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 62 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'WFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 76 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 63 + end + object v1OrderDate: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 70 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 63 + end + object v1FactoryNo2Name: TcxGridDBColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 60 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 60 + end + object v1FactoryNo3Name: TcxGridDBColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 94 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 90 + end + object v1Note: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 67 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'OrdPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 57 + end + object v1PRTQty: TcxGridDBColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 62 + end + object v1Column5: TcxGridDBColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 62 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 59 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 113 + Width = 1269 + Height = 254 + Align = alClient + TabOrder = 3 + object cxGrid2DBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + object TV2: TcxGridDBBandedTableView + OnMouseDown = TV2MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV2CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + Styles.Header = DataLink_WFBProducttion.Default + Bands = < + item + Caption = #21367#26448 + Styles.Header = cxStyle2 + Width = 1374 + end> + object V2Column1: TcxGridDBBandedColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V2Column2: TcxGridDBBandedColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Width = 39 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V2Column3: TcxGridDBBandedColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object V2Column4: TcxGridDBBandedColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'SWFBFK' + HeaderAlignmentHorz = taCenter + Width = 46 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object V2Column5: TcxGridDBBandedColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object V2Column6: TcxGridDBBandedColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object V2Column7: TcxGridDBBandedColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object V2Column8: TcxGridDBBandedColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object V2Column9: TcxGridDBBandedColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 42 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object V2Column10: TcxGridDBBandedColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object V2Column11: TcxGridDBBandedColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object V2Column12: TcxGridDBBandedColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object V2Column13: TcxGridDBBandedColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object V2Column14: TcxGridDBBandedColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 16 + Position.RowIndex = 0 + end + object V2Column16: TcxGridDBBandedColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Width = 43 + Position.BandIndex = 0 + Position.ColIndex = 17 + Position.RowIndex = 0 + end + object V2Column17: TcxGridDBBandedColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Width = 38 + Position.BandIndex = 0 + Position.ColIndex = 18 + Position.RowIndex = 0 + end + object V2Column18: TcxGridDBBandedColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Width = 43 + Position.BandIndex = 0 + Position.ColIndex = 19 + Position.RowIndex = 0 + end + object V2Column19: TcxGridDBBandedColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 21 + Position.RowIndex = 0 + end + object V2Column20: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object V2Column22: TcxGridDBBandedColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object V2Column23: TcxGridDBBandedColumn + Caption = #32534#21495 + DataBinding.FieldName = 'OrderCode' + HeaderAlignmentHorz = taCenter + Width = 82 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V2Column24: TcxGridDBBandedColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 22 + Position.RowIndex = 0 + end + object V2Column25: TcxGridDBBandedColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 20 + Position.RowIndex = 0 + end + object V2Column26: TcxGridDBBandedColumn + Caption = #24050#29983#25104#35745#21010#21333 + DataBinding.FieldName = 'JHDFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Options.Focusing = False + Width = 85 + Position.BandIndex = 0 + Position.ColIndex = 23 + Position.RowIndex = 0 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = TV2 + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 375 + Width = 1269 + Height = 272 + Align = alBottom + TabOrder = 4 + object cxGridDBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + object Tv3: TcxGridDBBandedTableView + OnMouseDown = Tv3MouseDown + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TV2CellDblClick + DataController.DataSource = DataSource2 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + Styles.Header = DataLink_WFBProducttion.Default + Bands = < + item + Caption = #21046#21697 + Styles.Header = cxStyle1 + Width = 1374 + end> + object cxGridDBBandedColumn1: TcxGridDBBandedColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 63 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn2: TcxGridDBBandedColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Width = 46 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn3: TcxGridDBBandedColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn5: TcxGridDBBandedColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn6: TcxGridDBBandedColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn7: TcxGridDBBandedColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Width = 57 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn8: TcxGridDBBandedColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn9: TcxGridDBBandedColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn10: TcxGridDBBandedColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 52 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn11: TcxGridDBBandedColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn12: TcxGridDBBandedColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn13: TcxGridDBBandedColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn14: TcxGridDBBandedColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 67 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn17: TcxGridDBBandedColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 16 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn18: TcxGridDBBandedColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 17 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn19: TcxGridDBBandedColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 45 + Position.BandIndex = 0 + Position.ColIndex = 19 + Position.RowIndex = 0 + end + object v3Column1: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 51 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object v3Column2: TcxGridDBBandedColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object v3Column4: TcxGridDBBandedColumn + Caption = #32534#21495 + DataBinding.FieldName = 'OrderCode' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v3Column5: TcxGridDBBandedColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 62 + Position.BandIndex = 0 + Position.ColIndex = 20 + Position.RowIndex = 0 + end + object v3Column6: TcxGridDBBandedColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 71 + Position.BandIndex = 0 + Position.ColIndex = 18 + Position.RowIndex = 0 + end + object v3Column7: TcxGridDBBandedColumn + Caption = #24050#29983#25104#35745#21010#21333 + DataBinding.FieldName = 'JHDFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 21 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv3 + end + end + object Panel3: TPanel + Left = 544 + Top = 153 + Width = 201 + Height = 195 + TabOrder = 5 + Visible = False + object Label8: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Button1: TButton + Left = 24 + Top = 159 + Width = 65 + Height = 25 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button1Click + end + object Button2: TButton + Left = 120 + Top = 159 + Width = 49 + Height = 25 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 199 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #35746#21333#31867#22411 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 173 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RadioGroup1: TRadioGroup + Left = 48 + Top = 24 + Width = 97 + Height = 127 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemIndex = 0 + Items.Strings = ( + #21367#26448 + #21046#21697) + ParentFont = False + TabOrder = 3 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 367 + Width = 1269 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid3 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 336 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 832 + Top = 144 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 808 + Top = 144 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 864 + Top = 144 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 392 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 424 + Top = 176 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 840 + Top = 256 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 848 + Top = 208 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 384 + Top = 240 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 792 + Top = 288 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 288 + Top = 208 + ReportData = {} + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 344 + Top = 408 + end + object DataSource2: TDataSource + DataSet = CDS_ZP + Left = 504 + Top = 440 + end + object CDS_ZP: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 448 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle2: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository3: TcxStyleRepository + Left = 792 + Top = 104 + object cxStyle3: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end +end diff --git a/盛纺贸易管理/U_ProductOrderListNewCK.pas b/盛纺贸易管理/U_ProductOrderListNewCK.pas new file mode 100644 index 0000000..a814bdf --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListNewCK.pas @@ -0,0 +1,1012 @@ +unit U_ProductOrderListNewCK; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + cxGridBandedTableView, cxGridDBBandedTableView; + +type + TfrmProductOrderListNewCK = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Label5: TLabel; + WFBCodeName: TEdit; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1OrderDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1FactoryNo2Name: TcxGridDBColumn; + v1FactoryNo3Name: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTQty: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomNoName: TEdit; + v1Column3: TcxGridDBColumn; + TBCK: TToolButton; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + cxGrid2DBTableView1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + TV2: TcxGridDBBandedTableView; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + V2Column1: TcxGridDBBandedColumn; + V2Column2: TcxGridDBBandedColumn; + V2Column3: TcxGridDBBandedColumn; + V2Column4: TcxGridDBBandedColumn; + V2Column5: TcxGridDBBandedColumn; + V2Column6: TcxGridDBBandedColumn; + V2Column7: TcxGridDBBandedColumn; + V2Column8: TcxGridDBBandedColumn; + V2Column9: TcxGridDBBandedColumn; + V2Column10: TcxGridDBBandedColumn; + V2Column11: TcxGridDBBandedColumn; + V2Column12: TcxGridDBBandedColumn; + V2Column13: TcxGridDBBandedColumn; + V2Column14: TcxGridDBBandedColumn; + V2Column16: TcxGridDBBandedColumn; + V2Column17: TcxGridDBBandedColumn; + V2Column18: TcxGridDBBandedColumn; + V2Column19: TcxGridDBBandedColumn; + cxGrid3: TcxGrid; + cxGridDBTableView1: TcxGridDBTableView; + Tv3: TcxGridDBBandedTableView; + cxGridDBBandedColumn1: TcxGridDBBandedColumn; + cxGridDBBandedColumn2: TcxGridDBBandedColumn; + cxGridDBBandedColumn3: TcxGridDBBandedColumn; + cxGridDBBandedColumn5: TcxGridDBBandedColumn; + cxGridDBBandedColumn6: TcxGridDBBandedColumn; + cxGridDBBandedColumn7: TcxGridDBBandedColumn; + cxGridDBBandedColumn8: TcxGridDBBandedColumn; + cxGridDBBandedColumn9: TcxGridDBBandedColumn; + cxGridDBBandedColumn10: TcxGridDBBandedColumn; + cxGridDBBandedColumn11: TcxGridDBBandedColumn; + cxGridDBBandedColumn12: TcxGridDBBandedColumn; + cxGridDBBandedColumn13: TcxGridDBBandedColumn; + cxGridDBBandedColumn14: TcxGridDBBandedColumn; + cxGridDBBandedColumn17: TcxGridDBBandedColumn; + cxGridDBBandedColumn18: TcxGridDBBandedColumn; + cxGridDBBandedColumn19: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + Panel3: TPanel; + Label8: TLabel; + Button1: TButton; + Button2: TButton; + Panel10: TPanel; + Image2: TImage; + RadioGroup1: TRadioGroup; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + CDS_ZP: TClientDataSet; + cxStyleRepository2: TcxStyleRepository; + cxStyle2: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle3: TcxStyle; + V2Column20: TcxGridDBBandedColumn; + V2Column22: TcxGridDBBandedColumn; + V2Column23: TcxGridDBBandedColumn; + cxSplitter1: TcxSplitter; + v3Column1: TcxGridDBBandedColumn; + v3Column2: TcxGridDBBandedColumn; + v3Column4: TcxGridDBBandedColumn; + V2Column24: TcxGridDBBandedColumn; + V2Column25: TcxGridDBBandedColumn; + v3Column5: TcxGridDBBandedColumn; + v3Column6: TcxGridDBBandedColumn; + V2Column26: TcxGridDBBandedColumn; + v3Column7: TcxGridDBBandedColumn; + Label2: TLabel; + Label6: TLabel; + Label7: TLabel; + SWFBColor: TEdit; + SWFBFK: TEdit; + SWFBKZ: TEdit; + Label9: TLabel; + SWFBHW: TEdit; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBViewClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBBQPrintClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure TBCKClick(Sender: TObject); + procedure TBChkClick(Sender: TObject); + procedure TBCChkClick(Sender: TObject); + procedure TBCopyClick(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure TV2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + private + PPInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData(Order_Main10:TClientDataSet):Boolean; + procedure InitGridFH(); + procedure CopyOrderData(Order_MainFF:TClientDataSet); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmProductOrderListNewCK: TfrmProductOrderListNewCK; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun,U_OrderInPutZP,U_OrderInPutNew,U_OrderInPutZPNew + ,U_OrderInPutZPLNew,U_OrderAttachment; + +{$R *.dfm} + +procedure TfrmProductOrderListNewCK.FormDestroy(Sender: TObject); +begin + frmProductOrderListNewCK:=nil; +end; + +procedure TfrmProductOrderListNewCK.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderListNewCK.FormCreate(Sender: TObject); +begin + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); +end; + +procedure TfrmProductOrderListNewCK.TBCloseClick(Sender: TObject); +begin + Close; + //WriteCxGrid('޷IJָʾб',Tv1,'ָʾ'); + WriteCxBandedGrid('޷IJָʾбck',Tv2,'ָʾ'); + WriteCxBandedGrid('޷IJָʾбDDck',Tv3,'ָʾ'); +end; + +procedure TfrmProductOrderListNewCK.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); + Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); + Parameters.ParamByName('endate').Value:=Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)); + Parameters.ParamByName('MainId').Value:=''; + Open; + end; + SDofilter(ADOQueryMain,'OrderType='''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + SDofilter(ADOQueryMain,'OrderType=''Ʒ'''); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderListNewCK.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderListNewCK.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2013-06-19') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + ReadCxBandedGrid('޷IJָʾбck',Tv2,'ָʾ'); + ReadCxBandedGrid('޷IJָʾбDDck',Tv3,'ָʾ'); + if FFInt>0 then + begin + v1Column3.Hidden:=False; + v1Column3.Visible:=True; + end else + begin + v1Column3.Hidden:=True; + v1Column3.Visible:=False; + end; + if Trim(DParameters1)='1' then + begin + v1CustomerNoName.Visible:=False; + v1CustomerNoName.Hidden:=True; + end else + begin + v1CustomerNoName.Visible:=True; + v1CustomerNoName.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + {if Trim(DParameters1)='1' then + begin + TBChk.Visible:=False; + TBCChk.Visible:=False; + end;} +end; + +procedure TfrmProductOrderListNewCK.TBFindClick(Sender: TObject); +var + fsj:string; +begin + if ADOQueryMain.Active=False then Exit; + if Trim(SGetFilters(Panel1,1,2))<>'' then + begin + fsj:='OrderType='''' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end else + begin + fsj:='OrderType='''''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end; +end; + +procedure TfrmProductOrderListNewCK.TBEditClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + Application.MessageBox('˶ͨ޸ģ','ʾ',0); + Exit; + end; + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + //OrderType:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.Order_Main.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Trim(CDS_ZP.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + Application.MessageBox('˶ͨ޸ģ','ʾ',0); + Exit; + end; + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=1; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + OrderType:='Ʒ'; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.CDS_ZP.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; +end; + +procedure TfrmProductOrderListNewCK.TBDelClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Chker').AsString)<>'' then + begin + Application.MessageBox('Ѿ˲ɾ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData(Order_Main) then + begin + //TBRafresh.Click; + //TBFind.Click; + Order_Main.Delete; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Trim(CDS_ZP.fieldbyname('Chker').AsString)<>'' then + begin + Application.MessageBox('Ѿ˲ɾ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData(CDS_ZP) then + begin + //TBRafresh.Click; + //TBFind.Click; + CDS_ZP.Delete; + end; + end; + + +end; + +function TfrmProductOrderListNewCK.DelData(Order_Main10:TClientDataSet):Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBOrder_Main where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFBOrder_Sub where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFB_DB where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFBYCL_PB where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('delete WFBYCL_PBSub where MainId='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderListNewCK.TBViewClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + ShowMessage(DCode); + +end; + +procedure TfrmProductOrderListNewCK.TBExportClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + TcxGridToExcel('ָʾб()',cxGrid2); + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + TcxGridToExcel('ָʾб(Ʒ)',cxGrid3); + end; + + +end; + +procedure TfrmProductOrderListNewCK.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); + //SelPrintData(TV4,ADOQueryMain,'ͬѯ'); +end; + +procedure TfrmProductOrderListNewCK.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + InitGrid(); +end; + +procedure TfrmProductOrderListNewCK.TBAddClick(Sender: TObject); +begin + Panel3.Visible:=True; +end; + +procedure TfrmProductOrderListNewCK.OrderNoChange(Sender: TObject); +var + fsj:string; +begin + if ADOQueryMain.Active=False then Exit; + if Trim(SGetFilters(Panel1,1,2))<>'' then + begin + fsj:='OrderType='''' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'' and '+Trim(SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end else + begin + fsj:='OrderType='''''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + fsj:='OrderType=''Ʒ'''; + SDofilter(ADOQueryMain,fsj); + SCreateCDS20(ADOQueryMain,CDS_ZP); + SInitCDSData20(ADOQueryMain,CDS_ZP); + end; +end; + +procedure TfrmProductOrderListNewCK.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderListNewCK.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + // if FFInt=1 then + //ModalResult:=1; + TBCK.Click; +end; + +procedure TfrmProductOrderListNewCK.TBBQPrintClick(Sender: TObject); +var + fPrintFile:String; +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + RMDB_Main.DataSet:=Order_Main; + end; + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + RMDB_Main.DataSet:=CDS_ZP; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + RM2.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderListNewCK.ToolButton2Click(Sender: TObject); + var + fsj:string; +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + fsj:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + fsj:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + end else + begin + Application.MessageBox('δѡж!','ʾ',0); + Exit; + end; + try + frmOrderAttachment:=TfrmOrderAttachment.Create(Application); + with frmOrderAttachment do + begin + FAMainId:=Trim(fsj); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderAttachment.Free; + end; +end; + +procedure TfrmProductOrderListNewCK.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderListNewCK.ToolButton4Click(Sender: TObject); +begin + if Application.MessageBox('ȷҪִɲ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Order_Main Set Status='''' '); + sql.Add('where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + //InitGrid(); +end; + +procedure TfrmProductOrderListNewCK.ToolButton5Click(Sender: TObject); +begin + if Application.MessageBox('ȷҪִɳ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate Order_Main Set Status='''' '); + sql.Add('where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductOrderListNewCK.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderListNewCK.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderListNewCK.TBCKClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=3; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + cxGrid4.Enabled:=False; + //ScrollBox1.Enabled:=False; + //ScrollBox2.Enabled:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=3; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + TBSave.Visible:=False; + ToolBar2.Visible:=False; + cxGrid4.Enabled:=False; + //ScrollBox1.Enabled:=False; + //ScrollBox2.Enabled:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + +end; + +procedure TfrmProductOrderListNewCK.TBChkClick(Sender: TObject); +begin + + if PPInt=1 then + begin + if Trim(Order_Main.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + if Application.MessageBox('˶ͨǷٴˣ','ʾ',32+4)<>IDYES then Exit; + end; + if Order_Main.IsEmpty then Exit; + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=2; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + //OrderType:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.Order_Main.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Trim(CDS_ZP.fieldbyname('ChkStatus').AsString)='ͨ' then + begin + if Application.MessageBox('˶ͨǷٴˣ','ʾ',32+4)<>IDYES then Exit; + end; + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=2; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString); + OrderType:='Ʒ'; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.CDS_ZP.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + +end; + +procedure TfrmProductOrderListNewCK.TBCChkClick(Sender: TObject); +begin + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Main Set ChkStatus='''' '); + sql.Add(' ,Chker='''' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + with Order_Main do + begin + Edit; + FieldByName('Chker').Value:=''; + FieldByName('ChkStatus').Value:=''; + Post; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Main Set ChkStatus='''' '); + sql.Add(', Chker='''' where MainId='''+Trim(CDS_ZP.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + with CDS_ZP do + begin + Edit; + FieldByName('Chker').Value:=''; + FieldByName('ChkStatus').Value:=''; + Post; + end; + end ; + +end; +procedure TfrmProductOrderListNewCK.CopyOrderData(Order_MainFF:TClientDataSet); +var + FFMainId:string; +begin + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + //sql.Add('exec P_Copy_WFBOrder :MainId,:Filler'); + sql.Add('exec P_Copy_WFBOrder_NoQty :MainId,:Filler'); + Parameters.ParamByName('MainId').Value:=Trim(Order_MainFF.fieldbyname('MainId').AsString); + Parameters.ParamByName('Filler').Value:=Trim(DName); + ExecSQL; + end; + FFMainId:=Trim(Order_MainFF.fieldbyname('MainId').AsString)+'FZ'; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update WFBYCL_PB Set CRID=(select isnull(Max(A.CRID),(select Max(AA.CRID) from CK_YCL_Sub AA '); + SQL.Add(' where AA.YCLCode=WFBYCL_PB.YCLCode) ) '); + sql.Add(' from CK_YCL_Sub A '); + sql.Add(' inner join CK_YCL_KC B on B.CRID=A.CRID '); + sql.Add(' where A.YCLCode=WFBYCL_PB.YCLCode and B.KCQty>0 )'); + sql.Add(' where MainId='''+Trim(FFMainId)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PB Set YLKC=(select KCQty from CK_YCL_KC A where A.CRID=WFBYCL_PB.CRID)'); + sql.Add(' where MainId='''+Trim(FFMainId)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBYCL_PB Set YCLYJKC=(select YJKC=AA.KCQty-isnull((select sum(isnull(YLQty,0)) from WFBYCL_PB WP where WP.CRID=AA.CRID '); + sql.Add(' and not exists(select * from CK_YCL_Sub CS '); + sql.Add(' inner join WFBOrder_Main WM on CS.OrderNo=WM.OrderNO'); + sql.Add(' where WM.MainId=WP.MainId and CS.CRID=WP.CRID ) ),0)'); + sql.Add(' FROM CK_YCL_KC AA where AA.CRID=WFBYCL_PB.CRID)'); + sql.Add(' where MainId='''+Trim(FFMainId)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; +procedure TfrmProductOrderListNewCK.TBCopyClick(Sender: TObject); +var + FFMainId:string; +begin + + if PPInt=1 then + begin + if Order_Main.IsEmpty then Exit; + CopyOrderData(Self.Order_Main); + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=1; + CopyInt:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString)+'FZ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + if PPInt=2 then + begin + if CDS_ZP.IsEmpty then Exit; + CopyOrderData(Self.CDS_ZP); + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=1; + CopyInt:=1; + FMainId:=Trim(Self.CDS_ZP.fieldbyname('MainId').AsString)+'FZ'; + OrderType:='Ʒ'; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + +end; + +procedure TfrmProductOrderListNewCK.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel3).perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmProductOrderListNewCK.Image2Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNewCK.Button1Click(Sender: TObject); +begin + if RadioGroup1.ItemIndex=0 then + begin + try + frmOrderInPutNew:=TfrmOrderInPutNew.Create(Application); + with frmOrderInPutNew do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.Order_Main.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutNew.Free; + end; + end else + begin + try + frmOrderInPutZPLNew:=TfrmOrderInPutZPLNew.Create(Application); + with frmOrderInPutZPLNew do + begin + PState:=0; + FMainId:=''; + OrderType:='Ʒ'; + if ShowModal=1 then + begin + Self.InitGrid(); + Self.CDS_ZP.Locate('MainId',Trim(FMainId),[]); + end; + end; + finally + frmOrderInPutZPLNew.Free; + end; + end; + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNewCK.Button2Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNewCK.TV2CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + TBCK.Click; +end; + +procedure TfrmProductOrderListNewCK.TV2MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + PPInt:=1; + Tv2.Bands[0].Caption:='ġ'; + Tv3.Bands[0].Caption:='Ʒ'; + + Tv3.Bands[0].Styles.Header.TextColor:=clBlack; + Tv2.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmProductOrderListNewCK.Tv3MouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Integer); +begin + PPInt:=2; + Tv2.Bands[0].Caption:=''; + Tv3.Bands[0].Caption:='Ʒ'; + Tv2.Bands[0].Styles.Header.TextColor:=clBlack; + Tv3.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderListNewCKMX.dfm b/盛纺贸易管理/U_ProductOrderListNewCKMX.dfm new file mode 100644 index 0000000..3666195 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListNewCKMX.dfm @@ -0,0 +1,938 @@ +object frmProductOrderListNewCKMX: TfrmProductOrderListNewCKMX + Left = 25 + Top = 49 + Width = 1277 + Height = 684 + Caption = #29983#20135#25351#31034#21333#26126#32454 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1269 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + Caption = #23548#20986 + ImageIndex = 102 + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1269 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #19979#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 189 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 324 + Top = 15 + Width = 26 + Height = 12 + Caption = #20195#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 460 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 189 + Top = 39 + Width = 40 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 324 + Top = 39 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 460 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 596 + Top = 15 + Width = 26 + Height = 12 + Caption = #33457#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 230 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + object WFBCodeName: TEdit + Tag = 2 + Left = 353 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object CustomNoName: TEdit + Tag = 2 + Left = 489 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + object SWFBColor: TEdit + Tag = 2 + Left = 230 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object SWFBFK10: TEdit + Tag = 2 + Left = 353 + Top = 35 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = OrderNoChange + end + object SWFBKZ10: TEdit + Tag = 2 + Left = 489 + Top = 35 + Width = 83 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object SWFBHW: TEdit + Tag = 2 + Left = 625 + Top = 11 + Width = 83 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 1024 + Top = 104 + Width = 169 + Height = 121 + TabOrder = 2 + Visible = False + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + object v1Column3: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_WFBProducttion.Default + Width = 39 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 72 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 66 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'WFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'WFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 62 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'WFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 76 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'OrdQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 58 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 63 + end + object v1OrderDate: TcxGridDBColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 70 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = 'ETA' + DataBinding.FieldName = 'ETADate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 63 + end + object v1FactoryNo2Name: TcxGridDBColumn + Caption = #35013#26588#26085#26399 + DataBinding.FieldName = 'ZGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 60 + end + object v1FactoryNo1Name: TcxGridDBColumn + Caption = 'ETD' + DataBinding.FieldName = 'ETDDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 60 + end + object v1FactoryNo3Name: TcxGridDBColumn + Caption = #24320#22987#20837#24211#26085#26399 + DataBinding.FieldName = 'BegRKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 94 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #24320#22987#29983#20135#26085#26399 + DataBinding.FieldName = 'BegSCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 90 + end + object v1Note: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 67 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'OrdPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 57 + end + object v1PRTQty: TcxGridDBColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #29983#20135#32447 + DataBinding.FieldName = 'SCXName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 62 + end + object v1Column5: TcxGridDBColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 62 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_WFBProducttion.Default + Width = 59 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 97 + Width = 1269 + Height = 550 + Align = alClient + TabOrder = 3 + object cxGrid2DBTableView1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + end + object TV2: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + Styles.Header = DataLink_WFBProducttion.Default + Bands = < + item + Caption = #35746#21333#26126#32454 + Styles.Header = cxStyle2 + Width = 1374 + end> + object V2Column1: TcxGridDBBandedColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 78 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object V2Column2: TcxGridDBBandedColumn + Caption = #23458#25143 + DataBinding.FieldName = 'Customnoname' + HeaderAlignmentHorz = taCenter + Width = 53 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object V2Column3: TcxGridDBBandedColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 73 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object V2Column4: TcxGridDBBandedColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'SWFBFK10' + HeaderAlignmentHorz = taCenter + Width = 61 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object V2Column5: TcxGridDBBandedColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ10' + HeaderAlignmentHorz = taCenter + Width = 75 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object V2Column6: TcxGridDBBandedColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'SOrdQty' + HeaderAlignmentHorz = taCenter + Width = 80 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object V2Column7: TcxGridDBBandedColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'OrdUnit' + HeaderAlignmentHorz = taCenter + Width = 80 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object V2Column8: TcxGridDBBandedColumn + Caption = #19979#21333#26085#26399 + DataBinding.FieldName = 'OrderDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 78 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object V2Column14: TcxGridDBBandedColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 71 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object V2Column18: TcxGridDBBandedColumn + Caption = #32593#32467#26500 + DataBinding.FieldName = 'WJGName' + HeaderAlignmentHorz = taCenter + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object V2Column19: TcxGridDBBandedColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Width = 58 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object V2Column20: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 64 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object V2Column22: TcxGridDBBandedColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object V2Column24: TcxGridDBBandedColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object V2Column25: TcxGridDBBandedColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 81 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object V2Column9: TcxGridDBBandedColumn + Caption = #35268#26684 + DataBinding.FieldName = 'ProductSpec' + HeaderAlignmentHorz = taCenter + Width = 105 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = TV2 + end + end + object Panel3: TPanel + Left = 544 + Top = 185 + Width = 201 + Height = 195 + TabOrder = 4 + Visible = False + object Label8: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Button1: TButton + Left = 24 + Top = 159 + Width = 65 + Height = 25 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + end + object Button2: TButton + Left = 120 + Top = 159 + Width = 49 + Height = 25 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button2Click + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 199 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #35746#21333#31867#22411 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 173 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object RadioGroup1: TRadioGroup + Left = 48 + Top = 24 + Width = 97 + Height = 127 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemIndex = 0 + Items.Strings = ( + #21367#26448 + #21046#21697) + ParentFont = False + TabOrder = 3 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 336 + Top = 160 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 864 + Top = 152 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 920 + Top = 160 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 920 + Top = 200 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 392 + Top = 160 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 424 + Top = 176 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 840 + Top = 256 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 848 + Top = 208 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 384 + Top = 240 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = Order_Main + Left = 792 + Top = 288 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 288 + Top = 208 + ReportData = {} + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 344 + Top = 408 + end + object DataSource2: TDataSource + DataSet = CDS_ZP + Left = 504 + Top = 440 + end + object CDS_ZP: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 448 + end + object cxStyleRepository2: TcxStyleRepository + Left = 288 + object cxStyle2: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository3: TcxStyleRepository + Left = 888 + Top = 232 + object cxStyle3: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #40657#20307 + Font.Style = [fsBold] + end + end +end diff --git a/盛纺贸易管理/U_ProductOrderListNewCKMX.pas b/盛纺贸易管理/U_ProductOrderListNewCKMX.pas new file mode 100644 index 0000000..56e1a0c --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListNewCKMX.pas @@ -0,0 +1,314 @@ +unit U_ProductOrderListNewCKMX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + cxGridBandedTableView, cxGridDBBandedTableView; + +type + TfrmProductOrderListNewCKMX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Label5: TLabel; + WFBCodeName: TEdit; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1OrderDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1FactoryNo1Name: TcxGridDBColumn; + v1FactoryNo2Name: TcxGridDBColumn; + v1FactoryNo3Name: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1PRTQty: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomNoName: TEdit; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + cxGrid2DBTableView1: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + TV2: TcxGridDBBandedTableView; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + V2Column1: TcxGridDBBandedColumn; + V2Column2: TcxGridDBBandedColumn; + V2Column3: TcxGridDBBandedColumn; + V2Column4: TcxGridDBBandedColumn; + V2Column5: TcxGridDBBandedColumn; + V2Column6: TcxGridDBBandedColumn; + V2Column7: TcxGridDBBandedColumn; + V2Column8: TcxGridDBBandedColumn; + V2Column14: TcxGridDBBandedColumn; + V2Column18: TcxGridDBBandedColumn; + V2Column19: TcxGridDBBandedColumn; + Panel3: TPanel; + Label8: TLabel; + Button1: TButton; + Button2: TButton; + Panel10: TPanel; + Image2: TImage; + RadioGroup1: TRadioGroup; + cxGridPopupMenu2: TcxGridPopupMenu; + DataSource2: TDataSource; + CDS_ZP: TClientDataSet; + cxStyleRepository2: TcxStyleRepository; + cxStyle2: TcxStyle; + cxStyleRepository3: TcxStyleRepository; + cxStyle3: TcxStyle; + V2Column20: TcxGridDBBandedColumn; + V2Column22: TcxGridDBBandedColumn; + V2Column24: TcxGridDBBandedColumn; + V2Column25: TcxGridDBBandedColumn; + Label2: TLabel; + Label6: TLabel; + Label7: TLabel; + SWFBColor: TEdit; + SWFBFK10: TEdit; + SWFBKZ10: TEdit; + Label9: TLabel; + SWFBHW: TEdit; + ToolButton1: TToolButton; + V2Column9: TcxGridDBBandedColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBBQPrintClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Image2Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + private + PPInt:Integer; + procedure InitGrid(); + procedure InitForm(); + function DelData(Order_Main10:TClientDataSet):Boolean; + procedure InitGridFH(); + procedure CopyOrderData(Order_MainFF:TClientDataSet); + { Private declarations } + public + FFInt:Integer; + { Public declarations } + end; + +var + frmProductOrderListNewCKMX: TfrmProductOrderListNewCKMX; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun,U_OrderInPutZP,U_OrderInPutNew,U_OrderInPutZPNew + ,U_OrderInPutZPLNew,U_OrderAttachment; + +{$R *.dfm} + +procedure TfrmProductOrderListNewCKMX.FormDestroy(Sender: TObject); +begin + frmProductOrderListNewCKMX:=nil; +end; + +procedure TfrmProductOrderListNewCKMX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderListNewCKMX.FormCreate(Sender: TObject); +begin + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); +end; + +procedure TfrmProductOrderListNewCKMX.TBCloseClick(Sender: TObject); +begin + Close; + //WriteCxGrid('޷IJָʾб',Tv1,'ָʾ'); + WriteCxBandedGrid('޷IJָʾбMX',Tv2,'ָʾ'); +end; + +procedure TfrmProductOrderListNewCKMX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' exec P_Select_OrderMainSub :WSql'); + Parameters.ParamByName('WSql').Value:=' and A.OrderDate>='''+formatdatetime('yyyy-MM-dd',BegDate.DateTime)+'''' + +' and A.OrderDate<'''+formatdatetime('yyyy-MM-dd',EndDate.DateTime+1)+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderListNewCKMX.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderListNewCKMX.InitForm(); +begin + ReadCxBandedGrid('޷IJָʾбMX',Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); + +end; + +procedure TfrmProductOrderListNewCKMX.TBFindClick(Sender: TObject); +var + fsj:string; +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmProductOrderListNewCKMX.DelData(Order_Main10:TClientDataSet):Boolean; +begin + +end; + +procedure TfrmProductOrderListNewCKMX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderListNewCKMX.TBAddClick(Sender: TObject); +begin + Panel3.Visible:=True; +end; + +procedure TfrmProductOrderListNewCKMX.OrderNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmProductOrderListNewCKMX.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderListNewCKMX.TBBQPrintClick(Sender: TObject); +var + fPrintFile:String; +begin +end; + +procedure TfrmProductOrderListNewCKMX.ToolButton2Click(Sender: TObject); + var + fsj:string; +begin +end; + +procedure TfrmProductOrderListNewCKMX.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderListNewCKMX.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderListNewCKMX.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderListNewCKMX.CopyOrderData(Order_MainFF:TClientDataSet); +begin +end; +procedure TfrmProductOrderListNewCKMX.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel3).perform(WM_SYSCOMMAND, $F012, 0); +end; + +procedure TfrmProductOrderListNewCKMX.Image2Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNewCKMX.Button2Click(Sender: TObject); +begin + Panel3.Visible:=False; +end; + +procedure TfrmProductOrderListNewCKMX.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + SelExportDataBand(Tv2,ADOQueryMain,'ָʾ'); +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderListSel.dfm b/盛纺贸易管理/U_ProductOrderListSel.dfm new file mode 100644 index 0000000..c39200e --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListSel.dfm @@ -0,0 +1,338 @@ +object frmProductOrderListSel: TfrmProductOrderListSel + Left = 190 + Top = 135 + Width = 1320 + Height = 628 + Caption = #29983#20135#25351#31034#21333#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1304 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton3: TToolButton + Left = 0 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + OnClick = ToolButton3Click + end + object TBClose: TToolButton + Left = 59 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1304 + Height = 58 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 38 + Top = 24 + Width = 56 + Height = 13 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNoM: TEdit + Tag = 2 + Left = 95 + Top = 20 + Width = 162 + Height = 20 + TabOrder = 0 + OnKeyPress = OrderNoMKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 90 + Width = 1304 + Height = 456 + Align = alTop + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 44 + end + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1styleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1MPRTCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTCF: TcxGridDBColumn + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'MPRTCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 54 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1PRTColorEng: TcxGridDBColumn + Caption = #39068#33394#33521#25991 + DataBinding.FieldName = 'PRTColorEng' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column2: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column3: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'PRTOrderKgQty' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 92 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 91 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 598 + Top = 214 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 236 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_ProductOrderListSel.pas b/盛纺贸易管理/U_ProductOrderListSel.pas new file mode 100644 index 0000000..7e3a777 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListSel.pas @@ -0,0 +1,177 @@ +unit U_ProductOrderListSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus; + +type + TfrmProductOrderListSel = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel1: TPanel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + v1OrderNo: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1MPRTCF: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + v1MPRTCode: TcxGridDBColumn; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + v1PRTColorEng: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1styleNo: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); + procedure Tv1DblClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderListSel: TfrmProductOrderListSel; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmProductOrderListSel.FormDestroy(Sender: TObject); +begin + frmProductOrderListSel:=nil; +end; + +procedure TfrmProductOrderListSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderListSel.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmProductOrderListSel.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderListSel.InitGrid(); +begin + if Length(Trim(OrderNoM.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select B.*,A.*,B.OrderNo OrderNoM '); + sql.add('from JYOrder_sub A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID '); + SQL.Add('where B.OrderNo like '''+'%'+Trim(OrderNoM.Text)+'%'+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmProductOrderListSel.InitForm(); +begin + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + InitGrid(); +end; + +procedure TfrmProductOrderListSel.FormShow(Sender: TObject); +begin + InitForm(); + if FFInt=1 then + begin + v1Column4.Visible:=False; + v1Column4.Hidden:=True; + end; +end; + +procedure TfrmProductOrderListSel.ToolButton3Click(Sender: TObject); +begin + IF Order_Main.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmProductOrderListSel.OrderNoMKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + InitGrid(); + end; +end; + +procedure TfrmProductOrderListSel.Tv1DblClick(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmProductOrderListSel.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmProductOrderListSel.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,false); +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderListSel_cx.dfm b/盛纺贸易管理/U_ProductOrderListSel_cx.dfm new file mode 100644 index 0000000..485c164 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListSel_cx.dfm @@ -0,0 +1,345 @@ +object frmProductOrderListSel_cx: TfrmProductOrderListSel_cx + Left = 213 + Top = 126 + Width = 1112 + Height = 572 + Caption = #21512#21516#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1096 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton3: TToolButton + Left = 0 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + OnClick = ToolButton3Click + end + object TBClose: TToolButton + Left = 59 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1096 + Height = 54 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 35 + Top = 22 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ConNO: TEdit + Tag = 2 + Left = 76 + Top = 18 + Width = 149 + Height = 20 + TabOrder = 0 + OnKeyPress = ConNOKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 86 + Width = 1096 + Height = 369 + Align = alTop + PopupMenu = PopupMenu1 + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 44 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1styleNo: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1PRTCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 64 + end + object v1PRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1PRTCF: TcxGridDBColumn + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'PRTCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 54 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1SOrdDefStr4: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrdDefStr4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1PRTColorNo: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 56 + end + object v1Column2: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 63 + end + object v1Column3: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'PRTOrderKgQty' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 52 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 57 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 232 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_ProductOrderListSel_cx.pas b/盛纺贸易管理/U_ProductOrderListSel_cx.pas new file mode 100644 index 0000000..4bc2db7 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderListSel_cx.pas @@ -0,0 +1,178 @@ +unit U_ProductOrderListSel_cx; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus; + +type + TfrmProductOrderListSel_cx = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel1: TPanel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + ConNO: TEdit; + v1ConNo: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1PRTCF: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1PRTCodeName: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1PRTCode: TcxGridDBColumn; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + v1PRTColorNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1styleNo: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + v1SOrdDefStr4: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ConNOKeyPress(Sender: TObject; var Key: Char); + procedure Tv1DblClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderListSel_cx: TfrmProductOrderListSel_cx; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmProductOrderListSel_cx.FormDestroy(Sender: TObject); +begin + frmProductOrderListSel_cx:=nil; +end; + +procedure TfrmProductOrderListSel_cx.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderListSel_cx.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TfrmProductOrderListSel_cx.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderListSel_cx.InitGrid(); +begin + if Length(Trim(ConNO.Text))<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select B.*,A.* '); + sql.add('from JYOrderCon_sub A '); + sql.Add('inner join JYOrderCon_Main B on B.mainID=A.mainID '); + SQL.Add('where B.ConNO like '''+'%'+Trim(ConNO.Text)+'%'+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmProductOrderListSel_cx.InitForm(); +begin + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + InitGrid(); +end; + +procedure TfrmProductOrderListSel_cx.FormShow(Sender: TObject); +begin + InitForm(); + if FFInt=1 then + begin + v1Column4.Visible:=False; + v1Column4.Hidden:=True; + end; +end; + +procedure TfrmProductOrderListSel_cx.ToolButton3Click(Sender: TObject); +begin + IF Order_Main.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmProductOrderListSel_cx.ConNOKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + InitGrid(); + end; +end; + +procedure TfrmProductOrderListSel_cx.Tv1DblClick(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmProductOrderListSel_cx.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmProductOrderListSel_cx.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,false); +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderNewList.dfm b/盛纺贸易管理/U_ProductOrderNewList.dfm new file mode 100644 index 0000000..5604af4 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList.dfm @@ -0,0 +1,912 @@ +object frmProductOrderNewList: TfrmProductOrderNewList + Left = 320 + Top = 138 + Width = 1382 + Height = 754 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object TBAdd: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object ToolButton2: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TMXDC: TToolButton + Left = 567 + Top = 0 + AutoSize = True + Caption = #26126#32454#23548#20986 + ImageIndex = 53 + OnClick = TMXDCClick + end + object TBPrint: TToolButton + Left = 654 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TPanel + Left = 717 + Top = 0 + Width = 161 + Height = 30 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object ComboBox3: TComboBox + Left = 5 + Top = 3 + Width = 152 + Height = 24 + Style = csDropDownList + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ItemIndex = 0 + ParentFont = False + TabOrder = 0 + Text = #29983#20135#25351#31034#21333#21360#33457 + Items.Strings = ( + #29983#20135#25351#31034#21333#21360#33457 + #29983#20135#25351#31034#21333#26579#33394 + #33337#26679#21360#33457 + #33337#26679#26579#33394 + 'AD'#33337#26679#26631#31614 + 'SO'#26679#20013#25991 + 'SO'#26679#33521#25991 + 'SO'#26679#24037#21378 + 'FOCUS'#38144#21806#26679#21360#33457 + #38463#26681#24311#33337#26679#26631#31614 + #29983#20135#25351#31034#21333#21360#33457'('#27454#21495')' + #29983#20135#25351#31034#21333#26579#33394'('#27454#21495')' + #29983#20135#25351#31034#21333#33394#21495 + #33337#26679#21360#33457'-FOCUS' + 'SO'#26679#33521#25991'FOCUS' + 'FLOTEX'#33337#26679#26631#31614 + 'FLASH'#33337#26679#26579#33394#26631#31614 + 'FLASH'#33337#26679#21360#33457#26631#31614 + '') + end + end + object ToolButton4: TToolButton + Left = 878 + Top = 0 + AutoSize = True + Caption = #35746#21333#38468#20214 + ImageIndex = 57 + OnClick = ToolButton4Click + end + object TBClose: TToolButton + Left = 965 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1366 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 15 + Width = 39 + Height = 12 + Caption = #25351#31034#21333 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 318 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 476 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 476 + Top = 39 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 630 + Top = 16 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 613 + Top = 119 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 318 + Top = 39 + Width = 21 + Height = 12 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 88 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 35 + Width = 89 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 220 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 373 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 530 + Top = 11 + Width = 80 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object connoHZ: TEdit + Tag = 2 + Left = 220 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + OnKeyPress = connoHZKeyPress + end + object MPRTSpec: TEdit + Tag = 2 + Left = 530 + Top = 35 + Width = 80 + Height = 20 + TabOrder = 6 + OnChange = OrderNoMChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 683 + Top = 12 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoMChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 654 + Top = 99 + Width = 56 + Height = 20 + TabOrder = 8 + OnChange = OrderNoMChange + end + object KHConNoHZ: TEdit + Tag = 2 + Left = 372 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 9 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 1366 + Height = 369 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 86 + end + object v1Column9: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'ComTaiTou' + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v1Column5: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 78 + end + object v1Column7: TcxGridDBColumn + Caption = #29702#21333#21592 + DataBinding.FieldName = 'LiDanPerson' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v1Column1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'YWY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 61 + end + object v1Column6: TcxGridDBColumn + Caption = #38468#20214 + DataBinding.FieldName = 'FJFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column2: TcxGridDBColumn + Caption = #24635#25968#37327 + DataBinding.FieldName = 'ZQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 71 + end + object v1Column3: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object v1Column8: TcxGridDBColumn + Caption = #30331#35760#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 466 + Width = 1366 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = Panel2 + end + object Panel2: TPanel + Left = 0 + Top = 474 + Width = 1366 + Height = 241 + Align = alBottom + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object cxGrid2: TcxGrid + Left = 2 + Top = 2 + Width = 1362 + Height = 237 + Align = alClient + TabOrder = 0 + object TV2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = v1PRTOrderQty + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + Column = TV2Column1 + end + item + Kind = skSum + Column = TV2Column2 + end + item + Kind = skSum + Column = TV2Column3 + end + item + Kind = skSum + Column = TV2Column4 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V2Column1: TcxGridDBColumn + Caption = #27454#21495 + DataBinding.FieldName = 'styleNo' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V2PrtColorNo: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PrtColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 87 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'PRTColorEng' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 105 + end + object v1Column4: TcxGridDBColumn + Caption = #33457#22411#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object VColorOk: TcxGridDBColumn + Caption = #30830#35748#33394 + DataBinding.FieldName = 'ColorOk' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object TV2Column1: TcxGridDBColumn + Caption = #26816#39564#21305#25968 + DataBinding.FieldName = 'JYRoll' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object TV2Column2: TcxGridDBColumn + Caption = #26816#39564#38271#24230 + DataBinding.FieldName = 'JYQty' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object TV2Column3: TcxGridDBColumn + Caption = #26816#39564#20928#37325 + DataBinding.FieldName = 'JYJZ' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object TV2Column4: TcxGridDBColumn + Caption = #26816#39564#27611#37325 + DataBinding.FieldName = 'JYMZ' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 109 + end + object TV2Column5: TcxGridDBColumn + Caption = #26368#22823#21367#21495 + DataBinding.FieldName = 'ZDJH' + HeaderAlignmentHorz = taCenter + Width = 60 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 921 + Top = 308 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 552 + Top = 176 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 892 + Top = 308 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 584 + Top = 176 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 948 + Top = 308 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 975 + Top = 308 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 539 + Top = 274 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 579 + Top = 274 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 224 + Top = 216 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 336 + Top = 184 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 224 + Top = 184 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 556 + Top = 416 + end + object DataSource2: TDataSource + DataSet = ADOQuerySub + Left = 472 + Top = 560 + end + object CDS_YS: TClientDataSet + Aggregates = <> + Params = <> + Left = 264 + Top = 216 + end + object RMDBYS: TRMDBDataSet + Visible = True + DataSet = CDS_YS + Left = 304 + Top = 216 + end + object cxGridPopupMenu3: TcxGridPopupMenu + PopupMenus = <> + Left = 1096 + Top = 504 + end + object DataSource3: TDataSource + DataSet = ClientDataSet3 + Left = 1132 + Top = 500 + end + object ClientDataSet3: TClientDataSet + Aggregates = <> + Params = <> + Left = 1164 + Top = 496 + end + object CDS_WXPT: TClientDataSet + Aggregates = <> + Params = <> + Left = 615 + Top = 273 + end +end diff --git a/盛纺贸易管理/U_ProductOrderNewList.pas b/盛纺贸易管理/U_ProductOrderNewList.pas new file mode 100644 index 0000000..81dad35 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList.pas @@ -0,0 +1,964 @@ +unit U_ProductOrderNewList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, + RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxButtonEdit, cxTextEdit, + cxDropDownEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, + dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, + dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, + dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, + dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, + dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, + dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, + dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmProductOrderNewList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + connoHZ: TEdit; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + KHConNoHZ: TEdit; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + v1Column5: TcxGridDBColumn; + ToolButton4: TToolButton; + v1Column6: TcxGridDBColumn; + CDS_YS: TClientDataSet; + RMDBYS: TRMDBDataSet; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + V2Column1: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + cxGridDBColumn1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu3: TcxGridPopupMenu; + DataSource3: TDataSource; + ClientDataSet3: TClientDataSet; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + CDS_WXPT: TClientDataSet; + ComboBox3: TComboBox; + TMXDC: TToolButton; + VColorOk: TcxGridDBColumn; + V2PrtColorNo: TcxGridDBColumn; + TV2Column1: TcxGridDBColumn; + TV2Column2: TcxGridDBColumn; + TV2Column3: TcxGridDBColumn; + TV2Column4: TcxGridDBColumn; + TV2Column5: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); + procedure connoHZKeyPress(Sender: TObject; var Key: Char); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); + procedure ToolButton4Click(Sender: TObject); + procedure TMXDCClick(Sender: TObject); + private + DQdate: TDateTime; + canshu1: string; + procedure InitGrid(); + procedure InitForm(); + function DelData(): Boolean; + procedure InitGridFH(); + procedure InitSub(); + procedure GetOrder(); + { Private declarations } + public + FFInt, FCloth: Integer; + + { Public declarations } + end; + +var + frmProductOrderNewList: TfrmProductOrderNewList; + +implementation + +uses + U_DataLink, U_OrderInPut, U_Fun, U_FjList_RZ, U_FjList10, U_OrderInPutPrice; + +{$R *.dfm} +procedure TfrmProductOrderNewList.GetOrder(); +var + j, z, i, x: Integer; + FSumJZQty0, FSumQty0, FSumJZQty1, FSumQty1: Double; + FGangNo, FHZ, FPRTColorNo: string; +begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select C.OrderNo,C.MPRTCode,C.MPRTCodeName,C.MPRTCF,C.OrdDate,C.BPPiZhong,C.ComTaiTou,C.MPRTKZNote '); + sql.Add(',ConNo=[dbo].[F_Get_Order_SubStr](C.MainId,''ConNoHZ''),C.Note,C.YWY,C.ChuanY,C.JGFactoryName FactoryName '); + sql.Add(',C.MPRTSpec,C.MPRTMF,C.MPRTKZ,C.MPRTMFNote,C.MPRTKZNote,C.ChuanY,C.SCYaoSu,C.BZNote,C.LiDanPerson,D.*'); + sql.Add(' from JYOrder_Main C'); + sql.Add(' inner join JYOrder_Sub D on C.Mainid=D.Mainid'); + sql.Add(' where C.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + SQL.Add(' order by D.styleNo,D.PRTHX,D.PRTColorNo,D.PRTColorEng'); + Open; + end; + SCreateCDS20(ADOQueryCmd, CDS_WXPT); + SInitCDSData20(ADOQueryCmd, CDS_WXPT); + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select XH=cast(0 as int),OrderNO=Cast('''' as varchar(70)),ConNO=Cast('''' as varchar(30)),FactoryName=Cast('''' as varchar(80)),'); + sql.Add(' OrdDate=Cast(NULL as Datetime),MPRTCodeName=Cast('''' as varchar(50)),MPRTMF=Cast('''' as varchar(50)),MPRTKZ=Cast('''' as varchar(50)),'); + sql.Add(' YWY=cast('''' as varchar(60)),ChuanY=cast('''' as varchar(60)),BZNote=cast('''' as varchar(500)),Note=cast('''' as varchar(500)),'); + sql.add(' PRTHX0=Cast('''' as varchar(50)),PRTHX1=Cast('''' as varchar(50)),MPRTKZNote=cast('''' as varchar(50)),'); + sql.add(' PRTColor0=Cast('''' as varchar(50)),PRTColor1=Cast('''' as varchar(50)),'); + sql.add(' PRTColorNo0=Cast('''' as varchar(50)),PRTColorNo1=Cast('''' as varchar(50)),'); + sql.add(' styleNo0=Cast('''' as varchar(50)),styleNo1=Cast('''' as varchar(50)),'); + sql.add(' PRTOrderQty0=Cast(0 as decimal(18,2)),PRTOrderQty1=Cast(0 as decimal(18,2)),'); + sql.Add(' Note0=cast('''' as varchar(500)),Note1=cast('''' as varchar(500))'); + open; + end; + SCreateCDS20(ADOQueryCmd, CDS_Print); + SInitCDSData20(ADOQueryCmd, CDS_Print); + if CDS_Print.IsEmpty = False then + begin + CDS_Print.Delete; + end; + j := 0; + z := 0; + i := 0; + x := 0; + FGangNo := ''; + FPRTColorNo := ''; + FSumJZQty1 := 0; + FSumQty1 := 0; + FSumJZQty0 := 0; + FSumQty0 := 0; + CDS_WXPT.DisableControls; + CDS_Print.DisableControls; + with CDS_WXPT do + begin + First; + while not Eof do + begin + with CDS_Print do + begin + if CDS_Print.IsEmpty then + begin + CDS_Print.Append; + CDS_Print.FieldByName('XH').Value := 0; + CDS_Print.FieldByName('OrderNO').Value := CDS_WXPT.fieldbyname('OrderNO').Value; + CDS_Print.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_Print.FieldByName('FactoryName').Value := CDS_WXPT.fieldbyname('FactoryName').Value; + CDS_Print.FieldByName('OrdDate').Value := CDS_WXPT.fieldbyname('OrdDate').Value; + CDS_Print.FieldByName('MPRTKZNote').Value := CDS_WXPT.fieldbyname('MPRTKZNote').Value; + CDS_Print.FieldByName('MPRTCodeName').Value := CDS_WXPT.fieldbyname('MPRTCodeName').Value; + CDS_Print.FieldByName('MPRTMF').Value := CDS_WXPT.fieldbyname('MPRTMF').Value; + CDS_Print.FieldByName('MPRTKZ').Value := CDS_WXPT.fieldbyname('MPRTKZ').Value; + CDS_Print.FieldByName('YWY').Value := CDS_WXPT.fieldbyname('YWY').Value; + CDS_Print.FieldByName('ChuanY').Value := CDS_WXPT.fieldbyname('ChuanY').Value; + CDS_Print.FieldByName('BZNote').Value := CDS_WXPT.fieldbyname('BZNote').Value; + CDS_Print.FieldByName('Note').Value := CDS_WXPT.fieldbyname('Note').Value; + CDS_Print.FieldByName('styleNo0').Value := CDS_WXPT.fieldbyname('styleNo').Value; + CDS_Print.FieldByName('PRTHX0').Value := CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_Print.FieldByName('PRTColor0').Value := CDS_WXPT.fieldbyname('PRTColorEng').Value; + CDS_Print.FieldByName('PRTColorNo0').Value := CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_Print.FieldByName('PRTOrderQty0').Value := CDS_WXPT.fieldbyname('PRTOrderQty').Value; + CDS_Print.post; + z := 0; // + j := 0; // + i := 1; //ҳ + FGangNo := Trim(CDS_WXPT.fieldbyname('PRTHX').AsString) + Trim(CDS_WXPT.fieldbyname('PRTColorEng').AsString) + Trim(CDS_WXPT.fieldbyname('PRTHX').AsString); + end + else + begin + j := j + 1; + if j >= 20 * i then + begin + j := 20 * (i - 1); + z := z + 1; + end; + if z >= 2 then + begin + z := 0; + i := i + 1; + j := 20 * (i - 1); + end; + if z = 0 then + begin + if j < 20 * i then + begin + CDS_Print.Append; + CDS_Print.FieldByName('XH').Value := j; + CDS_Print.FieldByName('OrderNO').Value := CDS_WXPT.fieldbyname('OrderNO').Value; + CDS_Print.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_Print.FieldByName('FactoryName').Value := CDS_WXPT.fieldbyname('FactoryName').Value; + CDS_Print.FieldByName('OrdDate').Value := CDS_WXPT.fieldbyname('OrdDate').Value; + CDS_Print.FieldByName('MPRTKZNote').Value := CDS_WXPT.fieldbyname('MPRTKZNote').Value; + CDS_Print.FieldByName('MPRTCodeName').Value := CDS_WXPT.fieldbyname('MPRTCodeName').Value; + CDS_Print.FieldByName('MPRTMF').Value := CDS_WXPT.fieldbyname('MPRTMF').Value; + CDS_Print.FieldByName('MPRTKZ').Value := CDS_WXPT.fieldbyname('MPRTKZ').Value; + CDS_Print.FieldByName('YWY').Value := CDS_WXPT.fieldbyname('YWY').Value; + CDS_Print.FieldByName('ChuanY').Value := CDS_WXPT.fieldbyname('ChuanY').Value; + CDS_Print.FieldByName('BZNote').Value := CDS_WXPT.fieldbyname('BZNote').Value; + CDS_Print.FieldByName('Note').Value := CDS_WXPT.fieldbyname('Note').Value; + CDS_Print.FieldByName('styleNo0').Value := CDS_WXPT.fieldbyname('styleNo').Value; + CDS_Print.FieldByName('PRTHX0').Value := CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_Print.FieldByName('PRTColor0').Value := CDS_WXPT.fieldbyname('PRTColorEng').Value; + CDS_Print.FieldByName('PRTColorNo0').Value := CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_Print.FieldByName('PRTOrderQty0').Value := CDS_WXPT.fieldbyname('PRTOrderQty').Value; + CDS_Print.post; + end; + end + else + begin + CDS_Print.Locate('XH', j, []); + CDS_Print.edit; + CDS_Print.FieldByName('OrderNO').Value := CDS_WXPT.fieldbyname('OrderNO').Value; + CDS_Print.FieldByName('ConNO').Value := CDS_WXPT.fieldbyname('ConNO').Value; + CDS_Print.FieldByName('FactoryName').Value := CDS_WXPT.fieldbyname('FactoryName').Value; + CDS_Print.FieldByName('OrdDate').Value := CDS_WXPT.fieldbyname('OrdDate').Value; + CDS_Print.FieldByName('MPRTKZNote').Value := CDS_WXPT.fieldbyname('MPRTKZNote').Value; + CDS_Print.FieldByName('MPRTCodeName').Value := CDS_WXPT.fieldbyname('MPRTCodeName').Value; + CDS_Print.FieldByName('MPRTMF').Value := CDS_WXPT.fieldbyname('MPRTMF').Value; + CDS_Print.FieldByName('MPRTKZ').Value := CDS_WXPT.fieldbyname('MPRTKZ').Value; + CDS_Print.FieldByName('YWY').Value := CDS_WXPT.fieldbyname('YWY').Value; + CDS_Print.FieldByName('ChuanY').Value := CDS_WXPT.fieldbyname('ChuanY').Value; + CDS_Print.FieldByName('BZNote').Value := CDS_WXPT.fieldbyname('BZNote').Value; + CDS_Print.FieldByName('Note').Value := CDS_WXPT.fieldbyname('Note').Value; + CDS_Print.FieldByName('PRTHX' + inttostr(z)).Value := CDS_WXPT.fieldbyname('PRTHX').Value; + CDS_Print.FieldByName('PRTColor' + inttostr(z)).Value := CDS_WXPT.fieldbyname('PRTColorEng').Value; + CDS_Print.FieldByName('PRTOrderQty' + inttostr(z)).Value := CDS_WXPT.fieldbyname('PRTOrderQty').Value; + CDS_Print.FieldByName('PRTColorNo' + inttostr(z)).Value := CDS_WXPT.fieldbyname('PRTColorNo').Value; + CDS_Print.FieldByName('styleNo' + inttostr(z)).Value := CDS_WXPT.fieldbyname('styleNo').Value; + CDS_Print.post; + end; + end + end; + Next; + end; + end; + CDS_WXPT.EnableControls; + CDS_Print.EnableControls; +end; + +procedure TfrmProductOrderNewList.InitSub(); +begin + ADOQuerySub.Close; + if Order_Main.IsEmpty then + exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select A.*, '); + sql.Add('JYRoll=(select count(MJID) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID),'); + sql.Add('JYQty=(select sum(MJLen) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID),'); + sql.Add('JYJZ=(select sum(MJQty4) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID),'); + sql.Add('JYMZ=(select sum(MJMaoZ) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID)'); + { + sql.Add('CKRoll=(select count(MJID) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID and ckflag=''ѳ'' ), '); + sql.Add('CKQty=(select sum(MJLen) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID and ckflag=''ѳ''), '); + sql.Add('CKJZ=(select sum(MJQty4) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID and ckflag=''ѳ''),'); + sql.Add('CKMZ=(select sum(MJMaoZ) from WFB_MJJY X where X.MainID=A.mainID and X.subID=A.subID and ckflag=''ѳ''),'); } + sql.Add('from JYOrder_sub A '); + sql.Add('where mainID =' + quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; +end; + +procedure TfrmProductOrderNewList.FormDestroy(Sender: TObject); +begin + frmProductOrderNewList := nil; +end; + +procedure TfrmProductOrderNewList.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmProductOrderNewList.FormCreate(Sender: TObject); +begin + canshu1 := Trim(DParameters1); + cxgrid1.Align := alClient; + DQdate := SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderNewList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾбFF', Tv1, 'ָʾ'); +end; + +procedure TfrmProductOrderNewList.InitGrid(); +var + fsj: string; +begin + if Trim(canshu1) <> 'Ȩ' then + begin + fsj := ' and (Filler=''' + Trim(DName) + ''' or LiDanPerson=''' + Trim(DName) + ''' or YWY=''' + Trim(DName) + ''') '; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql'); + Parameters.ParamByName('WSql').Value := fsj; + Parameters.ParamByName('begdate').Value := FormatDateTime('yyyy-MM-dd', BegDate.DateTime); + Parameters.ParamByName('enddate').Value := FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderNewList.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value := ' and FillTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''' + ' and FillTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + ''''; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderNewList.InitForm(); +begin + ReadCxGrid('ָʾбFF', Tv1, 'ָʾ'); + BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 61; + EndDate.DateTime := SGetServerDate10(ADOQueryTemp); + //setstatus(); + if trim(DdataBase) = 'ѯ' then + begin + TBadd.Visible := false; + tbedit.Visible := false; + ToolButton2.Visible := false; + tbdel.Visible := false; + end; + //InitGrid(); +end; + +procedure TfrmProductOrderNewList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmProductOrderNewList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then + begin + Application.MessageBox('ܲ˵!', 'ʾ', 0); + Exit; + end; + try + frmOrderInPutPrice := TfrmOrderInPutPrice.Create(Application); + with frmOrderInPutPrice do + begin + PState := 1; + FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FOrderNo := Trim(Self.Order_Main.fieldbyname('OrderNoM').AsString); + if ShowModal = 1 then + begin + + end; + end; + finally + frmOrderInPutPrice.Free; + end; +end; + +procedure TfrmProductOrderNewList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then + begin + Application.MessageBox('ܲ˵!', 'ʾ', 0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + Open; + end; + if ADOQueryTemp.IsEmpty = False then + begin + Application.MessageBox('Ѳݲɾ!', 'ʾ', 0); + Exit; + end; + if Application.MessageBox('ȷҪɾ', 'ʾ', 32 + 4) <> IDYES then + Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmProductOrderNewList.DelData(): Boolean; +begin + try + Result := false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + sql.Add('delete JYOrder_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' ' + quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(',' + quotedstr(trim(self.Caption))); + sql.Add(',' + quotedstr(trim('ָʾɾ'))); + sql.Add(',' + quotedstr(trim('ָʾţ' + trim(Order_Main.FieldByName('OrderNO').AsString)))); + sql.Add(',' + quotedstr(trim('ɹ'))); + sql.Add(')'); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result := True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result := False; + Application.MessageBox('ɾ쳣', 'ʾ', 0); + end; +end; + +procedure TfrmProductOrderNewList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + Exit; + SelExportData(Tv1, ADOQueryMain, 'ָʾб'); +end; + +procedure TfrmProductOrderNewList.TBPrintClick(Sender: TObject); +var + fPrintFile: string; + Porderno, PFTPUnit, LD, LDTel, GD, GDTel, CPQtyStr, BPQtyStr, QtyUnit, SCYaoSu10: string; + i, j: Integer; +begin + if Order_Main.IsEmpty then + Exit; + if Trim(ComboBox3.Text) = '' then + begin + application.MessageBox('ѡӡʽ', 'ʾ'); + Exit; + end; + if ComboBox3.ItemIndex = 0 then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf'; + GetOrder(); + end + else if ComboBox3.ItemIndex = 1 then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ָʾȾɫ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select ConNoHZ=[dbo].[F_Get_Order_SubStr](C.MainId,''ConNoHZ''),C.*,D.*,C.JGFactoryName FactoryName'); + sql.Add(' from JYOrder_Main C'); + sql.Add(' inner join JYOrder_Sub D on C.Mainid=D.Mainid'); + sql.Add(' where C.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + SQL.Add(' order by D.XHInt'); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + end + else if ComboBox3.ItemIndex = 9 then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\͢ǩ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select distinct C.OrderNo,C.MPRTCodeName,D.PRTHX,C.MPRTSpec,C.MPRTMF,C.MPRTKZ'); + sql.Add(' from JYOrder_Main C'); + sql.Add(' inner join JYOrder_Sub D on C.Mainid=D.Mainid'); + sql.Add(' where C.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + end + else + begin + if ComboBox3.ItemIndex = 2 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ӡ.rmf'; + if ComboBox3.ItemIndex = 3 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\Ⱦɫ.rmf'; + if ComboBox3.ItemIndex = 4 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ADǩ.rmf'; + if ComboBox3.ItemIndex = 5 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\SO.rmf'; + if ComboBox3.ItemIndex = 6 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\SOӢ.rmf'; + if ComboBox3.ItemIndex = 7 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\SO.rmf'; + if ComboBox3.ItemIndex = 8 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\FOCUSӡ.rmf'; + if ComboBox3.ItemIndex = 13 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ӡ-FOCUS.rmf'; + if ComboBox3.ItemIndex = 14 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\SOӢFOCUS.rmf'; + if ComboBox3.ItemIndex = 15 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\FLOTEXǩ.rmf'; + if ComboBox3.ItemIndex = 16 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\FLASHȾɫǩ.rmf'; + if ComboBox3.ItemIndex = 17 then + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\FLASHӡǩ.rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select ConNoHZ=[dbo].[F_Get_Order_SubStr](C.MainId,''ConNoHZ''),KHConNoHZ=[dbo].[F_Get_Order_SubStr](C.MainId,''KHConNoHZ'')'); + SQL.Add(',C.JGFactoryName FactoryName'); + sql.Add(',C.*,D.*'); + sql.Add(' from JYOrder_Main C'); + sql.Add(' inner join JYOrder_Sub D on C.Mainid=D.Mainid'); + sql.Add(' where C.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + SQL.Add(' order by D.XHInt'); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + if ComboBox3.ItemIndex = 10 then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ָʾӡ().rmf'; + GetOrder(); + end; + if ComboBox3.ItemIndex = 11 then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ָʾȾɫ().rmf'; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select ConNoHZ=[dbo].[F_Get_Order_SubStr](C.MainId,''ConNoHZ''),C.*,D.*,C.JGFactoryName FactoryName'); + sql.Add(' from JYOrder_Main C'); + sql.Add(' inner join JYOrder_Sub D on C.Mainid=D.Mainid'); + sql.Add(' where C.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); + SQL.Add(' order by D.XHInt'); + Open; + end; + SCreateCDS20(ADOQueryPrint, CDS_Print); + SInitCDSData20(ADOQueryPrint, CDS_Print); + end; + if ComboBox3.ItemIndex = 12 then + begin + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ָʾɫ.rmf'; + GetOrder(); + end; + end; + RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1); + if FileExists(fPrintFile) then + begin + RMVariables['ZQty'] := Order_Main.fieldbyname('ZQty').Value; + RMVariables['OrderUnit'] := Order_Main.fieldbyname('OrderUnit').Value; + RMVariables['LD'] := Trim(LD); + RMVariables['LDTel'] := Trim(LDTel); + RMVariables['GD'] := Trim(GD); + RMVariables['GDTel'] := Trim(GDTel); + RMVariables['SCYaoSu10'] := Trim(SCYaoSu10); + RMVariables['PFDate'] := Order_Main.fieldbyname('OrdDate').Value; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Application.MessageBox(PChar('ûҵ' + trim(fPrintFile)), 'ʾ', 0); + end; +end; + +procedure TfrmProductOrderNewList.TBRafreshClick(Sender: TObject); +begin + if FFInt = 1 then + begin + InitGridFH(); + end + else + begin + InitGrid(); + end; +end; + +procedure TfrmProductOrderNewList.TBAddClick(Sender: TObject); +var + maxno: string; +begin + try + frmOrderInPutPrice := TfrmOrderInPutPrice.Create(Application); + with frmOrderInPutPrice do + begin + PState := 0; + FMainId := ''; + if ShowModal = 1 then + begin + InitGrid(); + end; + end; + finally + frmOrderInPutPrice.Free; + end; +end; + +procedure TfrmProductOrderNewList.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); +end; + +procedure TfrmProductOrderNewList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList.v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewList.N1Click(Sender: TObject); +var + fPrintFile: string; + Porderno: string; +begin + if Order_Main.IsEmpty then + Exit; + fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf'; + SDofilter(ADOQueryMain, ' OrderNoM=''' + Trim(Order_Main.fieldbyname('OrderNoM').AsString) + ''''); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + Porderno := Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf'), 'ʾ', 0); + end; + SDofilter(ADOQueryMain, ''); + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + Order_Main.Locate('ordernoM', Porderno, []); +end; + +procedure TfrmProductOrderNewList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + try + frmOrderInPutPrice := TfrmOrderInPutPrice.Create(Application); + with frmOrderInPutPrice do + begin + PState := 1; + FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible := False; + ToolBar3.Visible := False; + ToolBar4.Visible := False; + TBSave.Visible := False; + if ShowModal = 1 then + begin + + end; + end; + finally + frmOrderInPutPrice.Free; + end; +end; + +procedure TfrmProductOrderNewList.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + try + frmOrderInPutPrice := TfrmOrderInPutPrice.Create(Application); + with frmOrderInPutPrice do + begin + PState := 1; + CopyInt := 99; + FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal = 1 then + begin + + end; + end; + finally + frmOrderInPutPrice.Free; + end; +end; + +procedure TfrmProductOrderNewList.ToolButton3Click(Sender: TObject); +begin + ModalResult := 1; +end; + +procedure TfrmProductOrderNewList.OrderNoMKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + if Length(OrderNoM.Text) < 3 then + Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql'); + if Trim(canshu1) <> 'Ȩ' then + begin + Parameters.ParamByName('WSql').Value := ' and (Filler=''' + Trim(DName) + ''' or LiDanPerson=''' + Trim(DName) + ''' or YWY=''' + Trim(DName) + ''')'; + end; + begin + Parameters.ParamByName('WSql').Value := ' and orderno like ''' + '%' + Trim(OrderNoM.Text) + '%' + ''''; + end; + Parameters.ParamByName('begdate').Value := '1899-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderNewList.connoHZKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + if Length(connoHZ.Text) < 3 then + Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered := False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql'); + if Trim(canshu1) <> 'Ȩ' then + begin + Parameters.ParamByName('WSql').Value := ' and (Filler=''' + Trim(DName) + ''' or LiDanPerson=''' + Trim(DName) + ''' or YWY=''' + Trim(DName) + ''')'; + end; + begin + Parameters.ParamByName('WSql').Value := ' and connoHZ like ''' + '%' + Trim(connoHZ.Text) + '%' + ''''; + end; + Parameters.ParamByName('begdate').Value := '1899-01-01'; + Parameters.ParamByName('enddate').Value := '2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain, Order_Main); + SInitCDSData20(ADOQueryMain, Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderNewList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmProductOrderNewList.ToolButton4Click(Sender: TObject); +begin + if Order_Main.IsEmpty then + Exit; + try + frmFjList_RZ := TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + // PState:=1; + if Trim(DParameters1) <> 'Ȩ' then + cxButton1.Visible := false; + fkeyNO := Trim(Self.Order_Main.fieldbyname('MainId').AsString); + fType := 'ָʾ'; + if ShowModal = 1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; +end; + +procedure TfrmProductOrderNewList.TMXDCClick(Sender: TObject); +begin + if ADOQuerySub.IsEmpty then + Exit; + SelExportData(Tv2, ADOQuerySub, 'ָʾϸб'); +end; + +end. + diff --git a/盛纺贸易管理/U_ProductOrderNewListSubZD.dfm b/盛纺贸易管理/U_ProductOrderNewListSubZD.dfm new file mode 100644 index 0000000..831a683 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewListSubZD.dfm @@ -0,0 +1,677 @@ +object frmProductOrderNewListSubZD: TfrmProductOrderNewListSubZD + Left = 113 + Top = 117 + Width = 1094 + Height = 600 + Caption = #36716#21333#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1113 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton1: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBPrint: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ComboBox1: TComboBox + Left = 374 + Top = 3 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1113 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 318 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 476 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 39 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 476 + Top = 39 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 318 + Top = 39 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 621 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 621 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 220 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + OnKeyPress = OrderNoMKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 371 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 529 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object ConNo: TEdit + Tag = 2 + Left = 220 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + OnKeyPress = ConNoKeyPress + end + object MPRTSpec: TEdit + Tag = 2 + Left = 530 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoMChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 371 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoMChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 650 + Top = 35 + Width = 56 + Height = 20 + TabOrder = 8 + OnChange = OrderNoMChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 650 + Top = 11 + Width = 56 + Height = 20 + TabOrder = 9 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 24 + Top = 112 + Width = 1089 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1Column4: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object v1Column5: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Width = 57 + end + object v1Column6: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'MPRTCode' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + Options.Focusing = False + Width = 59 + end + object v1Column2: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 71 + end + object v1Column3: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 410 + Top = 137 + Width = 231 + Height = 216 + TabOrder = 3 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 229 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 206 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 83 + Top = 176 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 56 + Top = 24 + Width = 129 + Height = 145 + ItemIndex = 0 + Items.Strings = ( + #21253#35013#25351#31034#21333 + #39068#33394#26679 + #21697#36136#26679 + #33457#22411#26679) + TabOrder = 2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/盛纺贸易管理/U_ProductOrderNewListSubZD.pas b/盛纺贸易管理/U_ProductOrderNewListSubZD.pas new file mode 100644 index 0000000..b2fbf0c --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewListSubZD.pas @@ -0,0 +1,681 @@ +unit U_ProductOrderNewListSubZD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus; + +type + TfrmProductOrderNewListSubZD = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + ComboBox1: TComboBox; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); + procedure ConNoKeyPress(Sender: TObject; var Key: Char); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Button1Click(Sender: TObject); + procedure Image2Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderNewListSubZD: TfrmProductOrderNewListSubZD; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmProductOrderNewListSubZD.FormDestroy(Sender: TObject); +begin + frmProductOrderNewListSubZD:=nil; +end; + +procedure TfrmProductOrderNewListSubZD.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewListSubZD.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderNewListSubZD.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('ָʾбFF',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderNewListSubZD.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + if Trim(DParameters1)<>'Ȩ' then + begin + Parameters.ParamByName('WSql').Value:=' and Filler='''+Trim(DName)+''''; + end else + begin + Parameters.ParamByName('WSql').Value:=''; + end; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderNewListSubZD.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderNewListSubZD.InitForm(); +begin + ReadCxGrid('ָʾбFF',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrder_Main Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); + Next; + end; + end; + //InitGrid(); +end; + +procedure TfrmProductOrderNewListSubZD.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmProductOrderNewListSubZD.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + {with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + if IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; } + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderNewListSubZD.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + Panel4.Visible:=True; +end; + +procedure TfrmProductOrderNewListSubZD.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + begin + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrder_Main Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); + Next; + end; + end; + end; +end; + +procedure TfrmProductOrderNewListSubZD.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewListSubZD.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewListSubZD.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmProductOrderNewListSubZD.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderNewListSubZD.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewListSubZD.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewListSubZD.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderNewListSubZD.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewListSubZD.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewListSubZD.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewListSubZD.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut:=TfrmOrderInPut.Create(Application); + with frmOrderInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + ScrollBox1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut.Free; + end; +end; + +procedure TfrmProductOrderNewListSubZD.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderNewListSubZD.OrderNoMKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(OrderNoM.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + if Trim(DParameters1)<>'Ȩ' then + begin + Parameters.ParamByName('WSql').Value:=' and Filler='''+Trim(DName)+''''; + end; + begin + Parameters.ParamByName('WSql').Value:=' and orderno like '''+'%'+Trim(OrderNoM.Text)+'%'+''''; + end; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderNewListSubZD.ConNoKeyPress(Sender: TObject; + var Key: Char); +begin + if Key=#13 then + begin + if Length(conno.Text)<3 then Exit; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + if Trim(DParameters1)<>'Ȩ' then + begin + Parameters.ParamByName('WSql').Value:=' and A.Filler='''+Trim(DName)+''''; + end; + begin + Parameters.ParamByName('WSql').Value:=' and conno like '''+'%'+Trim(conno.Text)+'%'+''''; + end; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; + +procedure TfrmProductOrderNewListSubZD.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmProductOrderNewListSubZD.Button1Click(Sender: TObject); +var + fPrintFile:string; + Porderno,LBName:string; + i,j:Integer; + OrderKg:Double; +begin + if Order_Main.IsEmpty then Exit; + LBName:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ; + if RadioGroup1.ItemIndex=0 then + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,ColorCount=(select isnull(Count(*),0) from JYOrder_Sub where MainId=A.MainId), '); + sql.add('ZQty=(select sum(PRTOrderQty) from JYOrder_Sub where MainId=A.MainId)'); + SQL.Add(', Case when B.OrderUnit=''M'' then Cast(Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as decimal(18,0)) as varchar(20))+''Kg'' '); + SQL.Add(' when B.OrderUnit=''Y'' then Cast (Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as decimal(18,0)) as varchar(20))+''Kg'' '); + sql.Add(' else '''' end as PRTOrderKgQtyStr '); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + + end else + begin + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('exec P_View_OrderSub :begdate,:enddate,:wsql '); + Parameters.ParamByName('WSql').Value:=' and A.MainId='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''; + Parameters.ParamByName('begdate').Value:='1899-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + Open; + end; + if Trim(ADOQueryPrint.FieldByName('PRTHX').AsString)<>'' then + begin + if Trim(LBName)='ɫ' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ɫ.rmf' ; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(sum(PRTOrderKgQty),0) PRTOrderKgHZQty from('); + sql.Add('select '); + SQL.Add(' Case when B.OrderUnit=''M'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'') '); + sql.Add(' *1.00/100*B.PRTOrderQty*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 as decimal(18,0))'); + SQL.Add(' when B.OrderUnit=''Y'' then Cast(dbo.F_Get_Order_MFKZ(A.MainId,''MF'')'); + sql.Add(' *1.00/100*B.PRTOrderQty*0.9144*dbo.F_Get_Order_MFKZ(A.MainId,''KZ'')/1000 As decimal(18,0)) '); + sql.Add(' else 0 end as PRTOrderKgQty'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''')AA'); + Open; + end; + OrderKg:=ADOQueryTemp.fieldbyname('PRTOrderKgHZQty').Value; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + if OrderKg>0 then + RMVariables['OrderKg']:='/'+Trim(FloatToStr(OrderKg))+'Kg' + else + RMVariables['OrderKg']:=''; + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderNewListSubZD.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderNewList_CY.dfm b/盛纺贸易管理/U_ProductOrderNewList_CY.dfm new file mode 100644 index 0000000..b3afa81 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_CY.dfm @@ -0,0 +1,981 @@ +object frmProductOrderNewList_CY: TfrmProductOrderNewList_CY + Left = 208 + Top = 82 + Width = 1087 + Height = 604 + Caption = #20986#36816#35745#21010 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1071 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object TBAdd: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object ToolButton2: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TChk: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = TChkClick + end + object TNOChk: TToolButton + Left = 567 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + OnClick = TNOChkClick + end + object TBExport: TToolButton + Left = 654 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 717 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 780 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ComboBox1: TComboBox + Left = 843 + Top = 3 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + Visible = False + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1071 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 287 + Top = 15 + Width = 52 + Height = 12 + Caption = #20986#36816#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 470 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 536 + Top = 67 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 683 + Top = 15 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 536 + Top = 91 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 378 + Top = 91 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 681 + Top = 91 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 681 + Top = 67 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 160 + Top = 16 + Width = 6 + Height = 12 + Caption = '-' + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 168 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 344 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + object CustomerNoName: TEdit + Tag = 2 + Left = 531 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 589 + Top = 63 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = OrderNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 732 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 590 + Top = 87 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = OrderNoChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 431 + Top = 87 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 710 + Top = 87 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 8 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 710 + Top = 63 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 9 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 91 + Width = 1071 + Height = 304 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #20986#36816#21333#21495 + DataBinding.FieldName = 'CYNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 103 + end + object v1Column15: TcxGridDBColumn + Caption = #23458#25143#31616#31216 + DataBinding.FieldName = 'orddefstr10' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #30003#35831#26085#26399 + DataBinding.FieldName = 'OrdDefDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column14: TcxGridDBColumn + Caption = #30003#35831#20154 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1OrdPerson2: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #33337#36816#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1Column7: TcxGridDBColumn + Caption = #20986#20179#26085#26399 + DataBinding.FieldName = 'OrdDefDate2' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1Column9: TcxGridDBColumn + Caption = #20986#36135#24635#25968#37327 + DataBinding.FieldName = 'ZSordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 80 + end + object v1Column3: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 76 + end + object v1Column8: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'MPRTBZNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 100 + end + object v1Column1: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 95 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 482 + Top = 145 + Width = 231 + Height = 216 + TabOrder = 3 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 229 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 206 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 83 + Top = 176 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 56 + Top = 24 + Width = 129 + Height = 145 + ItemIndex = 0 + Items.Strings = ( + #21253#35013#25351#31034#21333 + #39068#33394#26679) + TabOrder = 2 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 395 + Width = 1071 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 69 + Width = 1071 + Height = 22 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 5 + Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 22 + ClientRectRight = 1071 + ClientRectTop = 19 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 403 + Width = 1071 + Height = 163 + Align = alBottom + TabOrder = 6 + object Tv2: TcxGridDBTableView + OnDblClick = Tv2DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn3 + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column5: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column6: TcxGridDBColumn + Caption = #20135#21697#35268#26684 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + Width = 84 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #20986#36135#25968#37327 + DataBinding.FieldName = 'SordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneClMaroon + Styles.Footer = DataLink_TradeManage.FoneClMaroon + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PrtPrice' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #20986#36135#31665#25968 + DataBinding.FieldName = 'SordQty2' + Width = 60 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #31435#26041#25968 + DataBinding.FieldName = 'SordQty3' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column11: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'SordQty4' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'SordQty5' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column13: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SordQty6' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 137 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 580 + Top = 236 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 556 + Top = 416 + end + object DataSource2: TDataSource + DataSet = ADOQuerySub + Left = 488 + Top = 440 + end + object PMFJ: TPopupMenu + Left = 716 + Top = 272 + object NFJ: TMenuItem + Caption = #38468#20214 + end + end + object RMDB_SK: TRMDBDataSet + Visible = True + DataSet = CDS_SK + Left = 264 + Top = 244 + end + object CDS_SK: TClientDataSet + Aggregates = <> + Params = <> + Left = 304 + Top = 300 + end +end diff --git a/盛纺贸易管理/U_ProductOrderNewList_CY.pas b/盛纺贸易管理/U_ProductOrderNewList_CY.pas new file mode 100644 index 0000000..3f463be --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_CY.pas @@ -0,0 +1,846 @@ +unit U_ProductOrderNewList_CY; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxTextEdit, cxPC; + +type + TfrmProductOrderNewList_CY = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + ComboBox1: TComboBox; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + v1Column8: TcxGridDBColumn; + PMFJ: TPopupMenu; + NFJ: TMenuItem; + v1OrdPerson2: TcxGridDBColumn; + Label2: TLabel; + v1Column9: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + TChk: TToolButton; + TNOChk: TToolButton; + RMDB_SK: TRMDBDataSet; + CDS_SK: TClientDataSet; + v1Column10: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + v1Column14: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Button1Click(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2DblClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure TChkClick(Sender: TObject); + procedure TNOChkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + + procedure InitSub(); + procedure SetStatus(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderNewList_CY: TfrmProductOrderNewList_CY; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun, U_OrderInPut_CY; + +{$R *.dfm} +procedure TfrmProductOrderNewList_CY.SetStatus(); +begin + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + end; + 2:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + end; + 2:begin + end; + end; + end; +end; +procedure TfrmProductOrderNewList_CY.InitSub(); +begin + ADOQuerySub.Close; + IF Order_Main.IsEmpty then exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCY_sub '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; +end; + +procedure TfrmProductOrderNewList_CY.FormDestroy(Sender: TObject); +begin + frmProductOrderNewList_CY:=nil; +end; + +procedure TfrmProductOrderNewList_CY.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewList_CY.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); + cxTabControl1.TabIndex:=0; + SetStatus(); +end; + +procedure TfrmProductOrderNewList_CY.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + WriteCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); +end; + +procedure TfrmProductOrderNewList_CY.InitGrid(); +var + fwsql:string; +begin + fwsql:=''; + IF cxTabControl1.TabIndex<2 then + begin + fwsql:=fwsql+' and isnull(A.status,''0'')='''+inttostr(cxTabControl1.TabIndex)+''''; + end; + if Trim(DParameters1)<>'Ȩ' then + begin + fwsql:=fwsql+' and Filler='''+Trim(DName)+''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order_CY :begdate,:enddate,:WSql') ; + + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Parameters.ParamByName('WSql').Value:=fwsql; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmProductOrderNewList_CY.InitForm(); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + readCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmProductOrderNewList_CY.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList_CY.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + { if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FOrderNo:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmProductOrderNewList_CY.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCY_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JYOrderCY_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JY_CY_money where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('˵ɾ'))); + sql.Add(','+quotedstr(trim('ָ˵'+trim(Order_Main.FieldByName('OrderNO').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,self.Caption); +end; + +procedure TfrmProductOrderNewList_CY.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\֪ͨ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,b.* '); + // sql.Add(',ShippMent=(select Top 1 shippMent from JYOrdercon_main X where X.conNO=A.conNO) '); + //sql.Add(',Payment=(select Top 1 shippMent from JYOrdercon_main X where X.conNO=A.conNO) '); + sql.Add(',SYRName1=(select Top 1 SYRName from JYOrdercon_main X where X.conNO=A.conNO) '); + sql.Add(',ToPlace=(select Top 1 ToPlace from JYOrdercon_main X where X.conNO=A.conNO) '); + sql.Add('from JYOrderCY_Main A inner join JYOrderCY_Sub B on A.MainId=B.MainId '); + sql.Add('and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\֪ͨ.rmf'),'ʾ',0); + end; + + // Button1.Click; +end; + +procedure TfrmProductOrderNewList_CY.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + + end else + begin + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrder_Main Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); + Next; + end; + end; + end; +end; + +procedure TfrmProductOrderNewList_CY.TBAddClick(Sender: TObject); +begin + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList_CY.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewList_CY.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderNewList_CY.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewList_CY.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList_CY.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderNewList_CY.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewList_CY.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList_CY.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList_CY.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderNewList_CY.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmProductOrderNewList_CY.Button1Click(Sender: TObject); +var + fPrintFile:string; + Porderno,LBName,SYRName:string; + i,j:Integer; + OrderKg:Double; +begin + if Order_Main.IsEmpty then Exit; + LBName:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ; + if Trim(Order_Main.fieldbyname('SYRName').AsString)='' then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 B.ZdyName SYRName from JYOrderCon_Main A'); + sql.Add(' left join KH_Zdy B on A.SYRName=B.Note'); + sql.Add(' where A.ConNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + SYRName:=Trim(ADOQueryTemp.fieldbyname('SYRName').AsString); + end else + begin + SYRName:=Trim(Order_Main.fieldbyname('SYRName').AsString); + end; + + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('exec F_Get_Print_Order '); + sql.add('@mainID='+quotedstr(trim(Order_Main.fieldbyname('MainID').AsString))); + Open; + end; + + + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RMVariables['SYRName']:=Trim(SYRName); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmProductOrderNewList_CY.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmProductOrderNewList_CY.Tv2DblClick( + Sender: TObject); +var + fNO:string; +begin + IF ADOQuerySub.IsEmpty then exit; + ToolButton2.Click; + { with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select ATID from KH_Zdy_Attachment A'); + sql.Add('where zdyCode='+quotedstr(trim(ADOQuerySub.fieldbyname('prtCode').AsString))); + sql.Add('and Type='+quotedstr(trim('CP'))); + open; + if not IsEmpty then + begin + fNO:=trim(fieldbyname('ATID').AsString); + end; + end; + + try + frmZdyAttInputCP10:=TfrmZdyAttInputCP10.Create(Application); + with frmZdyAttInputCP10 do + begin + FATID:=Trim(fNO); + frmZdyAttInputCP10.Tsave.Enabled:=false; + if ShowModal=1 then + begin + // TBRafresh.Click; + end; + end; + finally + frmZdyAttInputCP10.Free; + end; + } +end; + +procedure TfrmProductOrderNewList_CY.Tv1DblClick(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmProductOrderNewList_CY.TChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrderCY_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('˵'))); + sql.Add(','+quotedstr(trim('˵ţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY.TNOChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrderCY_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('˵'))); + sql.Add(','+quotedstr(trim('˵ţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; + +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderNewList_CY_Sel.dfm b/盛纺贸易管理/U_ProductOrderNewList_CY_Sel.dfm new file mode 100644 index 0000000..35beb6e --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_CY_Sel.dfm @@ -0,0 +1,987 @@ +object frmProductOrderNewList_CY_Sel: TfrmProductOrderNewList_CY_Sel + Left = 147 + Top = 28 + Width = 1131 + Height = 604 + Caption = #20986#36816#35745#21010#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1123 + Height = 62 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + OnClick = ToolButton3Click + end + object TBAdd: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object ToolButton2: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + Wrap = True + Visible = False + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 0 + Top = 30 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + Visible = False + OnClick = ToolButton1Click + end + object TChk: TToolButton + Left = 63 + Top = 30 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + Visible = False + OnClick = TChkClick + end + object TNOChk: TToolButton + Left = 126 + Top = 30 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Visible = False + OnClick = TNOChkClick + end + object TBExport: TToolButton + Left = 213 + Top = 30 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 276 + Top = 30 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 339 + Top = 30 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ComboBox1: TComboBox + Left = 402 + Top = 33 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + Visible = False + end + end + object Panel1: TPanel + Left = 0 + Top = 62 + Width = 1123 + Height = 37 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 287 + Top = 15 + Width = 52 + Height = 12 + Caption = #20986#36816#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 470 + Top = 15 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 536 + Top = 67 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 683 + Top = 15 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 536 + Top = 91 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 378 + Top = 91 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 681 + Top = 91 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 681 + Top = 67 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 160 + Top = 16 + Width = 6 + Height = 12 + Caption = '-' + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 168 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 344 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + end + object CustomerNoName: TEdit + Tag = 2 + Left = 531 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 589 + Top = 63 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = OrderNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 732 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 590 + Top = 87 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = OrderNoChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 431 + Top = 87 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 710 + Top = 87 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 8 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 710 + Top = 63 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 9 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 121 + Width = 1123 + Height = 278 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1OrderNo: TcxGridDBColumn + Caption = #20986#36816#21333#21495 + DataBinding.FieldName = 'CYNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 85 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 103 + end + object v1Column2: TcxGridDBColumn + Caption = #30003#35831#26085#26399 + DataBinding.FieldName = 'OrdDefDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column14: TcxGridDBColumn + Caption = #30003#35831#20154 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1OrdPerson2: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #33337#36816#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1Column7: TcxGridDBColumn + Caption = #20986#20179#26085#26399 + DataBinding.FieldName = 'OrdDefDate2' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1Column9: TcxGridDBColumn + Caption = #20986#36135#24635#25968#37327 + DataBinding.FieldName = 'ZSordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 80 + end + object v1Column3: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 76 + end + object v1Column8: TcxGridDBColumn + Caption = #27880#24847#20107#39033 + DataBinding.FieldName = 'MPRTBZNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 100 + end + object v1Column1: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 95 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 482 + Top = 145 + Width = 231 + Height = 216 + TabOrder = 3 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 229 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 206 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 83 + Top = 176 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 56 + Top = 24 + Width = 129 + Height = 145 + ItemIndex = 0 + Items.Strings = ( + #21253#35013#25351#31034#21333 + #39068#33394#26679) + TabOrder = 2 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 399 + Width = 1123 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 99 + Width = 1123 + Height = 22 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 5 + Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #20840#37096) + Visible = False + OnChange = cxTabControl1Change + ClientRectBottom = 22 + ClientRectRight = 1123 + ClientRectTop = 19 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 407 + Width = 1123 + Height = 163 + Align = alBottom + TabOrder = 6 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn3 + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 35 + end + object v1Column5: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column6: TcxGridDBColumn + Caption = #20135#21697#35268#26684 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + Width = 84 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #20986#36135#25968#37327 + DataBinding.FieldName = 'SordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneClMaroon + Styles.Footer = DataLink_TradeManage.FoneClMaroon + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PrtPrice' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column4: TcxGridDBColumn + Caption = #20986#36135#31665#25968 + DataBinding.FieldName = 'SordQty2' + Width = 60 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #31435#26041#25968 + DataBinding.FieldName = 'SordQty3' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column11: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'SordQty4' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'SordQty5' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column13: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SordQty6' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 137 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 580 + Top = 236 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 556 + Top = 416 + end + object DataSource2: TDataSource + DataSet = ADOQuerySub + Left = 488 + Top = 440 + end + object PMFJ: TPopupMenu + Left = 716 + Top = 272 + object NFJ: TMenuItem + Caption = #38468#20214 + end + end + object RMDB_SK: TRMDBDataSet + Visible = True + DataSet = CDS_SK + Left = 264 + Top = 244 + end + object CDS_SK: TClientDataSet + Aggregates = <> + Params = <> + Left = 304 + Top = 300 + end +end diff --git a/盛纺贸易管理/U_ProductOrderNewList_CY_Sel.pas b/盛纺贸易管理/U_ProductOrderNewList_CY_Sel.pas new file mode 100644 index 0000000..4e4cebd --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_CY_Sel.pas @@ -0,0 +1,846 @@ +unit U_ProductOrderNewList_CY_Sel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxTextEdit, cxPC; + +type + TfrmProductOrderNewList_CY_Sel = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + ComboBox1: TComboBox; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + v1Column8: TcxGridDBColumn; + PMFJ: TPopupMenu; + NFJ: TMenuItem; + v1OrdPerson2: TcxGridDBColumn; + Label2: TLabel; + v1Column9: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + TChk: TToolButton; + TNOChk: TToolButton; + RMDB_SK: TRMDBDataSet; + CDS_SK: TClientDataSet; + v1Column10: TcxGridDBColumn; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + v1Column14: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Button1Click(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2DblClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure TChkClick(Sender: TObject); + procedure TNOChkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + + procedure InitSub(); + procedure SetStatus(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderNewList_CY_Sel: TfrmProductOrderNewList_CY_Sel; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun, U_OrderInPut_CY; + +{$R *.dfm} +procedure TfrmProductOrderNewList_CY_Sel.SetStatus(); +begin + tchk.Visible:=false; + tnochk.Visible:=false; + tbedit.Visible:=false; + tbdel.Visible:=false; + if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + end; + 2:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + end; + 2:begin + end; + end; + end; +end; +procedure TfrmProductOrderNewList_CY_Sel.InitSub(); +begin + ADOQuerySub.Close; + IF Order_Main.IsEmpty then exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderCY_sub '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.FormDestroy(Sender: TObject); +begin + frmProductOrderNewList_CY_Sel:=nil; +end; + +procedure TfrmProductOrderNewList_CY_Sel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewList_CY_Sel.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); + cxTabControl1.TabIndex:=1; + /// SetStatus(); +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + WriteCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); +end; + +procedure TfrmProductOrderNewList_CY_Sel.InitGrid(); +var + fwsql:string; +begin + fwsql:=''; + IF cxTabControl1.TabIndex<2 then + begin + fwsql:=fwsql+' and isnull(A.status,''0'')='''+inttostr(cxTabControl1.TabIndex)+''''; + end; + if Trim(DParameters1)<>'Ȩ' then + begin + // fwsql:=fwsql+' and Filler='''+Trim(DName)+''''; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order_CY :begdate,:enddate,:WSql') ; + + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Parameters.ParamByName('WSql').Value:=fwsql; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmProductOrderNewList_CY_Sel.InitForm(); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + readCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-30; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + { if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FOrderNo:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmProductOrderNewList_CY_Sel.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderCY_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JYOrderCY_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('delete JY_CY_money where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('˵ɾ'))); + sql.Add(','+quotedstr(trim('ָ˵'+trim(Order_Main.FieldByName('OrderNO').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,self.Caption); +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\֪ͨ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,b.* '); + // sql.Add(',ShippMent=(select Top 1 shippMent from JYOrdercon_main X where X.conNO=A.conNO) '); + //sql.Add(',Payment=(select Top 1 shippMent from JYOrdercon_main X where X.conNO=A.conNO) '); + sql.Add(',SYRName1=(select Top 1 SYRName from JYOrdercon_main X where X.conNO=A.conNO) '); + sql.Add(',ToPlace=(select Top 1 ToPlace from JYOrdercon_main X where X.conNO=A.conNO) '); + sql.Add('from JYOrderCY_Main A inner join JYOrderCY_Sub B on A.MainId=B.MainId '); + sql.Add('and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\֪ͨ.rmf'),'ʾ',0); + end; + + // Button1.Click; +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + + end else + begin + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrder_Main Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); + Next; + end; + end; + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBAddClick(Sender: TObject); +begin + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList_CY_Sel.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewList_CY_Sel.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderNewList_CY_Sel.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewList_CY_Sel.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList_CY_Sel.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderNewList_CY_Sel.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewList_CY_Sel.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList_CY_Sel.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList_CY_Sel.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut_CY:=TfrmOrderInPut_CY.Create(Application); + with frmOrderInPut_CY do + begin + PState:=1; + CopyInt:=99; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_CY.Free; + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.ToolButton3Click(Sender: TObject); +begin + IF Order_Main.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmProductOrderNewList_CY_Sel.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmProductOrderNewList_CY_Sel.Button1Click(Sender: TObject); +var + fPrintFile:string; + Porderno,LBName,SYRName:string; + i,j:Integer; + OrderKg:Double; +begin + if Order_Main.IsEmpty then Exit; + LBName:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBName)+'.rmf' ; + if Trim(Order_Main.fieldbyname('SYRName').AsString)='' then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 1 B.ZdyName SYRName from JYOrderCon_Main A'); + sql.Add(' left join KH_Zdy B on A.SYRName=B.Note'); + sql.Add(' where A.ConNo='''+Trim(Order_Main.fieldbyname('ConNo').AsString)+''''); + Open; + end; + SYRName:=Trim(ADOQueryTemp.fieldbyname('SYRName').AsString); + end else + begin + SYRName:=Trim(Order_Main.fieldbyname('SYRName').AsString); + end; + + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('exec F_Get_Print_Order '); + sql.add('@mainID='+quotedstr(trim(Order_Main.fieldbyname('MainID').AsString))); + Open; + end; + + + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RMVariables['SYRName']:=Trim(SYRName); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LBName)+'.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmProductOrderNewList_CY_Sel.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmProductOrderNewList_CY_Sel.Tv2DblClick( + Sender: TObject); +var + fNO:string; +begin + IF ADOQuerySub.IsEmpty then exit; + ToolButton2.Click; + { with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select ATID from KH_Zdy_Attachment A'); + sql.Add('where zdyCode='+quotedstr(trim(ADOQuerySub.fieldbyname('prtCode').AsString))); + sql.Add('and Type='+quotedstr(trim('CP'))); + open; + if not IsEmpty then + begin + fNO:=trim(fieldbyname('ATID').AsString); + end; + end; + + try + frmZdyAttInputCP10:=TfrmZdyAttInputCP10.Create(Application); + with frmZdyAttInputCP10 do + begin + FATID:=Trim(fNO); + frmZdyAttInputCP10.Tsave.Enabled:=false; + if ShowModal=1 then + begin + // TBRafresh.Click; + end; + end; + finally + frmZdyAttInputCP10.Free; + end; + } +end; + +procedure TfrmProductOrderNewList_CY_Sel.Tv1DblClick(Sender: TObject); +begin + ToolButton3.Click; +end; + +procedure TfrmProductOrderNewList_CY_Sel.TChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrderCY_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('˵'))); + sql.Add(','+quotedstr(trim('˵ţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.TNOChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrderCY_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('˵'))); + sql.Add(','+quotedstr(trim('˵ţ'+trim(Order_Main.FieldByName('conNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmProductOrderNewList_CY_Sel.cxTabControl1Change(Sender: TObject); +begin +// SetStatus(); + TBRafresh.Click; + +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderNewList_FB.dfm b/盛纺贸易管理/U_ProductOrderNewList_FB.dfm new file mode 100644 index 0000000..fb7ae32 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_FB.dfm @@ -0,0 +1,1030 @@ +object frmProductOrderNewList_FB: TfrmProductOrderNewList_FB + Left = 190 + Top = 126 + Width = 1102 + Height = 590 + Caption = #21457#31080#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1086 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object TBAdd: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #20316#24223 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBNodel: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25764#38144#20316#24223 + ImageIndex = 129 + Visible = False + OnClick = TBNodelClick + end + object ToolButton2: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 528 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TChk: TToolButton + Left = 591 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + Visible = False + OnClick = TChkClick + end + object TNOChk: TToolButton + Left = 654 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + Visible = False + OnClick = TNOChkClick + end + object TBExport: TToolButton + Left = 741 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 804 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 867 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ComboBox1: TComboBox + Left = 930 + Top = 3 + Width = 145 + Height = 24 + DropDownCount = 10 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + Visible = False + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1086 + Height = 63 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 28 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 202 + Top = 15 + Width = 53 + Height = 12 + Caption = #21457' '#31080' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 202 + Top = 39 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 536 + Top = 67 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 392 + Top = 15 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 536 + Top = 91 + Width = 54 + Height = 12 + Caption = #35268' '#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 378 + Top = 91 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 681 + Top = 91 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 681 + Top = 67 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 392 + Top = 39 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 85 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 85 + Top = 35 + Width = 85 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object invoiceNo: TEdit + Tag = 2 + Left = 259 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = invoiceNoChange + end + object orddefstr10: TEdit + Tag = 2 + Left = 259 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = invoiceNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 589 + Top = 63 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = invoiceNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 450 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = invoiceNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 590 + Top = 87 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 6 + OnChange = invoiceNoChange + end + object MPRTCode: TEdit + Tag = 2 + Left = 431 + Top = 87 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 7 + OnChange = invoiceNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 710 + Top = 87 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 8 + OnChange = invoiceNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 710 + Top = 63 + Width = 56 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 9 + OnChange = invoiceNoChange + end + object OrdPerson2: TEdit + Tag = 2 + Left = 450 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 10 + OnChange = invoiceNoChange + end + object RadioGroup2: TRadioGroup + Left = 640 + Top = 8 + Width = 213 + Height = 49 + Caption = #21457#31080#31867#22411 + Columns = 3 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ItemIndex = 2 + Items.Strings = ( + #20869#38144 + #22806#38144 + #20840#37096) + ParentFont = False + TabOrder = 11 + OnClick = RadioGroup2Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 115 + Width = 1086 + Height = 266 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = Tv1CustomDrawCell + OnFocusedRecordChanged = Tv1FocusedRecordChanged + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1invoceNO: TcxGridDBColumn + Caption = #21457#31080#21495 + DataBinding.FieldName = 'invoiceNO' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column4: TcxGridDBColumn + Caption = #21457#31080#31867#22411 + DataBinding.FieldName = 'Orddefstr15' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'orddefstr10' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 120 + end + object v1OrdPerson2: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson2' + HeaderAlignmentHorz = taCenter + Width = 87 + end + object v1Column9: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'ZSordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 80 + end + object v1Column3: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 76 + end + object v1Column2: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'prtmoney' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 93 + end + object v1OrdDefDate1: TcxGridDBColumn + Caption = #21040#27454#26085#26399 + DataBinding.FieldName = 'OrdDefDate1' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v1Column1: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 95 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel4: TPanel + Left = 163 + Top = 146 + Width = 231 + Height = 216 + TabOrder = 3 + Visible = False + object Label14: TLabel + Left = 48 + Top = 88 + Width = 6 + Height = 12 + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 229 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #25253#34920#21517#31216 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnMouseMove = Panel10MouseMove + object Image2: TImage + Left = 206 + Top = 3 + Width = 22 + Height = 16 + ParentShowHint = False + Picture.Data = { + 07544269746D617076040000424D760400000000000036000000280000001500 + 0000110000000100180000000000400400000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00FFFFFFFFFFFFF0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6 + F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFF404040404040404040404040404040404040404040404040 + 404040404040404040404040404040404040404040404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFF808080808080808080808080808080808080808080 + 808080808080808080808080808080808080808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000 + 000000C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4000000000000 + 000000000000C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4000000000000C8D0D4 + C8D0D4000000000000C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4000000000000C8D0D4C8D0D4 + C8D0D4C8D0D4000000000000C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFC8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4 + C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4C8D0D4808080404040F0CAA6FFFFFFFFFF + FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF00} + ShowHint = True + Transparent = True + OnClick = Image2Click + end + end + object Button1: TButton + Left = 83 + Top = 184 + Width = 75 + Height = 21 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + end + object RadioGroup1: TRadioGroup + Left = 56 + Top = 24 + Width = 129 + Height = 145 + ItemIndex = 0 + Items.Strings = ( + #35013#31665#21333 + #21512#21516#21457#31080) + TabOrder = 2 + end + end + object cxSplitter1: TcxSplitter + Left = 0 + Top = 381 + Width = 1086 + Height = 8 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salBottom + Control = cxGrid2 + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 95 + Width = 1086 + Height = 20 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Style = 9 + TabIndex = 0 + TabOrder = 5 + Tabs.Strings = ( + #27491#24120 + #24050#20316#24223 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 20 + ClientRectRight = 1086 + ClientRectTop = 19 + end + object cxGrid2: TcxGrid + Left = 0 + Top = 389 + Width = 1086 + Height = 163 + Align = alBottom + TabOrder = 6 + object Tv2: TcxGridDBTableView + PopupMenu = PopupMenu1 + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn3 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2prtmoney + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1XHNo: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 49 + end + object v2Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNO' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column5: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 104 + end + object v1Column6: TcxGridDBColumn + Caption = #20135#21697#35268#26684 + DataBinding.FieldName = 'PRTspec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 90 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #39068#33394'('#33521#25991')' + DataBinding.FieldName = 'SOrddefstr4' + Width = 98 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SordQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v2SordQty7: TcxGridDBColumn + Caption = #21253#25968 + DataBinding.FieldName = 'SordQty7' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 65 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PrtPrice' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2prtmoney: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'prtmoney' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 80 + end + object v2SordQty4: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'SordQty4' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v2SordQty5: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'SordQty5' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v2SordQty3: TcxGridDBColumn + Caption = #31435#26041#25968 + DataBinding.FieldName = 'SordQty3' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 69 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Width = 137 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 638 + Top = 277 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 303 + Top = 289 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 580 + Top = 236 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 337 + Top = 288 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 556 + Top = 416 + end + object DataSource2: TDataSource + DataSet = ADOQuerySub + Left = 488 + Top = 440 + end + object PMFJ: TPopupMenu + Left = 716 + Top = 272 + object NFJ: TMenuItem + Caption = #38468#20214 + end + end + object RMDB_SK: TRMDBDataSet + Visible = True + DataSet = CDS_SK + Left = 170 + Top = 274 + end + object CDS_SK: TClientDataSet + Aggregates = <> + Params = <> + Left = 201 + Top = 275 + end + object CDS_Print1: TClientDataSet + Aggregates = <> + Params = <> + Left = 378 + Top = 289 + end + object RMDBMainZX: TRMDBDataSet + Visible = True + DataSet = CDS_Print1 + Left = 407 + Top = 290 + end +end diff --git a/盛纺贸易管理/U_ProductOrderNewList_FB.pas b/盛纺贸易管理/U_ProductOrderNewList_FB.pas new file mode 100644 index 0000000..8dae354 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_FB.pas @@ -0,0 +1,1022 @@ +unit U_ProductOrderNewList_FB; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxTextEdit, cxPC; + +type + TfrmProductOrderNewList_FB = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + invoiceNo: TEdit; + TBExport: TToolButton; + v1OrdDate: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + orddefstr10: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + ToolButton1: TToolButton; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + MPRTCode: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ToolButton2: TToolButton; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + ComboBox1: TComboBox; + Panel4: TPanel; + Label14: TLabel; + Panel10: TPanel; + Image2: TImage; + Button1: TButton; + RadioGroup1: TRadioGroup; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxSplitter1: TcxSplitter; + ADOQuerySub: TADOQuery; + DataSource2: TDataSource; + PMFJ: TPopupMenu; + NFJ: TMenuItem; + v1OrdPerson2: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + TChk: TToolButton; + TNOChk: TToolButton; + RMDB_SK: TRMDBDataSet; + CDS_SK: TClientDataSet; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v1XHNo: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + v1invoceNO: TcxGridDBColumn; + v2prtmoney: TcxGridDBColumn; + v2SordQty4: TcxGridDBColumn; + v2SordQty5: TcxGridDBColumn; + v2SordQty3: TcxGridDBColumn; + v1OrdDefDate1: TcxGridDBColumn; + Label2: TLabel; + OrdPerson2: TEdit; + RadioGroup2: TRadioGroup; + v2SordQty7: TcxGridDBColumn; + CDS_Print1: TClientDataSet; + RMDBMainZX: TRMDBDataSet; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + TBNodel: TToolButton; + v2Column1: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure invoiceNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure Button1Click(Sender: TObject); + procedure Image2Click(Sender: TObject); + procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + procedure Tv2DblClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure TChkClick(Sender: TObject); + procedure TNOChkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure RadioGroup2Click(Sender: TObject); + procedure TBNodelClick(Sender: TObject); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + + procedure InitSub(); + procedure SetStatus(); + { Private declarations } + public + FFInt,FCloth:Integer; + ftype: string; + + { Public declarations } + end; + +var + frmProductOrderNewList_FB: TfrmProductOrderNewList_FB; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun, U_OrderInPut_CY, U_OrderInPut_FB; + +{$R *.dfm} +procedure TfrmProductOrderNewList_FB.SetStatus(); +begin + tchk.Visible:=false; + tnochk.Visible:=false; + TBDel.Visible:=false; + TBNodel.Visible:=false; + TBEdit.Visible:=false; + case cxTabControl1.TabIndex of + 0:begin + TBDel.Visible:=true; + TBEdit.Visible:=true; + end; + 1:begin + TBNodel.Visible:=true; + end; + 2:begin + end; + end; +{ if Trim(DParameters1)<>'Ȩ' then + begin + case cxTabControl1.TabIndex of + 0:begin + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + end; + 2:begin + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + tchk.Visible:=true; + tbedit.Visible:=true; + tbdel.Visible:=true; + end; + 1:begin + tnochk.Visible:=true; + end; + 2:begin + end; + end; + end; } +end; + +procedure TfrmProductOrderNewList_FB.InitSub(); +begin + ADOQuerySub.Close; + IF Order_Main.IsEmpty then exit; + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderFB_sub '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; +end; + +procedure TfrmProductOrderNewList_FB.FormDestroy(Sender: TObject); +begin + frmProductOrderNewList_FB:=nil; +end; + +procedure TfrmProductOrderNewList_FB.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewList_FB.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + DQdate:=SGetServerDate(ADOQueryTemp); + cxTabControl1.TabIndex:=0; + SetStatus(); +end; + +procedure TfrmProductOrderNewList_FB.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + WriteCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); +end; + +procedure TfrmProductOrderNewList_FB.InitGrid(); +var + fwsql:string; +begin + fwsql:=''; + IF cxTabControl1.TabIndex<2 then + begin + fwsql:=fwsql+' and isnull(A.status,''0'')='''+inttostr(cxTabControl1.TabIndex)+''''; + end; + if Trim(DParameters1)<>'Ȩ' then + begin + // fwsql:=fwsql+' and Filler='''+Trim(DName)+''''; + end; + if Trim(DParameters1)='ҵԱ' then + begin + fwsql:=fwsql+' and OrdPerson2='''+Trim(DName)+''''; + end; + try + // ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order_FB :begdate,:enddate,:WSql'); + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Parameters.ParamByName('WSql').Value:=fwsql; + // ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + // ADOQueryMain.EnableControls; + end; + TBFind.Click; +end; + + +procedure TfrmProductOrderNewList_FB.InitForm(); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + readCxGrid(self.Caption+tv2.Name,Tv2,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + if Trim(ftype)='' then + begin + TBAdd.Visible:=false; + TBEdit.Visible:=False; + TBDel.Visible:=False; + end; +{ if Trim(ftype)<>'' then + begin + RadioGroup2.ItemIndex:=RadioGroup2.Items.IndexOf(Trim(Ftype)); + if RadioGroup2.ItemIndex>=0 then + begin + RadioGroup2.Enabled:=false; + end + else + RadioGroup2.ItemIndex:=2; + end; } + InitGrid(); +end; + +procedure TfrmProductOrderNewList_FB.TBFindClick(Sender: TObject); +var strwhere: string; +begin + if ADOQueryMain.Active=False then Exit; + strwhere:=SGetFilters(Panel1,1,2); + if strwhere='' then + begin + IF RadioGroup2.ItemIndex<2 then + strwhere:=strwhere+' OrdDefStr15='''+trim(RadioGroup2.Items.Strings[RadioGroup2.itemindex])+''''; + end + else + begin + IF RadioGroup2.ItemIndex<2 then + strwhere:=strwhere+' and OrdDefStr15='''+trim(RadioGroup2.Items.Strings[RadioGroup2.itemindex])+''''; + end; + SDofilter(ADOQueryMain,strwhere); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList_FB.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + { if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } + try + frmOrderInPut_FB:=TfrmOrderInPut_FB.Create(Application); + with frmOrderInPut_FB do + begin + PState:=1; + ftype:=Self.ftype; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FOrderNo:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmOrderInPut_FB.Free; + end; +end; + +procedure TfrmProductOrderNewList_FB.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + + if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + Order_Main.Delete; + end; +end; + +function TfrmProductOrderNewList_FB.DelData():Boolean; +var + CRID:string; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + open; + IF not isempty then + begin + CRID:=fieldbyname('CRID').AsString; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update JYOrderFB_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + // sql.Add('delete JYOrderFB_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + // sql.Add('delete JYOrderFB_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''' '); + sql.Add('delete YF_Money_CR where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''' '); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('Ʊ'))); + sql.Add(','+quotedstr(trim('Ʊţ'+trim(Order_Main.FieldByName('invoiceNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID) '); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID) '); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderNewList_FB.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,self.Caption); +end; + +procedure TfrmProductOrderNewList_FB.TBPrintClick(Sender: TObject); +var + fPrintFile:string; +begin + if Order_Main.IsEmpty then Exit; + {with ADOQueryPrint do + begin + close; + sql.Clear; + sql.Add('select A.*,B.*,E.MPRTType,E.BankSelfFastNo,E.BankAddress,'); + SQL.Add('OrderUnit=(select Top 1 OrderUnit from JYOrderFB_Sub B where B.MainId=A.MainId),'); + SQL.Add('ZSordQty1=(select Sum(SordQty1) from JYOrderFB_Sub B where B.MainId=A.MainId group by B.MainId) '); + sql.Add('from JYOrderFB_Main A inner join JYOrderFB_Sub B on A.MainId=B.MainId '); + sql.Add('left join JYOrderCY_sub C on C.Subid=B.Sorddefstr10 '); + sql.Add('left join JYOrderCY_Main D on D.mainID=C.mainID '); + sql.Add('left join JYOrderCon_Main E on E.conNO=D.conNO '); + sql.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + if Trim(ADOQueryPrint.FieldByName('MPRTType').AsString)='' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬƱ1.rmf'; + end + else + fPrintFile:= ExtractFilePath(Application.ExeName)+'Report\ͬƱ2.rmf'; + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ͬƱ.rmf'),'ʾ',0); + end;} + //Panel4.Visible:=True; + button1.Click; +end; + +procedure TfrmProductOrderNewList_FB.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + + end + else + begin + InitGrid(); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select Top 10* from JYOrderFB_Main Order by FillTime desc'); + Open; + end; + ComboBox1.Clear; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); + Next; + end; + end; + end; +end; + +procedure TfrmProductOrderNewList_FB.TBAddClick(Sender: TObject); +begin + try + frmOrderInPut_FB:=TfrmOrderInPut_FB.Create(Application); + with frmOrderInPut_FB do + begin + PState:=0; + FMainId:=''; + ftype:=Self.ftype; + if ShowModal=1 then + begin + InitGrid(); + end; + end; + finally + frmOrderInPut_FB.Free; + end; +end; + +procedure TfrmProductOrderNewList_FB.invoiceNoChange(Sender: TObject); +begin + TBFind.Click +end; + +procedure TfrmProductOrderNewList_FB.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewList_FB.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderNewList_FB.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewList_FB.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList_FB.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderNewList_FB.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewList_FB.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList_FB.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList_FB.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut_FB:=TfrmOrderInPut_FB.Create(Application); + with frmOrderInPut_FB do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + ToolBar2.Visible:=False; + TBSave.Visible:=False; + Panel1.Enabled:=False; + Tv1.OptionsSelection.CellSelect:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_FB.Free; + end; +end; + +procedure TfrmProductOrderNewList_FB.ToolButton2Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmOrderInPut_FB:=TfrmOrderInPut_FB.Create(Application); + with frmOrderInPut_FB do + begin + PState:=1; + CopyInt:=99; + + ftype:=Self.ftype; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FOrderNo:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderInPut_FB.Free; + end; +end; + +procedure TfrmProductOrderNewList_FB.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderNewList_FB.Panel10MouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + ReleaseCapture; + TWinControl(Panel4).Perform(WM_SYSCOMMAND,$F012,0); +end; + +procedure TfrmProductOrderNewList_FB.Button1Click(Sender: TObject); +var + fPrintFile:string; + Porderno,LBName,SYRName:string; + i,j:Integer; + OrderKg:Double; +begin + if Order_Main.IsEmpty then Exit; + {LBName:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; + if LBName='װ䵥' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\װ䵥.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select AA.OrdDefStr14,AA.OrdDefStr13,AA.CustomerNoName,AA.InvoiceNo,AA.ConNo,AA.Orddate,AA.OrdDefStr4,AA.orddefstr3,AA.OrdDefStr15,AA.PRTColor,AA.SordQty7,'); + SQL.Add('AA.PrtCodeName,AA.PRTspec,AA.KHConNO,AA.Mainid,AA.OrderUnit,Sum(AA.SordQty1) SL,SUM(AA.Sordqty4) MZ,SUM(AA.SordQty5) JZ,SUM(AA.SordQty3) LFS from ( '); + SQL.Add('select A.OrdDefStr14,A.CustomerNoName,A.OrdDefStr13,A.InvoiceNo,A.ConNo,A.Orddate,A.OrdDefStr4,A.orddefstr3,A.OrdDefStr15,'); + SQL.Add('B.PrtCodeName,B.PRTspec,A.KHConNO,A.Mainid,B.SordQty1,B.Sordqty4,B.SordQty5,B.SordQty3,B.PRTColor,B.SordQty7,'); + SQL.Add('OrderUnit=(select Top 1 OrderUnit from JYOrderFB_Sub B where B.MainId=A.MainId) '); + SQL.Add('from JYOrderFB_Main A inner join JYOrderFB_Sub B on A.MainId=B.MainId where B.PRTColor<>'''') AA '); + sql.Add('where AA.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + + sql.Add('group by AA.OrdDefStr14,AA.OrdDefStr13,AA.CustomerNoName,AA.InvoiceNo,AA.ConNo,AA.Orddate,AA.OrdDefStr4,AA.orddefstr3,AA.OrdDefStr15,AA.PRTColor,AA.SordQty7,'); + sql.Add('AA.PrtCodeName,AA.PRTspec,AA.KHConNO,AA.Mainid,AA.OrderUnit '); + sql.add('order by AA.PrtCodeName,AA.PRTspec,AA.PRTColor,AA.KHConNO'); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + end + else + begin + with ADOQueryPrint do + begin + close; + sql.Clear; + sql.Add('select A.*,B.*,D.MaiTouNote,E.MPRTType,E.BankSelfFastNo,E.BankAddress,'); + SQL.Add('OrderUnit=(select Top 1 OrderUnit from JYOrderFB_Sub B where B.MainId=A.MainId),'); + SQL.Add('ZSordQty1=(select Sum(SordQty1) from JYOrderFB_Sub B where B.MainId=A.MainId group by B.MainId) '); + sql.Add('from JYOrderFB_Main A inner join JYOrderFB_Sub B on A.MainId=B.MainId '); + sql.Add('left join JYOrderCY_sub C on C.Subid=B.Sorddefstr10 '); + sql.Add('left join JYOrderCY_Main D on D.mainID=C.mainID '); + sql.Add('left join JYOrderCon_Main E on E.conNO=D.conNO '); + sql.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + if Trim(CDS_Print.fieldbyname('OrdDefStr15').AsString)='' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬƱ1.rmf'; + end + else + fPrintFile:= ExtractFilePath(Application.ExeName)+'Report\ͬƱ2.rmf'; + end;} + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select AA.OrdDefStr14,AA.OrdDefStr13,AA.CustomerNoName,AA.InvoiceNo,AA.ConNo,AA.Orddate,AA.OrdDefStr4,AA.orddefstr3,AA.OrdDefStr15,AA.PRTColor,AA.SordQty7,'); + SQL.Add('AA.PrtCodeName,AA.PRTspec,AA.KHConNO,AA.Mainid,AA.OrderUnit,Sum(AA.SordQty1) SL,SUM(AA.Sordqty4) MZ,SUM(AA.SordQty5) JZ,SUM(AA.SordQty3) LFS from ( '); + SQL.Add('select A.OrdDefStr14,A.CustomerNoName,A.OrdDefStr13,A.InvoiceNo,A.ConNo,A.Orddate,A.OrdDefStr4,A.orddefstr3,A.OrdDefStr15,'); + SQL.Add('B.PrtCodeName,B.PRTspec,A.KHConNO,A.Mainid,B.SordQty1,B.Sordqty4,B.SordQty5,B.SordQty3,B.PRTColor,B.SordQty7,'); + SQL.Add('OrderUnit=(select Top 1 OrderUnit from JYOrderFB_Sub B where B.MainId=A.MainId) '); + SQL.Add('from JYOrderFB_Main A inner join JYOrderFB_Sub B on A.MainId=B.MainId where B.PRTColor<>'''') AA '); + sql.Add('where AA.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add('group by AA.OrdDefStr14,AA.OrdDefStr13,AA.CustomerNoName,AA.InvoiceNo,AA.ConNo,AA.Orddate,AA.OrdDefStr4,AA.orddefstr3,AA.OrdDefStr15,AA.PRTColor,AA.SordQty7,'); + sql.Add('AA.PrtCodeName,AA.PRTspec,AA.KHConNO,AA.Mainid,AA.OrderUnit '); + sql.add('order by AA.PrtCodeName,AA.PRTspec,AA.PRTColor,AA.KHConNO'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_Print1); + SInitCDSData20(ADOQueryTemp,CDS_Print1); + with ADOQueryPrint do + begin + close; + sql.Clear; + sql.Add('select A.*,B.*,D.MaiTouNote,E.MPRTType,E.BankSelfFastNo,E.BankAddress,'); + SQL.Add('OrderUnit=(select Top 1 OrderUnit from JYOrderFB_Sub B where B.MainId=A.MainId),'); + SQL.Add('ZSordQty1=(select Sum(SordQty1) from JYOrderFB_Sub B where B.MainId=A.MainId group by B.MainId) '); + sql.Add('from JYOrderFB_Main A inner join JYOrderFB_Sub B on A.MainId=B.MainId '); + sql.Add('left join JYOrderCY_sub C on C.Subid=B.Sorddefstr10 '); + sql.Add('left join JYOrderCY_Main D on D.mainID=C.mainID '); + sql.Add('left join JYOrderCon_Main E on E.conNO=D.conNO '); + sql.Add('where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + sql.add('order by B.PrtCodeName,B.PRTspec,B.PRTColor,A.KHConNO'); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + if Trim(CDS_Print.fieldbyname('OrdDefStr15').AsString)='' then + begin + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ͬƱ1.rmf'; + end + else + fPrintFile:= ExtractFilePath(Application.ExeName)+'Report\ͬƱ2.rmf'; + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end + else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ͬƱ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderNewList_FB.Image2Click(Sender: TObject); +begin + Panel4.Visible:=False; +end; + +procedure TfrmProductOrderNewList_FB.Tv1FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + InitSub(); +end; + +procedure TfrmProductOrderNewList_FB.Tv2DblClick( + Sender: TObject); +var + fNO:string; +begin + IF ADOQuerySub.IsEmpty then exit; + ToolButton2.Click; + { with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select ATID from KH_Zdy_Attachment A'); + sql.Add('where zdyCode='+quotedstr(trim(ADOQuerySub.fieldbyname('prtCode').AsString))); + sql.Add('and Type='+quotedstr(trim('CP'))); + open; + if not IsEmpty then + begin + fNO:=trim(fieldbyname('ATID').AsString); + end; + end; + + try + frmZdyAttInputCP10:=TfrmZdyAttInputCP10.Create(Application); + with frmZdyAttInputCP10 do + begin + FATID:=Trim(fNO); + frmZdyAttInputCP10.Tsave.Enabled:=false; + if ShowModal=1 then + begin + // TBRafresh.Click; + end; + end; + finally + frmZdyAttInputCP10.Free; + end; + } +end; + +procedure TfrmProductOrderNewList_FB.Tv1DblClick(Sender: TObject); +begin +// ToolButton1.Click; +end; + +procedure TfrmProductOrderNewList_FB.TChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrderFB_Main SET status=''1'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('Ʊ'))); + sql.Add(','+quotedstr(trim('Ʊţ'+trim(Order_Main.FieldByName('invoiceNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmProductOrderNewList_FB.TNOChkClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update JYOrderCY_Main SET status=''0'' '); + sql.Add('where mainID='+quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('Ʊ'))); + sql.Add(','+quotedstr(trim('Ʊţ'+trim(Order_Main.FieldByName('invoiceNo').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + ADOQueryCmd.Connection.CommitTrans; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmProductOrderNewList_FB.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList_FB.RadioGroup2Click(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmProductOrderNewList_FB.TBNodelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + { if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } + try + frmOrderInPut_FB:=TfrmOrderInPut_FB.Create(Application); + with frmOrderInPut_FB do + begin + PState:=1; + ftype:=Self.ftype; + TBSave.Caption:=''; + FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); + FOrderNo:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + InitGrid(); + end; + + end; + finally + frmOrderInPut_FB.TBSave.Caption:=''; + frmOrderInPut_FB.Free; + end; +end; + +procedure TfrmProductOrderNewList_FB.Tv1CustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('prtmoney').Index]<0 then + begin + // ACanvas.Brush.Color:=Clgreen; + ACanvas.Brush.Color:=clLime; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderNewList_JD.dfm b/盛纺贸易管理/U_ProductOrderNewList_JD.dfm new file mode 100644 index 0000000..b783765 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_JD.dfm @@ -0,0 +1,1369 @@ +object frmProductOrderNewList_JD: TfrmProductOrderNewList_JD + Left = 192 + Top = 136 + Width = 1337 + Height = 697 + Caption = #29983#20135#25351#31034#21333#36827#24230#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1321 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1321 + Height = 70 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 223 + Top = 16 + Width = 56 + Height = 13 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 390 + Top = 16 + Width = 44 + Height = 13 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 349 + Top = 116 + Width = 28 + Height = 13 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 389 + Top = 42 + Width = 42 + Height = 13 + Caption = #19994#21153#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 544 + Top = 16 + Width = 28 + Height = 13 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 223 + Top = 42 + Width = 58 + Height = 13 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 478 + Top = 107 + Width = 56 + Height = 13 + Caption = #20844#21496#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 624 + Top = 91 + Width = 56 + Height = 13 + Caption = #37197#36135#29366#24577 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 514 + Top = 151 + Width = 28 + Height = 13 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label24: TLabel + Left = 774 + Top = 96 + Width = 56 + Height = 13 + Caption = #35746#21333#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 710 + Top = 133 + Width = 24 + Height = 13 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label1: TLabel + Left = 683 + Top = 42 + Width = 42 + Height = 13 + Caption = #22238#20179#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 544 + Top = 42 + Width = 42 + Height = 13 + Caption = #25237#22383#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 111 + Top = 12 + Width = 96 + Height = 21 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 111 + Top = 38 + Width = 97 + Height = 21 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 282 + Top = 12 + Width = 83 + Height = 21 + TabOrder = 2 + OnChange = OrderNoChange + OnKeyPress = MPRTCodeNameKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 437 + Top = 12 + Width = 82 + Height = 21 + TabOrder = 3 + OnChange = OrderNoChange + OnKeyPress = MPRTCodeNameKeyPress + end + object JGFactoryName: TEdit + Tag = 2 + Left = 380 + Top = 112 + Width = 83 + Height = 21 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + OnChange = OrderNoChange + end + object YWY: TEdit + Tag = 2 + Left = 437 + Top = 38 + Width = 82 + Height = 21 + TabOrder = 5 + OnChange = OrderNoChange + OnKeyPress = MPRTCodeNameKeyPress + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 575 + Top = 12 + Width = 102 + Height = 21 + TabOrder = 6 + OnChange = OrderNoChange + OnKeyPress = MPRTCodeNameKeyPress + end + object ConNoHZ: TEdit + Tag = 2 + Left = 282 + Top = 38 + Width = 83 + Height = 21 + TabOrder = 7 + OnChange = OrderNoChange + OnKeyPress = MPRTCodeNameKeyPress + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 536 + Top = 103 + Width = 83 + Height = 21 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 8 + OnChange = OrderNoChange + end + object ISPH: TComboBox + Tag = 2 + Left = 680 + Top = 87 + Width = 84 + Height = 21 + Style = csDropDownList + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 13 + ItemIndex = 0 + TabOrder = 9 + OnChange = OrderNoChange + Items.Strings = ( + '' + #26410#37197#36135 + #24050#37197#36135) + end + object PrtColor: TEdit + Tag = 2 + Left = 653 + Top = 142 + Width = 83 + Height = 21 + TabOrder = 10 + Visible = False + OnChange = OrderNoChange + end + object orderType: TComboBox + Tag = 2 + Left = 833 + Top = 92 + Width = 82 + Height = 21 + Style = csDropDownList + Ctl3D = False + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 13 + ParentCtl3D = False + TabOrder = 11 + OnChange = OrderNoChange + Items.Strings = ( + #27491#24120#21333 + #21098#26679#21333) + end + object khConNo: TEdit + Tag = 2 + Left = 771 + Top = 129 + Width = 83 + Height = 21 + TabOrder = 12 + Visible = False + OnChange = OrderNoChange + end + object Than: TComboBox + Left = 586 + Top = 38 + Width = 92 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 13 + OnChange = ThanChange + Items.Strings = ( + #22823#20110 + #23567#20110#25110#31561#20110 + '') + end + object ComboBox1: TComboBox + Left = 20 + Top = 13 + Width = 91 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + ItemIndex = 0 + TabOrder = 14 + Text = #21046#21333#26085#26399 + OnChange = ComboBox1Change + Items.Strings = ( + #21046#21333#26085#26399 + #20986#24211#26085#26399 + #25253#20851#26085#26399) + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 102 + Width = 1321 + Height = 555 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = v1Column6 + end + item + Kind = skSum + Position = spFooter + Column = v1Column9 + end + item + Kind = skSum + Position = spFooter + Column = v1Column1 + end + item + Kind = skSum + Position = spFooter + Column = v1Column19 + end + item + Kind = skSum + Position = spFooter + Column = v1Column14 + end + item + Kind = skSum + Position = spFooter + Column = v1Column11 + end + item + Kind = skSum + Position = spFooter + Column = v1jyCP_RollNum + end + item + Kind = skSum + Position = spFooter + Column = v1jyCP_KGQty + end + item + Kind = skSum + Position = spFooter + Column = v1Column20 + end + item + Kind = skSum + Position = spFooter + Column = v1Column21 + end + item + Kind = skSum + Position = spFooter + Column = v1Column2 + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column1 + end + item + Kind = skSum + Column = v1Column19 + end + item + Kind = skSum + Column = v1Column14 + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1jyCP_RollNum + end + item + Kind = skSum + Column = v1jyCP_KGQty + end + item + Kind = skSum + Column = v1Column20 + end + item + Kind = skSum + Column = v1Column21 + end + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Position = spFooter + Column = v1Column22 + end + item + Kind = skSum + Position = spFooter + Column = v1RK_KGQty + end + item + Kind = skSum + Position = spFooter + Column = v1Column5 + end + item + Kind = skSum + Position = spFooter + Column = v1Column24 + end + item + Kind = skSum + Position = spFooter + Column = v1Column23 + end + item + Kind = skSum + Position = spFooter + Column = v1Column27 + end + item + Kind = skSum + Position = spFooter + Column = v1Column13 + end + item + Kind = skSum + Position = spFooter + Column = v1Column26 + end + item + Kind = skSum + Position = spFooter + Column = v1Column28 + end + item + Kind = skSum + Position = spFooter + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column22 + end + item + Kind = skSum + Column = v1RK_KGQty + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column24 + end + item + Kind = skSum + Column = v1Column23 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column13 + end + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column25 + end + item + Kind = skSum + Position = spFooter + Column = v1Column25 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column1 + end + item + Kind = skSum + Column = v1Column19 + end + item + Kind = skSum + Column = v1Column14 + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1jyCP_RollNum + end + item + Kind = skSum + Column = v1jyCP_KGQty + end + item + Kind = skSum + Column = v1Column20 + end + item + Kind = skSum + Column = v1Column21 + end + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1Column22 + end + item + Kind = skSum + Column = v1RK_KGQty + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column24 + end + item + Kind = skSum + Column = v1Column23 + end + item + Kind = skSum + Column = v1Column27 + end + item + Kind = skSum + Column = v1Column13 + end + item + Kind = skSum + Column = v1Column26 + end + item + Kind = skSum + Column = v1Column28 + end + item + Kind = skSum + Column = v1Column29 + end + item + Kind = skSum + Column = v1Column25 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSeCuLan + Styles.IncSearch = DataLink_TradeManage.SHuangSeCuLan + Styles.Selection = DataLink_TradeManage.SHuangSeCuLan + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1YWY: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'YWY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 71 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 65 + end + object v1BGDate: TcxGridDBColumn + Caption = #25253#20851#26085#26399 + DataBinding.FieldName = 'BGDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnEditValueChanged = v1BGDatePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1ZXCKDate: TcxGridDBColumn + Caption = #26368#36817#20986#24211#26085#26399 + DataBinding.FieldName = 'ZXCKDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 94 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPrtSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPrtSpec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PrtOrderQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 60 + end + object v1ordderNote1: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'orderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 60 + end + object v1Column6: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'TP_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclFuchsia + Styles.Footer = cxStyle_fontclFuchsia + Styles.Header = cxStyle_fontclFuchsia + Width = 60 + end + object v1Column7: TcxGridDBColumn + Caption = #25237#22383#25968#37327 + DataBinding.FieldName = 'TP_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclFuchsia + Styles.Footer = cxStyle_fontclFuchsia + Styles.Header = cxStyle_fontclFuchsia + Width = 60 + end + object v1Column12: TcxGridDBColumn + Caption = #25237#22383#21333#20301 + DataBinding.FieldName = 'TP_unit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclFuchsia + Styles.Footer = cxStyle_fontclFuchsia + Styles.Header = cxStyle_fontclFuchsia + Width = 60 + end + object v1Column9: TcxGridDBColumn + Caption = #22238#20179#21305#25968 + DataBinding.FieldName = 'HC_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 84 + end + object v1Column10: TcxGridDBColumn + Caption = #22238#20179#25968#37327 + DataBinding.FieldName = 'HC_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 84 + end + object v1Column8: TcxGridDBColumn + Caption = #22238#20179#21333#20301 + DataBinding.FieldName = 'HC_Unit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 62 + end + object v1BPYJSH: TcxGridDBColumn + Caption = #30333#22383#39044#35745#25439#32791'%' + DataBinding.FieldName = 'BPYJSH' + OnCustomDrawCell = v1BPYJSHCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 91 + end + object v1Column15: TcxGridDBColumn + Caption = #30333#22383#25968#37327#24046 + DataBinding.FieldName = 'TP_SH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 79 + end + object v1Column16: TcxGridDBColumn + Caption = #30333#22383#25439#32791'%' + DataBinding.FieldName = 'TP_SL' + OnCustomDrawCell = v1BPYJSHCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclGreen + Styles.Footer = cxStyle_fontclGreen + Styles.Header = cxStyle_fontclGreen + Width = 65 + end + object v1Column1: TcxGridDBColumn + Caption = #26816#39564#21305#25968 + DataBinding.FieldName = 'jy_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 75 + end + object v1Column19: TcxGridDBColumn + Caption = #26816#39564#20844#26020#25968 + DataBinding.FieldName = 'jy_KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 91 + end + object v1Column14: TcxGridDBColumn + Caption = #26816#39564#31859#25968 + DataBinding.FieldName = 'jy_QtyM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 78 + end + object v1Column11: TcxGridDBColumn + Caption = #26816#39564#30721#25968 + DataBinding.FieldName = 'jy_QtyY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 83 + end + object v1Column3: TcxGridDBColumn + Caption = #26816#39564#26680#31639#25968 + DataBinding.FieldName = 'jy_QtyJS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 91 + end + object v1Column17: TcxGridDBColumn + Caption = #26816#39564#25968#37327#24046 + DataBinding.FieldName = 'JY_SH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 77 + end + object v1JYYJSH: TcxGridDBColumn + Caption = #26816#39564#39044#35745#25439#32791'%' + DataBinding.FieldName = 'JYYJSH' + OnCustomDrawCell = v1JYYJSHCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 91 + end + object v1Column18: TcxGridDBColumn + Caption = #26816#39564#25439#32791'%' + DataBinding.FieldName = 'JY_SL' + OnCustomDrawCell = v1JYYJSHCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclBlue + Styles.Footer = cxStyle_fontclBlue + Styles.Header = cxStyle_fontclBlue + Width = 77 + end + object v1jyCP_RollNum: TcxGridDBColumn + Caption = #27425#21697#21305#25968 + DataBinding.FieldName = 'jyCP_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclTeal + Styles.Footer = cxStyle_fontclTeal + Styles.Header = cxStyle_fontclTeal + Width = 75 + end + object v1jyCP_KGQty: TcxGridDBColumn + Caption = #27425#21697#20844#26020#25968#37327 + DataBinding.FieldName = 'jyCP_KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclTeal + Styles.Footer = cxStyle_fontclTeal + Styles.Header = cxStyle_fontclTeal + Width = 76 + end + object v1Column20: TcxGridDBColumn + Caption = #27425#21697#31859#25968 + DataBinding.FieldName = 'jyCP_QtyM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclTeal + Styles.Footer = cxStyle_fontclTeal + Styles.Header = cxStyle_fontclTeal + Width = 65 + end + object v1Column21: TcxGridDBColumn + Caption = #27425#21697#30721#25968 + DataBinding.FieldName = 'jyCP_QtyY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclTeal + Styles.Footer = cxStyle_fontclTeal + Styles.Header = cxStyle_fontclTeal + Width = 61 + end + object v1Column2: TcxGridDBColumn + Caption = #20837#24211#21305#25968 + DataBinding.FieldName = 'RK_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclPurple + Styles.Footer = cxStyle_fontclPurple + Styles.Header = cxStyle_fontclPurple + Width = 64 + end + object v1Column25: TcxGridDBColumn + Caption = #20837#24211#20844#26020#25968 + DataBinding.FieldName = 'RK_KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclPurple + Styles.Footer = cxStyle_fontclPurple + Styles.Header = cxStyle_fontclPurple + Width = 88 + end + object v1Column22: TcxGridDBColumn + Caption = #20837#24211#31859#25968 + DataBinding.FieldName = 'RK_QtyM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclPurple + Styles.Footer = cxStyle_fontclPurple + Styles.Header = cxStyle_fontclPurple + Width = 80 + end + object v1RK_KGQty: TcxGridDBColumn + Caption = #20837#24211#30721#25968 + DataBinding.FieldName = 'RK_QtyY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = cxStyle_fontclPurple + Styles.Footer = cxStyle_fontclPurple + Styles.Header = cxStyle_fontclPurple + Width = 84 + end + object v1Column5: TcxGridDBColumn + Caption = #20986#24211#21305#25968 + DataBinding.FieldName = 'CK_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 66 + end + object v1Column24: TcxGridDBColumn + Caption = #20986#24211#20844#26020#25968 + DataBinding.FieldName = 'CK_KGQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 92 + end + object v1Column23: TcxGridDBColumn + Caption = #20986#24211#31859#25968 + DataBinding.FieldName = 'CK_QtyM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 73 + end + object v1Column27: TcxGridDBColumn + Caption = #20986#24211#30721#25968 + DataBinding.FieldName = 'CK_QtyY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 80 + end + object v1Column13: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KC_RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 65 + end + object v1Column26: TcxGridDBColumn + Caption = #24211#23384#20844#26020#25968 + DataBinding.FieldName = 'KC_kgQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 86 + end + object v1Column28: TcxGridDBColumn + Caption = #24211#23384#31859#25968 + DataBinding.FieldName = 'KC_QtyM' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 67 + end + object v1Column29: TcxGridDBColumn + Caption = #24211#23384#30721#25968 + DataBinding.FieldName = 'KC_QtyY' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 66 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 442 + Top = 260 + Width = 343 + Height = 66 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #25968#25454#27491#22312#21152#36733#20013','#35831#31245#31561#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 393 + Top = 246 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 361 + Top = 246 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 300 + Top = 248 + end + object cxStyleRepository1: TcxStyleRepository + Left = 241 + Top = 250 + object cxStyle1: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaption + end + object cxStyle2: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 4707838 + TextColor = clBtnText + end + object cxStyle_gridRow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16311512 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_gridFoot: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridHead: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridGroupBox: TcxStyle + AssignedValues = [svColor, svFont] + Color = clMoneyGreen + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_yellow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + end + object cxStyle_fontBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontclFuchsia: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clFuchsia + end + object cxStyle_fontclPurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object cxStyle_fontclGreen: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clGreen + end + object cxStyle_fontclBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle_fontclTeal: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clTeal + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 270 + Top = 248 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 330 + Top = 248 + end +end diff --git a/盛纺贸易管理/U_ProductOrderNewList_JD.pas b/盛纺贸易管理/U_ProductOrderNewList_JD.pas new file mode 100644 index 0000000..26a0c17 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderNewList_JD.pas @@ -0,0 +1,423 @@ +unit U_ProductOrderNewList_JD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC, cxCurrencyEdit, Mask, DBCtrls, cxContainer, cxTextEdit, + cxDBEdit, cxButtonEdit; + +type + TfrmProductOrderNewList_JD = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1YWY: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + Order_Main: TClientDataSet; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + Label2: TLabel; + JGFactoryName: TEdit; + Label5: TLabel; + YWY: TEdit; + Label8: TLabel; + MPRTCodeName: TEdit; + Label9: TLabel; + ConNoHZ: TEdit; + Label11: TLabel; + OrdDefStr1: TEdit; + v1Column4: TcxGridDBColumn; + v1ordderNote1: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + Label6: TLabel; + ISPH: TComboBox; + PrtColor: TEdit; + Label7: TLabel; + orderType: TComboBox; + Label24: TLabel; + v1MPrtSpec: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + khConNo: TEdit; + Label10: TLabel; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + v1RK_KGQty: TcxGridDBColumn; + v1Column26: TcxGridDBColumn; + Label1: TLabel; + Label12: TLabel; + Than: TComboBox; + v1jyCP_RollNum: TcxGridDBColumn; + v1jyCP_KGQty: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle_gridRow: TcxStyle; + cxStyle_gridFoot: TcxStyle; + cxStyle_gridHead: TcxStyle; + cxStyle_gridGroupBox: TcxStyle; + cxStyle_yellow: TcxStyle; + cxStyle_Red: TcxStyle; + cxStyle_fontBlack: TcxStyle; + cxStyle_fontclFuchsia: TcxStyle; + cxStyle_fontclPurple: TcxStyle; + cxStyle_fontclGreen: TcxStyle; + cxStyle_fontclBlue: TcxStyle; + cxStyle_fontclTeal: TcxStyle; + ADOQueryMain: TADOQuery; + v1Column1: TcxGridDBColumn; + Panel2: TPanel; + v1Column8: TcxGridDBColumn; + ADOQuery1: TADOQuery; + v1Column11: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + v1Column27: TcxGridDBColumn; + v1Column28: TcxGridDBColumn; + v1Column29: TcxGridDBColumn; + v1BPYJSH: TcxGridDBColumn; + v1JYYJSH: TcxGridDBColumn; + v1ZXCKDate: TcxGridDBColumn; + ComboBox1: TComboBox; + v1BGDate: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ThanChange(Sender: TObject); + procedure MPRTCodeNameKeyPress(Sender: TObject; var Key: Char); + procedure v1BPYJSHCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure v1JYYJSHCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure ComboBox1Change(Sender: TObject); + procedure v1BGDatePropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + DQdate:TDateTime; + Tthan:string; + procedure InitGrid(); + procedure InitForm(); + procedure GetTthan(); + { Private declarations } + public + + canshu1:string; + { Public declarations } + end; + +var + frmProductOrderNewList_JD: TfrmProductOrderNewList_JD; + +implementation +uses + U_DataLink,U_Fun, U_GYSOrderCX; + +{$R *.dfm} +procedure TfrmProductOrderNewList_JD.FormDestroy(Sender: TObject); +begin + frmProductOrderNewList_JD:=nil; +end; + +procedure TfrmProductOrderNewList_JD.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewList_JD.FormCreate(Sender: TObject); +begin + canshu1:=trim(DParameters1); + DQdate:=SGetServerDate(ADOQuery1); +end; + +procedure TfrmProductOrderNewList_JD.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name+'SF',Tv1,'ָʾ'); +end; +procedure TfrmProductOrderNewList_JD.GetTthan(); +begin + Tthan:=''; + if trim(than.Text)='' then + begin + Tthan:='1'; + end; + if trim(than.Text)='Сڻ' then + begin + Tthan:='2'; + end; +end; +procedure TfrmProductOrderNewList_JD.InitGrid(); +var + strwhere:string; +begin + Panel2.Visible:=true; + Panel2.Refresh; + if ComboBox1.Text='' then + begin + strwhere:=strwhere+' and (select Top 1 Q.CRTime from CK_BanCP_CR Q where Q.CRFlag='''' and Q.MainId=A.MainId order by Q.CRTime desc)>='''+trim(formatDatetime('yyyy-MM-dd',begdate.DateTime))+''''+ + ' and (select Top 1 Q.CRTime from CK_BanCP_CR Q where Q.CRFlag='''' and Q.MainId=A.MainId order by Q.CRTime desc)<'''+trim(formatdatetime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + end + else + begin + if ComboBox1.Text='Ƶ' then + begin + strwhere:=strwhere+' and A.OrdDate>='''+trim(formatDatetime('yyyy-MM-dd',begdate.DateTime))+''''+ + ' and A.OrdDate<'''+trim(formatdatetime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + end + else + begin + if ComboBox1.Text='' then + begin + strwhere:=strwhere+' and A.BGDate>='''+trim(formatDatetime('yyyy-MM-dd',begdate.DateTime))+''''+ + ' and A.BGDate<'''+trim(formatdatetime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + end + end; + end; + if trim(canshu1)<>'Ȩ' then + begin + strwhere:=strwhere+' and (A.YWY='''+Trim(DName)+''' or A.Filler='''+Trim(DName)+''')'; + end; + GetTthan(); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('exec P_View_order_Jd :WSql,:Than'); + Parameters.ParamByName('WSql').Value:=strwhere; + Parameters.ParamByName('Than').Value:=Tthan; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + Panel2.Visible:=false; +end; + + +procedure TfrmProductOrderNewList_JD.InitForm(); +begin + readCxGrid(self.Caption+tv1.Name+'SF',Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQuery1)-15; + EndDate.DateTime:=SGetServerDate10(ADOQuery1); +end; + +procedure TfrmProductOrderNewList_JD.TBFindClick(Sender: TObject); +var + strwhere :string; +begin + if ADOQueryMain.Active=False then Exit; + strwhere:=SGetFilters(Panel1,1,2); + SDofilter(ADOQueryMain,strwhere); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList_JD.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv1,ADOQueryMain,'ָʾб'); +end; + +procedure TfrmProductOrderNewList_JD.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewList_JD.OrderNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmProductOrderNewList_JD.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewList_JD.CheckBox1Click(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmProductOrderNewList_JD.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList_JD.ThanChange(Sender: TObject); +begin + initgrid(); +end; + +procedure TfrmProductOrderNewList_JD.MPRTCodeNameKeyPress(Sender: TObject; + var Key: Char); +var + FName:string; +begin + FName:=TEdit(Sender).Name; + if Key=#13 then + begin + GetTthan(); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_order_Jd :WSql,:Than') ; + if FName<>'OrderNo' then + begin + if FName='ConNoHZ' then + begin + parameters.ParamByName('WSql').Value:=' and [dbo].[F_Get_Order_SubStr](A.MainId,''ConNoHZ'') like '''+'%'+Trim(ConNoHZ.Text)+'%'+''''; + end else + begin + parameters.ParamByName('WSql').Value:=' and '+FName+' like '''+'%'+Trim(TEdit(Sender).Text)+'%'+''' ' + +'and filltime>='''+trim(formatdatetime('yyyy-MM-dd',Begdate.DateTime))+''' ' + +'and filltime<'''+trim(formatdatetime('yyyy-MM-dd',enddate.DateTime+1))+''''; + end; + end else + begin + parameters.ParamByName('WSql').Value:=' and '+FName+' like '''+'%'+Trim(TEdit(Sender).Text)+'%'+''' '; + end; + parameters.ParamByName('Than').Value:=Tthan; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; +end; +procedure TfrmProductOrderNewList_JD.v1BPYJSHCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var ID,ID10:Integer; +begin + Id:=TV1.GetColumnByFieldName('TP_SL').Index; + Id10:=TV1.GetColumnByFieldName('BPYJSH').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[id]>AViewInfo.GridRecord.Values[id10] then + ACanvas.Brush.Color:=clRed; +end; + +procedure TfrmProductOrderNewList_JD.v1JYYJSHCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +var ID,ID10:integer; +begin + Id:=TV1.GetColumnByFieldName('JY_SL').Index; + Id10:=TV1.GetColumnByFieldName('JYYJSH').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[id]>AViewInfo.GridRecord.Values[id10] then + ACanvas.Brush.Color:=clRed; +end; + +procedure TfrmProductOrderNewList_JD.ComboBox1Change(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList_JD.v1BGDatePropertiesEditValueChanged( + Sender: TObject); +var mavlue:string; +begin + mavlue:=TcxTextEdit(Sender).EditingText; + with Order_Main do + begin + Edit; + if mavlue<>'' then + FieldByName('BGDate').Value:=mavlue + else + FieldByName('BGDate').Value:=NULL; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('update JYOrder_Main set '); + if mavlue<>'' then + Sql.add('BGDate='''+trim(mavlue)+'''') + else + Sql.add('BGDate=NULL'); + sql.Add(' where Mainid='''+trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductOrderNewList_JD.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Order_Main.IsEmpty then exit; + frmGYSOrderCX:=TfrmGYSOrderCX.create(self); + with frmGYSOrderCX do + begin + OrderNO.Text:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); + if ShowModal=1 then + begin + + end; + free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrderSel.dfm b/盛纺贸易管理/U_ProductOrderSel.dfm new file mode 100644 index 0000000..fd704ee --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderSel.dfm @@ -0,0 +1,350 @@ +object frmProductOrderSel: TfrmProductOrderSel + Left = 134 + Top = 115 + Width = 1094 + Height = 600 + Caption = #29983#20135#25351#31034#21333#36873#25321 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1249 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object TBPrint: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1249 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 27 + Top = 23 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object OrderNoM: TEdit + Tag = 2 + Left = 68 + Top = 19 + Width = 141 + Height = 20 + TabOrder = 0 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 112 + Width = 1249 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = DataLink_TradeManage.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 72 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20844#21496#32534#21495 + DataBinding.FieldName = 'OrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 73 + end + object v1JGFactoryName: TcxGridDBColumn + Caption = #26579#21378 + DataBinding.FieldName = 'JGFactoryName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTCF: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'MPRTCF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + Options.Focusing = False + Width = 54 + end + object v1Column8: TcxGridDBColumn + Caption = #22791#27880#21450#35201#27714 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 92 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 63 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 67 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 288 + Top = 184 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/盛纺贸易管理/U_ProductOrderSel.pas b/盛纺贸易管理/U_ProductOrderSel.pas new file mode 100644 index 0000000..7f01c69 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrderSel.pas @@ -0,0 +1,494 @@ +unit U_ProductOrderSel; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus; + +type + TfrmProductOrderSel = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + v1OrderNo: TcxGridDBColumn; + v1JGFactoryName: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1MPRTCF: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + v1Column8: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderSel: TfrmProductOrderSel; + +implementation +uses + U_DataLink,U_OrderInPut,U_Fun; + +{$R *.dfm} + +procedure TfrmProductOrderSel.FormDestroy(Sender: TObject); +begin + frmProductOrderSel:=nil; +end; + +procedure TfrmProductOrderSel.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderSel.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderSel.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ָʾб',Tv1,'ָʾ') + else + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderSel.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,A.OrderNo OrderNoM from JYOrder_Main A left join JYOrder_Sub B on A.MainId=B.MainId '); + SQL.Add('where OrdDate>=:begdate and OrdDate<:enddate'); + if Trim(DParameters1)<>'Ȩ' then + begin + sql.Add('and A.Filler='''+Trim(DName)+''''); + end; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderSel.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderSel.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2014-07-11') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + if FCloth<>1 then + ReadCxGrid('ָʾб',Tv1,'ָʾ') + else + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + + if FCloth=1 then + begin + v1Column4.Visible:=True; + v1PRTPrice.Visible:=False; + v1PRTPrice.Hidden:=True; + end else + begin + v1Column4.Visible:=False; + v1PRTPrice.Visible:=True; + v1PRTPrice.Hidden:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmProductOrderSel.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmProductOrderSel.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + if IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderSel.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,PRTColorEng=(select Note from KH_Zdy CC where ZdyName=B.PRTColor and CC.Type=''OrdColor'' ) '); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + i:=ADOQueryPrint.RecordCount; + ADOQueryPrint.First; + if i<19 then + begin + for j:=1 to 19-i do + begin + with CDS_Print do + begin + Append; + Post; + end; + end; + end; + with CDS_Print do + begin + Append; + FieldByName('Note').Value:=Trim(Order_Main.fieldbyname('Note').AsString); + FieldByName('OrdDefStr3').Value:=Trim(Order_Main.fieldbyname('OrdDefStr3').AsString); + FieldByName('SOrddefstr10').Value:=Trim(Order_Main.fieldbyname('OrderUnit').AsString); + FieldByName('SLbName').Value:=Trim(Order_Main.fieldbyname('SLbName').AsString); + FieldByName('OrdPerson1').Value:=Trim(Order_Main.fieldbyname('OrdPerson1').AsString); + Post; + end; + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderSel.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + InitGrid(); +end; + +procedure TfrmProductOrderSel.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderSel.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderSel.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if ToolButton1.Visible=False then Exit; + ToolButton1.Click; +end; + +procedure TfrmProductOrderSel.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderSel.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderSel.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderSel.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderSel.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderSel.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderSel.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderSel.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +end. diff --git a/盛纺贸易管理/U_ProductOrder_CX.dfm b/盛纺贸易管理/U_ProductOrder_CX.dfm new file mode 100644 index 0000000..f798a36 --- /dev/null +++ b/盛纺贸易管理/U_ProductOrder_CX.dfm @@ -0,0 +1,517 @@ +object FrmProductOrder_CX: TFrmProductOrder_CX + Left = 132 + Top = 110 + Width = 1161 + Height = 577 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1145 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 41 + OnClick = ToolButton1Click + end + object TBRafresh: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1145 + Height = 63 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 26 + Top = 14 + Width = 52 + Height = 12 + Caption = #31614#35746#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 194 + Top = 14 + Width = 52 + Height = 12 + Caption = #21512#21516#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 371 + Top = 14 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 546 + Top = 14 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 546 + Top = 37 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 371 + Top = 37 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 194 + Top = 37 + Width = 52 + Height = 12 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 697 + Top = 37 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 697 + Top = 14 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 81 + Top = 10 + Width = 85 + Height = 20 + Date = 42136.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 42136.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 81 + Top = 33 + Width = 85 + Height = 20 + Date = 42136.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 42136.464761099540000000 + TabOrder = 1 + end + object ConNo: TEdit + Tag = 2 + Left = 248 + Top = 10 + Width = 81 + Height = 20 + TabOrder = 2 + OnChange = ConNoChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 427 + Top = 10 + Width = 83 + Height = 20 + TabOrder = 3 + OnChange = ConNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 579 + Top = 10 + Width = 83 + Height = 20 + TabOrder = 4 + OnChange = ConNoChange + end + object PRTColor: TEdit + Tag = 2 + Left = 579 + Top = 33 + Width = 83 + Height = 20 + TabOrder = 5 + OnChange = ConNoChange + end + object Filler: TEdit + Tag = 2 + Left = 427 + Top = 33 + Width = 83 + Height = 20 + TabOrder = 6 + OnChange = ConNoChange + end + object orderNO: TEdit + Tag = 2 + Left = 248 + Top = 33 + Width = 81 + Height = 20 + TabOrder = 7 + OnKeyPress = orderNOKeyPress + end + object MPRTKZ: TEdit + Tag = 2 + Left = 728 + Top = 33 + Width = 83 + Height = 20 + TabOrder = 8 + OnChange = ConNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 728 + Top = 10 + Width = 83 + Height = 20 + TabOrder = 9 + OnChange = ConNoChange + end + object CheckBox1: TCheckBox + Left = 849 + Top = 36 + Width = 97 + Height = 17 + Caption = #20840#36873 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = CheckBox1Click + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 95 + Width = 1145 + Height = 411 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Ssel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + HeaderAlignmentHorz = taCenter + Width = 35 + end + object v1OrderNo: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 89 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 80 + end + object v1Column5: TcxGridDBColumn + Caption = 'PO#' + DataBinding.FieldName = 'KHConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 69 + end + object v1SYRName: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 62 + end + object v1MPRTSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPRTSpec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 59 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1SOrddefstr1: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'SOrddefstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PRTHX: TcxGridDBColumn + Caption = #33457#22411#33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1MPRTBZNote: TcxGridDBColumn + Caption = #21253#35013#35201#27714 + DataBinding.FieldName = 'MPRTBZNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 307 + Top = 187 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 362 + Top = 187 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 411 + Top = 186 + end + object ADOQueryCMD: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 452 + Top = 186 + end +end diff --git a/盛纺贸易管理/U_ProductOrder_CX.pas b/盛纺贸易管理/U_ProductOrder_CX.pas new file mode 100644 index 0000000..edddbec --- /dev/null +++ b/盛纺贸易管理/U_ProductOrder_CX.pas @@ -0,0 +1,212 @@ +unit U_ProductOrder_CX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxCalendar, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + cxCheckBox, ADODB, DBClient; + +type + TFrmProductOrder_CX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + ToolButton1: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label5: TLabel; + Label4: TLabel; + Label6: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + ConNo: TEdit; + MPRTCodeName: TEdit; + MPRTSpec: TEdit; + PRTColor: TEdit; + Label2: TLabel; + Filler: TEdit; + Label7: TLabel; + orderNO: TEdit; + Label8: TLabel; + MPRTKZ: TEdit; + Label9: TLabel; + MPRTMF: TEdit; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTSpec: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1MPRTKZ: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1PRTColor: TcxGridDBColumn; + v1PRTHX: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1Ssel: TcxGridDBColumn; + DataSource1: TDataSource; + Order_Main: TClientDataSet; + ADOQueryTmp: TADOQuery; + v1SYRName: TcxGridDBColumn; + v1MPRTBZNote: TcxGridDBColumn; + v1SOrddefstr1: TcxGridDBColumn; + ADOQueryCMD: TADOQuery; + CheckBox1: TCheckBox; + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure ConNoChange(Sender: TObject); + procedure orderNOKeyPress(Sender: TObject; var Key: Char); + private + procedure initGrid(); + { Private declarations } + public + { Public declarations } + end; + +var + FrmProductOrder_CX: TFrmProductOrder_CX; + +implementation + +uses U_DataLink,U_ZDYHelp,U_Fun; +{$R *.dfm} +procedure TFrmProductOrder_CX.initGrid(); +begin + with ADOQueryTmp do + begin + close; + sql.clear; + sql.Add('select A.*,B.*,C.SYRName from JYOrder_Main A '); + SQL.Add('inner join JYOrder_Sub B on B.Mainid=A.Mainid '); + sql.add('left join JYOrderCon_Main C on C.Mainid=A.Mainid '); + sql.add('where A.OrdDate>='''+trim(formatdatetime('yyyy-MM-dd',begdate.datetime))+''''); + sql.add('and A.OrdDate<'''+trim(formatdatetime('yyyy-MM-dd',enddate.datetime+1))+''''); + open; + end; + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); +end; + +procedure TFrmProductOrder_CX.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TFrmProductOrder_CX.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TFrmProductOrder_CX.TBFindClick(Sender: TObject); +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); +end; + +procedure TFrmProductOrder_CX.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); +end; + +procedure TFrmProductOrder_CX.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; +end; + +procedure TFrmProductOrder_CX.FormShow(Sender: TObject); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1,'ָʾ'); + BegDate.DateTime:=SGetServerDate10(ADOQueryCMD)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryCMD); + initGrid(); +end; + +procedure TFrmProductOrder_CX.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ToolButton1.Click; +end; + +procedure TFrmProductOrder_CX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TFrmProductOrder_CX.FormDestroy(Sender: TObject); +begin + FrmProductOrder_CX:=nil; +end; + +procedure TFrmProductOrder_CX.CheckBox1Click(Sender: TObject); +begin + with Order_Main do + begin + DisableControls; + first; + while not eof do + begin + edit; + Order_Main.FieldByName('Ssel').AsBoolean:=CheckBox1.Checked; + post; + next; + end; + EnableControls; + end; +end; + +procedure TFrmProductOrder_CX.ConNoChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TFrmProductOrder_CX.orderNOKeyPress(Sender: TObject; + var Key: Char); +begin + IF key=#13 then + begin + IF length(orderNO.Text)<4 then exit; + with ADOQueryTmp do + begin + close; + sql.clear; + sql.Add('select A.*,B.*,C.SYRName from JYOrder_Main A '); + SQL.Add('inner join JYOrder_Sub B on B.Mainid=A.Mainid '); + sql.add('left join JYOrderCon_Main C on C.Mainid=A.Mainid '); + sql.add('where A.orderNo like '+quotedstr('%'+trim(orderNo.Text)+'%')); + open; + end; + SCreateCDS20(ADOQueryTmp,Order_Main); + SInitCDSData20(ADOQueryTmp,Order_Main); + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductionAnPai.dfm b/盛纺贸易管理/U_ProductionAnPai.dfm new file mode 100644 index 0000000..650d559 --- /dev/null +++ b/盛纺贸易管理/U_ProductionAnPai.dfm @@ -0,0 +1,656 @@ +object frmProductionAnPai: TfrmProductionAnPai + Left = 53 + Top = 12 + Width = 1155 + Height = 669 + Caption = #29983#20135#23433#25490 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 14 + object cxGrid1: TcxGrid + Left = 0 + Top = 203 + Width = 1147 + Height = 329 + Align = alTop + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Inactive = cxStyle1 + Styles.IncSearch = cxStyle1 + Styles.Selection = cxStyle1 + object v1Column16: TcxGridDBColumn + Caption = #23433#25490#26085#26399 + DataBinding.FieldName = 'AnPaiDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 87 + end + object v1Column4: TcxGridDBColumn + Caption = #29983#20135#24207#21495 + DataBinding.FieldName = 'SCOrder' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v1Column13: TcxGridDBColumn + Caption = #23433#25490#31859#25968 + DataBinding.FieldName = 'OrderQtyM' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v1Column19: TcxGridDBColumn + Caption = #23450#21367#38271'M' + DataBinding.FieldName = 'BigLen' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v1Column18: TcxGridDBColumn + Caption = #23450#21367#25968 + DataBinding.FieldName = 'BigCount' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v1Column20: TcxGridDBColumn + Caption = #29983#20135#38376#24133'cm' + DataBinding.FieldName = 'BigMF' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + Width = 86 + end + object v1Column21: TcxGridDBColumn + Caption = #23567#21367#20998#20999#20010#25968 + DataBinding.FieldName = 'SmalCount' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + Width = 96 + end + object v1Column22: TcxGridDBColumn + Caption = #23567#21367#20998#20999#24133#23485 + DataBinding.FieldName = 'SmalMF' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 239 + end + object v1Column23: TcxGridDBColumn + Caption = #23567#21367#20801#35768#20559#24046 + DataBinding.FieldName = 'SmalPC' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column23PropertiesEditValueChanged + Width = 98 + end + object v1Column24: TcxGridDBColumn + Caption = #20998#20999#35828#26126 + DataBinding.FieldName = 'SmalNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1Column24PropertiesButtonClick + Properties.OnEditValueChanged = v1Column24PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 129 + end + object v1Column25: TcxGridDBColumn + Caption = #25171#21253#35201#27714 + DataBinding.FieldName = 'DBNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column25PropertiesButtonClick + Properties.OnEditValueChanged = v1Column25PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 203 + end + object v1Column11: TcxGridDBColumn + Caption = #29983#20135#31859#25968 + DataBinding.FieldName = 'SCMQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 81 + end + object v1Column15: TcxGridDBColumn + Caption = #26410#29983#20135#31859#25968 + DataBinding.FieldName = 'WSCMQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 102 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 135 + end + object v1Column8: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'ProductType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 86 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'ProductQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'ProductUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 73 + end + object v1Column9: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'ProductSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 94 + end + object v1Column5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1Column7: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 75 + end + object v1Column12: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'SCStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'SWFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 83 + end + object v1Column26: TcxGridDBColumn + Caption = #23380#30446 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 89 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 103 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'AnPaiChker' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1Column17: TcxGridDBColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'AnPaiChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 78 + end + object v1Column1: TcxGridDBColumn + Caption = #21367#22343#37325#19978#38480 + DataBinding.FieldName = 'KZBig' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + object v1Column3: TcxGridDBColumn + Caption = #21367#22343#37325#19979#38480 + DataBinding.FieldName = 'KZSmal' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1147 + Height = 82 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 324 + Top = 21 + Width = 56 + Height = 14 + Caption = #35746#21333#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 29 + Top = 32 + Width = 8 + Height = 16 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 901 + Top = 16 + Width = 7 + Height = 14 + end + object Label2: TLabel + Left = 47 + Top = 21 + Width = 56 + Height = 14 + Caption = #23433#25490#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 197 + Top = 21 + Width = 21 + Height = 14 + Caption = '---' + end + object orderno: TEdit + Tag = 2 + Left = 381 + Top = 17 + Width = 129 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnChange = ordernoChange + end + object Button1: TButton + Left = 49 + Top = 48 + Width = 44 + Height = 25 + Caption = #21047#26032 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 417 + Top = 48 + Width = 38 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + object Button3: TButton + Left = 273 + Top = 48 + Width = 43 + Height = 25 + Caption = #23548#20986 + TabOrder = 3 + OnClick = Button3Click + end + object BegDate: TDateTimePicker + Left = 104 + Top = 17 + Width = 93 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + end + object EndDate: TDateTimePicker + Left = 215 + Top = 17 + Width = 94 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 5 + end + object Button4: TButton + Left = 112 + Top = 48 + Width = 65 + Height = 25 + Caption = #23457#26680#36890#36807 + TabOrder = 6 + OnClick = Button4Click + end + object Button5: TButton + Left = 190 + Top = 48 + Width = 75 + Height = 25 + Caption = #23457#26680#19981#36890#36807 + TabOrder = 7 + OnClick = Button5Click + end + object Button7: TButton + Left = 329 + Top = 48 + Width = 75 + Height = 25 + Caption = #27974#26009#37197#21046 + TabOrder = 8 + Visible = False + OnClick = Button7Click + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 82 + Width = 1147 + Height = 18 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 2 + Tabs.Strings = ( + #24453#23457#26680 + #24050#23457#26680 + #24050#23436#25104) + OnChange = cxTabControl1Change + ClientRectBottom = 19 + ClientRectRight = 1147 + ClientRectTop = 19 + end + object Panel2: TPanel + Left = 0 + Top = 100 + Width = 1147 + Height = 103 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + object Label4: TLabel + Left = 32 + Top = 24 + Width = 70 + Height = 14 + Caption = #23567#21367#24133#23485'cm' + end + object SmalMF1: TEdit + Tag = 2 + Left = 104 + Top = 21 + Width = 97 + Height = 22 + TabOrder = 0 + Visible = False + end + object SmalMF2: TEdit + Tag = 2 + Left = 224 + Top = 21 + Width = 89 + Height = 22 + TabOrder = 1 + Visible = False + end + object SmalMF3: TEdit + Tag = 2 + Left = 344 + Top = 21 + Width = 81 + Height = 22 + TabOrder = 2 + Visible = False + end + object SmalMF4: TEdit + Tag = 2 + Left = 456 + Top = 21 + Width = 97 + Height = 22 + TabOrder = 3 + Visible = False + end + object SmalMF5: TEdit + Tag = 2 + Left = 584 + Top = 21 + Width = 89 + Height = 22 + TabOrder = 4 + Visible = False + end + object SmalMF6: TEdit + Tag = 2 + Left = 704 + Top = 21 + Width = 105 + Height = 22 + TabOrder = 5 + Visible = False + end + object SmalMF7: TEdit + Tag = 2 + Left = 104 + Top = 45 + Width = 97 + Height = 22 + TabOrder = 6 + Visible = False + end + object SmalMF8: TEdit + Tag = 2 + Left = 224 + Top = 45 + Width = 89 + Height = 22 + TabOrder = 7 + Visible = False + end + object SmalMF9: TEdit + Tag = 2 + Left = 344 + Top = 45 + Width = 81 + Height = 22 + TabOrder = 8 + Visible = False + end + object SmalMF10: TEdit + Tag = 2 + Left = 456 + Top = 45 + Width = 97 + Height = 22 + TabOrder = 9 + Visible = False + end + object SmalMF11: TEdit + Tag = 2 + Left = 584 + Top = 45 + Width = 89 + Height = 22 + TabOrder = 10 + Visible = False + end + object SmalMF12: TEdit + Tag = 2 + Left = 704 + Top = 45 + Width = 105 + Height = 22 + TabOrder = 11 + Visible = False + end + object Button6: TButton + Left = 104 + Top = 72 + Width = 97 + Height = 25 + Caption = #30830#23450 + TabOrder = 12 + Visible = False + OnClick = Button6Click + end + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 576 + Top = 288 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 576 + Top = 256 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 608 + Top = 256 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 640 + Top = 256 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 696 + Top = 264 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 480 + Top = 280 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + end +end diff --git a/盛纺贸易管理/U_ProductionAnPai.pas b/盛纺贸易管理/U_ProductionAnPai.pas new file mode 100644 index 0000000..5a07e48 --- /dev/null +++ b/盛纺贸易管理/U_ProductionAnPai.pas @@ -0,0 +1,666 @@ +unit U_ProductionAnPai; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ADODB, DBClient, cxTextEdit, cxPC, + cxCalendar, ComCtrls, cxButtonEdit, cxGridCustomPopupMenu, + cxGridPopupMenu; + +type + TfrmProductionAnPai = class(TForm) + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Panel1: TPanel; + Label1: TLabel; + Label15: TLabel; + Label16: TLabel; + orderno: TEdit; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + Button1: TButton; + Button2: TButton; + Button3: TButton; + v1Column15: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + v1Column16: TcxGridDBColumn; + Label2: TLabel; + Label3: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Button4: TButton; + Button5: TButton; + v1Column17: TcxGridDBColumn; + Panel2: TPanel; + SmalMF1: TEdit; + SmalMF2: TEdit; + SmalMF3: TEdit; + SmalMF4: TEdit; + SmalMF5: TEdit; + SmalMF6: TEdit; + Label4: TLabel; + SmalMF7: TEdit; + SmalMF8: TEdit; + SmalMF9: TEdit; + SmalMF10: TEdit; + SmalMF11: TEdit; + SmalMF12: TEdit; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column20: TcxGridDBColumn; + v1Column21: TcxGridDBColumn; + v1Column22: TcxGridDBColumn; + v1Column23: TcxGridDBColumn; + Button6: TButton; + v1Column24: TcxGridDBColumn; + v1Column25: TcxGridDBColumn; + cxGridPopupMenu1: TcxGridPopupMenu; + Button7: TButton; + v1Column26: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ordernoChange(Sender: TObject); + procedure v1Column4PropertiesEditValueChanged(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure v1Column19PropertiesEditValueChanged(Sender: TObject); + procedure v1Column23PropertiesEditValueChanged(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure v1Column24PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column24PropertiesEditValueChanged(Sender: TObject); + procedure v1Column25PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column25PropertiesEditValueChanged(Sender: TObject); + procedure Button7Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + procedure VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); + public + { Public declarations } + end; + +var + frmProductionAnPai: TfrmProductionAnPai; + +implementation +uses + U_DataLink,U_Fun,U_OrderAttachment,U_ZDYHelpSel,U_JiangLiaoSet; + +{$R *.dfm} + +procedure TfrmProductionAnPai.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + orderno.SetFocus; + Action:=caFree; +end; + +procedure TfrmProductionAnPai.FormDestroy(Sender: TObject); +begin + frmProductionAnPai:=nil; +end; + +procedure TfrmProductionAnPai.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; + if Trim(DParameters1)='' then + begin + Button5.Visible:=True; + Button4.Visible:=True; + end else + begin + Button5.Visible:=False; + Button4.Visible:=False; + end; +end; +procedure TfrmProductionAnPai.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' exec P_ProductAnPai :begdate,:enddate,:pstate,:Wsql'); + if cxTabControl1.TabIndex=0 then + begin + Parameters.ParamByName('begdate').Value:=''; + Parameters.ParamByName('enddate').Value:=''; + Parameters.ParamByName('pstate').Value:=1; + end else + if cxTabControl1.TabIndex=1 then + begin + Parameters.ParamByName('begdate').Value:=''; + Parameters.ParamByName('enddate').Value:=''; + Parameters.ParamByName('pstate').Value:=2; + end else + if cxTabControl1.TabIndex=2 then + begin + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date) ; + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Parameters.ParamByName('pstate').Value:=3; + end; + Parameters.ParamByName('Wsql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductionAnPai.Button1Click(Sender: TObject); +begin + orderno.SetFocus; + InitGrid(); +end; + +procedure TfrmProductionAnPai.FormShow(Sender: TObject); +begin + ReadCxGrid('10',Tv1,'޷IJ'); + EndDate.Date:=SGetServerDate(ADOQueryTemp); + BegDate.Date:=EndDate.Date-30; + if cxTabControl1.TabIndex=1 then + begin + Tv1.OptionsSelection.CellSelect:=False; + end else + Tv1.OptionsSelection.CellSelect:=True; + if Trim(DParameters1)='' then + begin + Tv1.OptionsSelection.CellSelect:=False; + end; + InitGrid(); +end; + +procedure TfrmProductionAnPai.ordernoChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmProductionAnPai.v1Column4PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with CDS_Main do + begin + Edit; + FieldByName('SCOrder').Value:=Trim(mvalue); + FieldByName('AnPaiDate').Value:=Now; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set SCOrder='''+Trim(mvalue)+''''); + SQL.Add(',AnPaiDate=getdate()'); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPai.Button2Click(Sender: TObject); +begin + orderno.SetFocus; + WriteCxGrid('10',Tv1,'޷IJ'); + Close; +end; + +procedure TfrmProductionAnPai.Button3Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel('',cxGrid1); +end; + +procedure TfrmProductionAnPai.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); + if cxTabControl1.TabIndex=0 then + begin + Tv1.OptionsSelection.CellSelect:=True; + end else + Tv1.OptionsSelection.CellSelect:=False; + if Trim(DParameters1)='' then + begin + Tv1.OptionsSelection.CellSelect:=False; + end; + VisbleControl(Panel2,False,Panel2.ControlCount); +end; + +procedure TfrmProductionAnPai.Button4Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>0 then Exit; + if Trim(DName)=Trim(CDS_Main.fieldbyname('AnPaiPerson').AsString) then + begin + Application.MessageBox('Լݣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set AnPaiChker='''+Trim(DName)+''''); + sql.Add(',AnPaiChkStatus=''ͨ'''); + sql.add(',AnPaiChkDate=getdate()'); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + CDS_Main.Delete; + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmProductionAnPai.Button5Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>1 then Exit; + if Trim(DName)=Trim(CDS_Main.fieldbyname('AnPaiPerson').AsString) then + begin + Application.MessageBox('Լݣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set AnPaiChker='''+Trim(DName)+''''); + sql.Add(',AnPaiChkStatus=''˲ͨ'','); + sql.add('AnPaiChkDate=getdate()'); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + CDS_Main.Delete; + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmProductionAnPai.Tv1DblClick(Sender: TObject); +begin + try + frmOrderAttachment:=TfrmOrderAttachment.Create(Application); + with frmOrderAttachment do + begin + FAMainId:=Trim(Self.CDS_Main.fieldbyname('MainId').AsString); + Panel1.Enabled:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderAttachment.Free; + end; +end; + +procedure TfrmProductionAnPai.v1Column19PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FFieldName:String; + i:Integer; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:='0'; + FFieldName:=Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_Main do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set '+FFieldName+'='+Trim(mvalue)); + SQL.Add(',AnPaiPerson='''+Trim(DName)+''''); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + if Trim(FFieldName)='SmalCount' then + begin + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel2,True,strtoint(mvalue)+1); + end; + if strtoint(mvalue)+1>0 then + begin + Button6.Visible:=True; + end; +end; + +procedure TfrmProductionAnPai.v1Column23PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_Main do + begin + Edit; + FieldByName('SmalPC').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set SmalPC='''+Trim(mvalue)+''''); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; +end; +procedure TfrmProductionAnPai.VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + Controls[i].Visible:=XS; + end; + end; +end; + +procedure TfrmProductionAnPai.Button6Click(Sender: TObject); +var + i,j:Integer; + FFname,FFnameValue,FSubId:string; +begin + //FSubId:=Trim(CDS_Main.fieldbyname('SubId').AsString); + try + j:=0; + ADOQueryCmd.Connection.BeginTrans; + with Panel2 do + begin + for i:=0 to Panel2.ControlCount-1 do + begin + if Controls[i] is TLabel then Continue; + if Controls[i] is TButton then Continue; + if Controls[i].Visible=True then + begin + FFname:=Trim(Controls[i].Name); + if Trim(TEdit(Controls[i]).Text)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + j:=9; + Break; + end; + if StrToFloat((TEdit(Controls[i]).Text))=0 then + begin + ADOQueryCmd.Connection.RollbackTrans; + j:=10; + Break; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set '+FFname+'='+Trim(TEdit(Controls[i]).Text)); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + end; + if j=0 then + ADOQueryCmd.Connection.CommitTrans + else + if j=9 then + begin + //ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('СΪգ','ʾ',0); + Exit; + end else + if j=10 then + begin + //ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('СΪ㣡','ʾ',0); + Exit; + end; + end; + //InitGrid(); + // CDS_Main.Locate('SubId',Trim(FSubId),[]); + with Panel2 do + begin + j:=0; + for i:=0 to Panel2.ControlCount-1 do + begin + if Controls[i] is TLabel then Continue; + if Controls[i] is TButton then Continue; + if TEdit(Controls[i]).Visible=True then + begin + if j=0 then + FSubId:=Trim(TEdit(Controls[i]).Text) + else + FSubId:=FSubId+','+Trim(TEdit(Controls[i]).Text); + j:=j+1; + end; + end; + end; + with CDS_Main do + begin + Edit; + FieldByName('SmalMF').Value:=Trim(FSubId); + Post; + end; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȷ쳣','ʾ',0); + end; +end; + +procedure TfrmProductionAnPai.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel2,True,CDS_Main.fieldbyname('SmalCount').Value+1); + SCSHDataCDS(CDS_Main,Panel2,2); + if Trim(CDS_Main.FieldByName('SmalCount').AsString)='' then Exit; + if CDS_Main.fieldbyname('SmalCount').Value>0 then + begin + if cxTabControl1.TabIndex=0 then + Button6.Visible:=True + else + Button6.Visible:=False; + end; + +end; + +procedure TfrmProductionAnPai.v1Column24PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + mvalue:String; +begin + mvalue:=Trim(CDS_Main.fieldbyname('SmalNote').AsString); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='SmalNote'; + flagname:='˵'; + if ShowModal=1 then + begin + with Self.CDS_Main do + begin + Edit; + FieldByName('SmalNote').Value:=mvalue+Trim(ReturnStr); + //post; + end; + mvalue:=mvalue+ReturnStr; + with Self.ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate WFBOrder_Sub Set SmalNote='''+Trim(mvalue)+''''); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + end; +end; + +procedure TfrmProductionAnPai.v1Column24PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_Main do + begin + Edit; + FieldByName('SmalNote').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set SmalNote='''+Trim(mvalue)+''''); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPai.v1Column25PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + mvalue:String; +begin + mvalue:=Trim(CDS_Main.fieldbyname('DBNote').AsString); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='DBNote'; + flagname:='Ҫ'; + if ShowModal=1 then + begin + with Self.CDS_Main do + begin + Edit; + FieldByName('DBNote').Value:=mvalue+Trim(ReturnStr); + //post; + end; + mvalue:=mvalue+ReturnStr; + with Self.ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate WFBOrder_Sub Set DBNote='''+Trim(mvalue)+''''); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + end; +end; + +procedure TfrmProductionAnPai.v1Column25PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_Main do + begin + Edit; + FieldByName('DBNote').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set DBNote='''+Trim(mvalue)+''''); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPai.Button7Click(Sender: TObject); +begin + try + frmJiangLiaoSet:=TfrmJiangLiaoSet.Create(Application); + with frmJiangLiaoSet do + begin + if ShowModal=1 then + begin + + end; + end; + finally + end; +end; + +end. diff --git a/盛纺贸易管理/U_ProductionAnPaiNew.dfm b/盛纺贸易管理/U_ProductionAnPaiNew.dfm new file mode 100644 index 0000000..b4e75d7 --- /dev/null +++ b/盛纺贸易管理/U_ProductionAnPaiNew.dfm @@ -0,0 +1,934 @@ +object frmProductionAnPaiNew: TfrmProductionAnPaiNew + Left = 97 + Top = 39 + Width = 1155 + Height = 671 + Caption = #29983#20135#23433#25490 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 14 + object cxGrid1: TcxGrid + Left = 0 + Top = 203 + Width = 1147 + Height = 246 + Align = alTop + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Inactive = cxStyle1 + Styles.IncSearch = cxStyle1 + Styles.Selection = cxStyle1 + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#32534#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 135 + end + object v1Column8: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'ProductType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 86 + end + object v1Column10: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'ProductQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 80 + end + object v1Column14: TcxGridDBColumn + Caption = #35746#21333#21333#20301 + DataBinding.FieldName = 'ProductUnit' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 73 + end + object v1Column9: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'ProductSpec' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 94 + end + object v1Column5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 80 + end + object v1Column7: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 75 + end + object v1PRTMF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'FSWFBFK' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 83 + end + object v1Column26: TcxGridDBColumn + Caption = #23380#30446 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 89 + end + object v1PRTKZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 103 + end + object v1Column1: TcxGridDBColumn + Caption = #21367#22343#37325#19978#38480 + DataBinding.FieldName = 'KZBig' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + object v1Column3: TcxGridDBColumn + Caption = #21367#22343#37325#19979#38480 + DataBinding.FieldName = 'KZSmal' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 93 + end + object v1Column4: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'AnPaiChker' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object v1Column6: TcxGridDBColumn + Caption = #23457#26680#29366#24577 + DataBinding.FieldName = 'AnPaiChkStatus' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 1147 + Height = 82 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 324 + Top = 21 + Width = 56 + Height = 14 + Caption = #35746#21333#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 29 + Top = 32 + Width = 8 + Height = 16 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label16: TLabel + Left = 901 + Top = 16 + Width = 7 + Height = 14 + end + object Label2: TLabel + Left = 47 + Top = 21 + Width = 56 + Height = 14 + Caption = #23433#25490#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 197 + Top = 21 + Width = 21 + Height = 14 + Caption = '---' + end + object Label5: TLabel + Left = 468 + Top = 21 + Width = 28 + Height = 14 + Caption = #20195#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label6: TLabel + Left = 585 + Top = 21 + Width = 28 + Height = 14 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label7: TLabel + Left = 708 + Top = 21 + Width = 28 + Height = 14 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object orderno: TEdit + Tag = 2 + Left = 381 + Top = 17 + Width = 76 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnChange = ordernoChange + end + object Button1: TButton + Left = 49 + Top = 48 + Width = 44 + Height = 25 + Caption = #21047#26032 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 643 + Top = 48 + Width = 38 + Height = 25 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + object Button3: TButton + Left = 275 + Top = 48 + Width = 43 + Height = 25 + Caption = #23548#20986 + TabOrder = 3 + OnClick = Button3Click + end + object BegDate: TDateTimePicker + Left = 104 + Top = 17 + Width = 93 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + end + object EndDate: TDateTimePicker + Left = 215 + Top = 17 + Width = 94 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 5 + end + object Button4: TButton + Left = 107 + Top = 48 + Width = 65 + Height = 25 + Caption = #23457#26680#36890#36807 + TabOrder = 6 + OnClick = Button4Click + end + object Button5: TButton + Left = 186 + Top = 48 + Width = 75 + Height = 25 + Caption = #23457#26680#19981#36890#36807 + TabOrder = 7 + OnClick = Button5Click + end + object Button7: TButton + Left = 689 + Top = 48 + Width = 75 + Height = 25 + Caption = #27974#26009#37197#21046 + TabOrder = 8 + Visible = False + OnClick = Button7Click + end + object Button8: TButton + Left = 413 + Top = 48 + Width = 66 + Height = 25 + Caption = #29983#20135#25764#38144 + TabOrder = 9 + OnClick = Button8Click + end + object Button9: TButton + Left = 333 + Top = 48 + Width = 66 + Height = 25 + Caption = #29983#20135#19979#36798 + TabOrder = 10 + OnClick = Button9Click + end + object Button10: TButton + Left = 493 + Top = 48 + Width = 48 + Height = 25 + Caption = #23436#25104 + TabOrder = 11 + OnClick = Button10Click + end + object Button11: TButton + Left = 552 + Top = 48 + Width = 73 + Height = 25 + Caption = #23436#25104#25764#38144 + TabOrder = 12 + OnClick = Button11Click + end + object SWFBCodeName: TEdit + Tag = 2 + Left = 497 + Top = 17 + Width = 76 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 13 + OnChange = ordernoChange + end + object FSWFBFK10: TEdit + Tag = 2 + Left = 618 + Top = 17 + Width = 76 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 14 + OnChange = ordernoChange + end + object SWFBKZ10: TEdit + Tag = 2 + Left = 738 + Top = 17 + Width = 76 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 15 + OnChange = ordernoChange + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 82 + Width = 1147 + Height = 18 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 2 + Tabs.Strings = ( + #24453#23457#26680 + #24050#23457#26680 + #24050#23436#25104) + OnChange = cxTabControl1Change + ClientRectBottom = 19 + ClientRectRight = 1147 + ClientRectTop = 19 + end + object Panel2: TPanel + Left = 0 + Top = 100 + Width = 1147 + Height = 103 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 3 + object Label4: TLabel + Left = 32 + Top = 24 + Width = 70 + Height = 14 + Caption = #23567#21367#24133#23485'cm' + end + object SmalMF1: TEdit + Tag = 2 + Left = 104 + Top = 21 + Width = 97 + Height = 22 + TabOrder = 0 + Visible = False + end + object SmalMF2: TEdit + Tag = 2 + Left = 224 + Top = 21 + Width = 89 + Height = 22 + TabOrder = 1 + Visible = False + end + object SmalMF3: TEdit + Tag = 2 + Left = 344 + Top = 21 + Width = 81 + Height = 22 + TabOrder = 2 + Visible = False + end + object SmalMF4: TEdit + Tag = 2 + Left = 456 + Top = 21 + Width = 97 + Height = 22 + TabOrder = 3 + Visible = False + end + object SmalMF5: TEdit + Tag = 2 + Left = 584 + Top = 21 + Width = 89 + Height = 22 + TabOrder = 4 + Visible = False + end + object SmalMF6: TEdit + Tag = 2 + Left = 704 + Top = 21 + Width = 105 + Height = 22 + TabOrder = 5 + Visible = False + end + object SmalMF7: TEdit + Tag = 2 + Left = 104 + Top = 45 + Width = 97 + Height = 22 + TabOrder = 6 + Visible = False + end + object SmalMF8: TEdit + Tag = 2 + Left = 224 + Top = 45 + Width = 89 + Height = 22 + TabOrder = 7 + Visible = False + end + object SmalMF9: TEdit + Tag = 2 + Left = 344 + Top = 45 + Width = 81 + Height = 22 + TabOrder = 8 + Visible = False + end + object SmalMF10: TEdit + Tag = 2 + Left = 456 + Top = 45 + Width = 97 + Height = 22 + TabOrder = 9 + Visible = False + end + object SmalMF11: TEdit + Tag = 2 + Left = 584 + Top = 45 + Width = 89 + Height = 22 + TabOrder = 10 + Visible = False + end + object SmalMF12: TEdit + Tag = 2 + Left = 704 + Top = 45 + Width = 105 + Height = 22 + TabOrder = 11 + Visible = False + end + object Button6: TButton + Left = 104 + Top = 72 + Width = 97 + Height = 25 + Caption = #30830#23450 + TabOrder = 12 + Visible = False + OnClick = Button6Click + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 464 + Width = 1147 + Height = 170 + Align = alBottom + PopupMenu = PopupMenu1 + TabOrder = 4 + object Tv2: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv2CellClick + DataController.DataSource = DSSCAnPai + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn12 + end + item + Kind = skSum + Column = cxGridDBColumn13 + end + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + Column = cxGridDBColumn3 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = cxStyle1 + Styles.IncSearch = cxStyle1 + Styles.Selection = cxStyle1 + object v2Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 81 + end + object v2Column2: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 73 + end + object v2Column3: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 72 + end + object v2Column4: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 84 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #23433#25490#26085#26399 + DataBinding.FieldName = 'AnPaiDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 87 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #29983#20135#24207#21495 + DataBinding.FieldName = 'SCOrder' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 75 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #23433#25490#31859#25968 + DataBinding.FieldName = 'OrderQtyM' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 74 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #23450#21367#38271'M' + DataBinding.FieldName = 'BigLen' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 78 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #23450#21367#25968 + DataBinding.FieldName = 'BigCount' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 78 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #38376#24133#19978#38480'cm' + DataBinding.FieldName = 'BigMF' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + Width = 95 + end + object v2Column9: TcxGridDBColumn + Caption = #38376#24133#19979#38480'cm' + DataBinding.FieldName = 'BigMFSmal' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + Width = 85 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #23567#21367#20998#20999#20010#25968 + DataBinding.FieldName = 'SmalCount' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column19PropertiesEditValueChanged + Width = 94 + end + object cxGridDBColumn8: TcxGridDBColumn + Caption = #23567#21367#20998#20999#24133#23485 + DataBinding.FieldName = 'SmalMF' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 228 + end + object v2Column5: TcxGridDBColumn + Caption = #37325#37327#35828#26126 + DataBinding.FieldName = 'WeigthNote' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column5PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 112 + end + object v2Column6: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'APNote' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column6PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 117 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #23567#21367#20801#35768#20559#24046 + DataBinding.FieldName = 'SmalPC' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1Column23PropertiesEditValueChanged + Width = 98 + end + object cxGridDBColumn10: TcxGridDBColumn + Caption = #20998#20999#35828#26126 + DataBinding.FieldName = 'SmalNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1Column24PropertiesButtonClick + Properties.OnEditValueChanged = v1Column24PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 129 + end + object cxGridDBColumn11: TcxGridDBColumn + Caption = #25171#21253#35201#27714 + DataBinding.FieldName = 'DBNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column25PropertiesButtonClick + Properties.OnEditValueChanged = v1Column25PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 203 + end + object cxGridDBColumn12: TcxGridDBColumn + Caption = #29983#20135#31859#25968 + DataBinding.FieldName = 'SCMQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 81 + end + object cxGridDBColumn13: TcxGridDBColumn + Caption = #26410#29983#20135#31859#25968 + DataBinding.FieldName = 'WSCMQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 102 + end + object v2Column8: TcxGridDBColumn + Caption = #23436#25104#26085#26399 + DataBinding.FieldName = 'WCDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnEditValueChanged = v2Column8PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 82 + end + object cxGridDBColumn22: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'SCStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + end + object v2Column7: TcxGridDBColumn + Caption = #29983#20135#19979#36798 + DataBinding.FieldName = 'SCXDFlag' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 67 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 496 + Top = 240 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 536 + Top = 240 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 576 + Top = 248 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 608 + Top = 248 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 640 + Top = 256 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 456 + Top = 240 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlack + end + end + object DSSCAnPai: TDataSource + DataSet = CDS_SCAnPai + Left = 608 + Top = 496 + end + object CDS_SCAnPai: TClientDataSet + Aggregates = <> + Params = <> + Left = 608 + Top = 528 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 528 + Top = 496 + end + object PopupMenu1: TPopupMenu + Left = 400 + Top = 528 + object N1: TMenuItem + Caption = #22686#34892 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #21024#34892 + OnClick = N2Click + end + end + object ADOQuerySub: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 560 + Top = 536 + end +end diff --git a/盛纺贸易管理/U_ProductionAnPaiNew.pas b/盛纺贸易管理/U_ProductionAnPaiNew.pas new file mode 100644 index 0000000..a979f69 --- /dev/null +++ b/盛纺贸易管理/U_ProductionAnPaiNew.pas @@ -0,0 +1,1006 @@ +unit U_ProductionAnPaiNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ADODB, DBClient, cxTextEdit, cxPC, + cxCalendar, ComCtrls, cxButtonEdit, cxGridCustomPopupMenu, + cxGridPopupMenu, Menus, cxCheckBox; + +type + TfrmProductionAnPaiNew = class(TForm) + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1OrderNo: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1PRTMF: TcxGridDBColumn; + v1PRTKZ: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + Panel1: TPanel; + Label1: TLabel; + Label15: TLabel; + Label16: TLabel; + orderno: TEdit; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + v1Column14: TcxGridDBColumn; + Button1: TButton; + Button2: TButton; + Button3: TButton; + cxTabControl1: TcxTabControl; + Label2: TLabel; + Label3: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Button4: TButton; + Button5: TButton; + Panel2: TPanel; + SmalMF1: TEdit; + SmalMF2: TEdit; + SmalMF3: TEdit; + SmalMF4: TEdit; + SmalMF5: TEdit; + SmalMF6: TEdit; + Label4: TLabel; + SmalMF7: TEdit; + SmalMF8: TEdit; + SmalMF9: TEdit; + SmalMF10: TEdit; + SmalMF11: TEdit; + SmalMF12: TEdit; + Button6: TButton; + cxGridPopupMenu1: TcxGridPopupMenu; + Button7: TButton; + v1Column26: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn22: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DSSCAnPai: TDataSource; + CDS_SCAnPai: TClientDataSet; + cxGridPopupMenu2: TcxGridPopupMenu; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + ADOQuerySub: TADOQuery; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + Button8: TButton; + Button9: TButton; + Button10: TButton; + Button11: TButton; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + Label5: TLabel; + SWFBCodeName: TEdit; + Label6: TLabel; + FSWFBFK10: TEdit; + Label7: TLabel; + SWFBKZ10: TEdit; + v2Column9: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ordernoChange(Sender: TObject); + procedure v1Column4PropertiesEditValueChanged(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure v1Column19PropertiesEditValueChanged(Sender: TObject); + procedure v1Column23PropertiesEditValueChanged(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure v1Column24PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column24PropertiesEditValueChanged(Sender: TObject); + procedure v1Column25PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column25PropertiesEditValueChanged(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure N1Click(Sender: TObject); + // procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure Tv2CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure v2Column5PropertiesEditValueChanged(Sender: TObject); + procedure v2Column6PropertiesEditValueChanged(Sender: TObject); + procedure Button10Click(Sender: TObject); + procedure Button11Click(Sender: TObject); + procedure Button9Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure v2Column8PropertiesEditValueChanged(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + procedure VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); + procedure InitGridAnPai(); + public + { Public declarations } + end; + +var + frmProductionAnPaiNew: TfrmProductionAnPaiNew; + +implementation +uses + U_DataLink,U_Fun,U_OrderAttachment,U_ZDYHelpSel,U_JiangLiaoSet; + +{$R *.dfm} + +procedure TfrmProductionAnPaiNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + orderno.SetFocus; + Action:=caFree; +end; + +procedure TfrmProductionAnPaiNew.FormDestroy(Sender: TObject); +begin + frmProductionAnPaiNew:=nil; +end; + +procedure TfrmProductionAnPaiNew.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alClient; + if Trim(DParameters1)='' then + begin + Button5.Visible:=True; + Button4.Visible:=True; + end else + begin + Button5.Visible:=False; + Button4.Visible:=False; + end; +end; +procedure TfrmProductionAnPaiNew.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' exec P_ProductAnPai :begdate,:enddate,:pstate,:Wsql'); + if cxTabControl1.TabIndex=0 then + begin + Parameters.ParamByName('begdate').Value:=''; + Parameters.ParamByName('enddate').Value:=''; + Parameters.ParamByName('pstate').Value:=1; + end else + if cxTabControl1.TabIndex=1 then + begin + Parameters.ParamByName('begdate').Value:=''; + Parameters.ParamByName('enddate').Value:=''; + Parameters.ParamByName('pstate').Value:=2; + end else + if cxTabControl1.TabIndex=2 then + begin + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.Date) ; + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.Date+1); + Parameters.ParamByName('pstate').Value:=3; + end; + Parameters.ParamByName('Wsql').Value:=''; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductionAnPaiNew.InitGridAnPai(); +begin + try + ADOQuerySub.DisableControls; + with ADOQuerySub do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,C.OrderNo,B.SWFBCodeName,B.SWFBColor,B.SWFBHW,B.SWFBKZ '); + sql.Add(',SCMQty=(select isnull(sum(MJLen),0) from WFB_MJJY AA where AA.APID=A.APID)'); + sql.Add(',Case when A.OrderQtyM-(select isnull(sum(MJLen),0) from WFB_MJJY AA where AA.APID=A.APID)>0 then'); + SQL.Add(' A.OrderQtyM-(select isnull(sum(MJLen),0) from WFB_MJJY AA where AA.APID=A.APID) else 0 end as WSCMQty'); + SQL.Add('from WFBOrder_Sub_AnPai A inner join WFBOrder_Sub B on A.SubId=B.SubId'); + sql.Add(' inner join WFBOrder_Main C on A.MainId=C.MainId'); + sql.Add(' where A.SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + if cxTabControl1.TabIndex=1 then + begin + SQL.Add(' and Isnull(A.SCStatus,'''')<>'''' '); + end else + if cxTabControl1.TabIndex=2 then + begin + SQL.Add(' and Isnull(A.SCStatus,'''')='''' '); + end; + Open; + end; + SCreateCDS20(ADOQuerySub,CDS_SCAnPai); + SInitCDSData20(ADOQuerySub,CDS_SCAnPai); + finally + ADOQuerySub.EnableControls; + end; +end; + +procedure TfrmProductionAnPaiNew.Button1Click(Sender: TObject); +begin + orderno.SetFocus; + InitGrid(); + InitGridAnPai(); +end; + +procedure TfrmProductionAnPaiNew.FormShow(Sender: TObject); +begin + ReadCxGrid('FD1',Tv1,'޷IJ'); + ReadCxGrid('FD2',Tv2,'޷IJ'); + EndDate.Date:=SGetServerDate(ADOQueryTemp); + BegDate.Date:=EndDate.Date-30; + if cxTabControl1.TabIndex=1 then + begin + Tv2.OptionsSelection.CellSelect:=False; + end else + Tv2.OptionsSelection.CellSelect:=True; + if Trim(DParameters1)='' then + begin + Tv2.OptionsSelection.CellSelect:=False; + end; + InitGrid(); + InitGridAnPai(); +end; + +procedure TfrmProductionAnPaiNew.ordernoChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmProductionAnPaiNew.v1Column4PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with CDS_SCAnPai do + begin + Edit; + FieldByName('SCOrder').Value:=Trim(mvalue); + FieldByName('AnPaiDate').Value:=Now; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set SCOrder='''+Trim(mvalue)+''''); + SQL.Add(',AnPaiDate=getdate()'); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPaiNew.Button2Click(Sender: TObject); +begin + orderno.SetFocus; + WriteCxGrid('FD1',Tv1,'޷IJ'); + WriteCxGrid('FD2',Tv2,'޷IJ'); + Close; +end; + +procedure TfrmProductionAnPaiNew.Button3Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel('',cxGrid1); +end; + +procedure TfrmProductionAnPaiNew.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); + InitGridAnPai(); + if cxTabControl1.TabIndex=0 then + begin + Tv2.OptionsSelection.CellSelect:=True; + end else + Tv2.OptionsSelection.CellSelect:=False; + if Trim(DParameters1)='' then + begin + Tv2.OptionsSelection.CellSelect:=False; + end; + VisbleControl(Panel2,False,Panel2.ControlCount); +end; + +procedure TfrmProductionAnPaiNew.Button4Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>0 then Exit; + if CDS_SCAnPai.IsEmpty then Exit; + if Trim(DName)=Trim(CDS_Main.fieldbyname('AnPaiPerson').AsString) then + begin + Application.MessageBox('Լݣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set AnPaiChker='''+Trim(DName)+''''); + sql.Add(',AnPaiChkStatus=''ͨ'''); + sql.add(',AnPaiChkDate=getdate()'); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + + ADOQueryCmd.Connection.CommitTrans; + CDS_Main.Delete; + InitGridAnPai(); + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmProductionAnPaiNew.Button5Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>1 then Exit; + if Trim(DName)=Trim(CDS_Main.fieldbyname('AnPaiPerson').AsString) then + begin + Application.MessageBox('Լݣ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub Set AnPaiChker='''+Trim(DName)+''''); + sql.Add(',AnPaiChkStatus=''˲ͨ'','); + sql.add('AnPaiChkDate=getdate()'); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + CDS_Main.Delete; + InitGridAnPai(); + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmProductionAnPaiNew.Tv1DblClick(Sender: TObject); +begin + try + frmOrderAttachment:=TfrmOrderAttachment.Create(Application); + with frmOrderAttachment do + begin + FAMainId:=Trim(Self.CDS_Main.fieldbyname('MainId').AsString); + Panel1.Enabled:=False; + if ShowModal=1 then + begin + + end; + end; + finally + frmOrderAttachment.Free; + end; +end; + +procedure TfrmProductionAnPaiNew.v1Column19PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FFieldName:String; + i:Integer; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:='0'; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_SCAnPai do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set '+FFieldName+'='+Trim(mvalue)); + SQL.Add(',AnPaiPerson='''+Trim(DName)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + if Trim(FFieldName)='SmalCount' then + begin + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel2,True,strtoint(mvalue)+1); + end; + if strtoint(mvalue)+1>0 then + begin + Button6.Visible:=True; + end; +end; + +procedure TfrmProductionAnPaiNew.v1Column23PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_SCAnPai do + begin + Edit; + FieldByName('SmalPC').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set SmalPC='''+Trim(mvalue)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; +end; +procedure TfrmProductionAnPaiNew.VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + Controls[i].Visible:=XS; + end; + end; +end; + +procedure TfrmProductionAnPaiNew.Button6Click(Sender: TObject); +var + i,j:Integer; + FFname,FFnameValue,FSubId:string; +begin + //FSubId:=Trim(CDS_Main.fieldbyname('SubId').AsString); + try + j:=0; + ADOQueryCmd.Connection.BeginTrans; + with Panel2 do + begin + for i:=0 to Panel2.ControlCount-1 do + begin + if Controls[i] is TLabel then Continue; + if Controls[i] is TButton then Continue; + if Controls[i].Visible=True then + begin + FFname:=Trim(Controls[i].Name); + if Trim(TEdit(Controls[i]).Text)='' then + begin + ADOQueryCmd.Connection.RollbackTrans; + j:=9; + Break; + end; + if StrToFloat((TEdit(Controls[i]).Text))=0 then + begin + ADOQueryCmd.Connection.RollbackTrans; + j:=10; + Break; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub_AnPai Set '+FFname+'='+Trim(TEdit(Controls[i]).Text)); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + with CDS_SCAnPai do + begin + Edit; + FieldByName(Controls[i].Name).Value:=Trim(TEdit(Controls[i]).Text); + Post; + end; + end; + end; + if j=0 then + ADOQueryCmd.Connection.CommitTrans + else + if j=9 then + begin + //ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('СΪգ','ʾ',0); + Exit; + end else + if j=10 then + begin + //ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('СΪ㣡','ʾ',0); + Exit; + end; + end; + //InitGrid(); + // CDS_Main.Locate('SubId',Trim(FSubId),[]); + with Panel2 do + begin + j:=0; + for i:=0 to Panel2.ControlCount-1 do + begin + if Controls[i] is TLabel then Continue; + if Controls[i] is TButton then Continue; + if TEdit(Controls[i]).Visible=True then + begin + if j=0 then + FSubId:=Trim(TEdit(Controls[i]).Text) + else + FSubId:=FSubId+','+Trim(TEdit(Controls[i]).Text); + j:=j+1; + end; + end; + end; + with CDS_SCAnPai do + begin + Edit; + FieldByName('SmalMF').Value:=Trim(FSubId); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub_Anpai Set SmalMF='''+Trim(FSubId)+'''') ; + sql.Add(' where APID='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȷ쳣','ʾ',0); + end; +end; + +procedure TfrmProductionAnPaiNew.v1Column24PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + mvalue:String; +begin + mvalue:=Trim(CDS_Main.fieldbyname('SmalNote').AsString); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='SmalNote'; + flagname:='˵'; + if ShowModal=1 then + begin + with Self.CDS_SCAnPai do + begin + Edit; + FieldByName('SmalNote').Value:=mvalue+Trim(ReturnStr); + //post; + end; + mvalue:=mvalue+ReturnStr; + with Self.ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set SmalNote='''+Trim(mvalue)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + end; +end; + +procedure TfrmProductionAnPaiNew.v1Column24PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_SCAnPai do + begin + Edit; + FieldByName('SmalNote').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set SmalNote='''+Trim(mvalue)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPaiNew.v1Column25PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +var + mvalue:String; +begin + mvalue:=Trim(CDS_Main.fieldbyname('DBNote').AsString); + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='DBNote'; + flagname:='Ҫ'; + if ShowModal=1 then + begin + with Self.CDS_SCAnPai do + begin + Edit; + FieldByName('DBNote').Value:=mvalue+Trim(ReturnStr); + //post; + end; + mvalue:=mvalue+ReturnStr; + with Self.ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set DBNote='''+Trim(mvalue)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + end; +end; + +procedure TfrmProductionAnPaiNew.v1Column25PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_SCAnPai do + begin + Edit; + FieldByName('DBNote').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set DBNote='''+Trim(mvalue)+''''); + SQL.Add(' where ApId='''+Trim(CDS_SCAnPai.fieldbyname('ApId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPaiNew.Button7Click(Sender: TObject); +begin + try + frmJiangLiaoSet:=TfrmJiangLiaoSet.Create(Application); + with frmJiangLiaoSet do + begin + if ShowModal=1 then + begin + + end; + end; + finally + end; +end; + +procedure TfrmProductionAnPaiNew.N1Click(Sender: TObject); +var + maxno:String; +begin + if cxTabControl1.TabIndex>0 then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxno,'AP','WFBOrder_Sub_AnPai',3,1)=False then + begin + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFBOrder_Sub_AnPai where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('APID').Value:=Trim(maxno); + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('AnPaiPerson').Value:=Trim(DName); + FieldByName('SmalCount').Value:=0; + FieldByName('AnPaiDate').Value:=SGetServerDate(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub Set AnPaiPerson='''+Trim(DName)+''''); + sql.Add(',AnPaiDate=getdate()'); + SQL.Add(' where SubId='''+Trim(CDS_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with CDS_Main do + begin + Edit; + FieldByName('AnPaiPerson').Value:=Trim(DName); + Post; + end; + with CDS_SCAnPai do + begin + Append; + FieldByName('APID').Value:=Trim(maxno); + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); + FieldByName('AnPaiDate').Value:=SGetServerDate(ADOQueryTemp); + FieldByName('SmalCount').Value:=0; + FieldByName('OrderNo').Value:=Trim(CDS_Main.fieldbyname('OrderNo').AsString); + FieldByName('SWFBColor').Value:=Trim(CDS_Main.fieldbyname('SWFBColor').AsString); + FieldByName('SWFBKZ').Value:=Trim(CDS_Main.fieldbyname('SWFBKZ').AsString); + FieldByName('SWFBHW').Value:=Trim(CDS_Main.fieldbyname('SWFBHW').AsString); + FieldByName('SmalMF1').Value:=0; + FieldByName('SmalMF2').Value:=0; + FieldByName('SmalMF3').Value:=0; + FieldByName('SmalMF4').Value:=0; + FieldByName('SmalMF5').Value:=0; + FieldByName('SmalMF6').Value:=0; + FieldByName('SmalMF7').Value:=0; + FieldByName('SmalMF8').Value:=0; + FieldByName('SmalMF9').Value:=0; + FieldByName('SmalMF10').Value:=0; + FieldByName('SmalMF11').Value:=0; + FieldByName('SmalMF12').Value:=0; + + Post; + end; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + Exit; + end; +end; + +procedure TfrmProductionAnPaiNew.N2Click(Sender: TObject); +begin + if cxTabControl1.TabIndex>0 then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFBOrder_Sub_AnPai where APID='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + CDS_SCAnPai.Delete; +end; + +procedure TfrmProductionAnPaiNew.Tv2CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel2,True,CDS_SCAnPai.fieldbyname('SmalCount').Value+1); + + if Trim(CDS_SCAnPai.FieldByName('SmalCount').AsString)='' then Exit; + if CDS_SCAnPai.fieldbyname('SmalCount').Value>0 then + begin + SCSHDataCDS(CDS_SCAnPai,Panel2,2); + if cxTabControl1.TabIndex=0 then + Button6.Visible:=True + else + Button6.Visible:=False; + end; +end; + +procedure TfrmProductionAnPaiNew.Tv1CellClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + InitGridAnPai(); +end; + +procedure TfrmProductionAnPaiNew.v2Column5PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_SCAnPai do + begin + Edit; + FieldByName('WeigthNote').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set WeigthNote='''+Trim(mvalue)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPaiNew.v2Column6PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + mvalue:=''; + with CDS_SCAnPai do + begin + Edit; + FieldByName('APNote').Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set APNote='''+Trim(mvalue)+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmProductionAnPaiNew.Button10Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>1 then Exit; + if Application.MessageBox('ȷҪִɲ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub_AnPai Set SCStatus='''',WCDate=getdate() where APID='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + CDS_SCAnPai.Delete; +end; + +procedure TfrmProductionAnPaiNew.Button11Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>2 then Exit; + if Application.MessageBox('ȷҪִɳ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub_AnPai Set SCStatus='''' where APID='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + CDS_SCAnPai.Delete; +end; + +procedure TfrmProductionAnPaiNew.Button9Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>1 then Exit; + if Application.MessageBox('ȷҪִ´','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub_AnPai Set SCXDFlag=1 where APID='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + with CDS_SCAnPai do + begin + Edit; + FieldByName('SCXDFlag').Value:=True; + Post; + end; +end; + +procedure TfrmProductionAnPaiNew.Button8Click(Sender: TObject); +begin + if cxTabControl1.TabIndex<>1 then Exit; + if Application.MessageBox('ȷҪִ','ʾ',32+4)<>IDYES then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFBOrder_Sub_AnPai Set SCXDFlag=0 where APID='''+Trim(CDS_SCAnPai.fieldbyname('APID').AsString)+''''); + ExecSQL; + end; + with CDS_SCAnPai do + begin + Edit; + FieldByName('SCXDFlag').Value:=false; + Post; + end; +end; + +procedure TfrmProductionAnPaiNew.v2Column8PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:TDateTime; +begin + mvalue:=TcxDateEdit(Sender).EditingValue; + if Trim(DateTimeToStr(mvalue))='' then + begin + mvalue:=null; + end; + with CDS_SCAnPai do + begin + Edit; + FieldByName('WCDate').Value:=mvalue; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate WFBOrder_Sub_AnPai Set WCDate='''+Trim(FormatDateTime('yyyy-MM-dd HH:mm:ss',mvalue))+''''); + SQL.Add(' where APId='''+Trim(CDS_SCAnPai.fieldbyname('APId').AsString)+''''); + ExecSQL; + end; +end; + +end. diff --git a/盛纺贸易管理/U_SCGYSet.dfm b/盛纺贸易管理/U_SCGYSet.dfm new file mode 100644 index 0000000..1c29d81 --- /dev/null +++ b/盛纺贸易管理/U_SCGYSet.dfm @@ -0,0 +1,1297 @@ +object frmSCGYSet: TfrmSCGYSet + Left = 58 + Top = 31 + Width = 1137 + Height = 706 + Caption = #29983#20135#24037#33402#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 14 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1129 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = ToolButton1Click + end + object TBSave: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 13 + Visible = False + OnClick = ToolButton2Click + end + object ToolButton5: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23457#26680#36890#36807 + ImageIndex = 104 + OnClick = ToolButton5Click + end + object ToolButton6: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #23457#26680#19981#36890#36807 + ImageIndex = 109 + OnClick = ToolButton6Click + end + object TBClose: TToolButton + Left = 375 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 1129 + Height = 76 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 16 + Top = 15 + Width = 60 + Height = 14 + Caption = #31614#21457#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 203 + Top = 15 + Width = 45 + Height = 14 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 203 + Top = 39 + Width = 46 + Height = 14 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 382 + Top = 15 + Width = 30 + Height = 14 + Caption = #33457#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 523 + Top = 15 + Width = 30 + Height = 14 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 523 + Top = 39 + Width = 30 + Height = 14 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 382 + Top = 39 + Width = 30 + Height = 14 + Caption = #37197#27604 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 643 + Top = 15 + Width = 60 + Height = 14 + Caption = #20135#21697#20195#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 643 + Top = 39 + Width = 60 + Height = 14 + Caption = #32593#23380#30446#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 98 + Height = 22 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 75 + Top = 35 + Width = 99 + Height = 22 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 247 + Top = 11 + Width = 103 + Height = 22 + TabOrder = 2 + OnChange = OrderNoChange + end + object CustomnoName: TEdit + Tag = 2 + Left = 247 + Top = 35 + Width = 104 + Height = 22 + TabOrder = 3 + OnChange = OrderNoChange + end + object SWFBHW: TEdit + Tag = 2 + Left = 414 + Top = 11 + Width = 71 + Height = 22 + TabOrder = 4 + OnChange = OrderNoChange + end + object SWFBKZ: TEdit + Tag = 2 + Left = 554 + Top = 11 + Width = 63 + Height = 22 + TabOrder = 5 + OnChange = OrderNoChange + end + object SWFBColor: TEdit + Tag = 2 + Left = 554 + Top = 35 + Width = 63 + Height = 22 + TabOrder = 6 + OnChange = OrderNoChange + end + object YLPB: TEdit + Tag = 2 + Left = 414 + Top = 35 + Width = 71 + Height = 22 + TabOrder = 7 + OnChange = OrderNoChange + end + object SWFBCodeName: TEdit + Tag = 2 + Left = 706 + Top = 11 + Width = 87 + Height = 22 + TabOrder = 8 + OnChange = OrderNoChange + end + object WKMS: TEdit + Tag = 2 + Left = 706 + Top = 35 + Width = 87 + Height = 22 + TabOrder = 9 + OnChange = OrderNoChange + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 105 + Width = 1129 + Height = 24 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 2 + Tabs.Strings = ( + #24453#29983#25104 + #24050#29983#25104 + #23457#26680#36890#36807) + OnChange = cxTabControl1Change + ClientRectBottom = 24 + ClientRectRight = 1129 + ClientRectTop = 21 + end + object cxGrid1: TcxGrid + Left = 0 + Top = 129 + Width = 1129 + Height = 146 + Align = alTop + TabOrder = 3 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + object v1Column12: TcxGridDBColumn + Caption = #24037#33402#21333#21495'('#35746#21333#21495')' + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 112 + end + object v1Column11: TcxGridDBColumn + Caption = #26085#26399 + DataBinding.FieldName = 'SYDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1Column14: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'CustomnoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 63 + end + object v1Column13: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 70 + end + object v1Column3: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 95 + end + object v1Column9: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 78 + end + object v1Column2: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 109 + end + object v1Column8: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 91 + end + object v1Column10: TcxGridDBColumn + Caption = #20027#35201#21407#26009#37197#27604 + DataBinding.FieldName = 'YLPB' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 96 + end + object v1Column4: TcxGridDBColumn + Caption = #23457#26680#20154 + DataBinding.FieldName = 'Chker' + HeaderAlignmentHorz = taCenter + Width = 102 + end + object v1Column1: TcxGridDBColumn + Caption = #29366#24577 + DataBinding.FieldName = 'ChkStatus' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 124 + end + end + object cxGrid1Level4: TcxGridLevel + GridView = Tv1 + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 275 + Width = 1129 + Height = 168 + Align = alTop + TabOrder = 4 + object cxGrid4: TcxGrid + Left = 0 + Top = 17 + Width = 249 + Height = 147 + Align = alLeft + TabOrder = 0 + object TvKB: TcxGridDBBandedTableView + OnMouseDown = TvKBMouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSKB + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Bands = < + item + Caption = #24320#21253#26426 + Styles.Header = DataLink_WFBProducttion.handBlack + Width = 240 + end> + object cxGridDBBandedColumn4: TcxGridDBBandedColumn + Caption = #24320#21253#26426 + DataBinding.FieldName = 'KBMac' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = cxGridDBBandedColumn4PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 49 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn5: TcxGridDBBandedColumn + Caption = #21407#26009#21517#31216 + DataBinding.FieldName = 'YCLName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = cxGridDBBandedColumn5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn6: TcxGridDBBandedColumn + Caption = #25968#37327'(g)' + DataBinding.FieldName = 'KBQty' + HeaderAlignmentHorz = taCenter + Width = 73 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TvKB + end + end + object cxGrid3: TcxGrid + Left = 249 + Top = 17 + Width = 536 + Height = 147 + Align = alLeft + TabOrder = 1 + object TVPW: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSub + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Bands = < + item + Caption = #38138#32593#26426 + Styles.Header = DataLink_WFBProducttion.Default + Width = 529 + end> + object cxGridDBBandedColumn1: TcxGridDBBandedColumn + Caption = #24038#24133#23485 + DataBinding.FieldName = 'SYDefStr1' + HeaderAlignmentHorz = taCenter + Width = 50 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn2: TcxGridDBBandedColumn + Caption = #21491#24133#23485 + DataBinding.FieldName = 'SYDefStr2' + HeaderAlignmentHorz = taCenter + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn3: TcxGridDBBandedColumn + Caption = #23618#25968 + DataBinding.FieldName = 'SYDefStr3' + HeaderAlignmentHorz = taCenter + Width = 40 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object VPWColumn1: TcxGridDBBandedColumn + Caption = #20132#21449#23485 + DataBinding.FieldName = 'SYDefStr4' + HeaderAlignmentHorz = taCenter + Width = 46 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object VPWColumn2: TcxGridDBBandedColumn + Caption = 'in%' + DataBinding.FieldName = 'SYDefStr5' + HeaderAlignmentHorz = taCenter + Width = 38 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object VPWColumn3: TcxGridDBBandedColumn + Caption = 'Profiling' + DataBinding.FieldName = 'SYDefStr6' + HeaderAlignmentHorz = taCenter + Width = 307 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TVPW + end + end + object cxGrid2: TcxGrid + Left = 785 + Top = 17 + Width = 340 + Height = 147 + Align = alClient + TabOrder = 2 + object TvJS: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSub + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Bands = < + item + Caption = #21367#32469 + Styles.Header = DataLink_WFBProducttion.Default + Width = 305 + end> + object v2Column1: TcxGridDBBandedColumn + Caption = #25104#21367#36895#24230 + DataBinding.FieldName = 'SYDefStr7' + HeaderAlignmentHorz = taCenter + Width = 59 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v2Column2: TcxGridDBBandedColumn + Caption = #24133#23485 + DataBinding.FieldName = 'SYDefStr8' + HeaderAlignmentHorz = taCenter + Width = 56 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v2Column3: TcxGridDBBandedColumn + Caption = #25163#24863 + DataBinding.FieldName = 'SYDefStr9' + HeaderAlignmentHorz = taCenter + Width = 98 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object vJSColumn1: TcxGridDBBandedColumn + Caption = #21560#27700#24615 + DataBinding.FieldName = 'SYDefStr10' + Width = 92 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TvJS + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 1125 + Height = 17 + ButtonHeight = 18 + ButtonWidth = 36 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton3: TToolButton + Left = 0 + Top = 0 + Caption = #22686#34892 + ImageIndex = 9 + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 36 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 14 + OnClick = ToolButton4Click + end + end + end + object cxGrid5: TcxGrid + Left = 0 + Top = 600 + Width = 1129 + Height = 69 + Align = alBottom + TabOrder = 5 + object TvSYH: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSub + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #27700#21050#12289#21360#33457#12289#28888#24178 + Styles.Header = DataLink_WFBProducttion.Default + Width = 1119 + end> + object cxGridDBBandedColumn8: TcxGridDBBandedColumn + Caption = #25277#21560'HZ' + DataBinding.FieldName = 'SYDefStr11' + HeaderAlignmentHorz = taCenter + Width = 52 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn9: TcxGridDBBandedColumn + Caption = '1#'#25302#32593 + DataBinding.FieldName = 'SYDefStr12' + HeaderAlignmentHorz = taCenter + Width = 44 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn10: TcxGridDBBandedColumn + Caption = #22278#40723 + DataBinding.FieldName = 'SYDefStr13' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn11: TcxGridDBBandedColumn + Caption = '2#'#25302#32593 + DataBinding.FieldName = 'SYDefStr14' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn12: TcxGridDBBandedColumn + Caption = '1#'#36711#36710 + DataBinding.FieldName = 'SYDefStr15' + HeaderAlignmentHorz = taCenter + Width = 52 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object vQSJColumn1: TcxGridDBBandedColumn + Caption = '2#'#36711#36710 + DataBinding.FieldName = 'SYDefStr16' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object vQSJColumn2: TcxGridDBBandedColumn + Caption = #21360#33457 + DataBinding.FieldName = 'SYDefStr17' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object vQSJColumn3: TcxGridDBBandedColumn + Caption = #28888#24178'1#' + DataBinding.FieldName = 'SYDefStr18' + HeaderAlignmentHorz = taCenter + Width = 55 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object vQSJColumn4: TcxGridDBBandedColumn + Caption = #28888#24178'2#' + DataBinding.FieldName = 'SYDefStr19' + HeaderAlignmentHorz = taCenter + Width = 47 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object vQSJColumn5: TcxGridDBBandedColumn + Caption = #28888#24178'3#' + DataBinding.FieldName = 'SYDefStr20' + HeaderAlignmentHorz = taCenter + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object vQSJColumn6: TcxGridDBBandedColumn + Caption = '4#'#28888#24178 + DataBinding.FieldName = 'SYDefStr21' + HeaderAlignmentHorz = taCenter + Width = 48 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object vQSJColumn7: TcxGridDBBandedColumn + Caption = '5#'#28888#24178 + DataBinding.FieldName = 'SYDefStr22' + HeaderAlignmentHorz = taCenter + Width = 52 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object vQSJColumn8: TcxGridDBBandedColumn + Caption = '1#'#27700#21050#21387#21147 + DataBinding.FieldName = 'SYDefStr23' + HeaderAlignmentHorz = taCenter + Width = 79 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object vQSJColumn9: TcxGridDBBandedColumn + Caption = '2#'#27700#21050#21387#21147 + DataBinding.FieldName = 'SYDefStr24' + HeaderAlignmentHorz = taCenter + Width = 73 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object vQSJColumn10: TcxGridDBBandedColumn + Caption = '3#'#27700#21050#21387#21147 + DataBinding.FieldName = 'SYDefStr25' + HeaderAlignmentHorz = taCenter + Width = 71 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object vQSJColumn11: TcxGridDBBandedColumn + Caption = '4#'#27700#21050#21387#21147 + DataBinding.FieldName = 'SYDefStr26' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object vQSJColumn12: TcxGridDBBandedColumn + Caption = '5#'#27700#21050#21387#21147 + DataBinding.FieldName = 'SYDefStr27' + HeaderAlignmentHorz = taCenter + Width = 70 + Position.BandIndex = 0 + Position.ColIndex = 16 + Position.RowIndex = 0 + end + object vQSJColumn13: TcxGridDBBandedColumn + Caption = '6#'#27700#21050#21387#21147 + DataBinding.FieldName = 'SYDefStr28' + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 17 + Position.RowIndex = 0 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvSYH + end + end + object cxGrid6: TcxGrid + Left = 0 + Top = 443 + Width = 1129 + Height = 90 + Align = alClient + TabOrder = 6 + object TvSLJ: TcxGridDBBandedTableView + OnMouseDown = TvSLJMouseDown + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS_SLJ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #26803#29702#26426 + Styles.Header = DataLink_WFBProducttion.FonePurple + Width = 1119 + end> + object cxGridDBBandedColumn13: TcxGridDBBandedColumn + Caption = #19978#26825#31665#21387#21147 + DataBinding.FieldName = 'SLDefStr2' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn14: TcxGridDBBandedColumn + Caption = #19979#26825#31665#21387#21147 + DataBinding.FieldName = 'SLDefStr3' + HeaderAlignmentHorz = taCenter + Width = 69 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn15: TcxGridDBBandedColumn + Caption = #29983#20135#29575'%' + DataBinding.FieldName = 'SLDefStr4' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn16: TcxGridDBBandedColumn + Caption = #21890#20837 + DataBinding.FieldName = 'SLDefStr5' + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn17: TcxGridDBBandedColumn + Caption = #38177#26519#36895#24230 + DataBinding.FieldName = 'SLDefStr6' + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn18: TcxGridDBBandedColumn + Caption = #24037#20316#36746#36895#24230 + DataBinding.FieldName = 'SLDefStr7' + HeaderAlignmentHorz = taCenter + Width = 74 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn19: TcxGridDBBandedColumn + Caption = #19978#36947#22827 + DataBinding.FieldName = 'SLDefStr8' + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn20: TcxGridDBBandedColumn + Caption = #19978#26434#20081 + DataBinding.FieldName = 'SLDefStr9' + HeaderAlignmentHorz = taCenter + Width = 67 + Position.BandIndex = 0 + Position.ColIndex = 9 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn21: TcxGridDBBandedColumn + Caption = #19978#21093#21462 + DataBinding.FieldName = 'SLDefStr10' + HeaderAlignmentHorz = taCenter + Width = 77 + Position.BandIndex = 0 + Position.ColIndex = 10 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn22: TcxGridDBBandedColumn + Caption = #19978#36755#32593#24088 + DataBinding.FieldName = 'SLDefStr11' + HeaderAlignmentHorz = taCenter + Width = 65 + Position.BandIndex = 0 + Position.ColIndex = 11 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn23: TcxGridDBBandedColumn + Caption = #19979#36947#22827 + DataBinding.FieldName = 'SLDefStr12' + HeaderAlignmentHorz = taCenter + Width = 69 + Position.BandIndex = 0 + Position.ColIndex = 12 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn24: TcxGridDBBandedColumn + Caption = #19979#26434#20081 + DataBinding.FieldName = 'SLDefStr13' + HeaderAlignmentHorz = taCenter + Width = 66 + Position.BandIndex = 0 + Position.ColIndex = 13 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn25: TcxGridDBBandedColumn + Caption = #19979#21093#21462 + DataBinding.FieldName = 'SLDefStr14' + HeaderAlignmentHorz = taCenter + Width = 73 + Position.BandIndex = 0 + Position.ColIndex = 14 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn26: TcxGridDBBandedColumn + Caption = #19979#23680#32593#24088 + DataBinding.FieldName = 'SLDefStr15' + HeaderAlignmentHorz = taCenter + Width = 111 + Position.BandIndex = 0 + Position.ColIndex = 15 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn27: TcxGridDBBandedColumn + Caption = #26803#29702#26426 + DataBinding.FieldName = 'SLMac' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + Properties.OnButtonClick = cxGridDBBandedColumn27PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 104 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object vSLJColumn1: TcxGridDBBandedColumn + Caption = #38271#24088#31995#25968 + DataBinding.FieldName = 'SLDefStr1' + HeaderAlignmentHorz = taCenter + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + end + object cxGridLevel5: TcxGridLevel + GridView = TvSLJ + end + end + object cxGrid7: TcxGrid + Left = 0 + Top = 533 + Width = 1129 + Height = 67 + Align = alBottom + TabOrder = 7 + object TvQSJ: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSub + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Bands = < + item + Caption = #29301#20280#26426 + Styles.Header = DataLink_WFBProducttion.Default + Width = 1119 + end> + object cxGridDBBandedColumn28: TcxGridDBBandedColumn + Tag = 1 + Caption = #24635#20493#29575 + DataBinding.FieldName = 'ZBL' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 113 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn29: TcxGridDBBandedColumn + Caption = #31995#25968'1(%)' + DataBinding.FieldName = 'SYDefFlt1' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 129 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn30: TcxGridDBBandedColumn + Caption = #31995#25968'2(%)' + DataBinding.FieldName = 'SYDefFlt2' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 109 + Position.BandIndex = 0 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn31: TcxGridDBBandedColumn + Caption = #31995#25968'3(%)' + DataBinding.FieldName = 'SYDefFlt3' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 118 + Position.BandIndex = 0 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn32: TcxGridDBBandedColumn + Caption = #31995#25968'4(%)' + DataBinding.FieldName = 'SYDefFlt4' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 117 + Position.BandIndex = 0 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn33: TcxGridDBBandedColumn + Caption = #31995#25968'5(%)' + DataBinding.FieldName = 'SYDefFlt5' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 133 + Position.BandIndex = 0 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn34: TcxGridDBBandedColumn + Caption = #31995#25968'6(%)' + DataBinding.FieldName = 'SYDefFlt6' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 121 + Position.BandIndex = 0 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn35: TcxGridDBBandedColumn + Caption = #31995#25968'7(%)' + DataBinding.FieldName = 'SYDefFlt7' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = cxGridDBBandedColumn29PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 126 + Position.BandIndex = 0 + Position.ColIndex = 7 + Position.RowIndex = 0 + end + object cxGridDBBandedColumn36: TcxGridDBBandedColumn + Caption = #31995#25968'8(%)' + DataBinding.FieldName = 'SYDefFlt8' + HeaderAlignmentHorz = taCenter + Width = 153 + Position.BandIndex = 0 + Position.ColIndex = 8 + Position.RowIndex = 0 + end + end + object cxGridLevel6: TcxGridLevel + GridView = TvQSJ + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 256 + Top = 160 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 328 + Top = 160 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 288 + Top = 160 + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1080 + Top = 117 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 1048 + Top = 125 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 984 + Top = 141 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 816 + Top = 328 + end + object DSKB: TDataSource + DataSet = CDS_KB + Left = 160 + Top = 328 + end + object CDS_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 520 + Top = 168 + end + object cxGridPopupMenu3: TcxGridPopupMenu + Grid = cxGrid3 + PopupMenus = <> + Left = 440 + Top = 328 + end + object CDS_SLJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 560 + Top = 456 + end + object DS_SLJ: TDataSource + DataSet = CDS_SLJ + Left = 624 + Top = 456 + end + object cxGridPopupMenu4: TcxGridPopupMenu + Grid = cxGrid4 + PopupMenus = <> + Left = 48 + Top = 360 + end + object cxGridPopupMenu5: TcxGridPopupMenu + Grid = cxGrid5 + PopupMenus = <> + Left = 648 + Top = 632 + end + object cxGridPopupMenu6: TcxGridPopupMenu + Grid = cxGrid6 + PopupMenus = <> + Left = 584 + Top = 480 + end + object cxGridPopupMenu7: TcxGridPopupMenu + Grid = cxGrid7 + PopupMenus = <> + Left = 408 + Top = 560 + end + object DSSub: TDataSource + DataSet = CDS_Sub + Left = 480 + Top = 160 + end + object CDS_KB: TClientDataSet + Aggregates = <> + Params = <> + Left = 112 + Top = 328 + end +end diff --git a/盛纺贸易管理/U_SCGYSet.pas b/盛纺贸易管理/U_SCGYSet.pas new file mode 100644 index 0000000..6467404 --- /dev/null +++ b/盛纺贸易管理/U_SCGYSet.pas @@ -0,0 +1,1014 @@ +unit U_SCGYSet; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGrid, cxPC, StdCtrls, ComCtrls, ExtCtrls, + ToolWin, cxCheckBox, Menus, cxGridBandedTableView, + cxGridDBBandedTableView, cxCalendar, cxButtonEdit, cxTextEdit; + +type + TfrmSCGYSet = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNo: TEdit; + cxTabControl1: TcxTabControl; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + cxGrid1Level4: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQueryMain: TADOQuery; + cxGridPopupMenu2: TcxGridPopupMenu; + DSKB: TDataSource; + CDS_Sub: TClientDataSet; + ToolButton1: TToolButton; + v1Column2: TcxGridDBColumn; + ToolButton2: TToolButton; + v1Column8: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + ScrollBox1: TScrollBox; + cxGrid4: TcxGrid; + TvKB: TcxGridDBBandedTableView; + cxGridDBBandedColumn4: TcxGridDBBandedColumn; + cxGridDBBandedColumn5: TcxGridDBBandedColumn; + cxGridDBBandedColumn6: TcxGridDBBandedColumn; + cxGridLevel3: TcxGridLevel; + cxGrid3: TcxGrid; + TVPW: TcxGridDBBandedTableView; + cxGridDBBandedColumn1: TcxGridDBBandedColumn; + cxGridDBBandedColumn2: TcxGridDBBandedColumn; + cxGridDBBandedColumn3: TcxGridDBBandedColumn; + cxGridLevel2: TcxGridLevel; + cxGrid2: TcxGrid; + TvJS: TcxGridDBBandedTableView; + v2Column1: TcxGridDBBandedColumn; + v2Column2: TcxGridDBBandedColumn; + v2Column3: TcxGridDBBandedColumn; + cxGridLevel1: TcxGridLevel; + ToolBar2: TToolBar; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + VPWColumn1: TcxGridDBBandedColumn; + VPWColumn2: TcxGridDBBandedColumn; + VPWColumn3: TcxGridDBBandedColumn; + vJSColumn1: TcxGridDBBandedColumn; + cxGrid5: TcxGrid; + TvSYH: TcxGridDBBandedTableView; + cxGridDBBandedColumn8: TcxGridDBBandedColumn; + cxGridDBBandedColumn9: TcxGridDBBandedColumn; + cxGridDBBandedColumn10: TcxGridDBBandedColumn; + cxGridDBBandedColumn11: TcxGridDBBandedColumn; + cxGridDBBandedColumn12: TcxGridDBBandedColumn; + cxGridLevel4: TcxGridLevel; + vQSJColumn1: TcxGridDBBandedColumn; + vQSJColumn2: TcxGridDBBandedColumn; + vQSJColumn3: TcxGridDBBandedColumn; + vQSJColumn4: TcxGridDBBandedColumn; + vQSJColumn5: TcxGridDBBandedColumn; + vQSJColumn6: TcxGridDBBandedColumn; + vQSJColumn7: TcxGridDBBandedColumn; + vQSJColumn8: TcxGridDBBandedColumn; + vQSJColumn9: TcxGridDBBandedColumn; + vQSJColumn10: TcxGridDBBandedColumn; + vQSJColumn11: TcxGridDBBandedColumn; + vQSJColumn12: TcxGridDBBandedColumn; + vQSJColumn13: TcxGridDBBandedColumn; + cxGrid6: TcxGrid; + TvSLJ: TcxGridDBBandedTableView; + cxGridDBBandedColumn13: TcxGridDBBandedColumn; + cxGridDBBandedColumn14: TcxGridDBBandedColumn; + cxGridDBBandedColumn15: TcxGridDBBandedColumn; + cxGridDBBandedColumn16: TcxGridDBBandedColumn; + cxGridDBBandedColumn17: TcxGridDBBandedColumn; + cxGridDBBandedColumn18: TcxGridDBBandedColumn; + cxGridDBBandedColumn19: TcxGridDBBandedColumn; + cxGridDBBandedColumn20: TcxGridDBBandedColumn; + cxGridDBBandedColumn21: TcxGridDBBandedColumn; + cxGridDBBandedColumn22: TcxGridDBBandedColumn; + cxGridDBBandedColumn23: TcxGridDBBandedColumn; + cxGridDBBandedColumn24: TcxGridDBBandedColumn; + cxGridDBBandedColumn25: TcxGridDBBandedColumn; + cxGridDBBandedColumn26: TcxGridDBBandedColumn; + cxGridDBBandedColumn27: TcxGridDBBandedColumn; + cxGridLevel5: TcxGridLevel; + cxGridPopupMenu3: TcxGridPopupMenu; + CDS_SLJ: TClientDataSet; + DS_SLJ: TDataSource; + cxGridPopupMenu4: TcxGridPopupMenu; + cxGridPopupMenu5: TcxGridPopupMenu; + cxGridPopupMenu6: TcxGridPopupMenu; + vSLJColumn1: TcxGridDBBandedColumn; + v1Column3: TcxGridDBColumn; + cxGrid7: TcxGrid; + TvQSJ: TcxGridDBBandedTableView; + cxGridDBBandedColumn28: TcxGridDBBandedColumn; + cxGridDBBandedColumn29: TcxGridDBBandedColumn; + cxGridDBBandedColumn30: TcxGridDBBandedColumn; + cxGridDBBandedColumn31: TcxGridDBBandedColumn; + cxGridDBBandedColumn32: TcxGridDBBandedColumn; + cxGridDBBandedColumn33: TcxGridDBBandedColumn; + cxGridDBBandedColumn34: TcxGridDBBandedColumn; + cxGridDBBandedColumn35: TcxGridDBBandedColumn; + cxGridDBBandedColumn36: TcxGridDBBandedColumn; + cxGridLevel6: TcxGridLevel; + cxGridPopupMenu7: TcxGridPopupMenu; + DSSub: TDataSource; + CDS_KB: TClientDataSet; + Label4: TLabel; + CustomnoName: TEdit; + Label5: TLabel; + SWFBHW: TEdit; + Label6: TLabel; + SWFBKZ: TEdit; + Label7: TLabel; + SWFBColor: TEdit; + Label8: TLabel; + YLPB: TEdit; + Label2: TLabel; + SWFBCodeName: TEdit; + Label9: TLabel; + WKMS: TEdit; + ToolButton5: TToolButton; + ToolButton6: TToolButton; + v1Column1: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure MenuItem3Click(Sender: TObject); + procedure MenuItem4Click(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure cxGridDBBandedColumn4PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxGridDBBandedColumn5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxGridDBBandedColumn27PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TvKBMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure TvSLJMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure cxGridDBBandedColumn29PropertiesEditValueChanged( + Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + private + { Private declarations } + FInt:Integer; + procedure InitGrid(); + procedure InitGridSub(); + procedure InitGridKB(); + procedure InitGridSLJ(); + function SaveKB():Boolean; + function SaveSub():Boolean; + function SaveSLJ():Boolean; + procedure KBSLJData(); + procedure UpdateZBS(Sender: TObject); + public + { Public declarations } + end; + +var + frmSCGYSet: TfrmSCGYSet; + +implementation +uses + U_DataLink,U_Fun, U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmSCGYSet.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmSCGYSet.FormDestroy(Sender: TObject); +begin + frmSCGYSet:=nil; +end; + +procedure TfrmSCGYSet.InitGrid(); +begin + BegDate.SetFocus; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + SQL.Clear; + sql.Add('exec P_SCGY_List :begdate,:enddate,:PState'); + if cxTabControl1.TabIndex=0 then + begin + Parameters.ParamByName('begdate').Value:='2012-01-01'; + Parameters.ParamByName('enddate').Value:='2050-10-10'; + Parameters.ParamByName('PState').Value:=1; + end else + if cxTabControl1.TabIndex=1 then + begin + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1); + Parameters.ParamByName('PState').Value:=2; + end else + if cxTabControl1.TabIndex=2 then + begin + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1); + Parameters.ParamByName('PState').Value:=3; + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmSCGYSet.ToolButton1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmSCGYSet.FormShow(Sender: TObject); +begin + EndDate.DateTime:=SGetServerDate(ADOTemp); + BegDate.DateTime:=EndDate.DateTime-30; + ReadCxGrid('յ',Tv1,'޷IJ'); + InitGrid(); + KBSLJData(); + if Trim(DParameters1)='' then + begin + TBSave.Visible:=False; + Tv1.OptionsSelection.CellSelect:=False; + end else + begin + ToolButton5.Visible:=False; + ToolButton6.Visible:=False; + + end; +end; + +procedure TfrmSCGYSet.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + if Trim(DParameters1)<>'' then + begin + if cxTabControl1.TabIndex=2 then + Tv1.OptionsSelection.CellSelect:=False + else + Tv1.OptionsSelection.CellSelect:=True; + end; + +end; + +procedure TfrmSCGYSet.OrderNoChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmSCGYSet.MenuItem3Click(Sender: TObject); +begin + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=True; + Post; + Next; + end; + end; + CDS_Main.EnableControls; +end; + +procedure TfrmSCGYSet.MenuItem4Click(Sender: TObject); +begin + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + Edit; + FieldByName('SSel').Value:=False; + Post; + Next; + end; + end; + CDS_Main.EnableControls; +end; + +procedure TfrmSCGYSet.TBSaveClick(Sender: TObject); +begin + BegDate.SetFocus; + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex=2 then Exit; + if Trim(CDS_Main.FieldByName('SYDate').AsString)='' then + begin + Application.MessageBox('ڲΪգ','ʾ',0); + Exit; + end; + if (SaveSub() and SaveKB() and SaveSLJ() ) then + begin + if cxTabControl1.TabIndex=0 then + CDS_Main.Delete; + KBSLJData(); + Application.MessageBox('ɹ','ʾ',0); + end else + begin + end; + +end; +function TfrmSCGYSet.SaveSub():Boolean; +var + maxno:string; +begin + try + Result:=False; + ADOCmd.Connection.BeginTrans; + with CDS_Sub do + begin + //First; + //while not Eof do + //begin + if Trim(CDS_Sub.fieldbyname('SYID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'SY','WFB_SCGY',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_Sub.fieldbyname('SYID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_SCGY where SYID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_Sub.fieldbyname('SYID').AsString)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('SYID').Value:=Trim(maxno); + FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); + FieldByName('SWFBHW').Value:=Trim(CDS_Main.fieldbyname('SWFBHW').AsString); + FieldByName('WKMS').Value:=Trim(CDS_Main.fieldbyname('WKMS').AsString); + if Trim(CDS_Main.fieldbyname('SYDate').AsString)<>'' then + FieldByName('SYDate').Value:=Trim(CDS_Main.fieldbyname('SYDate').AsString); + SSetSaveDataCDSBandNew(ADOCmd,TVPW,CDS_Sub,'WFB_SCGY',0); + SSetSaveDataCDSBandNew(ADOCmd,TVJS,CDS_Sub,'WFB_SCGY',0); + SSetSaveDataCDSBandNew(ADOCmd,TVQSJ,CDS_Sub,'WFB_SCGY',0); + SSetSaveDataCDSBandNew(ADOCmd,TVSYH,CDS_Sub,'WFB_SCGY',0); + Post; + end; + with CDS_Main do + begin + Edit; + FieldByName('SYID').Value:=Trim(maxno); + Post; + end; + with CDS_Sub do + begin + Edit; + FieldByName('SYID').Value:=Trim(maxno); + Post; + end; + //Next; + //end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + //Application.MessageBox('ɹ','ʾ',0); + //Exit; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; +end; +function TfrmSCGYSet.SaveKB():Boolean; +var + maxno:string; +begin + BegDate.SetFocus; + Result:=False; + try + ADOCmd.Connection.BeginTrans; + with CDS_KB do + begin + First; + while not Eof do + begin + if Trim(CDS_KB.fieldbyname('KBID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'KB','WFB_SCGY_KB',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_KB.fieldbyname('KBID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_SCGY_KB where KBID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_KB.fieldbyname('KBID').AsString)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('SYID').Value:=Trim(CDS_Main.fieldbyname('SYID').AsString); + FieldByName('KBID').Value:=Trim(maxno); + FieldByName('YCLCode').Value:=Trim(CDS_KB.fieldbyname('YCLCode').AsString); + SSetSaveDataCDSBandNew(ADOCmd,TvKB,CDS_KB,'WFB_SCGY_KB',0); + Post; + end; + with CDS_KB do + begin + Edit; + FieldByName('KBID').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + ///Application.MessageBox('ɹ','ʾ',0); + //Exit; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; +end; +function TfrmSCGYSet.SaveSLJ():Boolean; +var + maxno:string; +begin + BegDate.SetFocus; + try + Result:=False; + ADOCmd.Connection.BeginTrans; + with CDS_SLJ do + begin + First; + while not Eof do + begin + if Trim(CDS_SLJ.fieldbyname('SLID').AsString)='' then + begin + if GetLSNo(ADOCmd,maxno,'SL','WFB_SCGY_ShuLi',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(CDS_SLJ.fieldbyname('SLID').AsString); + end; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_SCGY_ShuLi where SLID='''+Trim(maxno)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(CDS_SLJ.fieldbyname('SLID').AsString)='' then + begin + Append; + FieldByName('Filler').Value:=Trim(DName); + end else + begin + Edit; + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + FieldByName('SYID').Value:=Trim(CDS_Main.fieldbyname('SYID').AsString); + FieldByName('SLID').Value:=Trim(maxno); + SSetSaveDataCDSBandNew(ADOCmd,TvSLJ,CDS_SLJ,'WFB_SCGY_ShuLi',0); + Post; + end; + with CDS_SLJ do + begin + Edit; + FieldByName('SLID').Value:=Trim(maxno); + Post; + end; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + Result:=True; + ///Application.MessageBox('ɹ','ʾ',0); + //Exit; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; +end; + +procedure TfrmSCGYSet.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxGrid('յ',Tv1,'޷IJ'); +end; + +procedure TfrmSCGYSet.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel('յ',cxGrid1); +end; + +procedure TfrmSCGYSet.InitGridSub(); +begin + try + ADOTemp.DisableControls; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select A.*,ZBL=SYDefFlt1/100*SYDefFlt2/100*SYDefFlt3/100*SYDefFlt4/100*SYDefFlt5/100*SYDefFlt6/100*SYDefFlt7/100'); + SQL.Add(' from WFB_SCGY A where SYID='''+Trim(CDS_Main.fieldbyname('SYID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOTemp,CDS_Sub); + SInitCDSData20(ADOTemp,CDS_Sub); + finally + ADOTemp.EnableControls; + end; +end; +procedure TfrmSCGYSet.InitGridKB(); +begin + try + ADOTemp.DisableControls; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_SCGY_KB where SYID='''+Trim(CDS_Main.fieldbyname('SYID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOTemp,CDS_KB); + SInitCDSData20(ADOTemp,CDS_KB); + finally + ADOTemp.EnableControls; + end; +end; +procedure TfrmSCGYSet.InitGridSLJ(); +begin + try + ADOTemp.DisableControls; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_SCGY_Shuli where SYID='''+Trim(CDS_Main.fieldbyname('SYID').AsString)+''''); + Open; + end; + SCreateCDS20(ADOTemp,CDS_SLJ); + SInitCDSData20(ADOTemp,CDS_SLJ); + finally + ADOTemp.EnableControls; + end; +end; +procedure TfrmSCGYSet.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + KBSLJData(); +end; +procedure TfrmSCGYSet.KBSLJData(); +begin + InitGridSub(); + InitGridKB(); + InitGridSLJ(); + if Trim(CDS_Sub.fieldbyname('SYID').AsString)='' then + begin + with CDS_Sub do + begin + Append; + Post; + end; + end; + if Trim(CDS_KB.fieldbyname('KBID').AsString)='' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''KBMac'' '); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''KBMac'' order by ZdyNo '); + Open; + end; + with ADOTemp do + begin + First; + while not Eof do + begin + with CDS_KB do + begin + Append; + FieldByName('KBMac').Value:=Trim(ADOTemp.fieldbyname('ZdyName').AsString); + Post; + end; + Next; + end; + end; + end else + begin + with CDS_KB do + begin + Append; + Post; + end; + end; + end; + if Trim(CDS_SLJ.fieldbyname('SLID').AsString)='' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''SLMac'' '); + Open; + end; + if ADOTemp.IsEmpty=False then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from KH_Zdy where Type=''SLMac'' order by ZdyNo '); + Open; + end; + if Trim(CDS_Main.fieldbyname('WJGName').AsString)='+ֱ' then + begin + with ADOTemp do + begin + First; + while not Eof do + begin + with CDS_SLJ do + begin + Append; + FieldByName('SLMac').Value:=Trim(ADOTemp.fieldbyname('ZdyName').AsString); + Post; + end; + Next; + end; + end; + end else + begin + with ADOTemp do + begin + First; + with CDS_SLJ do + begin + Append; + FieldByName('SLMac').Value:=Trim(ADOTemp.fieldbyname('ZdyName').AsString); + Post; + end; + end; + end; + end else + begin + with CDS_SLJ do + begin + Append; + Post; + end; + end; + end; +end; +procedure TfrmSCGYSet.ToolButton3Click(Sender: TObject); +begin + + if FInt=1 then + begin + with CDS_KB do + begin + Append; + Post; + end; + end else + if FInt=2 then + begin + with CDS_SLJ do + begin + Append; + Post; + end; + end; + +end; + +procedure TfrmSCGYSet.ToolButton4Click(Sender: TObject); +begin + if FInt=1 then + begin + if Trim(CDS_KB.fieldbyname('KBID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.add('delete WFB_SCGY_KB where KBID='''+Trim(CDS_KB.fieldbyname('KBID').AsString)+''''); + ExecSQL; + end; + end; + CDS_KB.Delete; + end else + if FInt=2 then + begin + if Trim(CDS_SLJ.fieldbyname('SLID').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.add('delete WFB_SCGY_Shuli where SLID='''+Trim(CDS_SLJ.fieldbyname('SLID').AsString)+''''); + ExecSQL; + end; + end; + CDS_SLJ.Delete; + end; + +end; + +procedure TfrmSCGYSet.cxGridDBBandedColumn4PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KBMac'; + flagname:=''; + if ShowModal=1 then + begin + Self.CDS_KB.Edit; + Self.CDS_KB.FieldByName('KBMac').Value:=Trim(ClientDataSet1.fieldbyname('zdyname').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSCGYSet.cxGridDBBandedColumn5PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='YCL'; + flagname:='ԭ'; + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + TBSave.Visible:=False; + if ShowModal=1 then + begin + Self.CDS_KB.Edit; + Self.CDS_KB.FieldByName('YCLName').Value:=Trim(ClientDataSet1.fieldbyname('zdyname').AsString); + Self.CDS_KB.FieldByName('YCLCode').Value:=Trim(ClientDataSet1.fieldbyname('zdyNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSCGYSet.cxGridDBBandedColumn27PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SLMac'; + flagname:=''; + if ShowModal=1 then + begin + Self.CDS_SLJ.Edit; + Self.CDS_SLJ.FieldByName('SLMac').Value:=Trim(ClientDataSet1.fieldbyname('zdyname').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSCGYSet.TvKBMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +begin + FInt:=1; + TvKB.Bands[0].Caption:=''; + TvSLJ.Bands[0].Caption:=''; + TvKB.Bands[0].Styles.Header.TextColor:=clBlue; + TvSLJ.Bands[0].Styles.Header.TextColor:=clBlack; +end; + +procedure TfrmSCGYSet.TvSLJMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +begin + FInt:=2; + TvKB.Bands[0].Caption:=''; + TvSLJ.Bands[0].Caption:=''; + TvKB.Bands[0].Styles.Header.TextColor:=clBlack; + TvSLJ.Bands[0].Styles.Header.TextColor:=clBlue; +end; + +procedure TfrmSCGYSet.cxGridDBBandedColumn29PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:String; +begin + UpdateZBS(Sender); +end; + +procedure TfrmSCGYSet.UpdateZBS(Sender: TObject); +var + mvalue,FieldStr:String; + i:Integer; + XS,LXS:Double; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + FieldStr:=TvQSJ.Controller.FocusedColumn.DataBinding.FilterFieldName; + if Trim(mvalue)='' then + mvalue:='0'; + with CDS_Sub do + begin + Edit; + FieldByName(FieldStr).Value:=StrToFloat(mvalue); + Post; + end; + XS:=1.00; + for i:=1 to 7 do + begin + FieldStr:=Trim('SYDefFlt'+Trim(Inttostr(i))); + if Trim(CDS_Sub.FieldByName(FieldStr).AsString)='' then + begin + LXS:=0; + end else + begin + LXS:=CDS_Sub.FieldByName(FieldStr).Value; + end; + XS:=XS*LXS*1.00/100; + end; + with CDS_Sub do + begin + Edit; + FieldByName('ZBL').Value:=XS; + Post; + end; +end; + +procedure TfrmSCGYSet.ToolButton5Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex=1 then + begin + if Trim(CDS_Main.FieldByName('Filler').AsString)=Trim(DName) then + begin + Application.MessageBox('ԼĶ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('Update WFB_SCGY Set Chker='''+Trim(DName)+''''); + sql.Add(',ChkDate=getdate(),ChkStatus=''ͨ'' '); + sql.Add(' where SYID='''+Trim(CDS_Main.fieldbyname('SYID').AsString)+''''); + ExecSQL; + end; + with CDS_Main do + begin + edit; + FieldByName('ChkStatus').Value:='ͨ'; + FieldByName('Chker').Value:=Trim(DName); + Post; + end; + + end; +end; + +procedure TfrmSCGYSet.ToolButton6Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if cxTabControl1.TabIndex>0 then + begin + if cxTabControl1.TabIndex=2 then + begin + if Trim(CDS_Main.FieldByName('Chker').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲͨĶ','ʾ',0); + Exit; + end; + end; + + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('Update WFB_SCGY Set Chker='''+Trim(DName)+''''); + sql.Add(',ChkDate=getdate(),ChkStatus=''˲ͨ'' '); + sql.Add(' where SYID='''+Trim(CDS_Main.fieldbyname('SYID').AsString)+''''); + ExecSQL; + end; + with CDS_Main do + begin + edit; + FieldByName('ChkStatus').Value:='˲ͨ'; + FieldByName('Chker').Value:=Trim(DName); + Post; + end; + end; +end; + +end. diff --git a/盛纺贸易管理/U_SKCR_CX.dfm b/盛纺贸易管理/U_SKCR_CX.dfm new file mode 100644 index 0000000..93709d7 --- /dev/null +++ b/盛纺贸易管理/U_SKCR_CX.dfm @@ -0,0 +1,553 @@ +object frmSKCR_CX: TfrmSKCR_CX + Left = 190 + Top = 126 + Width = 1164 + Height = 585 + Caption = #25910#27454#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1148 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TSel: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 41 + OnClick = TSelClick + end + object TBRafresh: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton3Click + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object tchk: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #25552#20132 + ImageIndex = 41 + Visible = False + OnClick = tchkClick + end + object tnochk: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25764#38144#25552#20132 + Enabled = False + ImageIndex = 56 + Visible = False + OnClick = tnochkClick + end + object TSDFJ: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #27700#21333#38468#20214 + ImageIndex = 57 + OnClick = TSDFJClick + end + object ToolButton1: TToolButton + Left = 552 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 615 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1148 + Height = 39 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 198 + Top = 13 + Width = 60 + Height = 12 + Caption = #39033#30446#21450#25688#35201 + end + object Label3: TLabel + Left = 46 + Top = 13 + Width = 48 + Height = 12 + Caption = #23545#26041#21333#20301 + end + object Label2: TLabel + Left = 650 + Top = 56 + Width = 48 + Height = 12 + Caption = #26597#35810#26085#26399 + Visible = False + end + object Label6: TLabel + Left = 792 + Top = 56 + Width = 30 + Height = 12 + Caption = '-----' + Visible = False + end + object Label4: TLabel + Left = 670 + Top = 57 + Width = 48 + Height = 12 + Caption = #25351#31034#21333#21495 + Visible = False + end + object Label10: TLabel + Left = 369 + Top = 18 + Width = 98 + Height = 13 + Caption = #23454#38469#32467#31639#24635#25968#37327 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 472 + Top = 18 + Width = 8 + Height = 13 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object YFName: TEdit + Tag = 2 + Left = 260 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = FactoryNameChange + end + object FactoryName: TEdit + Tag = 2 + Left = 94 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = FactoryNameChange + end + object begdate: TDateTimePicker + Left = 700 + Top = 52 + Width = 97 + Height = 20 + Date = 41256.918237847230000000 + Time = 41256.918237847230000000 + TabOrder = 2 + Visible = False + end + object Enddate: TDateTimePicker + Left = 810 + Top = 52 + Width = 97 + Height = 20 + Date = 41256.918237847230000000 + Time = 41256.918237847230000000 + TabOrder = 3 + Visible = False + end + object OrderNo: TEdit + Tag = 2 + Left = 719 + Top = 53 + Width = 89 + Height = 20 + TabOrder = 4 + Visible = False + OnChange = OrderNoChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 70 + Width = 869 + Height = 477 + Align = alLeft + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + OnFocusedRecordChanged = Tv2FocusedRecordChanged + DataController.DataSource = DS_HZ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = VYB + end + item + Kind = skSum + Column = v2DerateMoney + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.FonePurple + object v2Ssel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.OnChange = v2SselPropertiesChange + HeaderAlignmentHorz = taCenter + Width = 35 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #25910#27454#26085#26399 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnEditValueChanged = cxGridDBColumn1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 82 + end + object v2Column6: TcxGridDBColumn + Caption = #23545#26041#21333#20301 + DataBinding.FieldName = 'FactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 96 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39033#30446#21450#25688#35201 + DataBinding.FieldName = 'YFName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = cxGridDBColumn3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.Default + Width = 104 + end + object v2DerateMoney: TcxGridDBColumn + Caption = #20943#20813#37329#39069 + DataBinding.FieldName = 'DerateMoney' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2DerateMoneyPropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 60 + end + object VBZ: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v2Column3PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 41 + end + object VYB: TcxGridDBColumn + Caption = #25910#27454#37329#39069 + DataBinding.FieldName = 'Money' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column4PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 87 + end + object v2YRLMoney: TcxGridDBColumn + Caption = #24050#35748#39046#37329#39069 + DataBinding.FieldName = 'YRLMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 73 + end + object v2WRLMoney: TcxGridDBColumn + Caption = #26410#35748#39046#37329#39069 + DataBinding.FieldName = 'WRLMoney' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = DataLink_TradeManage.FoneRed + Width = 71 + end + object v2ComTaitou: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'ComTaitou' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v2ComTaitouPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 70 + end + object v2IFSD: TcxGridDBColumn + Caption = #26159#21542#27700#21333 + DataBinding.FieldName = 'IFSD' + PropertiesClassName = 'TcxCheckBoxProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 70 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'note' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v2Column1PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 103 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid1: TcxGrid + Left = 869 + Top = 70 + Width = 279 + Height = 477 + Align = alClient + TabOrder = 3 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V1RLMoney + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.FonePurple + object V1RLDate: TcxGridDBColumn + Caption = #35748#39046#26085#26399 + DataBinding.FieldName = 'RLDate' + PropertiesClassName = 'TcxDateEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object V1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object V1RLMoney: TcxGridDBColumn + Caption = #35748#39046#37329#39069 + DataBinding.FieldName = 'RLMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV1 + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 309 + Top = 201 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 448 + Top = 208 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 376 + Top = 208 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 520 + Top = 264 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 443 + Top = 243 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 472 + Top = 192 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 947 + Top = 271 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 976 + Top = 220 + end +end diff --git a/盛纺贸易管理/U_SKCR_CX.pas b/盛纺贸易管理/U_SKCR_CX.pas new file mode 100644 index 0000000..8783128 --- /dev/null +++ b/盛纺贸易管理/U_SKCR_CX.pas @@ -0,0 +1,1045 @@ +unit U_SKCR_CX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit, cxPC; + +type + TfrmSKCR_CX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + Label1: TLabel; + YFName: TEdit; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + FactoryName: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + Label2: TLabel; + Label6: TLabel; + begdate: TDateTimePicker; + Enddate: TDateTimePicker; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + ToolButton3: TToolButton; + VBZ: TcxGridDBColumn; + VYB: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + Label4: TLabel; + OrderNo: TEdit; + v2Column1: TcxGridDBColumn; + v2DerateMoney: TcxGridDBColumn; + tchk: TToolButton; + tnochk: TToolButton; + v2Ssel: TcxGridDBColumn; + v2ComTaitou: TcxGridDBColumn; + Label10: TLabel; + Label12: TLabel; + v2YRLMoney: TcxGridDBColumn; + TSDFJ: TToolButton; + v2IFSD: TcxGridDBColumn; + TSel: TToolButton; + v2WRLMoney: TcxGridDBColumn; + cxGrid1: TcxGrid; + TV1: TcxGridDBTableView; + cxGridLevel2: TcxGridLevel; + V1ConNo: TcxGridDBColumn; + V1RLMoney: TcxGridDBColumn; + V1RLDate: TcxGridDBColumn; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); + procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); + procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure v2Column4PropertiesEditValueChanged(Sender: TObject); + procedure v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure VBBPropertiesEditValueChanged(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure v2Column1PropertiesEditValueChanged(Sender: TObject); + procedure v2DerateMoneyPropertiesEditValueChanged(Sender: TObject); + procedure tchkClick(Sender: TObject); + procedure tnochkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure v2ComTaitouPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v2SselPropertiesChange(Sender: TObject); + procedure TSDFJClick(Sender: TObject); + procedure TSelClick(Sender: TObject); + procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; + APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); + private + { Private declarations } + lstPat: TStringList; + + procedure InitGridHZ(); + procedure InitGrid(); + function SaveData():Boolean; + Procedure SetStatus(); + procedure ReadINIFile10(); + public + fflag:integer; + { Public declarations } + RKFlag,FCYID,fmanage:String; + + end; + +var + frmSKCR_CX: TfrmSKCR_CX; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp, U_ProductOrderList, U_ProductOrderNewList, + U_ZdyAttachment, U_ProductOrderListSel,U_FjList10; + +{$R *.dfm} + +Procedure TfrmSKCR_CX.SetStatus(); +var + i:integer; +begin + +end; + +procedure TfrmSKCR_CX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select A.*,'); + sql.add(' IFSD=cast((case when isnull((select T.TFID from TP_File T where T.WBID=A.YFID and T.TFType=''SD''),'''')='''' then 0 else 1 end) as bit)'); + sql.Add(' from YF_Money_CR A'); + sql.Add(' left join YF_Money_KC B on A.CRID=B.CRID'); + sql.Add(' where A.CRType=''տǼ'' '); + sql.add(' and A.status=''2'' and (A.Money-isnull(YRLMoney,0))<>0'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + Label12.Caption:='0'; + finally + ADOQueryMain.EnableControls; + ToolButton2.Click; + end; +end; + +procedure TfrmSKCR_CX.InitGridHZ(); +begin + +end; + +procedure TfrmSKCR_CX.FormDestroy(Sender: TObject); +begin + frmSKCR_CX:=nil; +end; + +procedure TfrmSKCR_CX.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmSKCR_CX.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('տǼ1',Tv2,''); + {with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete CK_YP_CR where isnull(CRTime,'''')='''' and CYID='''+Trim(FCYID)+''' and CRType='''+Trim(RKFlag)+''''); + ExecSQL; + end;} + Close; +end; +procedure TfrmSKCR_CX.TBDelClick(Sender: TObject); +var + FBBMoney,CRID:string; +begin + if CDS_HZ.IsEmpty then Exit; + + + if CDS_HZ.Locate('ssel',true,[])=false then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_HZ do + begin + DisableControls; + First; + while not eof do + begin + IF Fieldbyname('ssel').AsBoolean then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete YF_Money_CR where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+''''); + execsql; + end; + end; + next; + end; + First; + EnableControls; + end; + InitGrid(); + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmSKCR_CX.FormShow(Sender: TObject); +begin + fflag:=0; + ReadCxGrid('տǼ',Tv2,''); + Enddate.DateTime:=SGetServerDate(ADOQueryTemp); + begdate.DateTime:=SGetServerDate(ADOQueryTemp)-90; + lstPat := TStringList.Create; + InitGrid(); +end; + +procedure TfrmSKCR_CX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmSKCR_CX.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmSKCR_CX.FactoryNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + +procedure TfrmSKCR_CX.Button2Click(Sender: TObject); +begin + if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('SubID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete YCL_SG_HZ where SubID='''+Trim(CDS_HZ.fieldbyname('SubID').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete; +end; + +function TfrmSKCR_CX.SaveData():Boolean; +var + maxId,CRID:String; +begin + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxId,'FK','YF_Money_CR',4,1)=False then + begin + Result:=False; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(CDS_HZ.fieldbyname('FactoryName').AsString)+''' '); + Open; + end; + if ADOQueryCmd.IsEmpty=False then + begin + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + end else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('FactoryNo').AsString); + FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('FactoryName').AsString); + FieldByName('ZdyStr1').Value:='Ӧ'; + // FieldByName('YFDefFlag1').Value:=fFlag; + Post; + end; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(maxId); + FieldByName('CRID').Value:=StrToInt(CRID); + //SSetSaveDataCDSNew(ADOQueryCmd,Tv2,CDS_HZ,'YF_Money_CR',3); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='տǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=-1; + FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('FactoryNo').AsString); + FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('FactoryName').AsString); + FieldByName('CRTime').Value:=SGetServerDate(ADOQueryTemp); + FieldByName('YFDefFlag1').Value:=fFlag; + FieldByName('status').Value:=0; + Post; + end; + with CDS_HZ do + begin + Edit; + FieldByName('YFId').Value:=Trim(maxId); + FieldByName('CRID').Value:=StrToInt(CRID); + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + Result:=True; + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; +end; + +procedure TfrmSKCR_CX.cxGridDBColumn8PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FFieldName:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_HZ do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YCL_SG_HZ '); + if Trim(mvalue)<>'' then + begin + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + end else + begin + sql.Add(' Set '+FFieldName+'=NULL'); + end; + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where SubId='''+Trim(CDS_HZ.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmSKCR_CX.cxGridDBColumn5PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FQty,FPrice,FMoney,FHuiLv,FBBMoney,FKCBB,FFieldName:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_HZ do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(BBMoney,0) BBMoney from YF_Money_CR where YFID='''+cds_hz.fieldbyname('YFID').AsString+''''); + Open; + end; + FKCBB:=ADOQueryTemp.fieldbyname('BBMoney').AsString; + + FQty:=Trim(CDS_HZ.fieldbyname('Qty').AsString); + if Trim(FQty)='' then FQty:='0'; + + FPrice:=Trim(CDS_HZ.fieldbyname('Price').AsString); + if Trim(FPrice)='' then FPrice:='0'; + FQty:=Trim(CDS_HZ.fieldbyname('Qty').AsString); + if Trim(FQty)='' then FQty:='0'; + + FMoney:=Trim(CDS_HZ.fieldbyname('Money').AsString); + if Trim(FMoney)='' then FMoney:='0'; + + FHuiLv:=Trim(CDS_HZ.fieldbyname('HuiLv').AsString); + if Trim(FHuiLv)='' then FHuiLv:='0'; + + {FBBMoney:=Trim(CDS_HZ.fieldbyname('BBMoney').AsString); + if Trim(FBBMoney)='' then FBBMoney:='0'; } + + if Trim(FFieldName)<>'Money' then + begin + if Trim(FFieldName)<>'HuiLv' then + begin + FBBMoney:=FloatToStr(StrToFloat(FQty)*StrToFloat(FPrice)*StrToFloat(FHuiLv)); + FMoney:=FloatToStr(StrToFloat(FQty)*StrToFloat(FPrice)); + end else + begin + FBBMoney:=FloatToStr(StrToFloat(FMoney)*StrToFloat(FHuiLv)); + end; + + end else + begin + FBBMoney:=FloatToStr(StrToFloat(FMoney)*StrToFloat(FHuiLv)); + end; + with CDS_HZ do + begin + Edit; + FieldByName('Money').Value:=StrToFloat(FMoney); + FieldByName('BBMoney').Value:=StrToFloat(FBBMoney); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); + if Trim(FFieldName)<>'Money' then + begin + sql.Add(',Money='+FMoney); + end; + + sql.Add(',BBMoney='+FBBMoney); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + + SQL.Add('Update YF_Money_KC Set KCBBMoney=KCBBMoney-'+FKCBB+'+'+FBBMoney); + sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); + ExecSQL; + end; + tv2.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmSKCR_CX.cxGridDBColumn1PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FFieldName:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_HZ do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + if Trim(mvalue)<>'' then + begin + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + end else + begin + sql.Add(' Set '+FFieldName+'=NULL'); + end; + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + tv2.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmSKCR_CX.ToolButton3Click(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + if ShowModal=1 then + begin + + with Self.CDS_HZ do + begin + Append; + FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('ZdyName').AsString); + FieldByName('CRTime').Value:=SGetServerDate(ADOQueryTemp); + FieldByName('HuiLv').Value:=1; + if Trim(DParameters2)='' then + begin + FieldByName('HuiLv').Value:=1; + end; + Post; + end; + Self.SaveData(); + end; + end; + finally + frmZdyAttachment.Free; + end; + tv2.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmSKCR_CX.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='YFName'; + flagname:='ĿժҪ'; + if Trim(DParameters3)='Ŀֿ' then + MainType:='տ'; + if ShowModal=1 then + begin + with Self.CDS_HZ do + begin + Edit; + FieldByName('YFCode').Value:=Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString); + FieldByName('YFName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set YFCode='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); + sql.Add(' ,YFName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSKCR_CX.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='OrderUnit'; + flagname:='λ'; + if ShowModal=1 then + begin + Self.CDS_HZ.Edit; + Self.CDS_HZ.FieldByName('QtyUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set QtyUnit='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSKCR_CX.v2Column3PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BZType'; + flagname:=''; + if ShowModal=1 then + begin + Self.CDS_HZ.Edit; + Self.CDS_HZ.FieldByName('BZType').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set BZType='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSKCR_CX.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv2,ADOQueryMain,'б'); +end; + +procedure TfrmSKCR_CX.v2Column4PropertiesEditValueChanged(Sender: TObject); +var + mvalue,FMoney,FHuiLv,FBBMoney,FKCBB,FFieldName:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_HZ do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(BBMoney,0) BBMoney from YF_Money_CR where YFID='''+cds_hz.fieldbyname('YFID').AsString+''''); + Open; + end; + FKCBB:=ADOQueryTemp.fieldbyname('BBMoney').AsString; + + FMoney:=Trim(CDS_HZ.fieldbyname('Money').AsString); + if Trim(FMoney)='' then FMoney:='0'; + + FHuiLv:=Trim(CDS_HZ.fieldbyname('HuiLv').AsString); + if Trim(FHuiLv)='' then FHuiLv:='0'; + + {FBBMoney:=Trim(CDS_HZ.fieldbyname('BBMoney').AsString); + if Trim(FBBMoney)='' then FBBMoney:='0'; } + + FBBMoney:=FloatToStr(StrToFloat(FMoney)*StrToFloat(FHuiLv)); + with CDS_HZ do + begin + Edit; + FieldByName('Money').Value:=StrToFloat(FMoney); + FieldByName('BBMoney').Value:=StrToFloat(FBBMoney); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); + sql.Add(',BBMoney='+FBBMoney); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + + SQL.Add('Update YF_Money_KC Set KCBBMoney=KCBBMoney+'+FKCBB+'-'+FBBMoney); + sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); + ExecSQL; + end; + tv2.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmSKCR_CX.v2Column1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + {try + frmProductOrderListSel:=TfrmProductOrderListSel.Create(Application); + with frmProductOrderListSel do + begin + FFInt:=1; + //frmProductOrderList.v1Column4.Visible:=True; + if ShowModal=1 then + begin + with Self.CDS_HZ do + begin + Edit; + FieldByName('MainId').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('MainId').AsString); + FieldByName('OrderNo').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('OrderNo').AsString); + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set MainId='''+Trim(frmProductOrderListSel.Order_Main.fieldbyname('MainId').AsString)+''''); + sql.Add(' ,OrderNo='''+Trim(frmProductOrderListSel.Order_Main.fieldbyname('OrderNo').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + end; + end; + end; + finally + frmProductOrderListSel.Free; + end;} +end; + +procedure TfrmSKCR_CX.VBBPropertiesEditValueChanged(Sender: TObject); +var + mvalue,FKCBB:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(BBMoney,0) BBMoney from YF_Money_CR where YFID='''+cds_hz.fieldbyname('YFID').AsString+''''); + Open; + end; + FKCBB:=ADOQueryTemp.fieldbyname('BBMoney').AsString; + if Trim(mvalue)='' then mvalue:='0'; + with CDS_HZ do + begin + Edit; + FieldByName('BBMoney').Value:=StrToFloat(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' set BBMoney='+mvalue); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + + SQL.Add('Update YF_Money_KC Set KCBBMoney=KCBBMoney+'+FKCBB+'-'+mvalue); + sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); + ExecSQL; + end; + tv2.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmSKCR_CX.OrderNoChange(Sender: TObject); +begin + if Length(Trim(OrderNo.Text))<3 then Exit; + ToolButton2.Click; +end; + +procedure TfrmSKCR_CX.v2Column1PropertiesEditValueChanged(Sender: TObject); +var + mvalue,FFieldName:String; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS_HZ do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + tv2.Controller.EditingController.ShowEdit(); +end; +procedure TfrmSKCR_CX.v2DerateMoneyPropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + + if Trim(mvalue)='' then mvalue:='0'; + with CDS_HZ do + begin + Edit; + FieldByName('DerateMoney').Value:=StrToFloatdef(mvalue,0); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' set DerateMoney='+mvalue); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + tv2.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmSKCR_CX.tchkClick(Sender: TObject); +begin + IF CDS_HZ.IsEmpty then exit; + + if CDS_HZ.Locate('ssel',true,[])=false then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_HZ do + begin + DisableControls; + First; + while not eof do + begin + IF Fieldbyname('ssel').AsBoolean then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR SET status=''1'',chkstatus='''' '); + sql.Add('where YFID ='+quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); + execsql; + end; + end; + next; + end; + First; + EnableControls; + end; + + InitGrid(); + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmSKCR_CX.tnochkClick(Sender: TObject); +begin + IF CDS_HZ.IsEmpty then exit; + + if CDS_HZ.Locate('ssel',true,[])=false then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_HZ do + begin + DisableControls; + First; + while not eof do + begin + IF Fieldbyname('ssel').AsBoolean then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR SET status=''0'' '); + sql.Add('where YFID ='+quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); + execsql; + end; + end; + next; + end; + First; + EnableControls; + end; + + InitGrid(); + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmSKCR_CX.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + InitGrid(); +end; + +procedure TfrmSKCR_CX.v2ComTaitouPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='ComTaiTou'; + flagname:='˾̧ͷ'; + if ShowModal=1 then + begin + with Self.CDS_HZ do + begin + Edit; + FieldByName('ComTaiTou').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('UPdate YF_Money_CR '); + sql.Add(' Set ComTaiTou='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); + SQL.Add(',Editer='''+Trim(DName)+''''); + SQL.Add(',Edittime=getdate() '); + SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); + ExecSQL; + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSKCR_CX.v2SselPropertiesChange(Sender: TObject); +begin + HJ(CDS_HZ,Label12,CDS_HZ.fieldbyname('BBMoney').AsCurrency); +end; + +procedure TfrmSKCR_CX.ReadINIFile10(); +var + programIni:Tinifile; //ļ + FileName:string; +begin + FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; + programIni:=Tinifile.create(FileName); + server:=programIni.ReadString('SERVER','ַ','127.0.0.1'); + programIni.Free; +end; + +procedure TfrmSKCR_CX.TSDFJClick(Sender: TObject); +begin + IF CDS_HZ.IsEmpty then exit; + frmFjList10:=TfrmFjList10.create(self); + with frmFjList10 do + begin + fkeyNO:=trim(CDS_HZ.fieldbyname('YFID').AsString); + fType:='SD'; + if showmodal=1 then + begin + initgrid(); + end; + free; + end; +end; + +procedure TfrmSKCR_CX.TSelClick(Sender: TObject); +begin + if CDS_HZ.IsEmpty then exit; + if CDS_HZ.Locate('Ssel',true,[])=False then + begin + application.MessageBox('ûѡ','ʾ'); + exit; + end; + Modalresult:=1; +end; + +procedure TfrmSKCR_CX.Tv2FocusedRecordChanged( + Sender: TcxCustomGridTableView; APrevFocusedRecord, + AFocusedRecord: TcxCustomGridRecord; + ANewItemRecordFocusingChanged: Boolean); +begin + if CDS_HZ.IsEmpty then exit; + with ADOQueryTemp do + begin + close; + sql.Clear; + sql.Add('select A.*,B.ConNO from JYOrderYSK A '); + sql.add('inner join JYOrderCon_Main B on B.Mainid=A.Mainid '); + sql.Add('where A.YFID ='+quotedstr((CDS_HZ.fieldbyname('YFID').AsString))); + open; + end; + SCreateCDS20(ADOQueryTemp,Order_Sub); + SInitCDSData20(ADOQueryTemp,Order_Sub); +end; + +end. diff --git a/盛纺贸易管理/U_SLT.dfm b/盛纺贸易管理/U_SLT.dfm new file mode 100644 index 0000000..b4a485e --- /dev/null +++ b/盛纺贸易管理/U_SLT.dfm @@ -0,0 +1,36 @@ +object frmSLT: TfrmSLT + Left = 0 + Top = 0 + Width = 161 + Height = 138 + TabOrder = 0 + object Panel1: TPanel + Left = 0 + Top = 121 + Width = 161 + Height = 17 + Align = alClient + BevelOuter = bvNone + Caption = 'Panel1' + Color = clWindow + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + end + object cxImage1: TcxImage + Left = 0 + Top = 0 + Align = alTop + Style.BorderStyle = ebsOffice11 + StyleHot.TextStyle = [] + TabOrder = 1 + OnClick = cxImage1Click + OnDblClick = cxImage1DblClick + Height = 121 + Width = 161 + end +end diff --git a/盛纺贸易管理/U_SLT.pas b/盛纺贸易管理/U_SLT.pas new file mode 100644 index 0000000..7c5056e --- /dev/null +++ b/盛纺贸易管理/U_SLT.pas @@ -0,0 +1,84 @@ +unit U_SLT; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls,jpeg, cxControls, cxContainer, cxEdit, cxImage,IdFTP,ShellAPI; + +type + TfrmSLT = class(TFrame) + cxImage1: TcxImage; + Panel1: TPanel; + procedure cxImage1Click(Sender: TObject); + procedure cxImage1DblClick(Sender: TObject); + private + CYID,FileName:string; + // procedure Sharpen(SrcBmp:TBitmap); + { Private declarations } + public + procedure Init(fCYID:string;fFileName:string;fPicture:TJpegImage); + { Public declarations } + end; + +implementation +uses + U_DataLink; +{$R *.dfm} + + +procedure TfrmSLT.Init(fCYID:string;fFileName:string;fPicture:TJpegImage); +begin + CYID:=trim(fCYID); + FileName:=trim(fFileName); + Panel1.Caption:=FileName; + cxImage1.Picture.Assign(fPicture); +end; +procedure TfrmSLT.cxImage1Click(Sender: TObject); +begin + // Fsplcode:=splcode; + // FPatFile:=patfile; +/// frmSample_List.Fsplcode:=splcode; +/// frmSample_List.FPatFile:=patfile; +// showmessage(splcode); +end; + +procedure TfrmSLT.cxImage1DblClick(Sender: TObject); +var + IdFTP1: TIdFTP; + FPath,FFName:string; + FInt:integer; +begin + try + IdFTP1:=TIdFTP.Create(self); + IdFTP1.Host :=PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + IdFTP1.Quit; + IdFTP1.Free; + Application.MessageBox('޷ӵļ飡', 'ʾ', MB_ICONWARNING); + Exit; + end; + FPath:='D:\Right1209\'; + if not DirectoryExists(ExtractFileDir(FPath)) then + CreateDir(ExtractFileDir(FPath)); + FFName:=Trim(FileName); + FFName:=FPath+FFName; + if FileExists(FFName) then + begin + FInt:=1; + end; + if FInt<>1 then + IdFTP1.Get('YP\'+FileName,FFName); + if IdFTP1.Connected then + begin + IdFTP1.Quit; + IdFTP1.Free; + end; + ShellExecute(Handle, 'open',PChar(FFName),'', '', SW_SHOWNORMAL); + +end; + +end. diff --git a/盛纺贸易管理/U_SMLB.dfm b/盛纺贸易管理/U_SMLB.dfm new file mode 100644 index 0000000..7420aad --- /dev/null +++ b/盛纺贸易管理/U_SMLB.dfm @@ -0,0 +1,1423 @@ +object frmSMLB: TfrmSMLB + Left = -8 + Top = -8 + Width = 1382 + Height = 754 + Caption = #25171#21253#31383#21475 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1497 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + Visible = False + object TBClose: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1497 + Height = 48 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label16: TLabel + Left = 420 + Top = 56 + Width = 48 + Height = 12 + Caption = #36135#36816#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label15: TLabel + Left = 44 + Top = 56 + Width = 48 + Height = 12 + Caption = #37197#36135#20154#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label14: TLabel + Left = 234 + Top = 56 + Width = 24 + Height = 12 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label1: TLabel + Left = 32 + Top = 14 + Width = 100 + Height = 24 + Caption = #26465#30721#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 1172 + Top = 69 + Width = 50 + Height = 24 + Caption = #24211#20301 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 147 + Top = 82 + Width = 50 + Height = 24 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 373 + Top = 90 + Width = 75 + Height = 24 + Caption = #21253#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 1039 + Top = 58 + Width = 80 + Height = 22 + Caption = #25171#21360#20221#25968 + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -19 + Font.Name = 'Arial' + Font.Style = [] + ParentFont = False + end + object Label7: TLabel + Left = 560 + Top = 12 + Width = 26 + Height = 12 + Caption = #20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 796 + Top = 56 + Width = 26 + Height = 12 + Caption = #20221#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PHYG: TBtnEditA + Left = 96 + Top = 52 + Width = 100 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 0 + Visible = False + end + object defstr2: TComboBox + Left = 472 + Top = 52 + Width = 101 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 12 + ItemIndex = 0 + ParentFont = False + TabOrder = 2 + Visible = False + Items.Strings = ( + '' + #24555#20214 + #24930#20214) + end + object packNo: TcxCurrencyEdit + Left = 262 + Top = 52 + Properties.DecimalPlaces = 0 + Properties.DisplayFormat = '0' + TabOrder = 3 + Visible = False + Width = 100 + end + object SmNO: TEdit + Left = 136 + Top = 10 + Width = 165 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 1 + OnKeyPress = SmNOKeyPress + end + object kcKw: TBtnEditA + Left = 1228 + Top = 81 + Width = 89 + Height = 33 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 4 + Visible = False + OnBtnClick = kcKwBtnClick + end + object baoNo: TEdit + Left = 219 + Top = 78 + Width = 40 + Height = 32 + Hint = 'baoNo' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 5 + OnClick = baoNoClick + OnExit = baoNoExit + OnKeyPress = baoNoKeyPress + end + object BaoID: TEdit + Left = 278 + Top = 78 + Width = 170 + Height = 32 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + TabOrder = 6 + OnClick = baoNoClick + end + object FileName: TcxButton + Left = 1176 + Top = 72 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #25171#21360#21253#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + OnClick = FileNameClick + LookAndFeel.Kind = lfOffice11 + end + object cxButton1: TcxButton + Left = 1220 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #20851#38381 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + OnClick = cxButton1Click + LookAndFeel.Kind = lfOffice11 + end + object ComboBox1: TComboBox + Left = 1124 + Top = 56 + Width = 49 + Height = 40 + Style = csDropDownList + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = 'Times New Roman' + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 32 + ItemIndex = 0 + ParentFont = False + TabOrder = 9 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object cxButton3: TcxButton + Left = 928 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #21024#38500 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = cxButton3Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton2: TcxButton + Left = 716 + Top = 56 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #20445#23384 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + OnClick = cxButton2Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton4: TcxButton + Left = 884 + Top = 56 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #25764#38144#25171#21253 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 12 + OnClick = cxButton4Click + LookAndFeel.Kind = lfOffice11 + end + object cxButton5: TcxButton + Left = 836 + Top = 8 + Width = 77 + Height = 33 + Hint = 'Filesother' + Caption = #25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 13 + OnClick = cxButton5Click + LookAndFeel.Kind = lfOffice11 + end + object CheckBox1: TCheckBox + Left = 468 + Top = 8 + Width = 81 + Height = 17 + Caption = #21367#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 14 + end + object CheckBox2: TCheckBox + Left = 648 + Top = 56 + Width = 77 + Height = 17 + Caption = #21103#26631#31614 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 15 + end + object ComboBox2: TComboBox + Left = 588 + Top = 8 + Width = 60 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 1 + TabOrder = 16 + Text = '2' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + object ComboBox3: TComboBox + Left = 588 + Top = 52 + Width = 60 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 17 + Text = '1' + Items.Strings = ( + '1' + '2' + '3' + '4') + end + end + object Panel2: TPanel + Left = 364 + Top = 205 + Width = 1133 + Height = 560 + Caption = 'Panel2' + TabOrder = 2 + object cxGrid2: TcxGrid + Left = 1 + Top = 1 + Width = 1131 + Height = 266 + Align = alTop + TabOrder = 0 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCustomDrawCell = TV2CustomDrawCell + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn5 + end + item + Kind = skSum + Column = cxGridDBColumn6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2Column2 + end + item + Kind = skSum + Column = V2Column3 + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn1: TcxGridDBColumn + Caption = #25195#25551#20449#24687 + DataBinding.FieldName = 'SDefNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 154 + end + object cxGridDBColumn2: TcxGridDBColumn + Caption = #26465#30721#21495 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 113 + end + object cxGridDBColumn4: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 116 + end + object cxGridDBColumn3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 94 + end + object V2Column5: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V2Column4: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJStr4' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V2Column1: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'BCGangNO' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 120 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Width = 105 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column2: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V2Column3: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object cxGrid1: TcxGrid + Left = 1 + Top = 267 + Width = 1131 + Height = 292 + Align = alClient + TabOrder = 1 + object TV4: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSSEL + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = cxGridDBColumn16 + end + item + Kind = skSum + Column = cxGridDBColumn17 + end + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBColumn18 + end + item + Kind = skSum + Column = cxGridDBColumn19 + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.Default + object cxGridDBColumn8: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FoneRed + Styles.Footer = DataLink_TradeManage.FoneRed + Styles.Header = DataLink_TradeManage.FoneRed + Width = 53 + end + object cxGridDBColumn9: TcxGridDBColumn + Caption = #26465#30721#21495 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 113 + end + object cxGridDBColumn10: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 116 + end + object cxGridDBColumn11: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 94 + end + object cxGridDBColumn12: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'BCGangNO' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 120 + end + object V4Column1: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V4Column2: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'MJstr4' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object cxGridDBColumn13: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'MJType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object cxGridDBColumn16: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'SOrdQty1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn17: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn18: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object cxGridDBColumn19: TcxGridDBColumn + Caption = #20928#37325 + DataBinding.FieldName = 'MJQty4' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TV4 + end + end + end + object Panel3: TPanel + Left = 1332 + Top = -81 + Width = 201 + Height = 210 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 4 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 211 + Width = 140 + Height = 70 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 4 + Top = 143 + Width = 70 + Height = 70 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 74 + Top = 143 + Width = 70 + Height = 70 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 144 + Top = 143 + Width = 70 + Height = 70 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 4 + Top = 73 + Width = 70 + Height = 70 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 74 + Top = 73 + Width = 70 + Height = 70 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 144 + Top = 73 + Width = 70 + Height = 70 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 4 + Top = 3 + Width = 70 + Height = 70 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 74 + Top = 2 + Width = 70 + Height = 70 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 144 + Top = 2 + Width = 70 + Height = 70 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 144 + Top = 213 + Width = 70 + Height = 68 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 214 + Top = 2 + Width = 70 + Height = 70 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 214 + Top = 73 + Width = 70 + Height = 208 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object Panel4: TPanel + Left = 0 + Top = 81 + Width = 389 + Height = 684 + Align = alLeft + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = 'Panel4' + TabOrder = 5 + object cxGrid3: TcxGrid + Left = 2 + Top = 57 + Width = 385 + Height = 625 + Align = alClient + TabOrder = 0 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DSTm + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + OptionsView.IndicatorWidth = 20 + Styles.Header = DataLink_TradeManage.Default + object Tv3Column1: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Width = 80 + end + object v3Column1: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v3Column2: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Width = 57 + end + object v3Column4: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Width = 53 + end + object v3Column3: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'MJlen' + HeaderAlignmentHorz = taCenter + Width = 59 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Panel5: TPanel + Left = 2 + Top = 2 + Width = 385 + Height = 55 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object Label6: TLabel + Left = 32 + Top = 21 + Width = 45 + Height = 14 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BtnEditA1: TBtnEditA + Left = 80 + Top = 17 + Width = 153 + Height = 22 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnBtnClick = BtnEditA1BtnClick + end + end + end + object MovePanel1: TMovePanel + Left = 414 + Top = 116 + Width = 801 + Height = 353 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 3 + Visible = False + object Label2: TLabel + Left = 184 + Top = 160 + Width = 198 + Height = 64 + Caption = 'Label2' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit2: TEdit + Left = 177 + Top = 43 + Width = 412 + Height = 72 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -64 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ParentFont = False + ReadOnly = True + TabOrder = 0 + Text = '91209120001' + end + object Button4: TButton + Left = 296 + Top = 272 + Width = 75 + Height = 41 + Caption = #20851#38381 + TabOrder = 1 + OnClick = Button4Click + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 552 + Top = 136 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 500 + Top = 232 + end + object CDSMJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 732 + Top = 212 + end + object DataSource2: TDataSource + DataSet = CDSMJID + Left = 836 + Top = 248 + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 388 + Top = 324 + end + object cxStyleRepository1: TcxStyleRepository + Left = 241 + Top = 142 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clInactiveCaption + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBtnText + end + object cxStyle_gridRow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16311512 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridFoot: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridHead: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridGroupBox: TcxStyle + AssignedValues = [svColor, svFont] + Color = clMoneyGreen + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_yellow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontclFuchsia: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clFuchsia + end + object cxStyle_fontclPurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object cxStyle_fontclGreen: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clGreen + end + object cxStyle_fontclBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle_fontclTeal: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clTeal + end + object cxStyle_fontclOlive: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 252 + Top = 428 + end + object DataSource1: TDataSource + DataSet = ADOQuery1 + Left = 312 + Top = 464 + end + object ADOQueryTm: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 152 + Top = 192 + end + object DSTm: TDataSource + DataSet = CDSTM + Left = 88 + Top = 216 + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 576 + Top = 256 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 424 + Top = 256 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 652 + Top = 232 + end + object CDSTM: TClientDataSet + Aggregates = <> + Params = <> + Left = 212 + Top = 221 + end + object CDSSEL: TClientDataSet + Aggregates = <> + Params = <> + Left = 957 + Top = 497 + end + object DSSEL: TDataSource + DataSet = CDSSEL + Left = 849 + Top = 501 + end +end diff --git a/盛纺贸易管理/U_SMLB.pas b/盛纺贸易管理/U_SMLB.pas new file mode 100644 index 0000000..4c3f709 --- /dev/null +++ b/盛纺贸易管理/U_SMLB.pas @@ -0,0 +1,1025 @@ +unit U_SMLB; + +interface + +uses + Windows, Messages, strutils,SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, StdCtrls, cxContainer, cxTextEdit, + cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, + MovePanel, Buttons, Menus, cxLookAndFeelPainters, cxButtons, RM_Common, + RM_Class, RM_GridReport, RM_System, RM_Dataset, cxCheckBox; + +type + TfrmSMLB = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + Panel1: TPanel; + PHYG: TBtnEditA; + defstr2: TComboBox; + Label16: TLabel; + Label15: TLabel; + packNo: TcxCurrencyEdit; + Label14: TLabel; + Label1: TLabel; + Panel2: TPanel; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridDBColumn2: TcxGridDBColumn; + cxGridDBColumn3: TcxGridDBColumn; + cxGridDBColumn4: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOQueryMain: TADOQuery; + ADOQueryCmd: TADOQuery; + CDSMJID: TClientDataSet; + DataSource2: TDataSource; + SmNO: TEdit; + ADOQueryTmp: TADOQuery; + V2Column1: TcxGridDBColumn; + kcKw: TBtnEditA; + Label5: TLabel; + MovePanel1: TMovePanel; + Edit2: TEdit; + Button4: TButton; + Label2: TLabel; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle_gridRow: TcxStyle; + cxStyle_gridFoot: TcxStyle; + cxStyle_gridHead: TcxStyle; + cxStyle_gridGroupBox: TcxStyle; + cxStyle_yellow: TcxStyle; + cxStyle_Red: TcxStyle; + cxStyle_fontBlack: TcxStyle; + cxStyle_fontclFuchsia: TcxStyle; + cxStyle_fontclPurple: TcxStyle; + cxStyle_fontclGreen: TcxStyle; + cxStyle_fontclBlue: TcxStyle; + cxStyle_fontclTeal: TcxStyle; + cxStyle_fontclOlive: TcxStyle; + ADOQuery1: TADOQuery; + DataSource1: TDataSource; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridLevel2: TcxGridLevel; + Tv3Column1: TcxGridDBColumn; + ADOQueryTm: TADOQuery; + DSTm: TDataSource; + baoNo: TEdit; + BaoID: TEdit; + Label3: TLabel; + Label4: TLabel; + Panel3: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + FileName: TcxButton; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + cxButton1: TcxButton; + ComboBox1: TComboBox; + Label34: TLabel; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + Panel4: TPanel; + ADOQueryPrint: TADOQuery; + Label6: TLabel; + BtnEditA1: TBtnEditA; + v3Column1: TcxGridDBColumn; + v3Column2: TcxGridDBColumn; + v3Column3: TcxGridDBColumn; + CDSTM: TClientDataSet; + Panel5: TPanel; + cxButton3: TcxButton; + cxButton2: TcxButton; + CDSSEL: TClientDataSet; + cxGrid1: TcxGrid; + TV4: TcxGridDBTableView; + cxGridDBColumn8: TcxGridDBColumn; + cxGridDBColumn9: TcxGridDBColumn; + cxGridDBColumn10: TcxGridDBColumn; + cxGridDBColumn11: TcxGridDBColumn; + cxGridDBColumn12: TcxGridDBColumn; + cxGridDBColumn13: TcxGridDBColumn; + cxGridDBColumn16: TcxGridDBColumn; + cxGridDBColumn17: TcxGridDBColumn; + cxGridDBColumn18: TcxGridDBColumn; + cxGridDBColumn19: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + DSSEL: TDataSource; + cxButton4: TcxButton; + V2Column5: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + V4Column1: TcxGridDBColumn; + V4Column2: TcxGridDBColumn; + v3Column4: TcxGridDBColumn; + cxButton5: TcxButton; + CheckBox1: TCheckBox; + CheckBox2: TCheckBox; + Label7: TLabel; + Label8: TLabel; + ComboBox2: TComboBox; + ComboBox3: TComboBox; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + + procedure FormCreate(Sender: TObject); + procedure SmNOKeyPress(Sender: TObject; var Key: Char); + procedure FormShow(Sender: TObject); + procedure TV2CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure kcKwBtnClick(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure baoNoKeyPress(Sender: TObject; var Key: Char); + procedure baoNoClick(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure cxButton1Click(Sender: TObject); + procedure baoNoExit(Sender: TObject); + procedure BtnEditA1BtnClick(Sender: TObject); + procedure cxButton3Click(Sender: TObject); + procedure cxButton2Click(Sender: TObject); + procedure cxButton4Click(Sender: TObject); + procedure cxButton5Click(Sender: TObject); + private + procedure InitGrid(); + procedure InitMJID(); + function SaveRK():Boolean; + Procedure QueryRk(); + Procedure QueryTM(); + { Private declarations } + public + { Public declarations } + end; + +var + frmSMLB: TfrmSMLB; + +implementation +uses + U_DataLink,U_Fun, U_ZDYHelp, U_OrderSelRK; +{$R *.dfm} +Procedure TfrmSMLB.QueryTm(); +var + FBaoID:string; +begin + with ADOQueryTM do + begin + close; + sql.Clear; + sql.Add('select A.*,B.*,C.MPrtCodeName,C.orderNo as OrderNoM'); + sql.Add('from WFB_MJJY A '); + sql.Add('inner join JYOrder_sub B on B.subID=A.subID '); + sql.Add('inner join JYOrder_main C on C.mainID=A.MainID '); + // sql.Add('and A.mjstr2=''δ'' and isnull(A.BaoID,'''')='''' '); + sql.Add(' and C.orderNo='+quotedstr(trim(BtnEditA1.Text))); + open; + end; + SCreateCDS20(ADOQueryTM,CDSTM); + SInitCDSData20(ADOQueryTM,CDSTM); + + { IF not CDSTM.IsEmpty then + begin + with ADOQuery1 do + begin + close; + sql.clear; + sql.add('select isnull(max(cast(baoNo as int)),0)+1 as MaxBaoNo from WFB_MJJY '); + sql.Add('where mainID='+quotedstr(trim(CDSTM.fieldbyname('MainID').AsString))); + open; + end; + baoNo.text:=ADOQuery1.fieldbyname('MaxBaoNo').AsString; + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end; } +end; + +Procedure TfrmSMLB.QueryRk(); +begin + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select A.*,hC_ps=A.AordQty2,JY_ps=(select count(MainID) from WFB_MJJY X where X.APID=A.APID),'); + sql.Add('JY_Qty=(select sum(MJLen) from WFB_MJJY X where X.APID=A.APID), '); + sql.Add('RK_RollNum=(select sum(SOrdQty1) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''''),'); + sql.Add('RK_Qty=(select sum(MJLen) from CK_BanCP_CR X where X.APID=A.APID and X.CRType='''') '); + sql.Add('from JYOrder_sub_anPai A '); + SQL.Add('WHERE exists(select MJID from WFB_MJJY X where X.APID=A.APID and X.MJID='+quotedstr(trim(smNO.Text))); + sql.Add(')'); + open; + end; +end; + +function TfrmSMLB.SaveRK():Boolean; +var + maxno:String; + CRID:Integer; + MaxCkNo,MaxCkSubNo:String; + MhcTime:TdateTime; +begin + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + + try + {with ADOQueryTmp do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryTmp.fieldbyname('CRID').AsInteger; + if GetLSNo(ADOQueryTmp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + mhcTime:=SGetServerDateTime(ADOQueryTmp); + + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(ADOQueryMain.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(ADOQueryMain.fieldbyname('SubId').AsString); + FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('PRTCode').AsString); + FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('PRTCodeName').AsString); + //FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString); + FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('PRTColor').AsString); + FieldByName('APID').Value:=Trim(ADOQueryMain.fieldbyname('APID').AsString); + FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJId').AsString); + FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(BaoID.Text); + + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=0; + FieldByName('Qty').Value:=ADOQueryMain.fieldbyname('MJLen').Value; + FieldByName('RollNum').Value:=1; + FieldByName('QtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value; + FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value; + //FieldByName('Note').Value:=ADOQueryMain.fieldbyname('Note').Value; + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp); + //fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('PRTCodeName').AsString,ADOQueryMain.fieldbyname('PRTColor').AsString); + Post; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime); + FieldByName('CRType').Value:=''; + FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value; + FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('PRTCode').AsString); + FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('PRTCodeName').AsString); + //FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString); + FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('PRTColor').AsString); + FieldByName('BaoNo').Value:=Trim(BaoNo.Text); + FieldByName('BaoID').Value:=Trim(BaoID.Text); + FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJID').AsString); + FieldByName('KCKGQty').Value:=0; + FieldByName('KCQty').Value:=ADOQueryMain.fieldbyname('MJlen').Value; + FieldByName('RollNum').Value:=1; + FieldByName('KCQtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value; + FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString); + //FieldByName('KCNote').Value:=ADOQueryMain.fieldbyname('Note').Value; + //fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('PRTCodeName').AsString,ADOQueryMain.fieldbyname('PRTColor').AsString); + Post; + end; } + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Baoid.text)+''' where MJID='''+Trim(ADOQueryMain.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=true; + except + ADOQueryCmd.Connection.RollbackTrans; + end; +end; + +procedure TfrmSMLB.InitGrid(); +begin + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.*,C.MprtCodeName,C.orderNo as OrderNoM from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId'); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID'); + SQL.Add('where 1=2 '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDSMJID); + SInitCDSData20(ADOQueryMain,CDSMJID); + SCreateCDS20(ADOQueryMain,CDSSEL); + SInitCDSData20(ADOQueryMain,CDSSEL); +end; + +procedure TfrmSMLB.InitMJID(); +begin + MovePanel1.Visible:=false; + + + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.*,C.MprtCodeName,C.orderNo as OrderNoM from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId'); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID'); + sql.Add('where MJID='+quotedstr(trim(SmNO.Text))); + Open; + if not IsEmpty then + begin + {IF trim(Fieldbyname('MJstr2').AsString)='' then + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:=''; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end + else + begin} + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='ɨɹ'; + CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString); +// CDSMJID.FieldByName('CRID').Value:=trim(ADOQueryMain.Fieldbyname('CRID').AsString); + CDSMJID.FieldByName('PRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('PRTCodeName').AsString); + CDSMJID.FieldByName('MPRTCodeName').Value:=trim(ADOQueryMain.Fieldbyname('MPRTCodeName').AsString); + CDSMJID.FieldByName('PRTColor').Value:=trim(ADOQueryMain.Fieldbyname('PRTColor').AsString); + CDSMJID.FieldByName('PRTHX').Value:=trim(ADOQueryMain.Fieldbyname('PRTHX').AsString); + CDSMJID.FieldByName('MJStr4').Value:=trim(ADOQueryMain.Fieldbyname('MJStr4').AsString); + CDSMJID.FieldByName('MJType').Value:=trim(ADOQueryMain.Fieldbyname('MJType').AsString); + // CDSMJID.FieldByName('BaoNo').Value:=trim(BaoNo.Text); + // CDSMJID.FieldByName('BaoID').Value:=trim(BaoID.Text); + CDSMJID.FieldByName('SOrdQty1').Value:=1; + CDSMJID.FieldByName('MJLen').Value:=ADOQueryMain.Fieldbyname('MJLen').AsFloat; + CDSMJID.FieldByName('MJMaoZ').Value:=ADOQueryMain.Fieldbyname('MJMaoZ').AsFloat; + CDSMJID.FieldByName('MJQty3').Value:=ADOQueryMain.Fieldbyname('MJQty3').AsFloat; + CDSMJID.FieldByName('MJQty4').Value:=ADOQueryMain.Fieldbyname('MJQty4').AsFloat; + CDSMJID.FieldByName('MJTypeOther').Value:=trim(ADOQueryMain.Fieldbyname('MJTypeOther').AsString); + CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString); + CDSMJID.FieldByName('subID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString); + CDSMJID.Post; + // end; + end + else + begin + CDSMJID.Append; + CDSMJID.FieldByName('SDefNote').Value:='벻'; + CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text); + CDSMJID.Post; + end; + end; + IF trim(CDSMJID.FieldByName('SDefNote').AsString)<>'ɨɹ' then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:=trim(CDSMJID.FieldByName('SDefNote').AsString); + CDSMJID.delete; + end; + If CDSTM.Locate('MJID',trim(smno.Text),[]) then + begin + // application.MessageBox('AAAA','AAAAAAAA',0); + CDSTM.Delete; + tv2.Controller.EditingController.ShowEdit(); + tv3.Controller.EditingController.ShowEdit(); + end; + +end; + +procedure TfrmSMLB.FormDestroy(Sender: TObject); +begin + frmSMLB:=nil; +end; + +procedure TfrmSMLB.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + //writeCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + writeCxGrid(self.Caption+Tv2.Name,Tv2,'Ʒֿ'); + writeCxGrid(self.Caption+Tv3.Name,Tv3,'Ʒֿ'); + writeCxGrid(self.Caption+Tv4.Name,Tv4,'Ʒֿ'); + Action:=cafree; +end; + +procedure TfrmSMLB.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmSMLB.FormCreate(Sender: TObject); +begin + Panel2.Align:=alClient; + //readCxGrid(self.Caption+tv1.Name,Tv1,'Ʒֿ'); + readCxGrid(self.Caption+Tv2.Name,Tv2,'Ʒֿ'); + readCxGrid(self.Caption+Tv3.Name,Tv3,'Ʒֿ'); + readCxGrid(self.Caption+Tv4.Name,Tv4,'Ʒֿ'); +end; + +procedure TfrmSMLB.SmNOKeyPress(Sender: TObject; var Key: Char); +begin + IF key=#13 then + begin + + { if trim(BaoNo.Text)='' then + begin + application.MessageBox('ŲΪ','ʾ'); + exit; + end; + if trim(BaoID.Text)='' then + begin + application.MessageBox('벻Ϊ','ʾ'); + exit; + end; } + if trim(smno.Text)='' then exit; + IF CDSMJID.Locate('MJID',trim(smno.Text),[]) then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾ظɨ裡'; + smno.Text:=''; + smno.SetFocus; + exit; + end; + If not CDSTM.Locate('MJID',trim(smno.Text),[]) then + begin + with ADOQuery1 do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.*,C.MprtCodeName,C.OrderNO as orderNoM from WFB_MJJY A '); + sql.add('inner join JYOrder_Sub B on B.SubId=A.SubId'); + sql.add('inner join JYOrder_Main C on C.maiNID=A.mainID'); + sql.Add('where MJID='+quotedstr(trim(SmNO.Text))); + Open; + IF isempty then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾Ŵ'; + end + else + begin + If not CDSTM.Locate('orderNoM',trim(fieldbyname('OrderNoM').AsString),[]) then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾ڵǰ'; + end + else + begin + IF Fieldbyname('MJstr2').AsString<>'δ' then + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:=fieldbyname('Mjstr2').AsString; + end + else + begin + MovePanel1.Visible:=true; + Edit2.Text:=SmNO.Text; + Label2.Caption:='˾Ѵ'; + end; + end; + end; + end; + smno.Text:=''; + smno.SetFocus; + exit; + end + else + begin + initMJID(); + end; + smno.Text:=''; + smno.SetFocus; + end; +end; + +procedure TfrmSMLB.FormShow(Sender: TObject); +begin + MovePanel1.Left:=(Width-MovePanel1.Width) div 2; + MovePanel1.top:=(Height-MovePanel1.Height-200) div 2; + InitGrid(); +end; + +procedure TfrmSMLB.TV2CustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); +var + i:integer; +begin + i:=tv2.GetColumnByFieldName('SDefNote').Index; + if (AViewInfo.GridRecord.Values[i]<>'ɹ') then + ACanvas.Brush.Color:=clred; +end; + +procedure TfrmSMLB.kcKwBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CPKWFlag'; + flagname:='λϢ'; + V1Name.Caption:='λ'; + V1Note.Caption:='Ӣ'; +// MainType:=Trim(DName); + fnote:=FALSE; + if ShowModal=1 then + begin + kcKw.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSMLB.Button4Click(Sender: TObject); +begin + MovePanel1.Visible:=False; + SmNO.SetFocus; +end; + +procedure TfrmSMLB.baoNoKeyPress(Sender: TObject; var Key: Char); +var FBaoID: string; +begin + +end; + +procedure TfrmSMLB.baoNoClick(Sender: TObject); +var + i:Integer; +begin +// Panel3.Visible:=True; + { with Panel3 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; } +end; + +procedure TfrmSMLB.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmSMLB.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; +procedure TfrmSMLB.SpeedButton49Click(Sender: TObject); +var + FBaoID:string; +begin + IF trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Hint)<>'' then + begin + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end; + Panel3.Visible:=False; +end; + +procedure TfrmSMLB.FileNameClick(Sender: TObject); +var fPrintFile: string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; + FBaoID:string; + i:Integer; +begin + if trim(BaoID.Text)='' then + begin + application.MessageBox('벻δ','ʾ'); + exit; + end; + cxButton2.Click; +{ if trim(BaoID.Text)='' then + begin + application.MessageBox('벻δ','ʾ'); + exit; + end; } + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select A.Baoid,A.BaoNo,A.MJTypeOther as QtyUnit,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,'); + sql.Add('PRTColor=DBO.F_Get_Order_SubStr(BaoID,''BNColor''),SOrddefstr1=DBO.F_Get_Order_SubStr(BaoID,''BNSOrddefstr1''),'); + sql.Add('SOrddefstr4=DBO.F_Get_Order_SubStr(BaoID,''BNSOrddefstr4''),PRtHX=DBO.F_Get_Order_SubStr(BaoID,''BNPRtHX''), '); + sql.Add('Mjstr4=DBO.F_Get_Order_SubStr(BaoID,''BNGangNo''), '); + sql.Add('khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=D.conNO), '); + SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); + sql.Add('from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); + sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); + SQL.Add('where A.BaoID='''+Trim(BaoID.Text)+''''); + SQL.ADD('group by A.Baoid,A.BaoNo,A.MJTypeOther,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1'); + Open; + end; + + if ADOQueryPrint.RecordCount>1 then + begin + Application.MessageBox('´!','ʾ',0); + Exit; + end; + if ADOQueryPrint.RecordCount<1 then + begin + Application.MessageBox('˰Żδ棬뱣ݣڴӡ룡','ʾ',0); + Exit; + end; + + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=trim(BaoID.Text); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ǩ.rmf'; + + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM2.LoadFromFile(fPrintFile); + RM2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1); + //RM2.ShowReport; + RM2.printReport; + baoNo.Text:=inttostr(strtointdef(trim(baoNo.Text),0)+1); + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + CDSsel.Last; + with CDSMJID do + begin + DisableControls; + first; + while not eof do + begin + CDSsel.Append; + for i:=0 to FieldCount-1 do + begin + CDSsel.fields[i].value:=Fields[i].Value ; + end; + CDSsel.Post; + next; + end; + EnableControls; + end; + CDSMJID.EmptyDataSet; + end else + begin + // Order_Main.EnableControls; + Application.MessageBox(PChar('û'+fPrintFile),'ʾ',0); + Exit; + end; +end; + +procedure TfrmSMLB.cxButton1Click(Sender: TObject); +begin + TBClose.Click; +end; + +procedure TfrmSMLB.baoNoExit(Sender: TObject); +var + FBaoID:string; +begin + IF baoNo.Text<>'' then + begin + if GetLSNo(ADOQueryTmp,FBaoID,'BI','WFB_MJJY',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + BaoID.Text:=trim(FBaoid); + end + else + BaoID.Text:=''; +end; + +procedure TfrmSMLB.BtnEditA1BtnClick(Sender: TObject); +begin + frmOrderSelRK:=TfrmOrderSelRK.Create(Application); + with frmOrderSelRK do + begin + if ShowModal=1 then + begin + CDS_OrderSel.DisableControls; + with CDS_OrderSel do + begin + First; + while not Eof do + begin + if FieldByName('SSel').Value=True then + begin + BtnEditA1.Text:=trim(CDS_OrderSel.fieldbyname('OrderNo').asstring); + end; + Next; + end; + end; + CDS_OrderSel.EnableControls; + end; + end; + QueryTm(); +end; + +procedure TfrmSMLB.cxButton3Click(Sender: TObject); +var + i:integer; +begin + IF CDSMJID.IsEmpty then exit; + IF CDSMJID.fieldByName('Sflag').AsString='2' then + begin + application.MessageBox('Ѵɾ','ʾϢ',0); + exit; + end + else + begin + with CDSMJID do + begin + CDSTM.Last; + + CDSTM.Append; + for i:=0 to FieldCount-1 do + begin + CDSTM.fields[i].value:=Fields[i].Value ; + end; + CDSTM.Post; + end; + CDSMJID.Delete; + end; +end; + +procedure TfrmSMLB.cxButton2Click(Sender: TObject); +begin + IF CDSMJID.IsEmpty then exit; + ADOQueryCmd.Connection.BeginTrans; + try + with CDSMJID do + begin + DisableControls; + first; + while not eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Baoid.text)+''' where MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + edit; + fieldByName('Sflag').AsString :='2'; + fieldbyname('BaoNo').Value:=trim(BaoNo.Text); + fieldbyname('BaoID').Value:=trim(BaoID.Text); + post; + next; + end; + EnableControls; + end; + ADOQueryCmd.Connection.CommitTrans; + // application.MessageBox('޸ijɹ','ʾϢ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + application.MessageBox('޸ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmSMLB.cxButton4Click(Sender: TObject); +begin + if CDSSEL.IsEmpty then Exit; + if CDSSEL.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + try + CDSSEL.DisableControls; + // ADOQueryCmd.Connection.BeginTrans; + with CDSSEL do + begin + First; + while FieldByName('SSel').AsBoolean do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set baoID='''',baoNo='''' '); + sql.Add('where MJID='''+Trim(CDSSEL.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + delete; + end; + end; + // ADOQueryCmd.Connection.CommitTrans; + CDSSEL.EnableControls; + application.MessageBox('ݳɹ','ʾϢ'); + QueryTm(); + exit; + except + // ADOQueryCmd.Connection.RollbackTrans; + CDSSEL.EnableControls; + application.MessageBox('ݳʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmSMLB.cxButton5Click(Sender: TObject); +var + fPrintFile:string; + Txt,fImagePath:string; + Moudle: THandle; + Makebar:TMakebar; + Mixtext:TMixtext; + i:integer; +begin + IF (not CheckBox1.Checked) and (not CheckBox2.Checked)then + begin + application.MessageBox('ûѡҪӡıǩ','ʾ',0); + exit; + end; + CDSMJID.DisableControls; + with CDSMJID do + begin + First; + while not Eof do + begin + with ADOQueryPrint do + begin + Close; + SQL.Clear; + sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,B.conNo,GangNo=D.AOrddefStr1,PRTColorEng=E.Note,B.LBName,B.NlbName '); + sql.Add(',khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=B.conNO) '); + sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); + sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,C.*,A.* '); + sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); + sql.Add(' from WFB_MJJY A') ; + sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); + sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); + sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId '); + SQL.Add(' where A.MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+''''); + Open; + end; + try + Moudle:=LoadLibrary('MakeQRBarcode.dll'); + @Makebar:=GetProcAddress(Moudle,'Make'); + @Mixtext:=GetProcAddress(Moudle,'MixText'); + Txt:=Trim(ADOQueryPrint.fieldbyname('MJID').AsString); + fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); + if FileExists(fImagePath) then DeleteFile(fImagePath); + Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); + except + CDSMJID.EnableControls; + application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); + exit; + end; + + IF CheckBox1.Checked then + begin + fPrintFile:=''; + if Trim(ADOQueryPrint.fieldbyname('LbName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LbName').AsString)+'.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM2.LoadFromFile(fPrintFile); + Rm2.DefaultCopies:=strtointdef(trim(ComboBox2.Text),1); + // RM2.ShowReport; + RM2.PrintReport; + end + else + begin + CDSMJID.EnableControls; + Application.MessageBox(PChar('û'+trim(fPrintFile)),'ʾ',0); + Exit; + end; + end; + IF CheckBox2.Checked then + begin + fPrintFile:=''; + if Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)<>'' then + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf'; + if FileExists(fPrintFile) then + begin + RMVariables['QRBARCODE']:=fImagePath; + RM2.LoadFromFile(fPrintFile); + Rm2.DefaultCopies:=strtointdef(trim(ComboBox3.Text),1); + //RM2.ShowReport; + RM2.PrintReport; + end + else + begin + CDSMJID.EnableControls; + Application.MessageBox(PChar('û'+trim(fPrintFile)),'ʾ',0); + Exit; + end; + end; + + CDSsel.Last; + CDSsel.Append; + for i:=0 to CDSMJID.FieldCount-1 do + begin + CDSsel.fields[i].value:=CDSMJID.Fields[i].Value ; + end; + CDSsel.Post; + CDSMJID.Next; + end; + end; + CDSMJID.EnableControls; + CDSMJID.EmptyDataSet; +end; + +end. diff --git a/盛纺贸易管理/U_SXCKNewList_CX.dfm b/盛纺贸易管理/U_SXCKNewList_CX.dfm new file mode 100644 index 0000000..f5bc2d5 --- /dev/null +++ b/盛纺贸易管理/U_SXCKNewList_CX.dfm @@ -0,0 +1,555 @@ +object frmSXCKNewListCX: TfrmSXCKNewListCX + Left = 190 + Top = 136 + Width = 1409 + Height = 631 + Caption = #20179#24211#20837#24211#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1393 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 62 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1393 + Height = 63 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 245 + Top = 13 + Width = 26 + Height = 13 + Caption = #21697#21517 + end + object Label4: TLabel + Left = 398 + Top = 13 + Width = 65 + Height = 13 + Caption = #22383#24067#20379#24212#21830 + end + object Label8: TLabel + Left = 245 + Top = 39 + Width = 26 + Height = 13 + Caption = #35268#26684 + end + object Label12: TLabel + Left = 59 + Top = 39 + Width = 52 + Height = 13 + Caption = #20837#24211#31867#22411 + end + object Label6: TLabel + Left = 398 + Top = 39 + Width = 68 + Height = 13 + Caption = #25104' '#20998 + end + object Label7: TLabel + Left = 563 + Top = 13 + Width = 52 + Height = 13 + Caption = #25351#31034#21333#21495 + end + object Label10: TLabel + Left = 563 + Top = 39 + Width = 54 + Height = 13 + Caption = #32534' '#21495 + end + object Label9: TLabel + Left = 72 + Top = 13 + Width = 39 + Height = 13 + Caption = #21512#21516#21495 + end + object SPName: TEdit + Tag = 2 + Left = 275 + Top = 10 + Width = 108 + Height = 21 + TabOrder = 0 + OnChange = TBFindClick + end + object FactoryName: TEdit + Tag = 2 + Left = 463 + Top = 10 + Width = 85 + Height = 21 + TabOrder = 1 + OnChange = FactoryNameChange + end + object SPSpec: TEdit + Tag = 2 + Left = 275 + Top = 35 + Width = 108 + Height = 21 + TabOrder = 2 + OnChange = SPSpecChange + end + object CRType: TComboBox + Tag = 2 + Left = 112 + Top = 35 + Width = 118 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 3 + OnChange = TBFindClick + Items.Strings = ( + #37319#36141#20837#24211 + #24179#31227#20837#24211 + #29983#20135#36864#22238 + #26399#21021#20837#24211 + '') + end + object SPCF: TEdit + Tag = 2 + Left = 463 + Top = 35 + Width = 85 + Height = 21 + TabOrder = 4 + OnChange = FactoryNameChange + end + object OrderNo: TEdit + Tag = 2 + Left = 616 + Top = 9 + Width = 117 + Height = 21 + TabOrder = 5 + OnChange = FactoryNameChange + end + object SPCode: TEdit + Tag = 2 + Left = 616 + Top = 35 + Width = 117 + Height = 21 + TabOrder = 6 + OnChange = FactoryNameChange + end + object ConNoHZ: TEdit + Tag = 2 + Left = 111 + Top = 9 + Width = 117 + Height = 21 + TabOrder = 7 + OnChange = FactoryNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 96 + Width = 1393 + Height = 495 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #20837#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 93 + end + object v1Column4: TcxGridDBColumn + Tag = 2 + Caption = #20837#24211#31867#22411 + DataBinding.FieldName = 'CRType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + #27491#24120#20837#24211 + #29983#20135#36864#22238 + #26399#21021#20837#24211) + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1Column15: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Width = 89 + end + object v1Column13: TcxGridDBColumn + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 79 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #22383#24067#20379#24212#21830 + DataBinding.FieldName = 'FactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 98 + end + object v1CKName: TcxGridDBColumn + Caption = #20179#24211#31867#22411 + DataBinding.FieldName = 'CKName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'SPName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v1Column17: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'SPCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 91 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #35268#26684 + DataBinding.FieldName = 'SPSpec' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 65 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #25104#20998 + DataBinding.FieldName = 'SPCF' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 73 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #25104#21697#38376#24133 + DataBinding.FieldName = 'SPMF' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v1Column10: TcxGridDBColumn + Caption = #25104#21697#20811#37325 + DataBinding.FieldName = 'SPKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column11: TcxGridDBColumn + Tag = 2 + Caption = #23384#25918#24037#21378 + DataBinding.FieldName = 'ToFactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #21305#25968 + DataBinding.FieldName = 'PiQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'Kg' + 'M' + 'Y') + HeaderAlignmentHorz = taCenter + Width = 66 + end + object v1Column16: TcxGridDBColumn + Caption = #26469#33258#24037#21378 + DataBinding.FieldName = 'FromFactoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 91 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #24211#20301 + DataBinding.FieldName = 'KuWei' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 79 + end + object v1filler: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 676 + Top = 231 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 644 + Top = 230 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 707 + Top = 231 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 613 + Top = 232 + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 581 + Top = 232 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 549 + Top = 232 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 360 + Top = 232 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 424 + Top = 232 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 392 + Top = 232 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 520 + Top = 232 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 488 + Top = 232 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 232 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 232 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_SXCKNewList_CX.pas b/盛纺贸易管理/U_SXCKNewList_CX.pas new file mode 100644 index 0000000..fca6a98 --- /dev/null +++ b/盛纺贸易管理/U_SXCKNewList_CX.pas @@ -0,0 +1,224 @@ +unit U_SXCKNewList_CX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit; + +type + TfrmSXCKNewListCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + RMDBHZ: TRMDBDataSet; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + Label3: TLabel; + Label4: TLabel; + Label8: TLabel; + Label12: TLabel; + SPName: TEdit; + FactoryName: TEdit; + SPSpec: TEdit; + CRType: TComboBox; + Label6: TLabel; + SPCF: TEdit; + Label7: TLabel; + OrderNo: TEdit; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + v1Column16: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + Label10: TLabel; + SPCode: TEdit; + v1Column15: TcxGridDBColumn; + Label9: TLabel; + ConNoHZ: TEdit; + v1filler: TcxGridDBColumn; + v1CKName: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure SPIDChange(Sender: TObject); + procedure SPSpecChange(Sender: TObject); + procedure FactoryNameChange(Sender: TObject); + private + canshu1,canshu2,canshu3:string; + procedure InitGrid(); + { Private declarations } + public + FToFactoryName,FOrderNo:string; + { Public declarations } + end; + +var + frmSXCKNewListCX: TfrmSXCKNewListCX; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmSXCKNewListCX.FormDestroy(Sender: TObject); +begin + frmSXCKNewListCX:=nil; +end; + +procedure TfrmSXCKNewListCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmSXCKNewListCX.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); + canshu3:=Trim(DParameters3); +end; + +procedure TfrmSXCKNewListCX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select A.* '); + sql.Add(',SCOrderNO=(select ConNo from Cloth_Main JM where JM.MainId=A.SCMainIdRK)'); + sql.Add(',OrderNO=(select Top 1 OrderNO from JYOrder_Main JM where JM.MainId=A.ORDMainIdRK)'); + sql.Add(',ConNoHZ=[dbo].[F_Get_Order_SubStr](A.ORDMainIdRK,''ConNoHZ'') '); + sql.Add(' from CK_SXPB_CR A'); + sql.add(' where ToFactoryName='''+trim(FToFactoryName)+''' and CRFlag='''' '); + sql.Add(' and (select Top 1 OrderNO from JYOrder_Main JM where JM.MainId=A.ORDMainIdRK)='''+trim(FOrderNo)+''''); + sql.add(' and isnull(A.MCType,'''')='''' '); + SQL.Add(' order by A.CRTime desc'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmSXCKNewListCX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmSXCKNewListCX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmSXCKNewListCX.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('бFM',Tv1,'ֿ'); + Close; +end; + +procedure TfrmSXCKNewListCX.FormShow(Sender: TObject); +begin + ReadCxGrid('бFM',Tv1,'ֿ'); + + InitGrid(); +end; + +procedure TfrmSXCKNewListCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmSXCKNewListCX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmSXCKNewListCX.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmSXCKNewListCX.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmSXCKNewListCX.SPIDChange(Sender: TObject); +begin + + TBFind.Click; +end; + +procedure TfrmSXCKNewListCX.SPSpecChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmSXCKNewListCX.FactoryNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_SXCKOutList_CX.dfm b/盛纺贸易管理/U_SXCKOutList_CX.dfm new file mode 100644 index 0000000..6370aa8 --- /dev/null +++ b/盛纺贸易管理/U_SXCKOutList_CX.dfm @@ -0,0 +1,694 @@ +object frmSXCKOutListCX: TfrmSXCKOutListCX + Left = 190 + Top = 127 + Width = 1359 + Height = 642 + Caption = #20179#24211#20986#24211#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1343 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 62 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1343 + Height = 91 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 213 + Top = 13 + Width = 26 + Height = 13 + Caption = #21697#21517 + end + object Label4: TLabel + Left = 338 + Top = 13 + Width = 65 + Height = 13 + Caption = #22383#24067#20379#24212#21830 + end + object Label8: TLabel + Left = 213 + Top = 39 + Width = 26 + Height = 13 + Caption = #35268#26684 + end + object Label12: TLabel + Left = 58 + Top = 39 + Width = 52 + Height = 13 + Caption = #20986#24211#31867#22411 + end + object Label6: TLabel + Left = 338 + Top = 39 + Width = 68 + Height = 13 + Caption = #25104' '#20998 + end + object Label7: TLabel + Left = 497 + Top = 13 + Width = 78 + Height = 13 + Caption = #26469#33258#25351#31034#21333#21495 + end + object Label10: TLabel + Left = 497 + Top = 39 + Width = 78 + Height = 13 + Caption = #20986#21040#25351#31034#21333#21495 + end + object Label11: TLabel + Left = 829 + Top = 14 + Width = 65 + Height = 13 + Caption = #26469#33258#21152#24037#21378 + end + object Label13: TLabel + Left = 829 + Top = 40 + Width = 65 + Height = 13 + Caption = #20986#21040#21152#24037#21378 + end + object Label14: TLabel + Left = 213 + Top = 64 + Width = 26 + Height = 13 + Caption = #32534#21495 + end + object Label9: TLabel + Left = 671 + Top = 13 + Width = 65 + Height = 13 + Caption = #26469#33258#21512#21516#21495 + end + object Label15: TLabel + Left = 671 + Top = 39 + Width = 65 + Height = 13 + Caption = #20986#21040#21512#21516#21495 + end + object Label16: TLabel + Left = 58 + Top = 64 + Width = 54 + Height = 13 + Caption = #39068' '#33394 + end + object Label17: TLabel + Left = 58 + Top = 14 + Width = 52 + Height = 13 + Caption = #20837#24211#31867#22411 + end + object SPName: TEdit + Tag = 2 + Left = 242 + Top = 10 + Width = 85 + Height = 21 + TabOrder = 0 + OnChange = TBFindClick + end + object FactoryName: TEdit + Tag = 2 + Left = 403 + Top = 10 + Width = 82 + Height = 21 + TabOrder = 1 + OnChange = SPSpecChange + end + object SPSpec: TEdit + Tag = 2 + Left = 242 + Top = 35 + Width = 85 + Height = 21 + TabOrder = 2 + OnChange = SPSpecChange + end + object CRType: TComboBox + Tag = 2 + Left = 112 + Top = 35 + Width = 87 + Height = 21 + Style = csDropDownList + ItemHeight = 13 + TabOrder = 3 + OnChange = TBFindClick + Items.Strings = ( + #21152#24037#20986#24211 + #24179#31227#20986#24211 + #36864#36135 + '') + end + object SPCF: TEdit + Tag = 2 + Left = 403 + Top = 35 + Width = 82 + Height = 21 + TabOrder = 4 + OnChange = SPSpecChange + end + object QCorderNo: TEdit + Tag = 2 + Left = 576 + Top = 10 + Width = 84 + Height = 21 + TabOrder = 5 + OnChange = SPSpecChange + end + object CKorderNo: TEdit + Tag = 2 + Left = 576 + Top = 36 + Width = 84 + Height = 21 + TabOrder = 6 + OnChange = SPSpecChange + end + object FromFactoryName: TEdit + Tag = 2 + Left = 894 + Top = 11 + Width = 58 + Height = 21 + TabOrder = 7 + OnChange = SPSpecChange + end + object ToFactoryName: TEdit + Tag = 2 + Left = 894 + Top = 37 + Width = 58 + Height = 21 + TabOrder = 8 + OnChange = SPSpecChange + end + object SPCode: TEdit + Tag = 2 + Left = 242 + Top = 60 + Width = 85 + Height = 21 + TabOrder = 9 + OnChange = SPSpecChange + end + object ConNoHZ: TEdit + Tag = 2 + Left = 737 + Top = 10 + Width = 80 + Height = 21 + TabOrder = 10 + OnChange = SPSpecChange + end + object ConNoHZCK: TEdit + Tag = 2 + Left = 737 + Top = 36 + Width = 80 + Height = 21 + TabOrder = 11 + OnChange = SPSpecChange + end + object PRTColor: TEdit + Tag = 2 + Left = 112 + Top = 60 + Width = 87 + Height = 21 + TabOrder = 12 + OnChange = SPSpecChange + end + object RKType: TEdit + Tag = 2 + Left = 112 + Top = 10 + Width = 87 + Height = 21 + TabOrder = 13 + OnChange = SPSpecChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 124 + Width = 1343 + Height = 478 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skCount + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column9 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column2: TcxGridDBColumn + Tag = 2 + Caption = #20986#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 100 + end + object v1RKType: TcxGridDBColumn + Caption = #20837#24211#31867#22411 + DataBinding.FieldName = 'RKType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column4: TcxGridDBColumn + Tag = 2 + Caption = #20986#24211#31867#22411 + DataBinding.FieldName = 'CRType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + #21152#24037#20986#24211 + #24179#31227#20986#24211 + #36864#36135) + HeaderAlignmentHorz = taCenter + Width = 81 + end + object v1Column15: TcxGridDBColumn + Caption = #26469#33258#21512#21516#21495 + DataBinding.FieldName = 'ConNoHZ' + HeaderAlignmentHorz = taCenter + Width = 103 + end + object v1Column13: TcxGridDBColumn + Caption = #26469#33258#25351#31034#21333#21495 + DataBinding.FieldName = 'QCOrderNo' + HeaderAlignmentHorz = taCenter + Width = 91 + end + object v1Column14: TcxGridDBColumn + Tag = 2 + Caption = #20379#24212#21830#21517#31216 + DataBinding.FieldName = 'FactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Alignment.Horz = taLeftJustify + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 103 + end + object v2Column1: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'SPName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1Column20: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'SPCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 92 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #35268#26684 + DataBinding.FieldName = 'SPSpec' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 65 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #25104#20998 + DataBinding.FieldName = 'SPCF' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1CKName: TcxGridDBColumn + Caption = #20179#24211#31867#22411 + DataBinding.FieldName = 'CKName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column1: TcxGridDBColumn + Tag = 2 + Caption = #25104#21697#38376#24133 + DataBinding.FieldName = 'SPMF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 73 + end + object v1Column10: TcxGridDBColumn + Tag = 2 + Caption = #25104#21697#20811#37325 + DataBinding.FieldName = 'SPKZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column16: TcxGridDBColumn + Tag = 2 + Caption = #26469#33258#24037#21378 + DataBinding.FieldName = 'FromFactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1Column9: TcxGridDBColumn + Tag = 2 + Caption = #21305#25968 + DataBinding.FieldName = 'PiQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v2Column6: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column3: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 66 + end + object v1Column11: TcxGridDBColumn + Tag = 2 + Caption = #20986#21040#21152#24037#21378 + DataBinding.FieldName = 'ToFactoryName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column5: TcxGridDBColumn + Caption = #20986#21040#25351#31034#21333#21495 + DataBinding.FieldName = 'CKorderNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v1ConNoHZCK: TcxGridDBColumn + Caption = #20986#21040#21512#21516#21495 + DataBinding.FieldName = 'ConNoHZCK' + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v1Column18: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'PRTColorNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Column19: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 68 + end + object v1Column17: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'PRTHX' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Filler: TcxGridDBColumn + Caption = #21046#21333#20154 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column12: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 984 + Top = 152 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1048 + Top = 168 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 1016 + Top = 160 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 152 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 952 + Top = 152 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 360 + Top = 232 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 424 + Top = 232 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 100 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 392 + Top = 232 + end + object RMDBHZ: TRMDBDataSet + Visible = True + DataSet = CDS_HZ + Left = 520 + Top = 232 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 488 + Top = 232 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 456 + Top = 232 + end + object PopupMenu1: TPopupMenu + Left = 328 + Top = 232 + object N1: TMenuItem + Caption = #20840#36873 + OnClick = N1Click + end + object N2: TMenuItem + Caption = #20840#24323 + OnClick = N2Click + end + end +end diff --git a/盛纺贸易管理/U_SXCKOutList_CX.pas b/盛纺贸易管理/U_SXCKOutList_CX.pas new file mode 100644 index 0000000..07e971e --- /dev/null +++ b/盛纺贸易管理/U_SXCKOutList_CX.pas @@ -0,0 +1,242 @@ +unit U_SXCKOutList_CX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, + cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, + cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, + RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, + cxCalendar, cxButtonEdit, cxTextEdit; + +type + TfrmSXCKOutListCX = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBExport: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + RMDBHZ: TRMDBDataSet; + CDS_HZ: TClientDataSet; + CDS_PRT: TClientDataSet; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column2: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column13: TcxGridDBColumn; + v1Column14: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column10: TcxGridDBColumn; + v1Column16: TcxGridDBColumn; + v1Column9: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column11: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column18: TcxGridDBColumn; + v1Column19: TcxGridDBColumn; + v1Column17: TcxGridDBColumn; + v1Column12: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + Label3: TLabel; + Label4: TLabel; + Label8: TLabel; + Label12: TLabel; + Label6: TLabel; + Label7: TLabel; + SPName: TEdit; + FactoryName: TEdit; + SPSpec: TEdit; + CRType: TComboBox; + SPCF: TEdit; + QCorderNo: TEdit; + Label10: TLabel; + CKorderNo: TEdit; + Label11: TLabel; + FromFactoryName: TEdit; + Label13: TLabel; + ToFactoryName: TEdit; + Label14: TLabel; + SPCode: TEdit; + v1Column20: TcxGridDBColumn; + v1Column15: TcxGridDBColumn; + v1ConNoHZCK: TcxGridDBColumn; + Label9: TLabel; + Label15: TLabel; + ConNoHZ: TEdit; + ConNoHZCK: TEdit; + v1Filler: TcxGridDBColumn; + Label16: TLabel; + PRTColor: TEdit; + v1RKType: TcxGridDBColumn; + Label17: TLabel; + RKType: TEdit; + v1CKName: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ConNoMChange(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure SPNameChange(Sender: TObject); + procedure SPIDChange(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure SPSpecChange(Sender: TObject); + private + canshu1,canshu2:string; + procedure InitGrid(); + { Private declarations } + public + FToFactoryName,FOrderNo:string; + { Public declarations } + end; + +var + frmSXCKOutListCX: TfrmSXCKOutListCX; + +implementation +uses + U_DataLink,U_RTFun; + +{$R *.dfm} + +procedure TfrmSXCKOutListCX.FormDestroy(Sender: TObject); +begin + frmSXCKOutListCX:=nil; +end; + +procedure TfrmSXCKOutListCX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmSXCKOutListCX.FormCreate(Sender: TObject); +begin + //cxGrid1.Align:=alClient; + canshu1:=Trim(DParameters1); + canshu2:=Trim(DParameters2); +end; + +procedure TfrmSXCKOutListCX.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add(' select A.* ,B.PRTColorNo,B.PRTColor,B.PRTHX,C.CRType RKType'); + sql.Add(',ConNoHZ=[dbo].[F_Get_Order_SubStr](A.ORDMainIdRK,''ConNoHZ'') '); + sql.Add(',ConNoHZCK=[dbo].[F_Get_Order_SubStr](A.ORDMainIdCK,''ConNoHZ'') '); + sql.Add(' from CK_SXPB_CR A'); + sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId'); + sql.add(' left join CK_SXPB_CR C on C.SPID=A.FZSPID'); + sql.Add(' where A.FromFactoryName='''+Trim(FToFactoryName)+''''); + sql.Add(' and A.QCOrderNo='''+trim(FOrderNo)+''''); + SQL.Add(' and A.CRFlag='''' '); + sql.add(' and isnull(C.MCType,'''')='''' '); + SQL.Add(' order by A.CRTime desc'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmSXCKOutListCX.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmSXCKOutListCX.ConNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + end; +end; + +procedure TfrmSXCKOutListCX.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('бFM',Tv1,'ֿ'); + Close; +end; + +procedure TfrmSXCKOutListCX.FormShow(Sender: TObject); +begin + + ReadCxGrid('бFM',Tv1,'ֿ'); + InitGrid(); +end; + +procedure TfrmSXCKOutListCX.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then exit; + TcxGridToExcel('б',cxGrid2); +end; + +procedure TfrmSXCKOutListCX.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmSXCKOutListCX.SPNameChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmSXCKOutListCX.SPIDChange(Sender: TObject); +begin + + TBFind.Click; +end; + +procedure TfrmSXCKOutListCX.N1Click(Sender: TObject); +begin + SelOKNo(CDS_Main,True); +end; + +procedure TfrmSXCKOutListCX.N2Click(Sender: TObject); +begin + SelOKNo(CDS_Main,False); +end; + +procedure TfrmSXCKOutListCX.SPSpecChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_SetBanZu.dfm b/盛纺贸易管理/U_SetBanZu.dfm new file mode 100644 index 0000000..195ed6b --- /dev/null +++ b/盛纺贸易管理/U_SetBanZu.dfm @@ -0,0 +1,221 @@ +object frmSetBanZu: TfrmSetBanZu + Left = 101 + Top = 118 + Width = 892 + Height = 616 + Caption = #29677#32452#35774#32622 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object cxGrid1: TcxGrid + Left = 0 + Top = 0 + Width = 497 + Height = 579 + Align = alLeft + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Header = DataLink_RCInspection.FonePurple + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.FullFocusRect = True + Properties.GlyphCount = 10 + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 76 + end + object v1Column1: TcxGridDBColumn + Caption = #21592#24037#32534#21495 + DataBinding.FieldName = 'UserId' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 139 + end + object v1Column2: TcxGridDBColumn + Caption = #21592#24037#21517#31216 + DataBinding.FieldName = 'UserName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 136 + end + object v1Column3: TcxGridDBColumn + Caption = #29677#32452 + DataBinding.FieldName = 'BanZu' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 135 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Button3: TButton + Left = 511 + Top = 53 + Width = 78 + Height = 40 + Caption = #29677#32452#23450#20041 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnClick = Button3Click + end + object Button4: TButton + Left = 592 + Top = 53 + Width = 78 + Height = 40 + Caption = #29677#32452#35774#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 2 + OnClick = Button4Click + end + object Button5: TButton + Left = 673 + Top = 53 + Width = 78 + Height = 40 + Caption = #28165#31354#36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 3 + OnClick = Button5Click + end + object Button6: TButton + Left = 754 + Top = 53 + Width = 78 + Height = 40 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnClick = Button6Click + end + object Button1: TButton + Left = 689 + Top = 128 + Width = 70 + Height = 39 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = Button1Click + end + object Button2: TButton + Left = 762 + Top = 128 + Width = 70 + Height = 39 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = Button2Click + end + object BanZu: TComboBox + Left = 511 + Top = 127 + Width = 177 + Height = 41 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ItemHeight = 33 + ParentFont = False + TabOrder = 7 + Visible = False + end + object cxStyleRepository1: TcxStyleRepository + Left = 832 + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 368 + Top = 216 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 296 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 368 + Top = 296 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 368 + Top = 256 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 264 + Top = 312 + end +end diff --git a/盛纺贸易管理/U_SetBanZu.pas b/盛纺贸易管理/U_SetBanZu.pas new file mode 100644 index 0000000..1c97fd4 --- /dev/null +++ b/盛纺贸易管理/U_SetBanZu.pas @@ -0,0 +1,265 @@ +unit U_SetBanZu; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCheckBox, ComCtrls, ToolWin, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB, StdCtrls, + ExtCtrls, DBClient; + +type + TfrmSetBanZu = class(TForm) + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + ADOQueryMain: TADOQuery; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + CDS_Main: TClientDataSet; + Button3: TButton; + Button4: TButton; + Button5: TButton; + Button6: TButton; + Button1: TButton; + Button2: TButton; + BanZu: TComboBox; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure ToolButton6Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + frmSetBanZu: TfrmSetBanZu; + +implementation +Uses +U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmSetBanZu.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + + Action:=caFree; +end; + +procedure TfrmSetBanZu.FormDestroy(Sender: TObject); +begin + frmSetBanZu:=nil; +end; + +procedure TfrmSetBanZu.FormShow(Sender: TObject); +begin + + //DataLink_WFBProducttion.ADOLink.Connected:=True; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + SQL.Add('select * from SY_User where UserId not in(''ADMIN'',''CS01'')'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + +end; + +procedure TfrmSetBanZu.ToolButton2Click(Sender: TObject); +var + fsj,FUserId:String; +begin + {FUserId:=Trim(CDS_Main.fieldbyname('UserId').AsString); + if CDS_Main.Locate('SSel',True,[])=False then + begin + CDS_Main.Locate('UserId',Trim(FUserId),[]); + Application.MessageBox('ûѡԱ','ʾ',0); + exit; + end; + CDS_Main.Locate('UserId',Trim(FUserId),[]); + Panel1.Visible:=True; + fsj:='select Name=ZdyName from KH_Zdy where Type=''WFBBZ'' '; + + SInitComBoxBySql(ADOQueryTemp,BanZu,False,fsj); } + +end; + +procedure TfrmSetBanZu.Button2Click(Sender: TObject); +begin + BanZu.Visible:=False; + Button1.Visible:=False; + Button2.Visible:=False; +end; + +procedure TfrmSetBanZu.ToolButton12Click(Sender: TObject); +begin + Close; +end; + +procedure TfrmSetBanZu.Button1Click(Sender: TObject); +begin + if CDS_Main.Locate('SSel',True,[])=False then + begin + Application.MessageBox('ûѡԱ','ʾ',0); + exit; + end; + if Application.MessageBox('ȷҪִв','ʾ',32+4)<>IDYES then Exit; + + try + ADOQueryCmd.Connection.BeginTrans; + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not eof do + begin + if CDS_Main.FieldByName('SSel').AsBoolean=True then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('UPdate SY_User Set BanZu='''+Trim(BanZu.Text)+''''); + sql.Add(' where UserId='''+Trim(CDS_Main.fieldbyname('UserId').AsString)+''''); + ExecSQL; + end; + CDS_Main.Edit; + FieldByName('BanZu').Value:=Trim(BanZu.Text); + //CDS_Main.Post; + end; + Next; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + BanZu.Visible:=False; + Button1.Visible:=False; + Button2.Visible:=False; + Application.MessageBox('óɹ','ʾ',0); + except + ADOQueryCmd.Connection.RollbackTrans; + + Application.MessageBox('쳣','ʾ',0); + end; + +end; + +procedure TfrmSetBanZu.ToolButton6Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(CDS_Main.fieldbyname('UserId').AsString); + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + CDS_Main.Edit; + FieldByName('SSel').Value:=False; + end; + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Main.Locate('UserId',fsj,[]); +end; + +procedure TfrmSetBanZu.Button3Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='WFBBZ'; + flagname:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmSetBanZu.Button4Click(Sender: TObject); +var + fsj,FUserId:String; +begin + FUserId:=Trim(CDS_Main.fieldbyname('UserId').AsString); + if CDS_Main.Locate('SSel',True,[])=False then + begin + CDS_Main.Locate('UserId',Trim(FUserId),[]); + Application.MessageBox('ûѡԱ','ʾ',0); + exit; + end; + CDS_Main.Locate('UserId',Trim(FUserId),[]); + BanZu.Visible:=True; + Button1.Visible:=True; + Button2.Visible:=True; + fsj:='select Name=ZdyName from KH_Zdy where Type=''WFBBZ'' '; + + SInitComBoxBySql(ADOQueryTemp,BanZu,False,fsj); + +end; + +procedure TfrmSetBanZu.Button5Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(CDS_Main.fieldbyname('UserId').AsString); + CDS_Main.DisableControls; + with CDS_Main do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + CDS_Main.Edit; + FieldByName('SSel').Value:=False; + end; + Next; + end; + end; + CDS_Main.EnableControls; + CDS_Main.Locate('UserId',fsj,[]); +end; + +procedure TfrmSetBanZu.Button6Click(Sender: TObject); +begin + Close; +end; + +end. diff --git a/盛纺贸易管理/U_StopWorkInPut.dfm b/盛纺贸易管理/U_StopWorkInPut.dfm new file mode 100644 index 0000000..3bb2703 --- /dev/null +++ b/盛纺贸易管理/U_StopWorkInPut.dfm @@ -0,0 +1,282 @@ +object frmStopWorkInPut: TfrmStopWorkInPut + Left = 67 + Top = 90 + Width = 1169 + Height = 598 + Caption = #20572#26426#35760#24405#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -27 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 27 + object Panel1: TPanel + Left = 777 + Top = 0 + Width = 384 + Height = 561 + Align = alRight + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + Visible = False + object Label5: TLabel + Left = 299 + Top = 39 + Width = 37 + Height = 140 + Caption = #20572#13#10#26426#13#10#21407#13#10#22240 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object SWReason: TComboBox + Tag = 1 + Left = 16 + Top = 3 + Width = 257 + Height = 24 + AutoCloseUp = True + Style = csDropDownList + DropDownCount = 45 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 16 + ParentFont = False + TabOrder = 0 + end + object Button1: TButton + Left = 51 + Top = 70 + Width = 90 + Height = 50 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 163 + Top = 70 + Width = 90 + Height = 50 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button2Click + end + end + object cxGrid5: TcxGrid + Left = 0 + Top = 0 + Width = 633 + Height = 561 + Align = alLeft + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Content = cxStyle1 + Styles.Header = cxStyle1 + object v1Column1: TcxGridDBColumn + Caption = #29677#32452 + DataBinding.FieldName = 'SWPersonBZ' + HeaderAlignmentHorz = taCenter + Width = 45 + end + object v1Column2: TcxGridDBColumn + Caption = #20572#26426#26102#38388 + DataBinding.FieldName = 'SWBegtime' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle4 + Width = 151 + end + object v1Column3: TcxGridDBColumn + Caption = #24320#26426#26102#38388 + DataBinding.FieldName = 'SWEndtime' + HeaderAlignmentHorz = taCenter + Styles.Header = cxStyle3 + Width = 122 + end + object v1Column4: TcxGridDBColumn + Caption = #20572#26426#21407#22240 + DataBinding.FieldName = 'SWReason' + HeaderAlignmentHorz = taCenter + Width = 245 + end + object v1Column5: TcxGridDBColumn + Caption = #25805#20316#20154 + DataBinding.FieldName = 'SWPerson' + HeaderAlignmentHorz = taCenter + Width = 62 + end + end + object cxGridLevel4: TcxGridLevel + GridView = Tv1 + end + end + object Button3: TButton + Left = 667 + Top = 473 + Width = 153 + Height = 65 + Caption = #21407#22240#23450#20041 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = Button3Click + end + object Button4: TButton + Left = 667 + Top = 96 + Width = 153 + Height = 65 + Caption = #20572#26426 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button4Click + end + object Button5: TButton + Left = 667 + Top = 210 + Width = 153 + Height = 65 + Caption = #24320#26426 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = Button5Click + end + object Button6: TButton + Left = 667 + Top = 325 + Width = 153 + Height = 65 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Button6Click + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 424 + Top = 192 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid5 + PopupMenus = <> + Left = 520 + Top = 168 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 248 + end + object ADOTemp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 480 + Top = 173 + end + object ADOCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 496 + Top = 125 + end + object ADOQuery1: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 496 + Top = 141 + end + object cxStyleRepository1: TcxStyleRepository + Left = 472 + Top = 96 + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + end + object cxStyle3: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clGreen + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle4: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 488 + Top = 221 + end +end diff --git a/盛纺贸易管理/U_StopWorkInPut.pas b/盛纺贸易管理/U_StopWorkInPut.pas new file mode 100644 index 0000000..68d12f7 --- /dev/null +++ b/盛纺贸易管理/U_StopWorkInPut.pas @@ -0,0 +1,498 @@ +unit U_StopWorkInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxTimeEdit, + cxButtonEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + StdCtrls, ComCtrls, ExtCtrls, ToolWin, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridBandedTableView, + cxGridDBBandedTableView, cxDropDownEdit; + +type + TfrmStopWorkInPut = class(TForm) + Panel1: TPanel; + Label5: TLabel; + cxGrid5: TcxGrid; + cxGridLevel4: TcxGridLevel; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle3: TcxStyle; + cxStyle4: TcxStyle; + SWReason: TComboBox; + ADOQueryMain: TADOQuery; + Button1: TButton; + Button2: TButton; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + Button3: TButton; + Button4: TButton; + Button5: TButton; + Button6: TButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TBDelClick(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure ToolButton12Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure ToolButton7Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + private + { Private declarations } + procedure ComboxData(v1Column310:TcxGridDBBandedColumn;ii:Integer); + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmStopWorkInPut: TfrmStopWorkInPut; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp,U_iniParam; + +{$R *.dfm} + +procedure TfrmStopWorkInPut.FormDestroy(Sender: TObject); +begin + frmStopWorkInPut:=nil; +end; + +procedure TfrmStopWorkInPut.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + + Action:=caFree; +end; + +procedure TfrmStopWorkInPut.FormShow(Sender: TObject); + +begin + ReadCxGrid('ͣ¼',Tv1,'޷IJ'); + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + InitGrid(); + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; +procedure TfrmStopWorkInPut.InitGrid(); +var + sql:string; +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select Top 20* from WFB_StopWorkList '); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' where SWType='''+Trim(SCXFlag)+''''); + end; + sql.Add('Order by SWBegTime desc'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmStopWorkInPut.ComboxData(v1Column310:TcxGridDBBandedColumn;ii:Integer); +var + i:Integer; + j:string; +begin + (v1Column310.Properties as TcxComboBoxProperties).Items.Clear; + for i:=0 to ii do + begin + if i<10 then + j:='0'+trim(IntToStr(i)) + else + j:=Trim(IntToStr(i)); + (v1Column310.Properties as TcxComboBoxProperties).Items.Add(Trim(j)); + end; +end; + +procedure TfrmStopWorkInPut.v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SWReason'; + flagname:='ͣԭ'; + if ShowModal=1 then + begin + Self.CDS_Main.Edit; + Self.CDS_Main.FieldByName('SWReason').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmStopWorkInPut.TBDelClick(Sender: TObject); +begin + if Trim(CDS_Main.fieldbyname('SWID').AsString)<>'' then + begin + if Trim(DCode)<>'ADMIN' then + begin + if Trim(DName)<>Trim(CDS_Main.fieldbyname('SWPerson').AsString) then + begin + Application.MessageBox('ɾ˼¼','ʾ',0); + Exit; + end; + end; + if Application.MessageBox('ȷҪɾ¼','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_StopWorkList where SWID='''+Trim(CDS_Main.fieldbyname('SWID').AsString)+''''); + ExecSQL; + end; + end; + CDS_Main.Delete; +end; + +procedure TfrmStopWorkInPut.ToolButton5Click(Sender: TObject); +var + sql:String; +begin + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_StopWorkList where SWEndtime is null'); + Open; + end; + if ADOCmd.IsEmpty=False then + begin + Application.MessageBox('ϴͣδп','ʾ',0); + Exit; + end; + Panel1.Visible:=True; + sql:='select distinct(ZdyName) Name from KH_Zdy where Type=''SWReason'' '; + SInitComBoxBySql(ADOTemp,SWReason,False,sql); + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmStopWorkInPut.Button1Click(Sender: TObject); +var + maxno,FBZ:String; +begin + if Trim(SWReason.Text)='' then + begin + Application.MessageBox('ͣԭΪգ','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪִͣ','ʾ',32+4)<>IDYES then Exit; + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + FBZ:=Trim(ADOTemp.fieldbyname('BanZu').AsString); + try + ADOCmd.Connection.BeginTrans; + if GetLSNo(ADOCmd,maxno,'SW','WFB_StopWorkList',2,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡͣʧܣ','ʾ',0); + Exit; + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_StopWorkList where 1<>1 '); + Open; + end; + with ADOCmd do + begin + Append; + FieldByName('SWID').Value:=Trim(maxno); + FieldByName('SWBegtime').Value:=SGetServerDateTime(ADOTemp); + FieldByName('SWReason').Value:=Trim(SWReason.Text); + FieldByName('SWPerson').Value:=Trim(DName); + FieldByName('SWPersonBZ').Value:=Trim(FBZ); + FieldByName('SWType').Value:=Trim(SCXFlag); + Post; + end; + with CDS_Main do + begin + Append; + FieldByName('SWID').Value:=Trim(maxno); + FieldByName('SWBegtime').Value:=SGetServerDateTime(ADOTemp); + FieldByName('SWReason').Value:=Trim(SWReason.Text); + FieldByName('SWPerson').Value:=Trim(DName); + FieldByName('SWPersonBZ').Value:=Trim(FBZ); + Post; + end; + ADOCmd.Connection.CommitTrans; + Panel1.Visible:=False; + //Application.MessageBox('ͣɹ','ʾ',0); + Exit; + except + ADOCmd.Connection.RollbackTrans; + DataLink_WFBProducttion.ADOLink.Connected:=False; + Application.MessageBox('ͣ쳣','ʾ',0); + Exit; + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmStopWorkInPut.ToolButton12Click(Sender: TObject); +begin + Close; + WriteCxGrid('ͣ¼',Tv1,'޷IJ'); +end; + +procedure TfrmStopWorkInPut.Button2Click(Sender: TObject); +begin + Panel1.Visible:=False; +end; + +procedure TfrmStopWorkInPut.ToolButton7Click(Sender: TObject); +var + FBZ,MaxNo:String; +begin + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + FBZ:=Trim(ADOTemp.fieldbyname('BanZu').AsString); + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_StopWorkList where SWEndtime is null'); + Open; + end; + if ADOTemp.IsEmpty=True then + begin + Application.MessageBox('δǼͣ¼','ʾ',0); + exit; + end; + if Application.MessageBox('ȷҪִп','ʾ',32+4)<>IDYES then Exit; + with ADOTemp do + begin + Close; + SQL.Clear; + SQL.Add('select Top 1* from WFB_StopWorkList where SWEndtime is null order by SWBegtime desc'); + Open; + end; + MaxNo:=Trim(ADOTemp.fieldbyname('SWID').AsString); + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_StopWorkList where SWID='''+Trim(ADOTemp.fieldbyname('SWID').AsString)+''''); + Open; + end; + + with ADOCmd do + begin + Edit; + FieldByName('SWEPerson').Value:=Trim(DName); + FieldByName('SWPersonBZ').Value:=Trim(FBZ); + FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp); + Post; + end; + ADOCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + CDS_Main.Locate('SWID',Trim(MaxNo),[]); + with CDS_Main do + begin + Edit; + FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp); + FieldByName('SWEPerson').Value:=Trim(DName); + //FieldByName('SWEPersonBZ').Value:=Trim(FBZ); + Post; + end; + except + ADOCmd.Connection.RollbackTrans; + DataLink_WFBProducttion.ADOLink.Connected:=False; + Application.MessageBox('쳣','ʾ',0); + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmStopWorkInPut.Button3Click(Sender: TObject); +begin + { try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SWReason'; + flagname:='ͣԭ'; + if ShowModal=1 then + begin + end; + end; + finally + frmZDYHelp.Free; + end;} +end; + +procedure TfrmStopWorkInPut.Button4Click(Sender: TObject); +var + sql:String; +begin + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_StopWorkList '); + sql.Add('where SWEndtime is null'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' and SWType='''+Trim(SCXFlag)+''''); + end; + + Open; + end; + if ADOCmd.IsEmpty=False then + begin + Application.MessageBox('ϴͣδп','ʾ',0); + Exit; + end; + Panel1.Visible:=True; + sql:='select ZdyName Name from KH_Zdy where Type=''SWReason'' order by orderno '; + SInitComBoxBySql(ADOTemp,SWReason,False,sql); + SWReason.SetFocus; + SWReason.DroppedDown:=True; + //SWReason. + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmStopWorkInPut.Button5Click(Sender: TObject); +var + FBZ,MaxNo:String; +begin + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + FBZ:=Trim(ADOTemp.fieldbyname('BanZu').AsString); + with ADOTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_StopWorkList'); + sql.Add(' where SWEndtime is null'); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' and SWType='''+Trim(SCXFlag)+''''); + end; + Open; + end; + if ADOTemp.IsEmpty=True then + begin + Application.MessageBox('δǼͣ¼','ʾ',0); + exit; + end; + if Application.MessageBox('ȷҪִп','ʾ',32+4)<>IDYES then Exit; + with ADOTemp do + begin + Close; + SQL.Clear; + SQL.Add('select Top 1* from WFB_StopWorkList where SWEndtime is null '); + if Trim(SCXFlag)<>'' then + begin + sql.Add(' and SWType='''+Trim(SCXFlag)+''''); + end; + sql.Add(' order by SWBegtime desc'); + Open; + end; + MaxNo:=Trim(ADOTemp.fieldbyname('SWID').AsString); + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_StopWorkList where SWID='''+Trim(ADOTemp.fieldbyname('SWID').AsString)+''''); + Open; + end; + + with ADOCmd do + begin + Edit; + FieldByName('SWEPerson').Value:=Trim(DName); + FieldByName('SWPersonBZ').Value:=Trim(FBZ); + FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp); + Post; + end; + ADOCmd.Connection.CommitTrans; + //Application.MessageBox('ɹ','ʾ',0); + CDS_Main.Locate('SWID',Trim(MaxNo),[]); + with CDS_Main do + begin + Edit; + FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp); + FieldByName('SWEPerson').Value:=Trim(DName); + //FieldByName('SWEPersonBZ').Value:=Trim(FBZ); + Post; + end; + except + ADOCmd.Connection.RollbackTrans; + DataLink_WFBProducttion.ADOLink.Connected:=False; + Application.MessageBox('쳣','ʾ',0); + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmStopWorkInPut.Button6Click(Sender: TObject); +begin + Close; + WriteCxGrid('ͣ¼',Tv1,'޷IJ'); +end; + +end. diff --git a/盛纺贸易管理/U_StopWorkList.dfm b/盛纺贸易管理/U_StopWorkList.dfm new file mode 100644 index 0000000..5f5b802 --- /dev/null +++ b/盛纺贸易管理/U_StopWorkList.dfm @@ -0,0 +1,439 @@ +object frmStopWorkList: TfrmStopWorkList + Left = 90 + Top = 121 + Width = 1069 + Height = 598 + Caption = #20572#26426#35760#24405#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1061 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_WFBProducttion.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object ToolButton1: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + Visible = False + OnClick = ToolButton1Click + end + object TBDel: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 13 + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 315 + Top = 0 + Caption = #20572#26426#21407#22240 + ImageIndex = 56 + OnClick = ToolButton4Click + end + object TBClose: TToolButton + Left = 398 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1061 + Height = 76 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 25 + Width = 24 + Height = 12 + Caption = #26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 450 + Top = 25 + Width = 36 + Height = 12 + Caption = #25805#20316#20154 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 240 + Top = 49 + Width = 48 + Height = 12 + Caption = #20572#26426#21407#22240 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 240 + Top = 25 + Width = 48 + Height = 12 + Caption = #29677' '#32452 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 50 + Top = 21 + Width = 168 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 50 + Top = 45 + Width = 169 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 1 + end + object SWPersonBZ: TComboBox + Tag = 1 + Left = 291 + Top = 21 + Width = 97 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentFont = False + TabOrder = 2 + OnChange = SWPersonBZChange + end + object SWPerson: TComboBox + Tag = 1 + Left = 491 + Top = 21 + Width = 97 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentFont = False + TabOrder = 3 + OnChange = SWPersonBZChange + end + object SWReason: TComboBox + Tag = 1 + Left = 291 + Top = 45 + Width = 297 + Height = 20 + Style = csDropDownList + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ItemHeight = 12 + ParentFont = False + TabOrder = 4 + OnChange = SWPersonBZChange + end + end + object cxGrid5: TcxGrid + Left = 0 + Top = 104 + Width = 1017 + Height = 393 + TabOrder = 2 + object Tv1: TcxGridDBBandedTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_WFBProducttion.SHuangSe + Styles.IncSearch = DataLink_WFBProducttion.SHuangSe + Styles.Selection = DataLink_WFBProducttion.SHuangSe + Styles.Header = DataLink_WFBProducttion.handBlack + Styles.BandHeader = DataLink_WFBProducttion.FoneRed + Bands = < + item + Width = 314 + end + item + Caption = #24320#22987#26102#38388 + Styles.Header = cxStyle3 + Width = 157 + end + item + Caption = #32467#26463#26102#38388 + Styles.Header = cxStyle4 + Width = 168 + end + item + Width = 363 + end> + object v1Column1: TcxGridDBBandedColumn + Tag = 2 + Caption = #26085#26399 + DataBinding.FieldName = 'SWDate10' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 216 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column2: TcxGridDBBandedColumn + Tag = 2 + Caption = #29677#32452 + DataBinding.FieldName = 'SWPersonBZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 98 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column3: TcxGridDBBandedColumn + Tag = 2 + DataBinding.FieldName = 'SWBegTime' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Moving = False + Position.BandIndex = 1 + Position.ColIndex = 0 + Position.RowIndex = 0 + IsCaptionAssigned = True + end + object v1Column5: TcxGridDBBandedColumn + Tag = 2 + DataBinding.FieldName = 'SWEndTime' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Moving = False + Position.BandIndex = 2 + Position.ColIndex = 0 + Position.RowIndex = 0 + IsCaptionAssigned = True + end + object v1Column7: TcxGridDBBandedColumn + Tag = 2 + Caption = #20572#26426#21407#22240 + DataBinding.FieldName = 'SWReason' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column7PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 242 + Position.BandIndex = 3 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column8: TcxGridDBBandedColumn + Tag = 2 + Caption = #25805#20316#20154 + DataBinding.FieldName = 'SWPerson' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 121 + Position.BandIndex = 3 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + end + object cxGridLevel4: TcxGridLevel + GridView = Tv1 + end + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 552 + Top = 224 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid5 + PopupMenus = <> + Left = 432 + Top = 232 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 552 + Top = 248 + end + object ADOTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 584 + Top = 221 + end + object ADOCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 608 + Top = 221 + end + object ADOQuery1: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 640 + Top = 221 + end + object cxStyleRepository1: TcxStyleRepository + Left = 920 + Top = 64 + object cxStyle1: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -27 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + end + object cxStyle3: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clGreen + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle4: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 640 + Top = 293 + end +end diff --git a/盛纺贸易管理/U_StopWorkList.pas b/盛纺贸易管理/U_StopWorkList.pas new file mode 100644 index 0000000..84e0209 --- /dev/null +++ b/盛纺贸易管理/U_StopWorkList.pas @@ -0,0 +1,291 @@ +unit U_StopWorkList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxTimeEdit, + cxButtonEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + StdCtrls, ComCtrls, ExtCtrls, ToolWin, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridBandedTableView, + cxGridDBBandedTableView, cxDropDownEdit; + +type + TfrmStopWorkList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label3: TLabel; + Label5: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + cxGrid5: TcxGrid; + cxGridLevel4: TcxGridLevel; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + Label4: TLabel; + DataSource1: TDataSource; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + Tv1: TcxGridDBBandedTableView; + v1Column1: TcxGridDBBandedColumn; + v1Column2: TcxGridDBBandedColumn; + v1Column3: TcxGridDBBandedColumn; + v1Column5: TcxGridDBBandedColumn; + v1Column7: TcxGridDBBandedColumn; + v1Column8: TcxGridDBBandedColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle3: TcxStyle; + cxStyle4: TcxStyle; + SWPersonBZ: TComboBox; + SWPerson: TComboBox; + SWReason: TComboBox; + ADOQueryMain: TADOQuery; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure TBCloseClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure SWPersonBZChange(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + private + { Private declarations } + procedure ComboxData(v1Column310:TcxGridDBBandedColumn;ii:Integer); + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmStopWorkList: TfrmStopWorkList; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmStopWorkList.FormDestroy(Sender: TObject); +begin + frmStopWorkList:=nil; +end; + +procedure TfrmStopWorkList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmStopWorkList.FormCreate(Sender: TObject); +begin + cxGrid5.Align:=alClient; + +end; + +procedure TfrmStopWorkList.FormShow(Sender: TObject); + +begin + EndDate.DateTime:=SGetServerDate(ADOQuery1); + BegDate.DateTime:=EndDate.DateTime-7; + ReadCxBandedGrid('ͣ¼',Tv1,'޷IJ'); + InitGrid(); + +end; +procedure TfrmStopWorkList.InitGrid(); +var + sql:string; +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select SWDate10=(Convert(varchar(10),A.SWBegTime,120)), A.* from WFB_StopWorkList A where SWBegTime>=:begdate and SWBegTime<:enddate'); + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + sql:='select distinct(SWPersonBZ) Name from WFB_StopWorkList where SWBegTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +'and SWBegTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + SInitComBoxBySql(ADOTemp,SWPersonBZ,False,sql); + sql:='select distinct(SWPerson) Name from WFB_StopWorkList where SWBegTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +'and SWBegTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + SInitComBoxBySql(ADOTemp,SWPerson,False,sql); + sql:='select distinct(SWReason) Name from WFB_StopWorkList where SWBegTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +'and SWBegTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + SInitComBoxBySql(ADOTemp,SWReason,False,sql); +end; +procedure TfrmStopWorkList.ComboxData(v1Column310:TcxGridDBBandedColumn;ii:Integer); +var + i:Integer; + j:string; +begin + (v1Column310.Properties as TcxComboBoxProperties).Items.Clear; + for i:=0 to ii do + begin + if i<10 then + j:='0'+trim(IntToStr(i)) + else + j:=Trim(IntToStr(i)); + (v1Column310.Properties as TcxComboBoxProperties).Items.Add(Trim(j)); + end; +end; + +procedure TfrmStopWorkList.ToolButton1Click(Sender: TObject); +begin + with CDS_Main do + begin + Append; + FieldByName('SWDate').Value:=SGetServerDate(ADOTemp); + FieldByName('SWPerson').Value:=Trim(DName); + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + FieldByName('SWPersonBZ').Value:=Trim(ADOQuery1.fieldbyname('UDept').AsString); + Post; + end; +end; + +procedure TfrmStopWorkList.v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SWReason'; + flagname:='ͣԭ'; + if ShowModal=1 then + begin + Self.CDS_Main.Edit; + Self.CDS_Main.FieldByName('SWReason').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmStopWorkList.TBCloseClick(Sender: TObject); +begin + Close; + WriteCxBandedGrid('ͣ¼',Tv1,'޷IJ'); +end; + +procedure TfrmStopWorkList.ToolButton2Click(Sender: TObject); +var + maxno:string; +begin + BegDate.SetFocus; + if CDS_Main.IsEmpty then Exit; + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_StopWorkList Set SWReason='''+Trim(CDS_Main.fieldbyname('SWReason').AsString)+''''); + sql.Add(' where SWID='''+Trim(CDS_Main.fieldbyname('SWID').AsString)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + Exit; + end; +end; + +procedure TfrmStopWorkList.TBDelClick(Sender: TObject); +begin + if Trim(CDS_Main.fieldbyname('SWID').AsString)<>'' then + begin + if Trim(DCode)<>'ADMIN' then + begin + if Trim(DName)<>Trim(CDS_Main.fieldbyname('SWPerson').AsString) then + begin + Application.MessageBox('ɾ˼¼','ʾ',0); + Exit; + end; + end; + if Application.MessageBox('ȷҪɾ¼','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete WFB_StopWorkList where SWID='''+Trim(CDS_Main.fieldbyname('SWID').AsString)+''''); + ExecSQL; + end; + end; + CDS_Main.Delete; +end; + +procedure TfrmStopWorkList.SWPersonBZChange(Sender: TObject); +begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); +end; + +procedure TfrmStopWorkList.TBRafreshClick(Sender: TObject); +begin + BegDate.SetFocus; + InitGrid(); +end; + +procedure TfrmStopWorkList.ToolButton3Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel('ͣ¼',cxGrid5); +end; + +procedure TfrmStopWorkList.ToolButton4Click(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SWReason'; + flagname:='ͣԭ'; + if ShowModal=1 then + begin + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_XHInPut.dfm b/盛纺贸易管理/U_XHInPut.dfm new file mode 100644 index 0000000..7152cf1 --- /dev/null +++ b/盛纺贸易管理/U_XHInPut.dfm @@ -0,0 +1,346 @@ +object frmXHInPut: TfrmXHInPut + Left = 189 + Top = 127 + Width = 1164 + Height = 596 + Caption = #29616#36135#21450#26679#24067#20449#24687#30331#35760 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1148 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TADD: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = TADDClick + end + object TDEL: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = TDELClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 29 + Width = 1148 + Height = 529 + Align = alClient + TabOrder = 1 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = V1PRTOrderQty + end + item + Format = '0' + Position = spFooter + Column = v1PRTPrice + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V1PRTOrderQty + end + item + Kind = skSum + end + item + Kind = skSum + Column = V2XHMoney + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V1filltime: TcxGridDBColumn + Tag = 2 + Caption = #30331#35760#26085#26399 + DataBinding.FieldName = 'filltime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 70 + end + object V1CostomerNoName: TcxGridDBColumn + Tag = 2 + Caption = #23458#25143 + DataBinding.FieldName = 'CostomerNoName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V1CostomerNoNamePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V2Column2: TcxGridDBColumn + Tag = 2 + Caption = #32534#21495 + DataBinding.FieldName = 'PrtCode' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V2Column2PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 91 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column5PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 84 + end + object v1Column6: TcxGridDBColumn + Tag = 2 + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'PRTspec' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column6PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 73 + end + object v1PRTColor: TcxGridDBColumn + Tag = 2 + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + Properties.OnButtonClick = v1PRTColorPropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 85 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column7PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 73 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1Column8PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 78 + end + object V1PRTOrderQty: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1PRTOrderQtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 76 + end + object v1OrderUnit: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 82 + end + object v1PRTPrice: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1PRTPricePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 84 + end + object v1PriceUnit: TcxGridDBColumn + Tag = 2 + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'USD' + 'RMB') + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 87 + end + object V2XHMoney: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069 + DataBinding.FieldName = 'XHMoney' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 87 + end + object V1XHNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'XHNote' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 87 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV1 + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 640 + Top = 65533 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 584 + Top = 65533 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 608 + Top = 65533 + end + object DataSource1: TDataSource + DataSet = Order_Sub + Left = 240 + Top = 368 + end + object Order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 368 + end +end diff --git a/盛纺贸易管理/U_XHInPut.pas b/盛纺贸易管理/U_XHInPut.pas new file mode 100644 index 0000000..772407c --- /dev/null +++ b/盛纺贸易管理/U_XHInPut.pas @@ -0,0 +1,403 @@ +unit U_XHInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit,jpeg, + IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC, + cxGridCustomPopupMenu, cxGridPopupMenu, FTComboBox; + +type + TfrmXHInPut = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + TBSave: TToolButton; + DataSource1: TDataSource; + Order_Sub: TClientDataSet; + cxGrid1: TcxGrid; + TV1: TcxGridDBTableView; + V2Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + V1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + V2XHMoney: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + TADD: TToolButton; + TDEL: TToolButton; + V1filltime: TcxGridDBColumn; + V1XHNote: TcxGridDBColumn; + V1CostomerNoName: TcxGridDBColumn; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure TADDClick(Sender: TObject); + procedure TDELClick(Sender: TObject); + procedure V2Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure v1Column8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V1PRTOrderQtyPropertiesEditValueChanged(Sender: TObject); + procedure v1PRTPricePropertiesEditValueChanged(Sender: TObject); + procedure V1CostomerNoNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + procedure InitData(); + function SaveData():Boolean; + { Private declarations } + public + canshu1:String; + PState,CopyInt:Integer; + FMainId:String; + { Public declarations } + end; + +var + frmXHInPut: TfrmXHInPut; +implementation +uses + U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_GYSList, U_ZdyAttachment; + +{$R *.dfm} + +procedure TfrmXHInPut.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmXHInPut.InitData(); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderML_Main where Mainid='''+Trim(FMainId)+''''); + Open; + end; + SCreateCDS20(ADOQuery1,Order_Sub); + SInitCDSData20(ADOQuery1,Order_Sub); +end; + + +procedure TfrmXHInPut.FormShow(Sender: TObject); +begin + InitData(); +end; + +function TfrmXHInPut.SaveData():Boolean; +var + maxno,maxsubno:String; +begin + Result:=False; + try + ADOCmd.Connection.BeginTrans; + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxsubno,'ML','JYOrderML_Main',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + maxsubno:=Trim(Order_Sub.fieldbyname('Mainid').AsString); + end; + with ADOCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderML_Main where Mainid='''+Trim(maxsubno)+''''); + Open; + end; + with ADOCmd do + begin + if isempty then + Append + else + Edit; + FieldByName('Mainid').Value:=Trim(maxsubno); + RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrderML_Main',2); + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('Mainid').Value:=Trim(maxsubno); + //Order_Sub.Post; + Next; + end; + end; + ADOCmd.Connection.CommitTrans; + FMainId:=Trim(maxsubno); + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmXHInPut.TBSaveClick(Sender: TObject); +begin + ToolBar1.SetFocus; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + Modalresult:=1; + end; +end; + +procedure TfrmXHInPut.TADDClick(Sender: TObject); +begin + with Order_Sub do + begin + Append; + fieldbyname('filltime').Value:=now; + Post; + end; +end; + +procedure TfrmXHInPut.TDELClick(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('Mainid').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderML_Main where Mainid='''+Trim(Order_Sub.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TfrmXHInPut.V2Column2PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PrtCode'; + flagname:='Ʒ'; + //fnote:=True; + //V1Note.Caption:='Ʒ'; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('PrtCode').AsString:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmXHInPut.v1Column5PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PrtCodeName'; + flagname:='Ʒ'; + //fnote:=True; + //V1Note.Caption:='Ʒ'; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('PrtCodeName').AsString:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmXHInPut.v1Column6PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PRTspec'; + flagname:='ɷ'; + //fnote:=True; + //V1Note.Caption:='Ʒ'; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('PRTspec').AsString:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmXHInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='PRTColor'; + flagname:='ɫ'; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('PRTColor').AsString:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmXHInPut.v1Column7PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='HXPRTMF'; + flagname:='ŷ'; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('PRTMF').AsString:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmXHInPut.v1Column8PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='HXPRTKZ'; + flagname:=''; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('PRTKZ').AsString:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmXHInPut.V1PRTOrderQtyPropertiesEditValueChanged( + Sender: TObject); +var Mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with Order_Sub do + begin + Edit; + FieldByName('PRTOrderQty').Value:=mvalue; + fieldbyname('XHMoney').Value:=fieldbyname('PRTPrice').AsFloat*strtofloat(mvalue); + end; +end; + +procedure TfrmXHInPut.v1PRTPricePropertiesEditValueChanged( + Sender: TObject); +var Mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + with Order_Sub do + begin + Edit; + FieldByName('PRTPrice').Value:=mvalue; + fieldbyname('XHMoney').Value:=fieldbyname('PRTOrderQty').AsFloat*strtofloat(mvalue); + end; +end; + +procedure TfrmXHInPut.V1CostomerNoNamePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:=''; + if ShowModal=1 then + begin + with Order_Sub do + begin + edit; + fieldbyname('CostomerNoName').Value:=CDS_HZ.fieldbyname('ZdyName').AsString; + end; + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_XHList.dfm b/盛纺贸易管理/U_XHList.dfm new file mode 100644 index 0000000..b7491d9 --- /dev/null +++ b/盛纺贸易管理/U_XHList.dfm @@ -0,0 +1,841 @@ +object frmXHList: TfrmXHList + Left = 192 + Top = 126 + Width = 1166 + Height = 598 + Caption = #29616#36135#21450#26679#24067#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1150 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object ToolButton1: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 58 + OnClick = ToolButton1Click + end + object TBExport: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + object ToolButton5: TToolButton + Left = 504 + Top = 0 + AutoSize = True + Caption = #38468#20214 + ImageIndex = 57 + Visible = False + OnClick = ToolButton5Click + end + object ToolButton4: TToolButton + Left = 567 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = ToolButton4Click + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1150 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label9: TLabel + Left = 183 + Top = 15 + Width = 40 + Height = 12 + Caption = #32534' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 183 + Top = 39 + Width = 40 + Height = 12 + Caption = #38376' '#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 355 + Top = 15 + Width = 26 + Height = 12 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 28 + Top = 15 + Width = 52 + Height = 12 + Caption = #26597#35810#26102#38388 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 64 + Top = 39 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 355 + Top = 39 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 517 + Top = 15 + Width = 52 + Height = 12 + Caption = #35268#26684#25104#20221 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 517 + Top = 39 + Width = 54 + Height = 12 + Caption = #39068' '#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PrtCode: TEdit + Tag = 2 + Left = 223 + Top = 11 + Width = 114 + Height = 20 + TabOrder = 0 + OnChange = CustomerNoNameChange + end + object PRTMF: TEdit + Tag = 2 + Left = 223 + Top = 35 + Width = 114 + Height = 20 + TabOrder = 1 + OnChange = CustomerNoNameChange + end + object PrtCodeName: TEdit + Tag = 2 + Left = 384 + Top = 11 + Width = 113 + Height = 20 + TabOrder = 2 + OnChange = CustomerNoNameChange + end + object BegDate: TDateTimePicker + Left = 81 + Top = 11 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object EndDate: TDateTimePicker + Left = 81 + Top = 35 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 4 + end + object CostomerNoName: TEdit + Tag = 2 + Left = 384 + Top = 35 + Width = 113 + Height = 20 + TabOrder = 5 + OnChange = CustomerNoNameChange + end + object PRTspec: TEdit + Tag = 2 + Left = 570 + Top = 11 + Width = 115 + Height = 20 + TabOrder = 6 + OnChange = CustomerNoNameChange + end + object PRTColor: TEdit + Tag = 2 + Left = 570 + Top = 35 + Width = 115 + Height = 20 + TabOrder = 7 + OnChange = CustomerNoNameChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 99 + Width = 1150 + Height = 302 + Align = alTop + TabOrder = 2 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + OnCellDblClick = TV1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + Column = V1PRTOrderQty + end + item + Format = '0' + Position = spFooter + Column = v1PRTPrice + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V1PRTOrderQty + end + item + Kind = skSum + Column = V1RLRMBMoney + end + item + Kind = skSum + Column = V2XHMoney + end + item + Kind = skSum + Column = V1RLUSDMoney + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V1filltime: TcxGridDBColumn + Tag = 2 + Caption = #30331#35760#26085#26399 + DataBinding.FieldName = 'filltime' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 62 + end + object V2Column2: TcxGridDBColumn + Tag = 2 + Caption = #32534#21495 + DataBinding.FieldName = 'PrtCode' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 79 + end + object V1CostomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CostomerNoName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v1Column5: TcxGridDBColumn + Tag = 2 + Caption = #21697#21517 + DataBinding.FieldName = 'PrtCodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 81 + end + object v1Column6: TcxGridDBColumn + Tag = 2 + Caption = #35268#26684#25104#20221 + DataBinding.FieldName = 'PRTspec' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 73 + end + object v1PRTColor: TcxGridDBColumn + Tag = 2 + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Styles.Header = DataLink_TradeManage.handBlack + Width = 85 + end + object v1Column7: TcxGridDBColumn + Tag = 2 + Caption = #38376#24133 + DataBinding.FieldName = 'PRTMF' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 73 + end + object v1Column8: TcxGridDBColumn + Tag = 2 + Caption = #20811#37325 + DataBinding.FieldName = 'PRTKZ' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 78 + end + object V1PRTOrderQty: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 76 + end + object v1OrderUnit: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Y' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 82 + end + object v1PRTPrice: TcxGridDBColumn + Tag = 2 + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 84 + end + object v1PriceUnit: TcxGridDBColumn + Tag = 2 + Caption = #24065#31181 + DataBinding.FieldName = 'PriceUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'USD' + 'RMB') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 87 + end + object V2XHMoney: TcxGridDBColumn + Tag = 2 + Caption = #37329#39069 + DataBinding.FieldName = 'XHMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 87 + end + object V1RLRMBMoney: TcxGridDBColumn + Caption = #35748#39046#20154#27665#24065 + DataBinding.FieldName = 'RLRMBMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 71 + end + object V1RLUSDMoney: TcxGridDBColumn + Caption = #35748#39046#32654#37329 + DataBinding.FieldName = 'RLUSDMoney' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object V1XHNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'XHNote' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 95 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 401 + Width = 1150 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object TADD: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = TADDClick + end + object TDEL: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = TDELClick + end + object TBSave: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #35748#39046#23436#25104 + ImageIndex = 16 + OnClick = TBSaveClick + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 430 + Width = 1150 + Height = 130 + Align = alClient + TabOrder = 4 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V3SKDate: TcxGridDBColumn + Caption = #25910#27454#26085#26399 + DataBinding.FieldName = 'SKdate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 84 + end + object V3SKMoney: TcxGridDBColumn + Caption = #25910#27454#37329#39069 + DataBinding.FieldName = 'SKMoney' + HeaderAlignmentHorz = taCenter + Width = 87 + end + object V3RLDate: TcxGridDBColumn + Caption = #35748#39046#26085#26399 + DataBinding.FieldName = 'RLDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 91 + end + object V3RLMoney: TcxGridDBColumn + Caption = #35748#39046#37329#39069 + DataBinding.FieldName = 'RLMoney' + HeaderAlignmentHorz = taCenter + Width = 99 + end + object V3FeeName: TcxGridDBColumn + Caption = #36153#29992#21517#31216 + DataBinding.FieldName = 'FeeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V3FeeNamePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V3BZType: TcxGridDBColumn + Caption = #24065#31181 + DataBinding.FieldName = 'BZType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 79 + end + object V3YFNote: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'YFNote' + HeaderAlignmentHorz = taCenter + Width = 99 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 508 + Top = 208 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 432 + Top = 200 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 268 + Top = 192 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 308 + Top = 196 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 352 + Top = 200 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 620 + Top = 212 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_PRT + Left = 584 + Top = 208 + end + object RMXLSExport2: TRMXLSExport + ShowAfterExport = False + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 544 + Top = 208 + end + object CDS_PRT: TClientDataSet + Aggregates = <> + Params = <> + Left = 472 + Top = 200 + end + object DataSource3: TDataSource + DataSet = Order_RL + Left = 700 + Top = 448 + end + object Order_RL: TClientDataSet + Aggregates = <> + Params = <> + Left = 740 + Top = 448 + end + object ADOQuerySub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 444 + Top = 268 + end +end diff --git a/盛纺贸易管理/U_XHList.pas b/盛纺贸易管理/U_XHList.pas new file mode 100644 index 0000000..459bd7d --- /dev/null +++ b/盛纺贸易管理/U_XHList.pas @@ -0,0 +1,655 @@ +unit U_XHList; // + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit, cxPC, cxTextEdit; + +type + TfrmXHList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + ToolButton1: TToolButton; + Panel1: TPanel; + Label9: TLabel; + PrtCode: TEdit; + Label2: TLabel; + PRTMF: TEdit; + Label34: TLabel; + PrtCodeName: TEdit; + Label3: TLabel; + Label4: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + ToolButton4: TToolButton; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport2: TRMXLSExport; + CDS_PRT: TClientDataSet; + ToolButton5: TToolButton; + Label1: TLabel; + CostomerNoName: TEdit; + Label5: TLabel; + PRTspec: TEdit; + Label6: TLabel; + PRTColor: TEdit; + cxGrid1: TcxGrid; + TV1: TcxGridDBTableView; + V1filltime: TcxGridDBColumn; + V2Column2: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1Column6: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + v1Column7: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + V1PRTOrderQty: TcxGridDBColumn; + v1OrderUnit: TcxGridDBColumn; + v1PRTPrice: TcxGridDBColumn; + v1PriceUnit: TcxGridDBColumn; + V2XHMoney: TcxGridDBColumn; + V1XHNote: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + V1CostomerNoName: TcxGridDBColumn; + ToolBar2: TToolBar; + TADD: TToolButton; + TDEL: TToolButton; + TBSave: TToolButton; + cxGrid3: TcxGrid; + TV2: TcxGridDBTableView; + V3SKDate: TcxGridDBColumn; + V3SKMoney: TcxGridDBColumn; + V3RLDate: TcxGridDBColumn; + V3RLMoney: TcxGridDBColumn; + V3FeeName: TcxGridDBColumn; + V3BZType: TcxGridDBColumn; + V3YFNote: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + DataSource3: TDataSource; + Order_RL: TClientDataSet; + V1RLRMBMoney: TcxGridDBColumn; + V1RLUSDMoney: TcxGridDBColumn; + ADOQuerySub: TADOQuery; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ZJStatusChange(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure v1Column16PropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TADDClick(Sender: TObject); + procedure TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TDELClick(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure V3FeeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmXHList: TfrmXHList; + +implementation +uses + U_DataLink,U_RTFun, U_KHDYInPut, U_FjList_RZ,U_XHInPut, U_SKCR_CX, + U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmXHList.FormDestroy(Sender: TObject); +begin + frmXHList:=nil; +end; + +procedure TfrmXHList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmXHList.FormCreate(Sender: TObject); +begin + canshu1:=Trim(DParameters1); +end; + +procedure TfrmXHList.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ֻ',Tv1,''); + WriteCxGrid('',Tv2,''); + Close; +end; + +procedure TfrmXHList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.* '); + sql.add(',RLRMBMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid and S.BZType='''')'); + sql.add(',RLUSDMoney=(select Sum(RLMoney) from JYOrderYSK S where S.Mainid=A.Mainid and S.BZType=''$'')'); + sql.Add(' from JYOrderML_Main A '); + sql.Add(' where 1=1 '); + sql.Add(' and filltime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); + sql.Add(' and filltime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); + if Trim(canshu1)<>'Ȩ' then + begin + sql.Add(' and filler='''+Trim(DName)+''''); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmXHList.InitForm(); +begin + BegDate.Date:=SGetServerDateMBeg(ADOQueryTemp); + EndDate.Date:=SGetServerDate(ADOQueryTemp); + ReadCxGrid('ֻ',Tv1,''); + ReadCxGrid('',Tv2,''); + InitGrid(); +end; + +procedure TfrmXHList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmXHList.TBEditClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('FillerName').AsString)<>Trim(Dname) then + begin + Application.MessageBox('޸!','ʾ',0); + Exit; + end; + try + frmXHInPut:=TfrmXHInPut.Create(Application); + with frmXHInPut do + begin + PState:=0; + FMainId:=trim(Order_Main.fieldbyname('Mainid').AsString); + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmXHInPut.Free; + end; +end; + +procedure TfrmXHList.TBDelClick(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ɾ!','ʾ',0); + Exit; + end; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if DelData() then + begin + + end; +end; + +function TfrmXHList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Delete from JYOrderML_Main where Mainid='''+Trim(Order_Main.fieldbyname('Mainid').AsString)+''''); + ExecSQL; + end; + Order_Main.Delete; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmXHList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ɫ/SOϢб',cxGrid1); +end; + +procedure TfrmXHList.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmXHList.TBAddClick(Sender: TObject); +var + maxno:string; +begin + try + frmXHInPut:=TfrmXHInPut.Create(Application); + with frmXHInPut do + begin + PState:=0; + FMainId:=''; + if ShowModal=1 then + begin + initgrid(); + end; + end; + finally + frmXHInPut.Free; + end; +end; + +procedure TfrmXHList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmXHList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmXHList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmXHList.ToolButton1Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmXHInPut:=TfrmXHInPut.Create(Application); + with frmXHInPut do + begin + PState:=1; + FMainId:=Trim(Self.Order_Main.fieldbyname('Mainid').AsString); + TBSave.Visible:=False; + TADD.Visible:=False; + TDel.Visible:=false; + if ShowModal=1 then + begin + + end; + end; + finally + frmXHInPut.Free; + end; +end; + +procedure TfrmXHList.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmXHList.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmXHList.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmXHList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmXHList.ZJStatusChange(Sender: TObject); +begin + TBFind.Click; +end; + +procedure TfrmXHList.ToolButton4Click(Sender: TObject); +var + fPrintFile:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\.rmf'; + RMXLSExport2:= TRMXLSExport.Create(RMXLSExport2); + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add(' select A.*,B.* '); + sql.Add(' ,DYPersonTel=(select Note from KH_Zdy KZ where KZ.ZdyName=A.DYPerson and KZ.Type=''DYPerson'' )'); + sql.Add(' ,GDPersonTel=(select Note from KH_Zdy KZ where KZ.ZdyName=A.GDPerson and KZ.Type=''PFGenDanPerson'' )'); + sql.Add(' from KH_DaYang A '); + sql.Add(' left join KH_DaYang_MX B on A.DYID=B.DYID '); + sql.Add(' where A.DYId='''+Trim(Order_Main.fieldbyname('DYId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_PRT); + SInitCDSData20(ADOQueryTemp,CDS_PRT); + if FileExists(fPrintFile) then + begin + //RMVariables['OrderUnit']:=Order_Main.fieldbyname('OrderUnit').Value; + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\.rmf'),'ʾ',0); + end; +end; + +procedure TfrmXHList.ToolButton5Click(Sender: TObject); +begin + if Order_Main.IsEmpty then Exit; + try + frmFjList_RZ:=TfrmFjList_RZ.Create(Application); + with frmFjList_RZ do + begin + // PState:=1; + if Trim(DParameters1)<>'Ȩ' then cxButton1.Visible:=false; + fkeyNO:=Trim(Self.Order_Main.fieldbyname('DYId').AsString); + fType:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmFjList_RZ.Free; + end; +end; + +procedure TfrmXHList.v1Column16PropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + with Order_Main do + begin + Edit; + if Trim(mvalue)<>'' then + FieldByName('HYDate').Value:=mvalue + else + FieldByName('HYDate').Value:=Null; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + if Trim(mvalue)<>'' then + sql.Add('Update KH_DaYang Set HYDate='''+Trim(Order_Main.fieldbyname('HYDate').AsString)+'''') + else + sql.Add('Update KH_DaYang Set HYDate=Null'); + sql.Add(' where DYID='''+Trim(Order_Main.fieldbyname('DYID').AsString)+''''); + ExecSQL; + end; +end; + +procedure TfrmXHList.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + with ADOQuerySub do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderYSK '); + sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); + open; + end; + SCreateCDS20(ADOQuerySub,Order_RL); + SInitCDSData20(ADOQuerySub,Order_RL); +end; + +procedure TfrmXHList.TADDClick(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + frmSKCR_CX:=TfrmSKCR_CX.create(self); + with frmSKCR_CX do + begin + FactoryName.Text:=trim(Order_Main.fieldbyname('CostomerNoName').AsString); + if showmodal=1 then + begin + with CDS_HZ do + begin + first; + while not eof do + begin + if fieldbyname('Ssel').AsBoolean=true then + begin + with Order_RL do + begin + append; + fieldbyname('SKdate').AsDateTime:=CDS_HZ.fieldbyname('CRTime').AsDateTime; + fieldbyname('SKMoney').Value:=CDS_HZ.fieldbyname('Money').AsFloat; + fieldbyname('RLDate').Value:=SGetServerDate(ADOQueryTemp); + fieldbyname('RLMoney').Value:=CDS_HZ.fieldbyname('WRLMoney').AsFloat; + fieldbyname('FeeName').Value:=CDS_HZ.fieldbyname('YFName').AsString; + fieldbyname('BZType').Value:=CDS_HZ.fieldbyname('BZType').AsString; + fieldbyname('YFID').Value:=CDS_HZ.fieldbyname('YFID').AsString; + post; + end; + end; + next; + end; + end; + end; + free; + end; +end; + +procedure TfrmXHList.TV1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + Toolbutton1.Click; +end; + +procedure TfrmXHList.TDELClick(Sender: TObject); +begin + if Order_RL.IsEmpty then exit; + if application.MessageBox('ȷҪɾ','ʾ',1)=2 then exit; + if Order_RL.FieldByName('YSID').AsString<>'' then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from JYOrderYSK where YSID='''+Trim(Order_RL.fieldbyname('YSID').AsString)+''''); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set YRLMoney=(select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID), '); + sql.add('WRLMoney=isnull(Money,0)-isnull((select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID),0) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + end; + Order_RL.Delete; + initgrid(); +end; + +procedure TfrmXHList.TBSaveClick(Sender: TObject); +var maxno:string; + FRLMoney:double; +begin + if Order_RL.IsEmpty then exit; + with Order_RL do + begin + first; + while not eof do + begin + if trim(Order_RL.fieldbyname('YSID').AsString)<>'' then + begin + maxno:=trim(Order_RL.fieldbyname('YSID').AsString); + end + else + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select Sum(RLMoney) SumRLMoney from JYOrderYSK where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + Open; + end; + FRLMoney:=ADOQueryCmd.fieldbyname('SumRLMoney').AsCurrency+Order_RL.fieldbyname('RLMoney').AsCurrency; + if FRLMoney>Order_RL.FieldByName('SKMoney').AsCurrency+0.001 then + begin + application.MessageBox('ܽտ','ʾ'); + exit; + end; + if GetLSNo(ADOQueryCmd,maxno,'YS','JYOrderYSK',3,1)=False then + begin + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from JYOrderYSK '); + sql.add('where YSID='''+trim(maxno)+''''); + open; + end; + with ADOQueryCmd do + begin + if IsEmpty then + begin + append; + end + else + edit; + fieldbyname('SKdate').Value:=Order_RL.fieldbyname('SKdate').AsDateTime; + fieldbyname('SKMoney').Value:=Order_RL.fieldbyname('SKMoney').AsFloat; + fieldbyname('RLDate').Value:=Order_RL.fieldbyname('RLDate').AsDateTime; + fieldbyname('RLMoney').Value:=Order_RL.fieldbyname('RLMoney').AsFloat; + fieldbyname('FeeName').Value:=trim(Order_RL.fieldbyname('FeeName').AsString); + fieldbyname('BZType').Value:=trim(Order_RL.fieldbyname('BZType').AsString); + fieldbyname('YFNote').Value:=trim(Order_RL.fieldbyname('YFNote').AsString); + fieldbyname('YFID').Value:=trim(Order_RL.fieldbyname('YFID').AsString); + fieldbyname('Mainid').Value:=trim(Order_Main.fieldbyname('Mainid').AsString); + fieldbyname('YSID').Value:=trim(maxno); + post; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set YRLMoney=(select Sum(RLMoney) from JYOrderYSK where YFID=YF_Money_CR.YFID) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update YF_Money_CR set WRLMoney=isnull(Money,0)-isnull(YRLMoney,0) '); + sql.add('where YFID='''+Trim(Order_RL.fieldbyname('YFID').AsString)+''''); + execsql; + end; + with Order_RL do + begin + edit; + fieldbyname('YSID').AsString:=trim(maxno); + end; + next; + end; + end; + application.MessageBox('ɹ','ʾ'); + initgrid(); +end; + +procedure TfrmXHList.V3FeeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='FeeName'; + flagname:=''; + if ShowModal=1 then + begin + with Self.Order_RL do + begin + Edit; + FieldByName('FeeName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + end; + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_XHList_ceshi1.dfm b/盛纺贸易管理/U_XHList_ceshi1.dfm new file mode 100644 index 0000000..2e842ca --- /dev/null +++ b/盛纺贸易管理/U_XHList_ceshi1.dfm @@ -0,0 +1,742 @@ +object frmXHList_ceshi1: TfrmXHList_ceshi1 + Left = 67 + Top = 122 + Width = 1166 + Height = 598 + Caption = #25351#31034#21333#36827#24230#26597#35810 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1150 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1150 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 206 + Top = 15 + Width = 52 + Height = 12 + Caption = #25351#31034#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 358 + Top = 15 + Width = 40 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 322 + Top = 107 + Width = 26 + Height = 12 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 357 + Top = 39 + Width = 39 + Height = 12 + Caption = #19994#21153#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 502 + Top = 15 + Width = 26 + Height = 12 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 206 + Top = 39 + Width = 53 + Height = 12 + Caption = #21512' '#21516' '#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 441 + Top = 99 + Width = 52 + Height = 12 + Caption = #20844#21496#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 576 + Top = 84 + Width = 52 + Height = 12 + Caption = #37197#36135#29366#24577 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 474 + Top = 139 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label24: TLabel + Left = 714 + Top = 89 + Width = 52 + Height = 12 + Caption = #35746#21333#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 655 + Top = 123 + Width = 21 + Height = 12 + Caption = 'PO#' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label1: TLabel + Left = 630 + Top = 39 + Width = 39 + Height = 12 + Caption = #22238#20179#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 502 + Top = 39 + Width = 39 + Height = 12 + Caption = #25237#22383#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 104 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 104 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 259 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + end + object CustomerNoName: TEdit + Tag = 2 + Left = 403 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + end + object JGFactoryName: TEdit + Tag = 2 + Left = 351 + Top = 103 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 4 + end + object YWY: TEdit + Tag = 2 + Left = 403 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 5 + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 531 + Top = 11 + Width = 94 + Height = 20 + TabOrder = 6 + end + object ConNoHZ: TEdit + Tag = 2 + Left = 259 + Top = 35 + Width = 77 + Height = 20 + TabOrder = 7 + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 495 + Top = 95 + Width = 76 + Height = 20 + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + TabOrder = 8 + end + object ISPH: TComboBox + Tag = 2 + Left = 628 + Top = 80 + Width = 77 + Height = 20 + Style = csDropDownList + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 9 + Items.Strings = ( + '' + #26410#37197#36135 + #24050#37197#36135) + end + object PrtColor: TEdit + Tag = 2 + Left = 603 + Top = 131 + Width = 76 + Height = 20 + TabOrder = 10 + Visible = False + end + object orderType: TComboBox + Tag = 2 + Left = 769 + Top = 85 + Width = 76 + Height = 20 + Style = csDropDownList + Ctl3D = False + ImeName = #20013#25991' ('#31616#20307') - '#25628#29399#25340#38899#36755#20837#27861 + ItemHeight = 12 + ParentCtl3D = False + TabOrder = 11 + Items.Strings = ( + #27491#24120#21333 + #21098#26679#21333) + end + object khConNo: TEdit + Tag = 2 + Left = 712 + Top = 119 + Width = 76 + Height = 20 + TabOrder = 12 + Visible = False + end + object ComboBox2: TComboBox + Left = 24 + Top = 12 + Width = 77 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 13 + Text = #21046#21333#26085#26399 + Items.Strings = ( + #21046#21333#26085#26399 + #22238#20179#26085#26399) + end + object Than: TComboBox + Left = 541 + Top = 35 + Width = 85 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 14 + Items.Strings = ( + #22823#20110 + #23567#20110#25110#31561#20110 + '') + end + end + object Panel2: TPanel + Left = 408 + Top = 236 + Width = 317 + Height = 61 + BevelInner = bvRaised + BevelOuter = bvLowered + Caption = #25968#25454#27491#22312#21152#36733#20013','#35831#31245#31561#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 1150 + Height = 463 + Align = alClient + TabOrder = 3 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end + item + Format = '0' + Position = spFooter + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V1PrtOrderQty + end + item + Kind = skSum + Column = V1TP_Qty + end + item + Kind = skSum + Column = V1TP_RollNum + end + item + Kind = skSum + Column = V1HC_Qty + end + item + Kind = skSum + Column = V1HC_RollNum + end + item + Kind = skSum + Column = V1jyCP_KGQty + end + item + Kind = skSum + Column = V1jyCP_RollNum + end + item + Kind = skSum + Column = V1RK_RollNum + end + item + Kind = skSum + Column = V1RK_KGQty + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V2OrderNo: TcxGridDBColumn + Tag = 2 + Caption = #25351#31034#21333#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 85 + end + object V1ConNOHZ: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNOHZ' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object V1YWY: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'YWY' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object V1OrdDate: TcxGridDBColumn + Tag = 2 + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 74 + end + object V1DlyDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1MPRTCodeName: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1MPrtSpec: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'MPrtSpec' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1PrtOrderQty: TcxGridDBColumn + Caption = #35746#21333#25968#37327 + DataBinding.FieldName = 'PrtOrderQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object V1orderUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'orderUnit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1TP_RollNum: TcxGridDBColumn + Caption = #25237#22383#21305#25968 + DataBinding.FieldName = 'TP_RollNum' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneRed + Width = 70 + end + object V1TP_Qty: TcxGridDBColumn + Caption = #25237#22383#25968#37327 + DataBinding.FieldName = 'TP_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneRed + Width = 70 + end + object V1TP_unit: TcxGridDBColumn + Caption = #25237#22383#21333#20301 + DataBinding.FieldName = 'TP_unit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1HC_RollNum: TcxGridDBColumn + Caption = #24453#26816#20837#24211#21305#25968 + DataBinding.FieldName = 'HC_RollNum' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 70 + end + object V1HC_Qty: TcxGridDBColumn + Caption = #24453#26816#20837#24211#25968#37327 + DataBinding.FieldName = 'HC_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 70 + end + object V1TP_SH: TcxGridDBColumn + Caption = #30333#22383#25439#32791 + DataBinding.FieldName = 'TP_SH' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1TP_SL: TcxGridDBColumn + Caption = #30333#22383#27604#29575'%' + DataBinding.FieldName = 'TP_SL' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1RK_RollNum: TcxGridDBColumn + Caption = #20837#24211#21305#25968 + DataBinding.FieldName = 'RK_RollNum' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + end + object V1RK_KGQty: TcxGridDBColumn + Caption = #20837#24211#20844#26020#25968 + DataBinding.FieldName = 'RK_KGQty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object V1jyCP_RollNum: TcxGridDBColumn + Caption = #27425#21697#21305#25968 + DataBinding.FieldName = 'jyCP_RollNum' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1jyCP_KGQty: TcxGridDBColumn + Caption = #27425#21697#20844#26020#25968 + DataBinding.FieldName = 'jyCP_KGQty' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1JY_SH: TcxGridDBColumn + Caption = #26816#39564#25439#32791 + DataBinding.FieldName = 'JY_SH' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1JY_SL: TcxGridDBColumn + Caption = #26816#39564#27604#29575'%' + DataBinding.FieldName = 'JY_SL' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1CK_RollNum: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'CK_RollNum' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneRed + Width = 70 + end + object V1CK_Qty: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'CK_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneRed + Width = 70 + end + object V1CK_Unit: TcxGridDBColumn + Caption = #20986#24211#21333#20301 + DataBinding.FieldName = 'CK_Unit' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1KC_RollNum: TcxGridDBColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'KC_RollNum' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 70 + end + object V1KC_Qty: TcxGridDBColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'KC_Qty' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FoneClMaroon + Width = 70 + end + end + object cxGridLevel2: TcxGridLevel + GridView = TV1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 508 + Top = 208 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 392 + Top = 200 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 308 + Top = 196 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 352 + Top = 200 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 476 + Top = 204 + end +end diff --git a/盛纺贸易管理/U_XHList_ceshi1.pas b/盛纺贸易管理/U_XHList_ceshi1.pas new file mode 100644 index 0000000..fec98cc --- /dev/null +++ b/盛纺贸易管理/U_XHList_ceshi1.pas @@ -0,0 +1,263 @@ +unit U_XHList_ceshi1; // + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxButtonEdit, cxDropDownEdit, cxPC, cxTextEdit; + +type + TfrmXHList_ceshi1 = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryMain: TADOQuery; + DataSource1: TDataSource; + TBExport: TToolButton; + Order_Main: TClientDataSet; + Panel1: TPanel; + Label3: TLabel; + Label4: TLabel; + Label2: TLabel; + Label5: TLabel; + Label8: TLabel; + Label9: TLabel; + Label11: TLabel; + Label6: TLabel; + Label7: TLabel; + Label24: TLabel; + Label10: TLabel; + Label1: TLabel; + Label12: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + OrderNo: TEdit; + CustomerNoName: TEdit; + JGFactoryName: TEdit; + YWY: TEdit; + MPRTCodeName: TEdit; + ConNoHZ: TEdit; + OrdDefStr1: TEdit; + ISPH: TComboBox; + PrtColor: TEdit; + orderType: TComboBox; + khConNo: TEdit; + ComboBox2: TComboBox; + Than: TComboBox; + Panel2: TPanel; + ADOQueryCmd: TADOQuery; + cxGrid1: TcxGrid; + TV1: TcxGridDBTableView; + V2OrderNo: TcxGridDBColumn; + V1ConNOHZ: TcxGridDBColumn; + V1YWY: TcxGridDBColumn; + V1OrdDate: TcxGridDBColumn; + V1DlyDate: TcxGridDBColumn; + V1CustomerNoName: TcxGridDBColumn; + V1MPRTCodeName: TcxGridDBColumn; + V1MPrtSpec: TcxGridDBColumn; + V1PrtOrderQty: TcxGridDBColumn; + V1orderUnit: TcxGridDBColumn; + V1TP_RollNum: TcxGridDBColumn; + V1TP_Qty: TcxGridDBColumn; + V1TP_unit: TcxGridDBColumn; + V1HC_RollNum: TcxGridDBColumn; + V1HC_Qty: TcxGridDBColumn; + V1TP_SH: TcxGridDBColumn; + V1TP_SL: TcxGridDBColumn; + V1RK_RollNum: TcxGridDBColumn; + V1RK_KGQty: TcxGridDBColumn; + V1jyCP_RollNum: TcxGridDBColumn; + V1jyCP_KGQty: TcxGridDBColumn; + V1JY_SH: TcxGridDBColumn; + V1JY_SL: TcxGridDBColumn; + V1CK_RollNum: TcxGridDBColumn; + V1CK_Qty: TcxGridDBColumn; + V1CK_Unit: TcxGridDBColumn; + V1KC_RollNum: TcxGridDBColumn; + V1KC_Qty: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure CustomerNoNameChange(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure N1Click(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ZJStatusChange(Sender: TObject); + private + canshu1:string; + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmXHList_ceshi1: TfrmXHList_ceshi1; + +implementation +uses + U_DataLink,U_RTFun, U_KHDYInPut, U_FjList_RZ,U_XHInPut, U_SKCR_CX, + U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmXHList_ceshi1.FormDestroy(Sender: TObject); +begin + frmXHList_ceshi1:=nil; +end; + +procedure TfrmXHList_ceshi1.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmXHList_ceshi1.FormCreate(Sender: TObject); +begin + canshu1:=Trim(DParameters1); +end; + +procedure TfrmXHList_ceshi1.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ָʾȲѯ3',Tv1,'ָʾ'); + Close; +end; + +procedure TfrmXHList_ceshi1.InitGrid(); +var Tthan,strwhere:string; +begin + if comboBox2.Text='ز' then + begin + strwhere:=strwhere+' and exists(select X.ordMainIDRK from CK_SXPB_CR X where X.ordMainIDRK=mainID '+ + ' and X.CKName=''첼'' and X.CRType=''ӹ'' '+ + ' and X.CRTime>='''+trim(formatDatetime('yyyy-MM-dd',begdate.DateTime))+''''+ + ' and X.CRTime<'''+trim(formatdatetime('yyyy-MM-dd',EndDate.DateTime+1))+''')'; + end + else + begin + strwhere:=strwhere+' and A.OrdDate>='''+trim(formatDatetime('yyyy-MM-dd',begdate.DateTime))+''''+ + ' and A.OrdDate<'''+trim(formatdatetime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + end; + if trim(canshu1)<>'Ȩ' then + begin + strwhere:=strwhere+' and (A.YWY='''+Trim(DName)+''' or A.Filler='''+Trim(DName)+''')'; + end; + Tthan:=''; + if trim(than.Text)='' then + begin + Tthan:='1'; + end; + if trim(than.Text)='Сڻ' then + begin + Tthan:='2'; + end; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('exec P_View_order_Jd :WSql,:Than'); + Parameters.ParamByName('WSql').Value:=strwhere; + Parameters.ParamByName('Than').Value:=Tthan; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmXHList_ceshi1.InitForm(); +begin + BegDate.Date:=SGetServerDate(ADOQueryCmd)-15; + EndDate.Date:=SGetServerDate(ADOQueryCmd); + ReadCxGrid('ָʾȲѯ3',Tv1,'ָʾ'); + //InitGrid(); +end; + +procedure TfrmXHList_ceshi1.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmXHList_ceshi1.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel('ָʾȲѯ',cxGrid1); +end; + +procedure TfrmXHList_ceshi1.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmXHList_ceshi1.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmXHList_ceshi1.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmXHList_ceshi1.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmXHList_ceshi1.CustomerNoNameChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmXHList_ceshi1.N2Click(Sender: TObject); +begin + SelOKNo(Order_Main,True); +end; + +procedure TfrmXHList_ceshi1.N1Click(Sender: TObject); +begin + SelOKNo(Order_Main,False); +end; + +procedure TfrmXHList_ceshi1.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmXHList_ceshi1.ZJStatusChange(Sender: TObject); +begin + TBFind.Click; +end; + +end. diff --git a/盛纺贸易管理/U_ZDYHelp_XMZDY.dfm b/盛纺贸易管理/U_ZDYHelp_XMZDY.dfm new file mode 100644 index 0000000..941754c --- /dev/null +++ b/盛纺贸易管理/U_ZDYHelp_XMZDY.dfm @@ -0,0 +1,18097 @@ +object frmZDYHelp: TfrmZDYHelp + Left = 414 + Top = 109 + Width = 480 + Height = 560 + Caption = #39033#30446#32500#25252 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object cxGrid1: TcxGrid + Left = 0 + Top = 129 + Width = 464 + Height = 393 + Align = alClient + TabOrder = 0 + object TV1: TcxGridDBTableView + OnKeyPress = TV1KeyPress + NavigatorButtons.ConfirmDelete = False + OnCellClick = TV1CellClick + OnCellDblClick = TV1CellDblClick + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object V1Ssel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + Visible = False + end + object V1Code: TcxGridDBColumn + Caption = #32534#21495 + DataBinding.FieldName = 'ZDYNo' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 97 + end + object V1OrderNo: TcxGridDBColumn + Caption = #39034#24207#21495 + DataBinding.FieldName = 'OrderNo' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1OrderNoPropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 46 + end + object V1Name: TcxGridDBColumn + Tag = 2 + Caption = #21517#31216 + DataBinding.FieldName = 'ZDYName' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 146 + end + object V1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1NotePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 126 + end + object V1ZdyFlag: TcxGridDBColumn + Caption = #26631#24535 + DataBinding.FieldName = 'ZdyFlag' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1Column1PropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 57 + end + object V1HelpType: TcxGridDBColumn + Caption = #24110#21161#31867#27604 + DataBinding.FieldName = 'HelpType' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1HelpTypePropertiesEditValueChanged + Visible = False + HeaderAlignmentHorz = taCenter + Width = 55 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 464 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = ThreeImgList + List = True + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + Caption = #36873#25321 + ImageIndex = 41 + OnClick = ToolButton1Click + end + object TBAdd: TToolButton + Left = 59 + Top = 0 + Caption = #22686#34892 + ImageIndex = 103 + OnClick = TBAddClick + end + object TBDel: TToolButton + Left = 118 + Top = 0 + Caption = #21024#34892 + ImageIndex = 107 + OnClick = TBDelClick + end + object TBEdit: TToolButton + Left = 177 + Top = 0 + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBSave: TToolButton + Left = 236 + Top = 0 + Caption = #20445#23384 + ImageIndex = 111 + Visible = False + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 295 + Top = 0 + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 464 + Height = 40 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Label1: TLabel + Left = 18 + Top = 17 + Width = 24 + Height = 12 + Caption = #21517#31216 + end + object Label2: TLabel + Left = 240 + Top = 7 + Width = 120 + Height = 24 + Caption = #27880#65306#28966#28857#31163#24320#24403#21069#32534#36753#13#10' '#21333#20803#26684#20445#23384#25968#25454#12290 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentColor = False + ParentFont = False + end + object ZDYName: TEdit + Tag = 2 + Left = 45 + Top = 12 + Width = 169 + Height = 20 + TabOrder = 0 + OnChange = ZDYNameChange + end + end + object Note: TMemo + Left = 0 + Top = 71 + Width = 464 + Height = 58 + Align = alTop + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [fsBold] + MaxLength = 2 + ParentFont = False + TabOrder = 3 + Visible = False + end + object ADOQueryMain: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + Parameters = <> + Left = 36 + Top = 264 + end + object ADOQueryTemp: TADOQuery + Connection = ADOConnection1 + LockType = ltReadOnly + Parameters = <> + Left = 64 + Top = 264 + end + object ADOQueryCmd: TADOQuery + Connection = ADOConnection1 + Parameters = <> + Left = 92 + Top = 264 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 180 + Top = 264 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 208 + Top = 264 + end + object ADOConnection1: TADOConnection + LoginPrompt = False + Left = 120 + Top = 264 + end + object ThreeImgList: TImageList + Height = 24 + Width = 24 + Left = 152 + Top = 264 + Bitmap = { + 494C01018900F000040018001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 000000000000360000002800000060000000A005000001002000000000000070 + 0800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008195DB0028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 73002839730028397300283973007287D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A4B3E50031437F002B38 + 680026335B002B396C008E9FD400C0C0C000C1C1C100C7C7C700C8C8C800D5D5 + D500DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCCC + CC003E5291002B3767002A386800445799004D60A1005166AC005267AC005166 + AE005267AB005064A8004E63A7004A5D9B002F3D6E0029366400293665009FAD + DC00D3D3D3000000000000000000000000002D3E7C00092EAA000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7003B57B400354682000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536AB6007089DA005570 + CD003E5ABA00566EBC0047589200B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CBCBCB0093A2 + D800475891005166B1004E60A2004E69C0003B58BA003856B9003B58B9003754 + B7003653B6003552B300304DAF003551AE003545790047568D004C60A3002A37 + 670092A1D7000000000000000000000000004057A7002345B600042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042AAA000328 + A300042AAA00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC004157A200334A9300374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000000000006782DF006983DC00617C + D6004461C2003A57B800576EBC00283A7700B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004860 + B200506BC8003B5BC4005570CA005E78D1003D5DC8004664CA004563C9004563 + C9004361C7003F5DC3003B5AC0003151BA0049598E004E67B800324EAE004A5A + 93004157A400000000000000000000000000A7B7ED00435EBA00153AB7000930 + B3000930B3000930B3000930B3000930B3000930B3000930B3008191C600FFFF + FF00FFFFFF000930B3000930B3000930B3000930B3000930B3000930B3000930 + B3000930B3000F35B5003D4F8D008499DF0033478A004F6CCC004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC004F6CCC0033478A0000000000000000006F8AE5007891E300758E + DF005873CF004663C3003A57B80047589300283B7800B7C5F100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003C52 + 9E005978E100617FE4006F8BE800859DED006D89E9006E8AEA006C89E9006B88 + E8006986E7006481E300617EE1005C7ADE007F93D4005270D3004362CB005971 + C10033458400000000000000000000000000000000003A4E93004E69C0002449 + C500163DC100163DC100163DC100163DC100163DC100153AB800FFFFFF00FFFF + FF00FFFFFF00153AB800163DC100163DC100163DC100163DC100163DC100163D + C1001F45C4004E69C600A8B7EE00000000004158A7001B47D800204BD900224C + D9001B47D800829AE9004158A700000000004158A700829AE900204BD900224C + D900204BD900829AE9004158A700000000004158A700829AE9001B47D800224C + D900204BD9001B47D8004158A7000000000000000000778ACD009EB0EF00829A + E800778FE00096A8E3008292C800344EA200576EBC0048599300B7C5F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435B + AD006E8CEF007994F1007C97F3008DA5F500819BF400829CF500809AF4007F9A + F4007C97F3007692EF00738FED006F8BEB007F98E9005F7DE0005876DB006079 + CC00384C900000000000000000000000000000000000617ACE004E61A5004666 + D0001D44C9001D44C9001D44C9001D44C9001D44C9001C43C500A8B4DC00FFFF + FF00FFFFFF001D44C9001D44C9001D44C9001D44C9001D44C9001D44C9001D44 + C9003E60D0005066AD0000000000000000004961B6002D58E7003861E9003A62 + E9002C57E7009BAFF3004961B600000000004961B6009BAFF3003861E9003A62 + E900365FE8009BAFF3004961B600000000004961B6009BAFF3002D58E7003A62 + E900365FE8002C57E7004961B60000000000000000003F59B0007E90D000A1B3 + EF00839AE5008A96BD00B3C0EB00384F9C00344EA200576EBC002A3D7900B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004862 + B9007A96F4008AA3F6008EA6F60092A9F60093AAF60093AAF60092A9F60091A8 + F6008EA6F60088A2F600839DF400809AF4007591EF006F8BEB006784E700637E + D5003D539C0000000000000000000000000000000000000000003A53A1005A73 + C600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF001C3CA6004660 + B6004660B600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002F54 + D2005974CB003E549E0000000000000000004F69C0003C65EF00496FF0004C72 + F1003A64EF00A9BBF8004F69C000000000004F69C000A9BBF800496FF0004C72 + F100476EF000A9BBF8004F69C000000000004F69C000A9BBF8003C65EF004C72 + F100476EF0003A64EF004F69C0000000000000000000BECCF5004059B0007F92 + D100849BE8004E5C8A008A96BD008292C800384F9C00344EA200495A93002B3D + 7A00B7C5F1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DE00859FF5009FB3F700B2C2F900B7C7F900B8C7F900B9C8F900B7C7F900B5C5 + F900B3C3F900ABBDF800A6B9F800A0B4F70094ABF6008CA5F6007894F400617A + CE006B85DA00000000000000000000000000000000000000000000000000455E + B200476ADF003158DB003158DB003158DB003158DB003158DB0092A2D700FFFF + FF00FFFFFF003158DB003158DB003158DB003158DB003158DB003158DB00657E + D0004159AB000000000000000000000000005770C700BBC9F600BECBF700BFCC + F600BAC8F600B5C4F5005770C700000000005770C700B5C4F500BECBF700BFCC + F600BECBF700B5C4F5005770C700000000005770C700B5C4F500BBC9F600BFCC + F600BECBF700BAC8F6005770C70000000000000000000000000000000000BECC + F5008093D100A2B4EF006576AF008A96BD00B3C0EB008292C800344EA200566E + BC00495A9500B7C5F10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3DB + F8007C95E8009DB2F700B2C2F900C9D5FB00BAC5E800AEB8D800A1AAC900A0A9 + C8009DA7C8009AA6CE009CAAD700A1B1E6009FB3F7008CA5F6007E99F500556E + C200D2DBF8000000000000000000000000000000000000000000000000009AAD + EC006984E0003C62E200375EE000375EE000375EE000375EE00095A5D900FFFF + FF00FFFFFF00375EE000375EE000375EE000375EE000375EE000395FE000566C + B600748ADC000000000000000000000000005B76D2005872C9005872C9007A7E + 8E005872C9005872C9005B76D200000000005B76D2005872C9005872C9006F74 + 83005872C9005872C9005B76D200000000005B76D2005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000435CB2007C8FD1009AADEF004E5C8A008A96BD00B3C0EB00384F9C00344E + A200576EBC002C3F7C00B7C5F100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E76C700869DE9009CB1F700A2AFD900ADB5CF00D6D9E100EDECEB00ECEB + EA00ECEBEA00E4E4E800D2D5E100A2ACCE0097ADF70088A2F6007791E70092A5 + EC00000000000000000000000000000000000000000000000000000000000000 + 0000687ECB00587AE9003E64E5003E64E5003E64E5003E64E50097A7DB00FFFF + FF00FFFFFF003E64E5003E64E5003E64E5003E64E5003E64E5005073E8004A63 + BB00000000000000000000000000000000000000000000000000000000007878 + 7800000000000000000000000000000000000000000000000000000000006666 + 6600000000000000000000000000000000000000000000000000000000005656 + 5600000000000000000000000000000000000000000000000000000000000000 + 0000BECCF500445DB3007C90D1006576AF004E5C8A008A96BD008292C800384F + 9C00344EA2004A5B95002D3F7C00B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED8F7006B84DB005C72BD00C7CBDB00CDCBCA00A19F9E009997 + 960099989600B8B7B500D1D0CE00CACEDE005972C5006B84DB00CED8F7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000657FD9006C83CD006686F2004C71F0004C71F0004C71F000CDD4EE00FFFF + FF00FFFFFF004C71F0004C71F0004C71F0004C71F0006182F1007087D4000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000000000000000000000000000000000000000000000000000000000008080 + 8000000000000000000000000000000000000000000000000000000000007070 + 7000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BECCF5008294D300A2B4EF006576AF008A96BD00B3C0 + EB008292C800344EA200576EBC004B5C9500B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000093A7ED006475AC0083879400ACAAA900C3C1 + C000C7C5C4009896950081879B006879B4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D2DBF800536CC1008098E7005176F1005176F1005176F100CFD6EF00FFFF + FF00FFFFFF005176F1005176F1005176F100597CF2007E97ED005870C3000000 + 0000000000000000000000000000000000000000000000000000000000009D9D + 9D009A9A9A0099999900989898009494940094949400919191008E8E8E008C8C + 8C008C8C8C008888880088888800858585008282820080808000808080007C7C + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465FB5008395D300A2B4EF004E5C8A008A96 + BD00B3C0EB00384F9C003B58B800576EBC002F3E750032437D00354787003B50 + 98004C64BB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009D9D9D005D5C5C00A9A7A500AFAD + AB00B7B5B300C0BEBD00646363009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E3006B81CC00587CF200587CF200587CF200D1D8EF00FFFF + FF00FFFFFF00587CF200587CF200587CF200718FF4007388D200607AD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009999 + 9900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF5004760B6008396D4006576AF004F5D + 8A008A96BD008292C8004663C3003C59B900596DAF00586CAF005D72B800647B + C8005C70B1004760B40000000000000000000000000000000000000000000000 + 000000000000000000000000000059595900ACABAA00C2C1C000BDBCBA00B7B6 + B400AFADAB00A8A6A500B7B5B400AEADAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000839AE800869FF3006686F3006586F300F3F5FA00FFFF + FF00FFFFFF006586F3006586F3006586F300758AD1007189DF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000364C99002B3D7B002B3D7B002B3D7B006367 + 73002B3D7B002B3D7B002B3D7B00364C99000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5007F92D400A2B4 + EF00869DE800778FE0006781D7005873CF003351B600203FA6000C2C96001B3B + A8003D5ABD00667FD0004861B400000000000000000000000000000000000000 + 00000000000000000000000000007E7E7D00D1D0D000D2D2D100CDCCCB00C7C6 + C500BFBDBC00A8A6A400A8A6A400B9B7B600AAAAAA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008B9FE0007E99F5006B8AF300FFFFFF00FFFF + FF00FFFFFF006B8AF3006B8AF3007A96F400526CC50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031448600657ED100506CCA00506CCA00506C + CA00506CCA00506CCA00657ED100314486000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004963B9008597 + D500A4B5EF00849BE600778FE0006781D7004461C200415DBA00445EB4001433 + 9B001839A7003A58BC005F73B4004A62B5000000000000000000000000000000 + 0000000000000000000000000000C2C1C100E0DFDE00E1E0E000DBDBDA00D5D4 + D300CCCBCA00B4B3B100A6A4A300ACAAA8006969690000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005F77C90097ACF2007592F4005B73C3005B73 + C3005B73C3007290F4007491F40090A7F300849BE80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000374C94006580D8000732C1000833C1000833 + C1000833C1000631C1006681D900374C94000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004A63 + BA008799D60093A7EB00859BE600778FE0008196DA0099A8D9008F9DCD008191 + C7003853AB001536A5005E78CD003F549B000000000000000000000000000000 + 0000000000000000000000000000A9A9A8004D4D4D00F7F6F600F1F1F100EBEA + EA00E2E1E000C8C7C600B9B7B60070706F004D4D4D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005C75C8009FB1EF007F9AF5007F9A + F5007F9AF500829CF500A1B4F300687FCD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445BAC00869EEC002C55DE003D62DF003E63 + DF003C61DF002A53DD00869EEC00445BAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D66BB00A3B5F1009EB0EF008FA4EA00596CAD00AAB9EF0000000000536B + BC005A6999007F8FC400546DBE003A4C8B000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00FDFDFD00F8F8F800F2F1 + F100E9E8E800CFCECD00B9B7B6004D4D4D004D4D4D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000006B84DE008699DB00859FF500859F + F500859FF50096ACF7008FA2E0005E79D6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63B900A1B4F600446BEC005F80EE006383 + EF005E7FEE004269EC00A1B4F6004A63B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004E67BD00A7B8F300A7B8F10095A9ED004C65BB0000000000000000000000 + 0000465CAA006B79A8004F66B400374883000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00BCBCBC00E6E6E600CBCB + CB00BABAB9009A9999007A7A79004D4D4D006969690000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF9005C75CC0094ABF6008CA5 + F6008CA5F600A6B7F100647CCD00AFBFF3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F68BF00A6B9F800567AF2007B97F4007F9A + F5007995F4005378F100A5B8F8004F68BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC000A3B5F400ADBDF4009DB0F1004D62AF00D1DAF800000000000000 + 0000000000003F56A1007284C00034437B000000000000000000000000000000 + 0000000000000000000000000000515151004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A7B6EB00A4B7 + F800A2B6F8005E77CA00D3DBF900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556EC500B8C7F900597CF2007E99F500829C + F5007C97F400577BF200B7C7F900556EC5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C77D400AABBF5009BB0F50097ACF300829BEB006D81C9005169C1000000 + 000000000000000000003D5299003D539D000000000000000000000000000000 + 0000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CF00B2C0 + F100B1BFF1007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005771C800B7C6F600BFCCF500C6D1F700C7D2 + F700C6D1F700BECBF500B7C6F6005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008C9EDC00A9BAF50090A7F3007B95EE007993EA006C81C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D00AAAAAA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007C93E6005771 + C9005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005B76D2005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005B76D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005974CF008C9EDD00A5B7F5007490EE00718DED006E8AE800526B + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D600556FC500556EC400546DC1005169 + BB00546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000038477E0041486200404761003E455F003D44 + 5F003C435E003B435D003B425D003A415C000000000000000000000000000000 + 000000000000000000000000000000000000000000002F3E710045569500475C + A400435AA700435AA700435AA600435AA500445BA600435AA500445AA5004359 + A4004359A3004359A2004359A2004359A1004358A0004358A00043589F004358 + 9F00495A990044528B0043569E00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CACACA00596FB9003E5194003E51 + 94003E5194003E5194003E5194003D5092003B4D8B00384A860034447C003241 + 77002F3E71002A3867002936620040529200C3C3C300DBDBDB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000474E6A007A8ABF0013339F0013339F001333 + 9F0013339F0013339F0013339F007988BD000000000000000000000000000000 + 0000000000000000000000000000000000006279C9004660B4002747B000072B + A3000328A0000328A00003279F0003279F0003279E0003279D0003269C000326 + 9B0003269A000326990003269800032597000325960003259500032594000324 + 9300072895002743A2002E3D6F008EA1E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005E72B6008DA1E40090A5 + EB008DA3ED008BA2ED00879EEB008199E9007E96E4007B92E000758CD7007187 + D1006E84CC00687CC0006F7FB7004D5B8A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000048516E007B8BC10003279E0003279E000327 + 9E0003279E0003279E0003279E007B8BC0000000000000000000000000000000 + 000000000000000000000000000000000000283C80002748B5000429A8000429 + A7000429A6000429A5000429A5000328A3000328A2000328A2000328A0000328 + A00003279F0003279E0003279E0003279D0003269B0003269B0003269A000326 + 99000326980003259700495A99002D428A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008AA0EB00829CF5007995 + F4007290F4006989F3006082F2004C71ED004469E6003A5FDE00274DCD001D43 + C300143AB9000328A3003652AF006E7EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004B5472007C8CC3000328A2000328A2000328 + A2000328A2000328A2000328A2007B8BC3000000000000000000000000000000 + 0000000000000000000000000000000000002B3E8100042CB300042CB200042C + B20003238D00506BC800042BAF00042BAD00042BAD00042BAC00042AAA000322 + 8800506AC3000429A8000429A8000429A7000429A6000429A500032184000328 + A3000328A2000328A100435EB800263873000000000028387100283871002838 + 7100283871002838710028387100283871002838710028387100283871002838 + 7100293C7A000000000000000000000000000000000000000000000000000000 + 0000000000004B62B10028387100000000000000000096AAEE0093AAF60096AC + F700829DF5007894F4006D8CF3005679EE004B6FE7004166DF002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000515978007D8EC800042AAB00042AAB00042A + AB00042AAB00042AAB00042AAB007B8CC7000000000000000000000000000000 + 0000000000000000000000000000000000002D418600042DB800042DB700042D + B600032492004F6BCA00042CB400042CB300042CB200042CB100042BB0000323 + 8C004F6AC700042BAD00042BAC00042BAC00042AAA00042AAA00032187000429 + A8000429A8000429A700435FBC0028397700000000004862B8004E67BA005069 + BB004D66BA004C66BA004A64B8004660B700435EB600435DB6007D8FCC00929D + C00033447F000000000000000000000000000000000000000000000000000000 + 0000A3B4EB0035447D0034468200000000000000000097ABEE0097ADF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000535C7C007C8ECB00042CB100042CB100042C + B100042CB100042CB100042CB1007B8DCA000000000000000000000000000000 + 0000000000000000000000000000000000002F438B000530BE00042EBC00042E + BC00032595004F6CCE00042EB900042DB700042DB7000328A200031F7E000219 + 6400374B8D00031F7C0003269A00042CB100042BB000042BAF0003238C00042B + AD00042BAC00042AAB00425FBF002A3C7C00000000004F69BF002948B1002F4D + B3002B4AB2002646B0002142AF001739AB001033A9001538AA00929EC4003749 + 8600ACBBEB000000000000000000000000000000000000000000000000000000 + 000033488F0051629F00445CA900000000000000000099ADEE0098AEF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000555E7F007D8FCE00042DB600042DB600042D + B600042DB600042DB600042DB6007C8ECD000000000000000000000000000000 + 000000000000000000000000000000000000344A9400143ECA001740CA00153E + C900072A9E005875D7000E38C5000B36C4000934C2000D2A8A00CDCCCA00CBCA + C800C9C7C600CECCCB0003208300042EBB00042EBA00042EB90003249300042D + B700042DB600042DB6004361C7002F428500000000005C76CC004C68C7005570 + CA004B67C7004562C500405EC4003454C000546FCA006E80BC00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000004455 + 92004964BF006980CC00B4C3EF0000000000000000009AAEEF0098AEF70097AD + F700829DF5007894F4006D8CF30011172D0000000000161B2B002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005A6488007E92D400042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF007C90D2000000000000000000000000000000 + 000000000000000000000000000000000000364B99001D46D100224AD2002149 + D1000A2DA3005F7CDC001A43CD001640CB00153FCA0016359B00EDEDEC00ECEC + EB00EBEBEA00DBDCE20005258E000530C100042FBF00042FBF0003269800042F + BD00042EBC00042EBB004362CB0031458A0000000000607AD1005873CF00627C + D2005873D000526ECD004D6ACC004261C9004F6CCC00586FBA00000000000000 + 0000000000000000000000000000000000000000000000000000556EC3004D67 + BC003F5FC8008596D00000000000000000000000000099ADF00097ADF70097AD + F700829DF5007894F4006D8CF3001F1F1F000C0C0C001F1F1F002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E678B007F92D5000531C4000531C3000531 + C3000531C3000531C3000531C4007D91D4000000000000000000000000000000 + 000000000000000000000000000000000000394F9E00264FD8002C53D8002C53 + D7000D31A8006884E100254DD400214AD2002049D2001D45CC001639AF000826 + 8B004E67BA001034AC00113AC5000F3AC8000C37C7000A35C50004279C000632 + C3000531C200042FC0004262CF0033478F00000000006580D700637ED6006F88 + DA00647FD700607BD6005A76D4004E6CD1004766CF005C77D2005871C5000000 + 000000000000000000000000000000000000CCD6F700455EB10044599E003255 + CA00385ACB008392C20000000000000000000000000098ACF00094ABF60096AC + F700829DF5007894F4006D8CF3003A405600333333003F4454002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000606A8F008295D800113CCB00153FCC00153F + CC00153FCC00153FCC00123DCC008094D7000000000000000000000000000000 + 0000000000000000000000000000000000003D55A800375EE2004166E3004267 + E3001338B0007691E9003B61E000375DDE00355CDD00345BDD003057DB000F33 + AB006C87E4002951D800274FD700264ED6001834940017349400072074001330 + 9200122F91001338B3004869D800384E9800000000006C86E0007891E300889E + E6007E96E4007992E300748EE2006984E0006480DE005977DC006580D8005269 + B900485EA600445BAA004359A600455BA5005570CC004F6FDA003459D5002F55 + D40095A5D9004960AE000000000000000000000000008EA4EE00859FF50089A2 + F600859FF5007E99F5007592F4006283F000597AE9005072E1003E60D2003457 + C9002C4EC0001C3DAC003652AF007181BA000000000000000000000000000000 + 0000000000008282820080808000828282000000000000000000000000000000 + 0000000000000000000000000000657097008C9EE000365CDB003F64DC003F64 + DC003F64DC003F64DC00365CDB008A9DDF000000000000000000000000000000 + 0000000000000000000000000000000000004059AD003F66E7004B70E8004D71 + E900163BB3007E98ED00456AE5004368E4004166E3003F64E2003C62E1001237 + AF00748FE900345BDD003259DC003158DC00B6B6BA00BFBDBB00BDBBB900BAB8 + B600AEAEB200173494004C6DDC003A509D00000000006E89E5007E96E70094A8 + EB008BA1EA00869DE8008199E8007690E600718BE5006B86E3006683E3006B86 + E300607EE2005270D3005A76D5005A78DE004A6CDE003158D900264FD8006D88 + E2008090C500879CE1000000000000000000000000006E84D0008AA1EE0090A6 + F00091A7F0008FA5F0008CA3EF00879FED00849BE8008097E3007B91DA00788D + D400758ACF007083C5007283BE00576798000000000000000000000000000000 + 0000000000008080800040404000808080000000000000000000000000000000 + 00000000000000000000000000006973990091A4E300466AE1005475E4005475 + E4005475E4005475E400466AE1008FA1E1000000000000000000000000000000 + 000000000000000000000000000000000000425CB200486DEC004D6CD2003D55 + A600122C80005E6FA8003851A4004362CA004B70E800496EE700456AE600153A + B3007A95EC003F64E3003E64E3003C62E200D7D5D400CDCCCA00CBCAC800C7C5 + C300CECCCB001F3B99005071E0003D54A200000000006D89E7007C96EA0097AB + EE009DB0F00093A8EE008DA3ED00839BEC007D97EB007792E9006D89E8006381 + E7006482E700607FE6005E7DE6005072E3004065E1003D62E100335ADF00A8B6 + E400566BB80000000000000000000000000000000000718BE2005771C8005771 + C8005771C8005771C8005771C800556EC400516ABD004E66B600485EA7006D71 + 7D00717170005E616D003A4A83005068B8000000000000000000000000000000 + 0000000000008080800045454500808080000000000000000000000000000000 + 00000000000000000000000000006B769E0096A8E5005879E7006684E9006684 + E9006684E9006684E9005879E70094A5E4000000000000000000000000000000 + 0000000000000000000000000000000000004760B700587CF2005166AD00D7D5 + D400CBCAC800C9C7C600C7C5C300465DA9006283F2006082F1005C7EEF001B40 + BB008AA2F3005477ED005377ED005175EC004361C7004261C70014339B003D5C + C5003C5CC5004166E2005678E8004259AC00000000005F80EE00A0B3F500ACB9 + E700B9C6F100A5B7F500A0B3F5009DB1F40097ACF40092A9F400869FF200819B + F1007D97F100728FF0006C8AF0006786EF005B7DED005074EC007F99F0005C76 + CC00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000CCCCCC008080800000000000000000000000000000000000000000000000 + 000000000000808080005050500080808000000000000000000000000000717F + AF00889FE90091A6EA009AACEB00A8B8ED00B0C0F4008BA3F20087A0F20087A0 + F20087A0F20087A0F200849EF200AFBFF4009DAEE90097AAE90090A4E8008E9A + C200616D9500CDD7F70000000000000000004861B8006082F2005E73BB00E4E5 + EA00ECECEB00EBEBEA00EAEAE9005269B4006D8CF3006B8AF3006888F3001E43 + BE0092A9F5006082F1005F81F1005C7EF000597CEF00577AEF001A3FBB005175 + ED005074EC004A6FEB00597BEB00455DB10000000000859FF400A6B6E8005E76 + C700768BD200BDCAF600A4B7F700A8BAF700A4B7F7009FB3F60094ABF6008EA6 + F50088A1F500809BF5007A96F4007592F4006384F300839DF400B3C1ED00D3DB + F900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D1D1D1008080800000000000000000000000000000000000000000000000 + 000000000000808080005555550080808000000000000000000000000000BAC6 + F40093A2D8008BA4F5007693F30092A9F500A0B4F6009AAFF60098AEF60098AE + F60098AEF60098AEF60097ADF6009FB3F6007E99F4007592F3008CA4F5006571 + 9900869CE0000000000000000000000000004962B9006888F3007D97F0007086 + D000213FA3008D9DD2006A81CF007893F0007894F4007794F4007391F4002146 + BE009BB0F7006C8BF3006A8AF3006888F3006586F3006384F3001D42BE005D7F + F1005C7FF1005478F0005C7EEF004761B70000000000A3B3E8006078C800B4C1 + F2005974CF007D91D600BBC9F800A2B6F800AEBFF800ACBDF800A1B5F7009CB1 + F70097ADF7008BA4F600859FF5007E99F50097ADF700B6C2EE006A80CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D5D5D5008080800000000000000000000000000000000000000000000000 + 0000000000008A8A8A0059595900808080000000000000000000000000000000 + 00007684B5009BA9D90099AFF7009AAFF700A6B9F800A7B9F800A7B9F800A7B9 + F800A7B9F800A7B9F800A7B9F800A6B9F80087A1F50099AFF70092A0D100879C + E100000000000000000000000000000000004B65BC00708EF40089A2F60097AD + F70097ADF70095ACF70093AAF60090A8F6008EA6F6008CA5F60088A2F60087A1 + F500859FF500829CF500809BF5007F9AF5007B97F4007995F4007894F4007491 + F4006F8DF3006283F2006987ED004B65BC000000000000000000000000000000 + 00000000000000000000647EDA0096A8E300C1CEF800C3D0FA00B1C1F900A9BB + F800A5B8F800ABBDF800BAC9F900C1CCF400627BCE00BBC9F500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D8D8D80084848400C6C6C600000000000000000000000000000000000000 + 0000C6C6C6009898980067676700868686000000000000000000000000000000 + 000000000000BAC6F4007683B400B3C3F900B2C2F900BDCBFA00C0CEFA00C0CE + FA00C0CEFA00C0CEFA00BDCBFA00B2C2F9009DA9D5006A76A000889CE2000000 + 0000000000000000000000000000000000004D66BF007995F400829CF50091A8 + F6009AAFF70099AFF70097ADF70096ACF70094ABF60092A9F6008FA7F6008DA5 + F6008BA4F60088A2F60086A0F500849EF500819BF5007F9AF5007C97F4007592 + F4006D8CF3005E80F2006C86E0004F6AC5000000000000000000000000000000 + 00000000000000000000000000005874CF00657DCD008497DB00B9C7F300C1CD + F600C0CDF600A7B6E700889AD900667FCC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000C3C3C3008E8E8E008A8A8A00000000000000000000000000000000000000 + 00008A8A8A00B5B5B5006E6E6E00969696000000000000000000000000000000 + 00000000000000000000BAC6F400A1AEDA00B2C2F900B6C6F900CBD6FB00CBD6 + FB00CBD6FB00C8D4FB00B8C7F900B2C2F9006C77A100889DE200000000000000 + 0000000000000000000000000000000000007990E200839CF0007E99F5007C97 + F400839EF500839EF500839EF500829CF500819BF5007F9AF5007C97F4007B97 + F4007A96F4007794F4007592F4007491F400718FF4006F8DF3006C8BF3006485 + F3005F81F2006485F3005C73C70091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F0006B85DE005771C8005771 + C8005771C800647EDA0093A8ED00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B0B0 + B000A6A6A600B0B0B0008B8B8B00868686000000000000000000000000008686 + 860092929200ACACAC0078787800BBBBBB000000000000000000000000000000 + 00000000000000000000000000007482B2009EABD900B4C4F900D1DBFB00D5DE + FC00D5DEFC00C5D1FA00B6C6F9009AA8D5008A9DE30000000000000000000000 + 000000000000000000000000000000000000000000007991E300506AC3005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C000506AC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D3D3D300D7D7D700DFDFDF00CECECE00AEAEAE009D9D9D0099999900C0C0 + C000C5C5C500B7B7B700D3D3D300000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC6F4007381B200C1CEFA00C1CE + FA00C1CEFA00A7B2D900717DA7008A9EE3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000080808000B3B3B300E1E1E100F3F3F300EFEFEF00E9E9E900CDCD + CD00A7A7A7008080800000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F300A6B1DA00B3C3 + F900B3C3F900737EA8008B9EE400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B0B0B0008A8A8A008080800080808000808080008A8A + 8A00B0B0B0000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007181B0009DAA + D8009CA9D7008B9FE40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED8F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C2C2 + C2003D4E860029355F0027335E0027335E0027335E0027335E0027335E002733 + 5E0027335E0027335E0027335E0027335E0029355F003D4E860098A7D800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000293973008C99C6008897C9004963B7001F3E + A60003269C001F3EA6004963B7006A7EC2008C99C60029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002C3C + 75003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55 + A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A40040518F00AFBD + EC00000000000000000000000000000000000000000000000000000000004053 + 93003F64DE002A54DF004368E5007D97ED0099ADF0009EB1F000849BE700768F + E2006984DB00506CCB004360C2003553B700213EA0003E57A900415187000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005871C0003D54A2002C4082005165A9004A65 + BD000328A3004661BC005165A9004A598E002C3C7A005871C000000000000000 + 000000000000000000000000000000000000D6D6D600384A880023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C00C0C0C000CECECE000000000000000000465DAD004055 + 99001336AC001034AB001034AB001034AB001034AB001034AB001034AB001034 + AB001034AB001034AB001034AB001034AB001034AB001336AC002C4BB4003D54 + A300000000000000000000000000000000000000000000000000000000002B3D + 79001945D7001F42B5005466A300A7B7ED00A3B5F100AABAF2007781A4009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB3001B3898004A5EA1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000042528C00516B + C200042AAA00506AC40042528C008397DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000026356E005A6CAB00566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB00000000000000000000000000000000000324791003E59 + B400042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC001338B1002D40 + 8100000000000000000000000000000000000000000000000000000000002D3E + 7D000938D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034488D005771 + C600042EB9005771C60034488D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D4289005771CA00173F + C500042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC0004F6DD30000000000000000000000000000000000364B95003F5C + BD00042DB800042DB800042DB8001037BB001037BB001037BB001037BB001037 + BB001037BB001037BB001037BB000D35BB00042DB800042DB8001037BB003246 + 8B00000000000000000000000000000000000000000000000000000000003143 + 84000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000374C93005873 + CB00042FC0005873CB00374C9300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324793005873D0001842 + CF000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC005171DB0000000000000000000000000000000000384E9900405D + C200042FBF00042FBF00042FBF00405EC200405EC200405EC200405EC200405E + C200405EC200405EC200405EC2003859C800042FBF00042FBF00113AC2003549 + 9000000000000000000000000000000000000000000000000000000000003346 + 87000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A509A005974 + D0000431C7005974D0003A509A00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000364C9D00607CDA002851 + DC001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9005C7BE400000000000000000000000000000000003A509D00405F + C7000430C4000430C4000430C400374C9700374C9700374C9700374C9700374C + 9700374C9700374C9700374C9700405FC7000430C4000430C400103AC700374C + 9700000000000000000000000000000000000000000000000000000000003447 + 8B000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004057A7005B77 + DA000636D6005B77DA004057A700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003E57AF00748FEA004F74 + F000426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF007B97F400000000000000000000000000000000003F57A7004162 + D1000434D1000434D1000434D1003C54A1000000000000000000000000000000 + 000000000000000000003C54A1004162D1000434D1000434D100113ED3003C54 + A10000000000000000000000000000000000000000000000000000000000384D + 94000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000435BAE005F7D + E0000E3EDF005F7DE000435BAE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000405AB1007D97EB006384 + F300587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF20089A2F600000000000000000000000000000000004058AC004567 + D6000E3DD8000E3DD8000C3BD8003F57A8000000000000000000000000000000 + 000000000000000000003F57A8004567D6000E3DD8000E3DD8001946DA003F57 + A800000000000000000000000000000000000000000000000000000000003A4F + 98000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000465FB4006381 + E5001747E7006381E500465FB400000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425BB300869DED007894 + F4006E8DF3006E8DF3006E8DF3006E8DF3006E8DF3006E8DF300637EDB00637E + DB00637EDB00637EDB006C8AF0006E8DF3006E8DF3006E8DF3006E8DF3006E8D + F3006E8DF30097ADF70000000000000000000000000000000000435CAF004B6C + DB001E4BE1001D4AE0001947E000425AAD000000000000000000000000000000 + 00000000000000000000425AAD004A6CDB001E4BE1001E4BE1002853E200425A + AD00000000000000000000000000000000000000000000000000000000003C51 + 9C000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004B65BC006B88 + EB002755EE006B88EB004B65BC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B519A00465898003A4D + 9000364A8E00364A8E00364A8E00364A8E00364A8E00364A8E00C7CCDD009BA0 + AF00999EAD005967980035488A00364A8E00364A8E00364A8E00364A8E00364A + 8E00364A8E00465898003D55A5000000000000000000000000004862B9005576 + E5003D66EE003D66EE00325DED004761B9000000000000000000000000000000 + 000000000000000000004761B9005475E5003D66EE003D66EE00436AEE004761 + B900000000000000000000000000000000000000000000000000000000004157 + A3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C66BD006E8B + EB00305CEE006E8BEB004C66BD00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006179CC005A75D1005A75 + D1005A75D1005A75D1005A75D1005A75D1005A75D1005A75D100D0D7ED00D0D6 + E700CED4E5006A7FC7005873CD005A75D1005A75D1005A75D1005A75D1005A75 + D1005A75D1005A75D1004B5FA5000000000000000000000000004A64BB005A7B + E8004D72F1004D72F1004068F0004A64BB000000000000000000000000000000 + 000000000000000000004A64BB00597AE8004D72F1004E73F1005176F1004A64 + BB0000000000000000000000000000000000000000000000000000000000435A + A7000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67BE00728E + EC003862EF00728EEC004D67BE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000738CE000466AE2003B61 + E0003B61E0003B61E0003B61E0003B61E0003B61E0003B61E0004665CE005773 + D3005773D3003557C9003A5FDC003B61E0003B61E0003B61E0003B61E0003B61 + E0003B61E0003B61E000566AB3000000000000000000000000004B65BC005F7F + E8005C7FF2005C7FF2004D72F1004B65BC000000000000000000000000000000 + 000000000000000000004B65BC005D7DE8005C7FF2005D80F2005F81F2004B65 + BC0000000000000000000000000000000000000000000000000000000000455C + AB000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005069C0007B95 + ED004A70F0007B95ED005069C000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B8C6F6009BB0F70093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF6006C80C9000000000000000000000000004D67BE006A87 + E9007C97F4007C97F4006686F3004D67BE0000000000000000005A74CB004D67 + BE004D67BE004D67BE004D67BE00728DEA007D98F5007D98F5007F9AF5004D67 + BE004D67BE004D67BE004D67BE005A74CB000000000000000000000000004961 + B3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007E95 + E200C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1007D97 + EE005176F1007D97ED00516AC100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D7DFF900D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC007387CC000000000000000000000000004E68BF006E8A + EA008BA4F6008AA3F6007391F4004E68BF0000000000000000004E68C100607A + D0004E71E7006382E900738EEA0089A2F4008CA5F6008CA5F6008CA5F600738D + EA006483E9005A7BE800607AD0004E68C1000000000000000000000000004C65 + B8000535D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000526BC200809A + EE005A7DF200809AEE00526BC200000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007185CC007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE005870C6000000000000000000000000004F69C000738E + EB009BB0F7009AAFF700809BF5004F69C0000000000000000000BFCDF600516A + C3005A78E0006384F300819BF50098AEF7009CB1F7009CB1F7009CB1F700829D + F5006686F3006183F200516AC300BFCDF6000000000000000000000000004E66 + BC000535D4001F42B5005466A300A7B7ED00A3B5F100AABAF2007882A5009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB300133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FAFE9005671CC0000000000000000000000000000000000546EC50088A0 + EF006B8AF30088A0EF00546EC500000000000000000000000000000000005A72 + C600A1B1E900546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000C7C5C500AFADAC00898685007D7A78007D7A + 78007D7A78007D7A78007D7A7800AFADAC008F8D8B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000516BC2007B95 + EC00BAC9FA00B9C8F90097ADF700516BC2000000000000000000000000000000 + 000092A5EC00738EEB0098AEF700B4C4F900BBCAFA00BBCAFA00BAC9FA0097AD + F7007892EC005A73C6000000000000000000000000000000000000000000536D + C4000425940015349B002C469F005B6CA500727FA9007682A9006070A2005666 + 9F004B5D990035498D002A3F86001F357E00091F6A000D226800344374000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008AA1EC006B81CD00AFBEF300000000000000000000000000556FC6008BA2 + F0007290F4008BA2F000556FC600000000000000000000000000000000007589 + D200879FEF00556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000E0DEDE00D7D5D500D3D1D000D3D1D000D3D1 + D000D3D1D000D3D1D000D3D1D000D5D3D2009C9A990000000000000000000000 + 0000000000000000000000000000000000000000000000000000526CC3007A95 + EC00C4D1FA00C3D0FA009CB1F700526CC3000000000000000000000000000000 + 0000000000006179CB00809AEE00ABBDF800C9D5FB00C9D5FB00C1CEFA007B96 + EE006179CB007991E20000000000000000000000000033437C0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D00374780000000000000000000000000000000000000000000000000000000 + 00007993EE00748EE5005870C8000000000000000000000000005670C7008FA6 + F1007A96F4008FA6F1005670C70000000000000000000000000093A7ED007791 + E7007C96EE005E79D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000DEDDDC00E4E3E200E4E3E200E4E3E200E4E3 + E200E4E3E200E4E3E200E4E3E200E4E3E2009A97960000000000000000000000 + 0000000000000000000000000000000000000000000000000000536DC600738E + E900AFC0F900B0C0F9008FA7F600536DC4000000000000000000000000000000 + 0000000000006883DC00637BCD00869FF200BAC9FA00BAC9FA00A7B9F8006179 + CC006883DC00000000000000000000000000000000002E3F7B004662BF004F6C + CD005F7DE3006685ED006988F1006382EB005F7FE8005B7BE4005474DD005070 + D9004C6CD5004564CC004463CA004766CC004D6BD100506ED400516FD500536F + CC00364A91000000000000000000000000000000000000000000000000000000 + 0000819AEB006183F2005579F100486DE8004469E8004469E8005174E9006585 + F1007894F4006484F1005074E900466BE8004469E8004A6EE8004E73EF006586 + F3007992E500607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CED8F7005770 + C8006D8AEB006D8AEB006A83DA00C1CDF6000000000000000000000000000000 + 00000000000000000000000000005973CF007390F2007592F2006E86D6000000 + 000000000000000000000000000000000000000000003E539B00566EBF004463 + CA005B7AE2007490EE007E99F3006987EC005D7DE7005273E2003B60D8002F54 + D200244ACB000C35BE000831BA001239BE00254AC6002B50C9003256CD005D77 + CE004458A0000000000000000000000000000000000000000000000000000000 + 000095A8E600A8B9F300AABBF300A5B7F300A4B6F300A4B6F300A9B9F300AFBF + F500B1C1F500AEBEF500A8B9F300A5B7F300A4B6F300A6B8F300AABAF300A8B9 + F30095A8E600607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005670C7005670C700647ED900000000000000000000000000000000000000 + 0000000000000000000000000000000000006580DC006681DD005D77CF000000 + 000000000000000000000000000000000000000000006079C700566CB6005D77 + CB006D87DD00748EE5007892E800708BE3006E88E1006A84DE00637DD8005E79 + D5005B76D200536DCA00516CC9005570CC005B75CE005E78D1005E78D100556B + B2006880D2000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C900879CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005972CA005972CA00C1CDF6000000 + 0000000000000000000000000000000000000000000000000000677FD1005068 + BC005068BC005068BC005068BC005068BC005068BC00485EA900485EA900485E + A900485EA9005068BC005068BC005068BC005068BC005068BC005068BC006E85 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000879BE00044589E004458 + 9E00475A9E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CBCBCB00C7C7C70095A4D9002B3A6A002B3A6A002B3A6A002B3A6A002B3A + 6A002B3A6A002B3A6A002B3A6A002B3A6A003040790095A4D900C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B2BFEE002D407D003758C6003758C6003758C6003758C6003758 + C6003758C6003758C6003758C6003758C6003C53A1002E407C00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DADADA00C7C7C700C0C0 + C000C0C0C000253566002A396E00AFBCE400C8C8C800D5D5D500DEDEDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E003E58AF003358D600042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB3000D34B9003358D6003E58AF00BAC6 + F200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000032458D00DDE2 + F600DFE4F700DFE4F700E0E5F700E0E6F700E0E6F700E1E7F800E3E8F800E3E8 + F800E4E9F800E4E9F800E5EAF800E5EAF800E6EBF800E7EBF900E7EBF900E8EC + F900E9EDF900E9EDF90032458D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F1002C3F7D003E58AE003F58AA00425287000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BAC7 + F2004059B200345AD9000D36BE00042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB7000D36BE00345AD9003348 + 9100BAC7F2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000035499400D8DF + F600C9D2F200C9D2F200CAD3F200CCD5F400CDD6F400CED7F400CFD7F400D0D8 + F400D0D8F400D2DAF500D3DBF500D4DBF500D6DDF500D6DDF500D7DEF500D9E0 + F600DAE0F600DBE1F70035499400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002E42 + 81004A5D9D000F309D000F2F9A003F58AA003044890000000000000000000000 + 0000000000000000000000000000000000000000000000000000BCC8F300354A + 95003359DA000D37C200042EBC00042EBC00042EBC00042EBC00042EBC00042E + BC00042EBC00042EBC00042EBC00042EBC00042EBC00042EBC000D37C200415B + B500354A9500BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000384E9A00D5DC + F600C3CEF300C4CFF300C4CFF300C5D0F300C5D0F300C6D0F300C8D2F400C9D3 + F400C9D3F400CBD4F400CCD5F400CCD5F400CED7F500CFD8F600D0D9F600D2DA + F600D2DAF600D3DBF600384E9A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000304285004B5F + A1003F5AB70003269B00032698000F2F9A004453880031458A00000000000000 + 00000000000000000000000000000000000000000000384F9E00435DBA00335A + DE000431C5000431C5000431C5000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C5000431C5000431C5000D39 + CB00335ADE00435DBA00BDC9F400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003F56AA00D7DF + F9000537DD00C6D1F700C6D1F700C6D1F700C5D1F7000537DD00C5D1F700C4D0 + F700C4D0F700C4D0F700C4D0F700C3CFF7000537DD00C3CFF700C3CFF700C4D0 + F7000537DD00C4D0F7003F56AA00000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC7F20035498F003E5BBE000F33 + AB000429A50003279F0003279D0003269B000F2F9A003F58AA00445489000000 + 000000000000000000000000000000000000BDC9F400435FBD00335BE0000D3A + CE000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000D3ACE00335BE0003A52A100BDC9F4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AB000D8E0 + FA000538E500C7D3F900C7D3F900C7D3F900C6D2F9000538E500C6D2F900C6D2 + F900C6D2F900C6D2F900C6D2F900C5D1F9000538E500C5D1F900C4D0F800C4D0 + F8000538E500C4D0F800425AB000000000000000000000000000000000000000 + 0000000000000000000000000000BAC7F200374B93005165AD001035B100042A + AA00A0AEDE000328A20003279F0003279D00032698000F2F9A003F58AA003247 + 8B00000000000000000000000000000000004159AD00345CE3000D3BD3000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000D3BD3004561C0004159AD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455EB600DAE2 + FC00053AEB00CAD5FB00CAD5FB00C9D5FB00C9D5FB00053AEB00C8D4FB00C8D4 + FB00C8D4FB00C7D3FB00C7D3FB00C7D3FB00053AEB00C7D3FB00C6D2FA00C6D2 + FA00053AEB00C6D2FA00455EB600000000000000000000000000000000000000 + 0000000000000000000000000000394E9700546AB2004A67CA000C32B200052C + AD0099A6D000A0AEDD000328A20003279F0003269B00032698000F2F9A004555 + 890033478C000000000000000000000000004159A9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9003760E8004159A9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004861B900DEE5 + FC000F42EC00D0DAFB00D0DAFB00CFD9FB00CFD9FB000F42EC00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB000F42EC00CCD7FB00CCD7FB00CCD7 + FB000F42EC00CBD6FB004861B900000000000000000000000000000000000000 + 000000000000BDC9F4003D54A0005C78D500395BCB002B4FC600A7B5E5001439 + B8000C32B200939FC600FFFFFF00A0AEDD0003279F0003279D0003269B000F2F + 9A003F58AA0046568A000000000000000000435BAF000537DD000537DD000434 + D200042CB100042CB100042EB9000537DD000537DD00042CB1000537DD000537 + DD000430C400042CB100042CB1000430C4000537DD00042CB1000537DD000537 + DD000537DD000537DD00365FE900435BAF0000000000364C97002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C7600000000000000000000000000000000004963BA00DFE6 + FC001949ED00D3DCFB00D3DCFB00D3DCFB00D3DCFB001A4AED00D2DBFB00D2DB + FB00D2DBFB00D2DBFB00D2DBFB00D1DBFB001A4AED00D1DBFB00D1DBFB00D0DA + FB001A4AED00CFD9FB004963BA00000000000000000000000000000000000000 + 0000BDC9F4003F57A3005F76C0004767D2003A5CCD003255C900FFFFFF00A7B5 + E5001439B80004269800939FC600FFFFFF000328A20003279F0003279D000326 + 98000F2F9A003F58AA0033488D0000000000455EB300093BE300093BE2003B5A + C000FFFFFF00FBFBFB00BCC3DD00093BE200093BE200F2F2F200093BE2000835 + CC007F90CB00FFFFFF00F5F5F5007F90CB00093BE200F2F2F200093BE200093B + E200093BE200093BE2003861EB00455EB300000000003F559E004E6CD000274D + CD002B50CD002B50CD002B50CD002C51CD002C51CD002C51CD002C51CD002C51 + CD002C51CD002C51CD002C51CD002C51CD002C51CD002B50CD002B50CD002A4F + CD00274DCD004E6CD000000000000000000000000000000000004A64BB00E2E8 + FD002251ED00D7DFFC00D6DFFC00D6DFFC00D6DFFC002453EE00D6DFFC00D6DF + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC002453EE00D4DDFC00D4DDFC00D4DD + FC002352ED00D2DBFB004A64BB00000000000000000000000000000000000000 + 00004259AA006379C4006883DF004A6AD5004364D2003B5DCD00A5B0D300FFFF + FF00A7B5E5000C32B20004269800939FC600A0AEDD000328A20003279F000326 + 9B00032698000F2F9A0046568B003A4F99004A64BB001949ED001B4BED001B4B + ED001B4BED003761EF00C4D0F9001B4BED001B4BED00FFFFFF001B4BED00C2C9 + E2007F9AF5001B4BED001B4BED00708EF4001B4BED00F5F5F5004F6CCE003A5A + C3001741CF001B4BED004068F0004A64BB00000000005A75D1005771C8006472 + A8006A80CA005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8007684 + B4006472A8005771C800000000000000000000000000000000004D66BE00E5EA + FD003761EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003761EF00D8E0FC004D66BE00000000000000000000000000BECCF500465E + B2007590E7006D88E5006985E200BDC7E700FFFFFF00B9C5EE003B5DCD003250 + B600A5B0D300A7B5E5001439B8000C32B200939FC600FFFFFF00A0AEDD000327 + 9F000F31A100405AB000364B9300000000004B65BD002050ED002352ED00315D + EF00E3E9FD00FFFFFF00C8D4FB002352ED002352ED00FFFFFF002352ED00FBFB + FB005A7DF2002352ED002352ED005A7DF2002352ED00FFFFFF00C9D5FB00EDF0 + FA0092A0D0002352ED00446BF0004B65BD000000000000000000000000005A74 + C7002247C100042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF004A60 + AA005A74C70000000000000000000000000000000000000000004E68BF00E6EC + FD004169F000E1E7FD00E1E7FD00E1E7FD00E1E7FD00436BF000E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00436BF000DEE5FC00DEE5FC00DEE5 + FC004169F000DBE2FC004E68BF000000000000000000BECCF5004961B7006D84 + D0007892E9007892E800728CE600617BCF00BAC3E100FFFFFF004364D2003B5D + CD003250B600FFFFFF00A7B5E5001439B80004269800939FC60099A5CE000F32 + A700415BB5004B5B950000000000000000004C66BD002957EE002C59EE00BCCA + FA007D98F500486FF0002C59EE002C59EE002C59EE00FFFFFF002C59EE00D8E0 + FC0088A2F6002C59EE002C59EE007B97F4002C59EE00FFFFFF002C59EE00476E + F000F8F8F8002C59EE00486FF0004C66BD000000000000000000000000007D93 + E0003457CD000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA004B61 + AF007D93E00000000000000000000000000000000000000000004F69C000E7EC + FD004B71F100E4E9FD00E4E9FD00E4E9FD00E4E9FD004D72F100E3E9FD00E3E9 + FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD004D72F100E2E8FD00E2E8FD00E1E7 + FD004B71F100DEE5FC004F69C00000000000000000004B67C0006A83D30089A1 + F000889FED00819AEB007993E8006A85E200617BCF00BAC3E100B9C5EE004364 + D2003B5DCD00A5B0D300FFFFFF00A7B5E5000C32B2000426980003259500415C + B9004C5E9A003B519B0000000000000000004E68BF003963EF003E67F0006384 + F300FFFFFF00FFFFFF00CFD9FB00FFFFFF00FFFFFF00FFFFFF00FFFFFF003E67 + F000ACBDF800FFFFFF00FFFFFF00ACBDF8003E67F000FFFFFF00FFFFFF00F2F5 + FE009FB3F7003E67F0004F74F1004E68BF000000000000000000000000000000 + 00005E7BDD00234FE100234FE100234FE100234FE100234FE100234FE100234F + E100234FE100234FE100234FE100234FE100234FE100234FE100224EE0004E64 + B500000000000000000000000000000000000000000000000000526CC300EBF0 + FD005D80F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2006183F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2005E80F200E4E9FD00526CC30000000000000000004C66BD00728FF20095AB + F30099AEF20091A7F0008AA1EE007993E800728CE6006A85E200BAC3E100FFFF + FF00B9C5EE003B5DCD003250B600A5B0D3001B40BC001B40B9004562C1003E56 + A200000000000000000000000000000000004F69C0003F68F000476EF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000476EF0005075F1004F69C0000000000000000000000000000000 + 00006984E1003E66EE003862ED003B64ED003B64ED003B64ED003B64ED003B64 + ED003B64ED003B64ED003B64ED003B64ED003B64ED003862ED003E66EE004F68 + C300000000000000000000000000000000000000000000000000536DC400ECF0 + FE00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E6EBFD00536DC40000000000000000004D67BF007693F300A1B4 + F600A1B4F40099AEF20091A7F000819AEB007993E800728CE600617BCF00BAC3 + E100FFFFFF004364D2003B5DCD003250B600274BC2004A67C7005366A8000000 + 000000000000000000000000000000000000506AC100466DF0004E73F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1004E73F1004F74F100566FC3000000000000000000000000000000 + 00006781DA005378F100496FF0005176F1005176F1005176F1005176F1005176 + F1005176F1005176F1005176F1005176F1005075F100496FF0005378F1005975 + D100000000000000000000000000000000000000000000000000546EC500EDF1 + FE00EDF1FE00EEF2FE00EEF2FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0 + FE00EAEFFD00E7ECFD00546EC50000000000000000004E68C0007A96F400A9BB + F700A3B4F1006078C7004B63B600506BC6007C95E7007993E8006A85E200617B + CF00BAC3E100B9C5EE004364D2003A5CCD00516DCD00566AAB00445AAA000000 + 000000000000000000000000000000000000BFCDF6008499E0006686F3005A7D + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006283 + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006082 + F2005A7DF2006686F300526CC500BFCDF6000000000000000000000000000000 + 0000647AC900728FF100577BF2005C7FF2005E80F2005F81F2006082F2006082 + F2006082F2006082F2005F81F2005E80F200567AF200587CF200728FF1009FB1 + F0000000000000000000000000000000000000000000000000005770C700F0F3 + FE007B97F40087A1F5008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F60087A1 + F5007A96F400EBF0FD005770C7000000000000000000506AC1007A96F400B1C1 + F900506AC100D2DBF80000000000A9BAF0004B63B6008AA1EE007993E800728C + E6006A85E2005771CB004B6BD7005D79D7004960B30000000000000000000000 + 00000000000000000000000000000000000000000000536DC60090A2E200718F + F4006787F3006B8AF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3005D80 + F200718FF40090A2E200BFCDF600000000000000000000000000000000000000 + 00005A75D1006E84D2007690EA007D97EB007F98EB007F98EB008099EB008099 + EB008099EB008099EB007F98EB007F98EB007A94EA007790EA006E84D2000000 + 00000000000000000000000000000000000000000000000000005871C800F0F3 + FE00F1F4FE00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE00F1F4FE00F0F3 + FE00EEF2FE00EBF0FD005871C8000000000000000000516BC2006F8DF300A9BB + F800516BC200D3DBF90000000000BFCDF5004D66BA007F99ED00819AEB007993 + E800728CE6005776DD00637FDC005F73BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600536EC70091A4 + E2006384F300708EF4007592F4007592F4007592F4007592F4007592F4007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007290F4007491 + F40091A4E200536EC70000000000000000000000000000000000000000000000 + 000000000000647EDB005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C900647EDB000000 + 00000000000000000000000000000000000000000000000000005872C900F1F4 + FD00F4F6FD00F5F7FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F5F7 + FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F4F6FD00F4F6 + FD00F3F6FD00F1F4FD005872C9000000000000000000546FCB006680D90099AF + F7006E84D1005E78D100D3DBF900556FCB00647BCA0099AEF2008AA1EE00819A + EB00748FE7006984E0006277BF004D65BA000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60099A9E3008CA5F6007894F40086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F500839EF5007894F40093AAF6005670 + C800C1CDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009EB3F700B6C6F900C3D0FA00B7C6F800B1C1F800A8BAF50092A8F100809A + EE00758FE900526BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C9009AAAE300ABBDF8008AA3F6008EA6F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008EA6F6007E99F500ABBDF8009DACE500C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600748DDD0099AFF700ACBDF800B5C5F900AFBFF800A6B8F600869FF100809A + EE006B81CC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF6005771C9009DACE50090A8F60099AFF7009DB2F7009FB3F7009FB3 + F7009FB3F7009EB3F7009DB2F70098AEF700ABBDF8009DACE5005771C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8006982DC007C96ED0089A0EE00869EEE00839BED00738EE9006C83 + D0005671CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005874CF00C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000DBDBDB00D1D1D100C9C9C900C7C7 + C700C7C7C700C5C5C500C5C5C500C5C5C50029386D0030417800C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 00007789C8002C375F0033458000C3C3C300C5C5C500D1D1D100DCDCDC000000 + 00000000000000000000DADADA00D5D5D500C3C3C300B1BCE500394B89007587 + C600DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000006E85CF00273773002534690025346900364D96006E85 + CF00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387100032698000326 + 98004E66B6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007F92D80029396C008494C80025346900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED7F60031417A00536BBC002D3D7800647BC90000000000000000000000 + 0000000000000000000000000000000000002D3D780041569B004B66BE00B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 00007287D100293B7900233576000C2A8F000C2A8F000C2A8F00172F82002335 + 7600293B79000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3D79000328A2000328 + A2004F69BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008093D900324273005466A5008393C80027366B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000354C98003C529C00425DB400384984003D54A200000000000000 + 00000000000000000000000000003D54A200425CB0002245B8003E55A1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293B7B00143090000328A1001638A8001638A8001638A8000328A1000328 + A100143090004F67B60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F418200042BAD00042B + AD00506BC6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036457A005568AA00324DAA008494CC00293A7300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007389D500495991001338B2003A59C0004054960094A6E5000000 + 000000000000A5B6EC002F42860040549600163BB400092EA9004B5B95000000 + 0000000000000000000000000000000000000000000000000000788DD9002F44 + 8D002045BD004B68CA00566FBF003E509000374D9A00374D9A004D609F00566F + BF002045BD002648B70044569700788DD9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000364B94005C76CD00183DB800183DB800183DB8000D37C3000D37 + C3000D37C300183DB800183DB800183DB800364B940000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003850 + 9D00455690002042B300042AA900042AA9008496D4002F428100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003B54A200042CB100042CB100042CB100435EBE003E51 + 9500344890004660BD002146C200072EB300042CB1004961AE00384D98000000 + 0000000000000000000000000000000000000000000000000000374D98001E3F + AD00506ED3005C75C60042559800D0D8F70000000000000000006B83D3004255 + 98005C75C6000B35C000546EC1003A509A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A509B005B79DD001540CF001540CF001540CF001540CF001540 + CF001540CF001540CF001540CF001540CF003A509B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3005365 + A400516CC700042CB200042CB200042CB2008497D90033468700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000788ED900163CBB00062FB700062FB700133ABE003C5C + C900465EAF00163DBF00062FB700062FB7001138BA005062A2005E76C9000000 + 000000000000000000000000000000000000000000007B92DD00354EA200113C + CC005F78CF004559A100889DE30000000000000000000000000000000000889D + E3004559A100133ECC003156D3005165AC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E54A5006782DD006A84DD006A84DD006A84DD001D49DA001D49 + DA00617FE5006A84DD006A84DD006A84DD003E54A50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000CED7F6006179C7004258A50033488F005568AA004D6A + CC001239BE00042EBB00042EBB00042EBB008499DD00364A9000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D0D8F7004762C1001139BE001139BE001139BE00143B + C0002E53CD001139BE001139BE001139BE003959C30040539600BCC8F3000000 + 00000000000000000000000000000000000000000000435AB000254DD4003059 + E2004D63B000D1DAF80000000000000000000000000000000000000000000000 + 0000D1DAF800355BDC001E4BE0006682E0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197E500455FB6002D59ED002D59 + ED00587BF1008197E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004C5F9F005971BF004A66C5002447BA001237B4007288D2004F6FDB000432 + CD000432CD000432CD000432CD000432CD00849BE6003D53A0007087D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005669AA003458D0002B50CE002B50CE002B50 + CE002B50CE002B50CE002B50CE002B50CE00596DAF00647CD000000000000000 + 00000000000000000000000000000000000000000000465EB400355BE0003660 + EB004A64BE000000000000000000000000000000000000000000000000000000 + 000000000000355CE1002250E9006986E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A62BC00526AC4004D6DD5003560EF003560 + EF003560EF00526AC4004A62BC008198E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C9001C43C500042FC000042FC000042FC000728ADB005273E2000D3C + D7000E3DD8000E3DD8000E3DD8000E3DD800869DEB004058A800576EB8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465BA500395BCB00385CD400385CD400385C + D400385CD400385CD400385CD400385CD4004B60A7004D66BC00D1DAF7000000 + 000000000000000000000000000000000000000000004962B9004167E700305C + EE004D68C2000000000000000000000000000000000000000000000000000000 + 0000000000003059E2003661EF006D8AEB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005C76D2005171DE003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF005171DE00526BC1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005071DE000433CF000433CF000433CF000433CF00728DE4005779E9001A48 + E1001C4AE1001C4AE1001C4AE1001C4AE10089A1EF00445DB0004E71E500738C + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000ABBBF0004159AB006580DD004B6DDD004669DC004669DC004669 + DC004669DC004669DC004669DC004669DC006480DE00576EB8004159AB000000 + 000000000000000000000000000000000000000000005772CE006C85DE003C65 + EF006A80CD007990E20000000000000000000000000000000000000000000000 + 00007990E2003F68F0006989F300748CDF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE6006279C7006A88EE004D72F1005879E5005D76CA004E68C3004E68 + C3004F68BD005879E5004D72F1004D72F1006279C700839AE600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006384F300456CF0004C72F1004C72F100466DF00088A1F5005E80F200335E + EF003862EF003862EF003862EF003862EF008EA6F6004A64BC00093DEB00516A + BE0000000000000000000000000000000000000000000000000000000000BFCC + F5005A70BB00728BDF006D8AEA006180E7006180E7006180E7006180E7006180 + E7006180E7006180E7006180E7006180E7006180E700607FE7006B88EA005E73 + BD004A63BA00ABBBF100000000000000000000000000839AE600667DCC00577B + F2005B7BE800576EC10091A4EB000000000000000000000000000000000091A4 + EB00516ABF00597CF2007E99F500677ECC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005169C2008A9FE9005378F100617FE500536CBF007990E200000000000000 + 0000D2DBF800536CBF00617FE5005378F1008A9FE9005169C200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F8DF3006787F3006F8DF3006F8DF3006888F30095ACF7006283F2004068 + F000466DF000466DF000466DF000466DF00091A8F6004B65BD00093DEB004B65 + BD00000000000000000000000000000000000000000000000000768EDF004C64 + B7007D97EB007590ED006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB007C96 + ED006F85D0004C64B70000000000000000000000000000000000526BC3008199 + E8005075F1005475E200526BC000D3DBF80000000000000000007990E300526B + C0005878E3007290F4008AA0E900526BC30000000000000000004E67C1005C74 + C4004E67C1000000000000000000000000000000000000000000000000000000 + 00007288D000718FF4005B7EF200566EC10091A4EB0000000000000000000000 + 00000000000091A4EB00566EC1006684E700718FF4007288D000839AE7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007995F400839EF50090A8F60090A8F600859FF500A0B4F7006586F3004D72 + F1005378F1005378F1005378F1005378F10094ABF6004C66BE002553EE004F6A + C50000000000000000000000000000000000000000005672CE00586FBE00738C + DE007D97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97 + F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007D97 + F1007E99F1007790E200526DC700BFCCF5000000000000000000000000006881 + DA00869FF1006D8CF3005F81F2005679EB004C70E8004D71E7005C7FF2006D8C + F300708EF4006586F300577BF2004E6CD500BFCDF600000000005069C1006384 + F3005069C1000000000000000000000000000000000000000000000000000000 + 00009EB1F2006B8AF300738FEE00D3DBF8000000000000000000000000000000 + 00000000000000000000D3DBF800566EC2006B8AF3009EB1F2004F69C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000089A0EC009FB3F700AFC0F900B8C7F900A6B9F800ACBDF8006C8BF3006485 + F3006F8DF3006F8DF3006F8DF3006F8DF30099AFF7004E68C000667DCB000000 + 00000000000000000000000000000000000000000000516BC200516BC200516B + C200516BC200516BC200516BC200516BC200516BC200516BC20094ABF60095AC + F70095ACF70093AAF600879DE600516BC200516BC200516BC200516BC200516B + C200516BC200516BC200516BC2005671CD000000000000000000000000000000 + 0000657CCC008FA3EA00839EF5006283F2005277F1005C7FF20086A0F50097AD + F700A1B3F1006D8CF3006C8BF3005479F100516BC400BFCDF600516BC2006586 + F300516BC2000000000000000000000000000000000000000000000000000000 + 0000A4B6F3007391F4007C97ED00000000000000000000000000000000000000 + 0000000000000000000000000000526DC8007391F400A4B6F3005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000768CD400B1C0F200B5C5F900B4C4F9009EB3F700A7B9F800718FF4006D8C + F3007C97F4007D98F5007D98F5007D98F5009CB1F7004F69C1007991E3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007189E000A3B6F800A2B6 + F800A2B6F800A0B4F7007A8FD6006882DC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000849AE800576FC7007085D100859DEF00849CEF00849CEF00859AE4007389 + D3005770C500839EF5007592F4006F8DF3005270D600526CC500526CC3006A8A + F300526CC3000000000000000000000000000000000000000000000000000000 + 0000A9BAF300809BF500839CEF00000000000000000000000000000000000000 + 0000000000000000000000000000536EC900809BF500A9BAF300516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006881DB00506AC200657BC9008196DB008FA2E5008EA5F0008FA7F6007794 + F400859FF5008AA3F6008AA3F6008AA3F6009FB3F700506AC200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600AFBFF500B0C0 + F900B0C0F900ACBDF6006078C9009FB1F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC700768EDE0087A1F500829DF5007290F4006A83DB007C97 + F400556EC5000000000000000000000000000000000000000000000000000000 + 0000A5B5EA00A2B6F8008AA3F6007A92E4000000000000000000000000000000 + 000000000000000000007A92E4007D90D600A2B6F800A5B5EA005C77D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005871CF008A9C + DC00A8B9F6009BB0F700A4B7F800A5B8F800A3B6F800536DC400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007F94D800C4D1 + FA00C9D5FB008DA0DF006983DD00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF600566FC7007A91DF008DA5F6008DA5F60086A0F500839E + F500566FC6000000000000000000000000000000000000000000000000000000 + 00008597D800B3C3F90097ADF700637ACA0092A7EC0000000000000000000000 + 00000000000092A7EC00637ACA0096AAEE00B3C3F9008597D800849BE8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + CF00758BD20097ADF70097ADF700A0B4F700A1B5F700546EC500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DCD00BCCA + F700CDD8FB006D84CF009FB1F000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005E79 + D6005771C8005771C8005771C8005771C80095ACF70095ACF70095ACF70086A0 + F5005771C8000000000000000000000000000000000000000000000000000000 + 00005B74C900B9C6F200B2C2F9009FB1EF00657BCB007C92E500000000000000 + 0000D3DBF900657BCB009FB1EF009AAFF700B9C6F2005B74C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006883DC00A7B9F40098AEF700849EF5009EB3F700556FC600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C900A9B8 + EC00CAD5FB005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006E8BED007C96EE007F99EF00859EF00098ADF2009AAEF20097ACF2007C96 + EE005872C9000000000000000000000000000000000000000000000000000000 + 0000000000006B84DE008093D600BCCAFA00ACBDF800A7B9F800AFBFF500AFBF + F500ADBDF600ACBDF800BCCAFA00C5D1F9006B84DE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A7ED00677ECD009DAFEE0094ABF6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009FB1F000667D + CD009AAFF40093A8ED0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005B76D2000000000000000000000000000000000000000000000000000000 + 000000000000000000006B85DE00C2CEF400C2CFFA00B7C7F900A9BBF800A9BB + F800B0C0F900C2CFFA00C2CEF400798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000093A8ED005D76CA008DA5F6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9008297E1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E76CC008D9EDB00B5C2ED00C6D2F800C6D2 + F800C6D2F8008D9EDB005E76CC00879CE9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6008FA2E5005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000647E + DA00667DCD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D6D6D600CDCDCD00C7C7C7007487C6002938 + 6D0025346A00C5C5C500C7C7C700CBCBCB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C70045599A0026336000B2BDE500C7C7C700D2D2D200000000000000 + 0000000000000000000000000000DADADA00C2C2C200475C9D002633620096A6 + DB000000000000000000000000000000000000000000000000005E72B6002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B00687BBC00CFCF + CF0000000000000000000000000000000000000000000000000000000000D3D3 + D300C0C0C00025346D0027315900273159002731590027315900273159002731 + 590027315900273159002731590027315900273159002E3D7300C0C0C000CBCB + CB00DEDEDE000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DFE5F90032406C005261 + 970046568B00455AA500DFE5F900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029387000364FA0008697D0002C3E8000758AD60000000000000000000000 + 0000000000000000000000000000000000002E4286004359A5008596D0002739 + 78007185D000000000000000000000000000000000004C64B4003F59AE002C52 + D2000D35BA000E36BB000E36BB000E36BB000E36BB000E36BB000E36BB000E36 + BB000E36BB000D35BA000C34BA00284ECE00142A74002240A6003C54A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000293973004E67B80003269B0003269B0003269B0003269B000326 + 9B0003269B0003269B0003269B0003269B004E67B80029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F100293C7A0045548D0017369D001C3A + 9E00032083003F57A70043528600283873000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000263A7E007082BE00505F92003A53A60033478E0000000000000000000000 + 000000000000000000000000000000000000294091007789C700505F94002942 + 96003B529E0000000000000000000000000000000000354C97004A68CE003358 + D600355AD200365AD200365AD200365AD200365AD200365AD200365AD200365A + D200365AD2003358D2002C52D1004166DF000A2479001335A500425FC0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C77004E68BC0003279F0003279F0003279F0003218700021C + 700003228A0003279F0003279F0003279F004E68BC002B3C7700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334685006F7EB1003F5AB20003269B002946 + A900032288000F2F99003F58A90048599300B6C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000243E92006676A8005169BB007488CD002E459600576EC300000000000000 + 0000000000000000000000000000A4B3EB00526CBF005F6EA4005B72BF003A54 + A9002F407C00000000000000000000000000000000002E407F005271DE004166 + E2005374E3005677E4005777E4005777E4005777E4005777E4005777E4005777 + E4005777E4005072E3004267E0005275EA0003218700092EA9004160CA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002D3E7C004E68BF000328A4000328A4000328A40003238C00FFFF + FF0003238F000328A4000328A4000328A4004E68BF002D3E7C00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007483B4003D59B800072CA4000328A1002947 + AD000321870003269A00072999003751AA003244840000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C6FB200354A9100A3B3EB004258A100657ECF002F4CB000000000000000 + 00000000000000000000708ADA003953A6005668A70098AAE90000000000586D + B800374C9100000000000000000000000000000000003C54A30033468A003346 + 8A0033468A003A4C8B0030438400304384003043840030438400304384003043 + 84003043840030438400304384003043840003249100042DB500365BD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000031448500506BC700042BAE00042BAE00042BAE00042BAE00042B + AE00042BAE00042BAE00042BAE00042BAE00506BC70031448500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006880D0006170A400173CB7001036B5001237B5000F34B1003D5B + BF0006258B00062BA7000429A3000328A000465FB0003D4D81006179C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006373AC00435BA8005A72C600647ED1004A63B7001F48D1007D93DE000000 + 000000000000D1DAF800455BAC00294EC700445CAD000000000098AAE9007485 + C100485FB2000000000000000000000000000000000000000000000000000000 + 0000364A8F003358D30003279F0003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F00042AA900042EBB00375DDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034468900506CCA00042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300506CCA0034468900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F200455796008496D300153BBC00183EBD00193EBC001F44BC004361 + C60008278E000D32AE000A2FAB00052AA6001F3FAA00485FAA00324279000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B5EA0007A8DCC004157A1004760B3003D5BBD003158DC004A62B800D2DB + F800000000005671CB00425EBF003058DE00465CA9006680D400435DB3006778 + B3008699DF000000000000000000000000000000000000000000000000000000 + 0000384D9500375DDE000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C200375DDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036498E004F6CCD00042DB800042DB800042DB800042DB800042D + B800042DB800042DB800042DB800042DB8004F6CCD0036498E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB2008B98C8004968D0001E44C4002147C6002146C500284CC4004866 + CC000B2B94001439B7001035B2000D32AE000429A500324FB2004D5E98000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF8004D64B2008596D3007E98EC00819BEF006D8BEE0098AAEA00536D + C4004F4E4E008699DD00728FF2006D8BF0007994EC008FA4EB008C9EDD008CA0 + E600000000000000000000000000000000000000000000000000000000000000 + 00003D54A000375EE3000433CE00829DF500829DF500829DF500829DF500829D + F500829DF500829DF500829DF500829DF5000433CE000433CE00375EE3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A4F9700506ED4000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C200506ED4003A4F9700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000091A0D1004769D800234BD1003055D4003055D4002F54D3004062D4005371 + D7001132A0002146C5001D42C100193EBC001035B3000A2FAD002C4BB4003F55 + A200000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCCF5005F79CD006E82C900788DD7008297DE00667DCC00BCC5 + E300D7D6D6005F75C3008095DA008A9EE4007689D1006278C300526BC1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004057A600375FE6000636D4000737D4000737D4000737D4000737D4000737 + D4000737D4000737D4000737D4000737D4000737D5000636D400375FE6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003C529C004F6ED7000431C7000431C7000431C7000431C7000431 + C7000431C7000431C7000431C7000431C7004F6ED7003C529C00000000000000 + 000000000000000000000000000000000000000000000000000000000000D1DA + F8008EA2E6002A52D7002F56D800375CDB00375CDB00365BDA004668DA005876 + DC001334A300274CCB002348C7001F44C300163BB9000F34B3001035AF003B4C + 8400CED7F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF300859BE900788DD900CAD1E900EEEE + ED00EBEAEA00C2C6D6007382B6007289D900AFBEF300D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000435BAD003961E8000D3DDB00103FDB00103FDB00103FDB00103FDB00103F + DB00103FDB00103FDB00103FDB00103FDB000F3EDB000D3DDB003A62E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A0004F6FDB000432CC000432CC000432CC000432CC000432 + CC000432CC000432CC000432CC000432CC004F6FDB003F55A000000000000000 + 000000000000000000000000000000000000000000000000000000000000677F + D4006683E6002E56DD00395FDF003F64E1003E63E0003D62DF005777E2005E7C + E2001638A9002D52D100294ECD00254AC9001B40BF00153AB9000E34B3004A5C + 9D005B74C3000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A6A5006E6D6D00DAD9 + D900E8E7E700BFBDBC009A9897009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004962B8003E66EE001B4BE80092A9F60092A9F60092A9F60092A9F60092A9 + F60092A9F60092A9F60092A9F60092A9F6002250E9001C4BE8004169EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000435AAA005576E3001441D8001542D8001542D8001542D8001542 + D8001542D8001542D8001542D8001441D8005576E300435AAA00000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8005C71 + BB00365FE800446AEA004B70EC004C71EC004B70EB004B70EB006785EB006987 + EA001B3EB200395EDC003459D8003055D400264BCA002045C400183EBE004A65 + C0003F508C00CED7F70000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000807E7E00ACABAA00A0A0 + 9F00F1F0F000BCBAB900AEACAB0082807F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B65BD004068F0002352ED002E5AED002E5AED002E5AED002E5AED002E5A + ED002E5AED002E5AED002E5AED002E5AED002C59ED002352ED00446BF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000465EAF005879E7001E4ADE001F4BDE001F4BDE001F4BDE001F4B + DE001F4BDE001F4BDE001F4BDE001E4ADE005879E700465EAF00000000000000 + 00000000000000000000000000000000000000000000000000008EA3E9007E90 + D1003D65ED004D72F0005277F0005378F0005277F0005176EF00708DF0006E8B + EE001E41B7003F64E1003A5FDD00355AD9002B50CF00254AC9001D43C3003858 + C200495C9E008499DF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009796960094929100BFBDBC00EAEA + E9008A898900C0BEBC00A8A6A400989694000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D67BE00426AF0002A57EE003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003560EF002B58EE00476EF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004861B4005B7CEA002853E4002954E4002954E4002954E4002954 + E4002954E4002954E4002954E4002853E4005B7CEA004861B400000000000000 + 00000000000000000000000000000000000000000000000000006D87DD0091A3 + DF00476EF000567AF2005A7DF2005B7EF2005A7DF200587CF2007794F4007390 + F2002044BB004469E5004065E2003A5FDD002F54D3002A4FCE002248C8002C4F + C1004D62AB005E76C70000000000000000000000000000000000000000000000 + 00000000000000000000000000008B8A8900ABAAA900BAB9B800CBCAC9008786 + 860000000000D2D2D100E7E6E500B6B5B4008987870000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004F69C000466DF0003963EF00A6B9F800A6B9F800A6B9F800A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A6B9F800496FF0003A64EF004E73F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004D67BE006182F1003C65EE003E66EE003E66EE003E66EE003E66 + EE003E66EE003E66EE003E66EE003B64ED006182F1004D67BE00000000000000 + 0000000000000000000000000000000000000000000000000000516CC700AEBE + F300567AF2006586F3006989F3006989F3006888F3006686F3007D98F5007D98 + F5002549BF004E73ED00486DE9004469E500385DDB003257D6002A50CF002348 + C400506BC3003D539D0000000000000000000000000000000000000000000000 + 00000000000000000000000000009F9E9D00C0BFBE00E5E4E4008F8D8C000000 + 0000000000008F8F8D00E2E2E100E4E3E3009E9C9B00B3B1B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC100486FF0004068F0005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005176F1004169F0005075F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C0006485F300466DF000496FF000496FF000496FF000496F + F000496FF000496FF000496FF000466DF0006485F3005069C000000000000000 + 00000000000000000000000000000000000000000000000000004F69C000AFBF + F4005A7DF2006989F300708EF400718FF4006F8DF3006D8CF3007E99F500829C + F500274ABF005378F0004D72ED00476CE8003B60DE00355AD9002D53D3001940 + C300526CC5003C4F910000000000000000000000000000000000000000000000 + 0000000000000000000000000000C8C8C700DFDFDF00F2F2F100C7C7C6000000 + 000000000000D3D3D300A3A2A100F2F2F200C1C0BF00908E8D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000516BC2004A70F000486FF0005F81F2005F81F2005F81F2005F81F2005F81 + F2005F81F2005F81F2005F81F2005F81F2005A7DF200496FF0005378F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516AC1006888F3005075F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005075F1006888F300516AC100000000000000 + 0000000000000000000000000000000000000000000000000000506AC100AFBF + F400577BF2006787F300708EF4007794F4007693F4007491F4007C97F40086A0 + F500294CBF00577BF2005176EF004B70EB003E63E100355BDB002C53D400163E + C500536DC7003D50940000000000000000000000000000000000000000000000 + 000000000000000000009A989700F8F8F800C9C8C80094949400000000000000 + 000000000000000000000000000098979700F8F8F800E2E2E2009F9E9C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000556FC5004D72F1005378F100B8C7F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F9006C8BF3005579F1005C7EF000536D + C400536DC400536DC40000000000000000000000000000000000000000000000 + 000000000000536CC3006E8DF30092A9F60094ABF60094ABF60094ABF60094AB + F60094ABF60094ABF60094ABF60091A8F6006E8DF300536CC300000000000000 + 0000000000000000000000000000000000000000000000000000526CC300ADBD + F4008BA4F60099AFF7009EB3F7008BA4F6007491F4007290F4007D98F5008DA5 + F6002C4EBF005A7DF2004F74F1004269EE005D7DE9007993E900869DE8007B92 + E0008397D8004054980000000000000000000000000000000000000000000000 + 00000000000095959400C6C5C400E3E3E20092918F0000000000000000000000 + 000000000000000000000000000000000000E9E9E900EEEEEE00C5C5C4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C6005C7DEA005579F1007C97F4007D98F5007D98F5007D98F5007D98 + F5007D98F5007D98F5007D98F5007D98F5007290F4005A7DF2005E80F0003761 + ED003761ED00456AE50000000000000000000000000000000000000000000000 + 000000000000546DC400708EF400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB300708EF400546DC400000000000000 + 0000000000000000000000000000000000000000000000000000536DC400ABBB + ED008295D7006F84CE008599DA00B3C2F300B4C4F90091A8F6006B8AF30089A2 + F6002A4DBF004B71F100466DF0006787F30093A4DD008092CF00677ABC008797 + CD00A7B3DC0041569A0000000000000000000000000000000000000000000000 + 0000C7C7C700A8A7A500DDDDDC009C9A9900D3D3D30000000000000000000000 + 0000000000000000000000000000000000009C9B9900F3F2F200DFDFDE00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000556FC7005B7CEA00587CF2007F9AF500849EF50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F500859FF5007592F4005B7EF2005B7EF2000834 + C5000A36CA004568DA0000000000000000000000000000000000000000000000 + 000000000000556EC5007391F4009EB3F700A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F8009EB3F7007391F400556EC500000000000000 + 00000000000000000000000000000000000000000000000000005873CF00536E + C7009FB1F000AEBEF3009FB1F0005A74C9008E9FDD00B4C3F5006888F3007995 + F4002448BF004E73F1007C97F200889BDC006680D9009CAFEE00ACBCF1006780 + D400445AA6004860B10000000000000000000000000000000000000000000000 + 0000A19F9D00EBEBEA00C0BFBE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A5A500C4C3C200A2A0 + 9E00000000000000000000000000000000000000000000000000000000000000 + 00006B85DE005B78DB005479F1006283F2006B8AF3006F8DF3007391F4007391 + F4007391F4007391F400718FF4006D8CF3005C7FF2004A70F0004A70F000324B + 9C002648B700506BC20000000000000000000000000000000000000000000000 + 0000000000005770C7007693F400A6B9F800AFC0F900B1C1F900B1C1F900B1C1 + F900B1C1F900B1C1F900AFC0F900A5B8F8007592F4005770C700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859BE900ACBCF1009CB1 + F7002A4FC8005E77CA00859BE900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A2A000D2D1D0009A999800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009C9A9900A5A3 + A100000000000000000000000000000000000000000000000000000000000000 + 0000AFBFF3005D76CA005879E5005277F1005579F100577BF200587CF200587C + F200587CF200587CF200587CF200567AF2005075F1004C72F100446BF0006379 + C500526AB9005B72C40000000000000000000000000000000000000000000000 + 0000000000005871C8007491F400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB3007391F4005871C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008497D900AEBF + F8007189DA007C93E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A99009D9B9A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009C9A + 9900000000000000000000000000000000000000000000000000000000000000 + 000000000000859CE9005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C90093A8ED0000000000000000000000000000000000000000000000 + 0000000000005872C9006D8CF3006686F3007391F4007A96F4007E99F5007F9A + F5007E99F5007A96F4007290F4006485F3006D8CF3005872C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D200A1B0 + E80094A4DA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004E6ACE005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005B76D200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005A76 + D2005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 00000000000000000000000000000000000000000000000000004A60AE003544 + 7900485EA900435BAC00435BAC00435BAB00435BAB00435BAA00435BA900435A + A8004259A7004259A600435AA6004259A500435AA500435AA500435AA5004556 + 910033406D00455BA5000000000000000000000000000000000000000000AEBD + EC007A87B4008E9ED100808EBC00F0EFEF00EFEEEE00EDEDEC00EBEAEA00E9E9 + E800E8E7E700E5E5E400E4E3E3008E99BE008E9AC3008E9AC300808EBC008293 + CC008293CC008293CE0000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F1000000000000000000000000000000000000000000647BCB00364784004761 + B500072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A3004A5FA6003342760000000000000000000000000000000000BAC6F2002E42 + 8700798ED2002446B60003228900031E7B000322890003228900BCBAB900B7B5 + B400B2B0AF00A7A5A400A2A09E00031E7B00032289000322890003228900042A + AB00042AAB008194D50000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000033478A004B61AA002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A8004B5E9E00000000000000000000000000BAC6F20031458C006A79 + B2001B40B8001D41B90003238D00031F7F0003238D0003238D00CAC8C700C5C3 + C200C0BEBD00B6B4B300B1AFAD00031F7F0003238D0003238D0003238D00042C + B100042CB1008195D7000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB100000000000000000000000000314588004361C700042C + B300042CB2003252BF00DEE3F400C0CAEA003353BD00042BAD00042BAC00425F + C000FFFFFF008194D400042AA900042AA900BFC8E800FFFFFF00FFFFFF000328 + A4000328A300435EBB0000000000000000000000000034488F00879BDD00264B + C3001038BD00284CC4000D2D98000C2888000D2D98000D2D9800E0DFDF00DDDB + DB00D9D7D700D1CFCE00CDCBCA000C2888000D2D98000D2D98000D2D98001038 + BD001038BD00869ADE0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100A0AFE100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000034488C004362CA00042D + B800042DB600DEE4F500FFFFFF00FFFFFF00AFBBE200042BAF00042CB100617A + CE00FFFFFF008191CA000429A800042BAD00C0CAEA00FFFFFF00FFFFFF00042A + AA00042AA900425EBD00000000000000000000000000364B9400889DE100183F + C300183FC3002F53CA0013339C00112D8C0013339C0013339C00EBEAE900E7E6 + E600E3E2E200DCDBDA00D8D7D600112D8C0013339C0013339C0013339C00183F + C300183FC300889DE10000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B600042DB60003279F00FFFFFF009FAFE200042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD00000000000000000000000000364A91004363CE000530 + BE00042EBC00FFFFFF00FFFFFF00FFFFFF00FFFFFF000429A700042DB60091A3 + DE00FFFFFF006177BF00042BAC00042CB300EEF1F900FFFFFF00DEE3F100042B + AE00042BAE00425FC100000000000000000000000000394F99008A9FE3002047 + CA002047CA003559CF001938A100173391001733910017339100F4F3F300F1F0 + F000EDEDEC00E6E5E500E3E2E100173391001938A1001938A1001938A1002047 + CA002047CA008A9FE300000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC40012329D00FFFFFF00FFFFFF00A6B6E800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000003A509A004768D700133D + CA00153EC9004062D300E0E5F600C3CCEA001A3CAD000A32B700647ED800FFFF + FF00FFFFFF000429A700042FBE00042FBD00FFFFFF00FFFFFF008F9FD400042D + B800042DB8004362C9000000000000000000000000003E55A30091A6EA003157 + D6003157D6004668D8003350B2002D4BAE002D4BAE002D4BAE002D4BAE002D4B + AE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE003350B2003157 + D6003157D60090A5EA000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB001C3BA300FFFFFF00FFFFFF00FFFFFF00ABBAEB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000003C52A000496BDA001C46 + D1002149D1001F48D0001D44C900173CB600173DBD001640CB00E1E6F800FFFF + FF00FFFFFF000B33B8000A35C4000833C300FFFFFF00FFFFFF00516BBF00042F + BE00042FBD004363CD000000000000000000000000004058A90094A9ED003A5F + DD003A5FDD004669DF004E70E0004E70E0004E70E0004E70E0004E70E0004E70 + E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0003A5F + DD003A5FDD0093A8ED000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002B4FC700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D200FFFFFF00FFFF + FF00FFFFFF00FFFFFF002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003F56A5004C6EDF00244D + D7002C53D7002A51D6002951D600254DD400234BD3002F55D500FFFFFF00FFFF + FF00EFF2F900163FCA00153FCB00133DCA00FFFFFF00FFFFFF00193CAE000833 + C4000632C3004364D100000000000000000000000000435CAF0097ACF0004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E30097ACF0000000000000000000000000004158A600627CD900365C + DC004569DF004569DF003854B200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008BA1 + EB004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A6000000000000000000445CAF005073E700345C + E2004267E3006F8BE9006D89E800DAE1F900FFFFFF00FFFFFF00FFFFFF007A8F + D4002B4FC7002D54D900385DDA00F0F3FC00FFFFFF005771C8002147C8001C46 + D1001540D0004668D9000000000000000000000000004862B9009EB2F600587B + F000587BF0005070D9004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6E + D7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED700587B + F000587BF0009DB2F600000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E300415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000465FB4005275EA003D64 + E7004D71E900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008296D800375A + CD003C62E100385EDF00BFCBF400FFFFFF00BBC6E900284BBE002D55DA002750 + D9001D48D600486BDD000000000000000000000000004A64BB00A1B5F7006183 + F2006183F2005876DA00BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9 + F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F1006183 + F2006183F200A0B4F700000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8004963B900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C2CEF6005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E7FB005C7CE8005C7C + E800597AE8005375E700475EB40000000000000000004963B9005478EE00456B + EB00587BED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B9C5EB004567D900486D + E700456AE60094A9F000FFFFFF00FFFFFF004D69C800365BD400395FE0003058 + DE00244EDB004A6DE1000000000000000000000000004B65BC00A4B7F8006A8A + F3006A8AF300607CDA00C4CEF1009DAEE8009DAEE8009DAEE8009DAEE8009DAE + E8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8006A8A + F3006A8AF300A3B6F8000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1005C73C000FFFFFF00FFFFFF00CAD5F9007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F100738FEE00677DC500E0E5F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007D98F2007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000004D67BE00597CF2005579 + F1006E8DF3006B8AF0006785EA006585EE006686F3006384F2006082F1006888 + F100C0CDF800FFFFFF00FFFFFF00AEBBE7005074EA005074EC004D72EA00456A + E900345DE6004E72E9000000000000000000000000004D67BE00AABCF8007C97 + F4007C97F4006F88DC00D1D9F400B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0 + EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC007C97 + F4007C97F400A9BBF800000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500677CC400FFFFFF00FFFFFF00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5006B82CD007084C700E2E6F400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00E7ECFD00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F70000000000000000004E68BF005B7EF2005D80 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300A1B5F700EBF0 + FD00FFFFFF00FFFFFF00B4C0E9005370D0005C7EF0005B7EF000597CEF004E73 + ED003B63EB005074EC000000000000000000000000004E68BF00ADBEF800849E + F500849EF500778EDC00D7DEF400BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8 + EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00849E + F500849EF500ACBDF800000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6006F83C500FFFFFF00D4DDFC008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F60089A2F3007489CD00788AC800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00E9EEFD0092A9F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD000000000000000000000000004F69C0005D80F2006586 + F300849EF500829DF500819BF5007E99F50093AAF600C3D0FA00FFFFFF00FFFF + FF00FFFFFF009BABE1005E78D1006987ED006888F3006686F3006586F300597C + F200436AEF005277F0000000000000000000000000004F69C000B0C0F9008DA5 + F6008DA5F6007F95DD00DDE2F600C6D0F000C6D0F000C6D0F000C6D0F000C6D0 + F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F0008DA5 + F6008DA5F600AFC0F9000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F8008E9FD800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A0B3F4008998C900E7EA + F400FFFFFF00A8BAF800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD700000000000000000000000000516BC2006082F200708E + F4009AAFF700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5DBF10098A8 + DC00758BD300859FF500839EF500829CF5007F9AF5007D98F5007B97F4006989 + F3004F74F1005579F100000000000000000000000000516BC200B5C5F9009EB3 + F7009EB3F7008EA0DE00E5EAF700D5DCF200D5DCF200D5DCF200D5DCF200D5DC + F200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF2009EB3 + F7009EB3F700B4C4F90000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF80091A0D000929F + CA00DBE0F300AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA0000000000000000000000000000000000526CC3005F81F200718F + F400A2B6F800FFFFFF00FFFFFF00E8EBF600D9DEF000B2BDE3008598D9008CA1 + E60092A9F40090A8F6008EA6F6008CA5F60089A2F60087A1F500859FF5006E8D + F3005075F1005579F100000000000000000000000000526CC300B8C7F900A7B9 + F800A7B9F80096A6DF00E9EDF800DCE1F400DCE1F400DCE1F400DCE1F400DCE1 + F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400A7B9 + F800A7B9F800B6C6F90000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B6C5F600A1AE + D900B6C5F600B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF60000000000000000000000000000000000536DC4006685EC006C8B + F300A3B6F800A4B5EE0092A1D30097A7DD0098A8E1009BACE700A2B6F800A1B5 + F7009FB3F7009BB0F70099AFF70097ADF70094ABF60091A8F6008CA5F6006B8A + F3005075F1005E7EEC00000000000000000000000000536DC400BAC9FA00B0C0 + F900B0C0F9009DADDF00EDF0F900E3E8F600E3E8F600E3E8F600E3E8F600E3E8 + F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600B0C0 + F900B0C0F900B9C8F90000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 000000000000000000000000000000000000000000007A92E5006079CC00728E + EE007794F400829DF5008AA3F6008DA5F6008DA5F6008BA4F60089A2F60088A2 + F60087A1F500839EF500829DF500819BF5007B97F4007693F4006C8BF3005E80 + F2006786ED005F78CC00000000000000000000000000556FC600BECCFA00C0CE + FA00C0CEFA00ADB9E100F4F6FA00EDF0F800EDF0F800EDF0F800EDF0F800EDF0 + F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800C0CE + FA00C0CEFA00BDCBFA0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 00000000000000000000000000000000000000000000000000005974CF00617A + CD005F81F2006586F3006888F3006A8AF3006A8AF3006A8AF3006A8AF3006989 + F3006989F3006888F3006888F3006787F3006586F3006384F3006082F2005E7D + E5006079CD006984DD000000000000000000000000005670C700A6B9F800C1CE + FA00C3D0FA00BCC8EE00F9FAFE00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6 + FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00C3D0 + FA00C0CEFA00A4B7F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007C93 + E5005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005D76 + CC007C93E500000000000000000000000000000000005771C9005771C8005771 + C8005771C8005771C800ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8 + E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E3005771 + C8005771C8005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293662002531 + 5800253158002633600032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046599700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004659970035457A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D609E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC001338B100CFD6 + EE00FFFFFF001338B100042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046599A00475FB10000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100CFD6EF00FFFF + FF00FFFFFF00CFD6EF001439B600042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB1001439B600CFD6 + EF00042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100A0AFE100A0AF + E100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600143ABA00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D0D7F100143ABA00042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600D0D7F100FFFF + FF00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455CAE004C63 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF009FAFE200042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C63AD00000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED00000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00264BC800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFF + FF00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400A6B6E800FFFFFF00FFFFFF00FFFF + FF00FFFFFF00A6B6E800173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD006C83D40000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35 + BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F5194000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00D4DBF400FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D4DBF4002F54CE00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB002F54CE00D4DBF400FFFFFF00FFFFFF00FFFF + FF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00ABBAEB00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00ABBAEB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53CF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D6DDF5002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200D6DDF500FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004467DC00B6C2EA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627DD900365C + DC004569DF003C5BC200B4BFE200FFFFFF00FFFFFF00FFFFFF003D5CC3003854 + B200B4BFE200FFFFFF00FFFFFF00FFFFFF00B8C6F2004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D300000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C7004C66BA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C700415CB600FFFFFF00FFFFFF00BECBF5005173E3004764 + C700415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00BCC9F4005173E3005173 + E3004F71E3004368E100435BAB0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D700000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7CE800FFFFFF00FFFF + FF00FFFFFF00FFFFFF005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005B7BE5004E69C300DCE1F100FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE800526ECB00BCC5E500C2CEF6005C7CE8005C7CE8005C7C + E800526ECB00BCC5E500FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0CCF5005C7C + E800597AE8005375E700475EB40000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF00FFFFFF007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1006078C900677DC500E0E5F300FFFFFF00FFFF + FF007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F100657FD3005C73C000C3CBE800FFFFFF00FFFFFF00FFFFFF007491 + F1006988EF006E8CF0007790E10000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC006886EC006886 + EC006886EC006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D500000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5007E98F1006B82CD007084C700FFFFFF00FFFF + FF00819BF500819BF500819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000CED8F7005971C3007E98 + F1007D98F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5007088D600677CC400FFFFFF00FFFFFF00CFD9FA007E99 + F5007290F4007E98F100CED8F70000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600FFFFFF00FFFF + FF00FFFFFF00FFFFFF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F60089A2F3007489CD00E3E7F400FFFF + FF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100758C + DD007F9AF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6008BA4F6008BA4F6007A8FD700C9D0E800D4DDFC008BA4F600819B + F500809BF500768DDD00000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC2000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F8008898CF00A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D7008CA4F4008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F70092A9 + F400758AD500607AD700000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF70096ACF70096AC + F70096ACF70096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF8008B99C7008B99 + C7008B99C700AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 00008599E00094ABF60097ADF700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF7008CA0 + E100546FCA000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 0000576FC80090A3E300A0B4F600ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900A9BBF8009CB1F70098ADF5005870 + C700BFCDF600000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE3009FB3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700859BE200667DCC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000869CE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000253671003E4D + 8200495991008699DD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002737730027377300B6C5F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008197DC0044579500405B + B8005B73C4005A679400293D8500B9C6F100000000000000000000000000293D + 8500293D8500B9C6F10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000273770003F519200283B7A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197DD002A3C7B003755BB003E5B + BD008798D100465BA000465BA0002A3E83000000000000000000BAC6F200465B + A000465BA0002A3E830000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002A3C7800435EB90040549800B9C6F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000354787004963B7002B4EC0007188D4006273 + B0004B64B500123DCC00123DCC004A6BD80032499A0032499A004B64B500123D + CC00123DCC004A6BD800384FA200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000304486004260C5001E42BA00445AA50032468E00BAC7F2000000 + 0000000000000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005169BE004A64BA002A4EC400042EB9007289D7006677 + B8004F69C0001240DA000535D8001240DA004E69BF004E69BF004B6EE3000535 + D8001240DA004B6EE3003D55AC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034488E004363CC00143BBF003F5FCB00455DAC00354A95000000 + 0000000000000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546CC000384C90002B50C800042FBE00042FBE002B4FC700869A + DC005E74BB004C71ED001344E7000539E600476DED00476DED001344E7001344 + E7004C71ED00536DCA00BECCF5000000000000000000374C9500374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004364D300143DC700103AC6003E60D1004760B300BDC9 + F4000000000000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0031458E00000000000000000000000000000000000000 + 0000394E97004D68C5002C52D1000431C7000431C7000431C6000431C6000431 + C5003358D0006478C2005C76D2005378F1001748EC001748EC001748EC005C76 + D200435CB600BECCF5000000000000000000000000004D6DD6001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001441D8001441D8000838D5000535D5000535D500103ED7004C67 + C1003F57AA00BECCF5000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F519400000000000000000000000000435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC002C3E7B0000000000000000000000000000000000BCC9 + F400536BBD00385DD7000C39CE000E3ACE000E3ACD000E3ACD000E3ACC000E3A + CC003B5FD600667BC4006981D5006787F300315DEF00315DEF00315DEF006981 + D500455FB800BFCCF5000000000000000000000000004F70DD000637DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD004167 + E6004F6AC700435BB1000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000004361C700042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB40032468800000000000000000000000000000000003E55 + AB004266DD001A45D6001944D5001D47D5001C46D4001C46D4001D47D4004669 + DB0092A4E6006F87D6007F9AF500567AF2004C72F1004C72F1004C72F1007F9A + F5006F87D6004761BA000000000000000000000000005677E4001848E7001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8002552 + E9004B70ED00536FCE00BFCCF50000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000004568DE000D3BD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000C3AD5003F57A5000000000000000000ABBCF100435AA9005B78 + D9002E57E000345CE100385FE200385FE100385FE100385FE0008FA5EE00778B + CE007F93DA0088A2F600819BF50087A1F500899BDD00899BDD00A5B8F800819B + F50088A2F600A5B8F8004E68C30000000000000000006785EA00496FF0005479 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005176 + F1004B71F1005A7DF2004A64BD0000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D3000000000000000000000000004D72EA002652E6002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002955E700224FE500465FB40000000000000000004E68C3007B8DCC006383 + EC003E65E6004469E700456AE700466BE700456AE600456AE60096ABF000798C + D0008699DD00A1B5F700A1B5F700B7C7F9006E82CB006E82CB00899CDE00A1B5 + F700A1B5F700B7C7F9004F6AC50000000000000000006E8AEA005E80F200708E + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF4006989 + F3006E8DF300607AD600BFCCF50000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D7000000000000000000000000005579F1003F68F000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0003761EF004C66BD000000000000000000475FB200B8C5EF005175 + ED004E73EB005376EC005376EC005376EC005477EC005376EB006F8CEE00A9B9 + F1006F84CD00C0CEFA00C0CEFA008FA0DF00A9B9F000A9B9F0006F84CD00C0CE + FA00C0CEFA008FA0DF00BFCDF6000000000000000000738EEB006D8CF30087A1 + F5008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008BA4F6007F9A + F500657FD7004C66C0000000000000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000005D80F2006586F3007491 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007995 + F4006F8DF300597CF200516BC20000000000000000008095DE00A9BBF800577B + F2006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300708E + F4008AA3F5007F91D3007F91D300B4C3F4006F8DF2006F8DF2008AA3F4007D91 + D2007D8FD300AFBFF3006982D90000000000000000006985E300738EEB007C96 + EC00829BED00829BED00829BED00829BED00829BED00829BED00829BED00829B + ED00839CED0096ABEF00B8C7F900C5D1FA00C1CEFA00ACBDF8008CA5F6004F69 + C200BFCDF600000000000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00FFFFFF00FFFF + FF00FFFFFF006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D5000000000000000000000000005E7DEA00718DEC007792 + ED007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95 + EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007993 + ED007590EC006D8AEC00546EC500000000000000000099ACEE00B1C1F9007290 + F400839EF5007F9AF5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500BBCAFA00BBCAFA0097ADF7007F9AF5007D98F5007D98F500B0C0 + F800A5B8F7007995F400536ECA000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC1009BB0F700BDCBFA00B5C5F90096ACF7006882D800BFCD + F60000000000000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA000000000000000000000000005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005A75D1000000000000000000A4B4EE00D3DCFB0087A1 + F50097ADF70092A9F6008EA6F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F60097ADF70096ACF70094ABF6008FA7F6008DA5F6008BA4F6007F9A + F5006C8BF3005B7EF2004760B900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC20088A2F600A3B6F80098AEF7006F87DA00516BC4000000 + 00000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000096AAEC00DFE6FC00D2DB + FB00B5C5F900B7C7F900B4C4F900ADBEF800AABCF800A6B9F800A0B4F700B3C3 + F800DCE3F900DDE4FC00B6C6F900B3C3F900AFC0F900AEBFF800ACBDF80097AD + F7007F9AF5006787F3004861B800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006A8AF3007693F400536DC600BFCDF600000000000000 + 00000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700798AC500798A + C5007F92D10096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000798FD900DCE3FC00E6EB + FD00BECCFA00C1CEFA00C1CEFA00BBCAFA00B4C4F900ACBDF800A4B7F800A4B4 + EA0093A3DB00E7ECFD00D9E1FC00BBCAFA00BCCAFA00BBCAFA00B6C6F9009DB2 + F700839EF5006F8DF300516AC700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600577BF200657FDB00BFCDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000637AC700B8C7F800E6EB + FD00DDE4FC00C6D2FA00C3D0FA00BBCAFA00B3C3F900A5B8F800A7B8F3006177 + C4005068BE00E6ECFD00E7ECFD00E0E6FC00BCCAFA00BBCAFA00B6C6F9009BB0 + F700819BF5007B97F400657FD800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005670C7005B78DA005670C8000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600516AC3008699 + DD00DBE2FC00E7ECFD00E6ECFD00E4E9FD00D0DAFB00A6B6EB00536ECA000000 + 0000000000005C73C400A3B3EB00CBD6F900E2E8FD00E0E6FC00DEE5FC00C3D0 + FA008AA0EE006177C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600516B + C7008499DE009CAEEF00A7B8F2008BA0E7007489D100526AC000000000000000 + 000000000000839AE7004F69C2006D82CD0091A7EE009FB2F10094A9EF006C85 + D9005870C3005E79D30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005975D1005069C0004F69C000526CC7006680DA00D3DBF800000000000000 + 0000000000000000000000000000839AE7004F68BF004F68BF004F68BF005E79 + D5009FB0EF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008D8B8B00918F8D00918F8D00918F8D00918F8D00918F + 8D00918F8D00918F8D00918F8D00918F8D00918F8D008D8B8B00000000000000 + 00000000000000000000000000000000000000000000808080007D7D7D009D9D + 9D00C5C5C500C5C5C500C5C5C500C5C5C500C7C7C700C7C7C700C8C8C800CECE + CE00CFCFCF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000082807F00F7F7F700B2B2B200B2B2B200B2B2B200B2B2 + B200B2B2B200B2B2B200B2B2B200B2B2B200F7F7F70082807F00000000000000 + 00000000000000000000000000000000000000000000B0B0B000A6A6A600F9F8 + F800838382009E9E9E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000273465007287CC005971 + C3005971C3005971C3005971C3005971C3005971C3005971C3005971C3005971 + C3005971C3005971C3005971C3005971C3002734650000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030458D0025356E004B494900717170007171700071717000717170007171 + 700071717000717170007171700071717000717170004B49490025356E000000 + 000000000000000000000000000000000000000000000000000086868600DCDC + DC00ACABA9008988870080808000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3A73006B86E1001639 + AC001639AC001639AC001639AC001639AC001639AC001639AC001639AC001639 + AC001639AC001639AC001639AC002446B7002A3A730000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029386E00283564004D4C4B00767675006261600062616000626160006261 + 600062616000626160006261600062616000767675004D4C4B0028356400768C + CF00000000000000000000000000000000000000000000000000000000008F8F + 8F00DCDCDB00A5A4A2008A898800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3E7B006984E1000328 + A4000328A4000328A4000328A4000328A4000328A4000328A4000328A4000328 + A4000328A4000328A4000328A400163AB2002C3E7B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000344892004358A100425F + BF00425FBF0041528C0076757500ACACAC00ACACAC00ACACAC00ACACAC00ACAC + AC00ACACAC00ACACAC00ACACAC00ACACAC00ACACAC007675750041528C00425F + BF00425FBF004358A10000000000000000000000000000000000000000000000 + 0000CECECE00EBEBEA00C0BFBE008A8988007E7E7E00D3D3D300000000000000 + 0000000000000000000000000000B6C3F0003E55A10000000000000000000000 + 0000000000000000000000000000000000000000000033458900738DE7000A32 + B8000A32B800375BD2006B86E0006480DE00163CBC000A32B8000A32B8000A32 + B8000A32B8000A32B8000A32B8001C42C2003345890000000000000000003449 + 9100334589005E76C90000000000000000000000000037477F00CDD6F6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324588004260C5001036 + B600042CB200021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A + 6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00042C + B2001036B6004260C50000000000000000000000000000000000000000000000 + 00007E7E7E00CECECE00EBEBEA00A5A4A2008A8988007E7E7E00000000000000 + 00000000000000000000B6C3F000273872002E417F0000000000000000000000 + 00000000000000000000000000000000000000000000364A91007E95E3002349 + C8002C51CF00607BD80044589B007A8CCE006884E200143CC300113AC200113A + C200113AC200113AC200113AC2001E45C800364A910000000000869BE100627C + D600607CDA004D62A4000000000000000000000000006D789F004B62B1000000 + 000000000000000000000000000000000000000000000000000000000000293C + 7A00283871002838710028387100283871002838710028387100283871002838 + 71002838710028387100293C7A000000000000000000354A8F004362CB00042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB90003269C000325 + 940003269C004362CB0000000000000000000000000000000000000000000000 + 0000D3D3D3007E7E7E00CECECE00C0BFBE00A5A4A2008A898800D3D3D3000000 + 000000000000B6C5F100283873006472A000364E960000000000000000000000 + 000000000000000000000000000000000000000000005068BE00788DD3005B7A + E0005375E400586DB4006D85D6004559A0007F96E1004063D8001841CA001841 + CA001841CA001841CA001841CA001841CA0042579E00000000003D55A8003B60 + DB002F55D600607EE200BDC9F40000000000000000007D89B10035447D00A3B4 + EB00000000000000000000000000000000000000000000000000000000003447 + 8400949DBE00435DB600435DB600435EB6004761B7004963B8004A64B8004E67 + BB004E67BB004C66BA002B3C760000000000000000003C529D004C6CD8002048 + CE00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234A + CF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002243B2002343 + AC001F41B1004B6BD80000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300CECECE00EBEBEA00C0BFBE00706F6E005C5C + 5C009DADE2006979AE008192CC007E8EC7006077C40000000000000000000000 + 00000000000000000000000000000000000000000000000000005D76CF006073 + BB00798ED200556FC70000000000BDCBF400576CB300859EF0002751DE002751 + DE002751DE002751DE002751DE002751DE00667CCB004058A8006B82D0002751 + DE002751DE003D63E3004E68C0000000000000000000707DAA004B66C0004959 + 9400000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F20094A0C8007A8ED1002647B6002C4CB8003150B9003755BB00415E + BF00435FBF003856BC003143830000000000000000004157A4005373DE00385D + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D900365BD8005272DE0000000000000000000000000000000000000000000000 + 00000000000000000000000000007E7E7E00CECECE00EBEBEA00737271006367 + 74003D5093008195D7005871C3007A8CCA00A2B3E90000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000738B + DD004760BA00BECCF5000000000000000000445CB0008AA1EC002F59E6002F59 + E6002F59E6002F59E6002F59E6002F59E6006A88EE00748DE1006A88EE002F59 + E6002F59E6003C63E800516CC700000000000000000054639C006980CC004964 + BF00546CC0000000000000000000000000000000000000000000000000000000 + 0000000000003C5094006E7FBC00516CC9003858C1003E5CC2004462C5004F6B + C800536ECA004764C600344789000000000000000000445BAB005B7BE4005072 + E2005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3004C6FE1005979E40000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3D3D3007E7E7E00A7A7A70081859400455B + A6007084C7005A75D2004F6AC7008496D300B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005570CC008EA4EF00355FED00355F + ED00355FED00355FED00355FED00355FED003E67EF00456CEF003962ED00355F + ED00355FED00436AEF004761BA0000000000000000003D5196008596D0003F5F + C80040539500556EC30000000000000000000000000000000000000000000000 + 000000000000384D9600586FBA00516DCD004563C9004C69CC00516DCD005C76 + D0005F7AD100536FCD00374C8F0000000000000000004C65BA006A89EF007E99 + F100A4B6F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BA + F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF50090A7 + F3007A95F1006786EF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2B1E600788ED9008CA4 + F5006B8AF0005071DF003257D000123ABF004E5F9B00465CAC00000000000000 + 00000000000000000000000000000000000000000000000000006D87DD00637A + C7007087D8005D77D30000000000D2DBF8005B72C10089A2F300456CF000456C + F000456CF000456CF000456CF000456CF0007F98EA00647AC40090A3E400456C + F000456CF000587CF2005671CE000000000000000000B3C0EF006475B0007089 + DA002D52CE004E6CCF004F64AF005E77CC009CAEED0000000000000000009CAE + ED004C65BC005E78D1005C78D8005371D700607CD9006681DB006A85DC00758E + DF007A92E0006883DB003E539D000000000000000000506AC1006F8DF30090A7 + F5008C90A3006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A + 6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A00B6C6 + F8008AA3F5006B8AF30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004862BC0095ACF7007C97 + F400718FF4003D63E3000534D1000431C600556EC200475890004F67B7000000 + 00000000000000000000000000000000000000000000AEBEF2005B72C200869F + F0007B95EF00536CBF00D2DBF8007990E2007C8FD4007995F4004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1006C83CD005771CE00687DC7005277 + F1004C72F1006C8BF3007990E2000000000000000000000000004960AE0095A5 + D900113DCE002F55D4004B6CDA004D64B200455BA5004359A6004258A500485E + A6005269B9006480DE005A78DD00627EDE006E88E100728CE1007790E3008299 + E400869CE600718BE1004158A3000000000000000000526CC3006C8BF3009CB1 + F700959392009593920095939200959392009593920095939200959392009593 + 920095939200959392009593920095939200959392009593920095939200C6D2 + FA0092A9F6006787F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BD007E92DA008AA3F600859F + F5007E99F5002250E9000F3FDD000534D1002146C400556FC20042538B000000 + 00000000000000000000000000000000000000000000657FD9008195DD006F8D + F3007794F400738AD5005D78D300556DC10089A0EC006686F3005277F1005277 + F1005277F1005277F1005277F1005277F1005E75C300D2DBF8004F69C5007B97 + F4005E80F200879FEF00D2DBF800000000000000000000000000889CE2008090 + C5001F49D600244DD7003057D9005A79E0005A78DE005976D6005C78D600617F + E2006B86E300617FE2006B87E400708BE5007993E7007F97E800849BE80092A7 + EB0090A5EA007690E500455CAA000000000000000000000000005974CF006782 + DB009C9A9900A09D9C0096939200969392009693920096939200969392009693 + 9200969392009693920096939200969392009693920096939200A09D9C007A94 + ED006681DB005974CF0000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF500889BDD00AFC0F900B4C4F900D1DBFB00B6C6 + F9006A8AF300476EF000345FEF002250E9000534D1000431C6003356C900394C + 8E00B9C6F200000000000000000000000000000000004E68BF008FA6F3005B7E + F2006183F2007693F40094A9F300829CF5006485F3006183F2006183F2006183 + F2006183F2006183F2006183F2006A8AF3004E68BF0000000000000000004F68 + C1004E68BF006F89DF00000000000000000000000000000000000000000098AB + EA0098ABED004066E600466BE7005376E900587AE9005D7DEA006987EC006E8B + EC00738FEC007E98EE00839CEF0089A1EF0094A9F10099ADF10098ADF100CCD5 + F400B2C2F5006886EB004C65B900000000000000000000000000000000005A75 + D1006B6968009D9A9900615F5F00BFBFBE00BCBCBB00BAB9B800B4B3B200B1B0 + AE00ADACAB00A6A5A400A2A1A0009F9D9C0097959300615F5F009D9A99005771 + C8005A75D1000000000000000000000000000000000000000000000000000000 + 000000000000000000004F6BC600B9C5EF00ABB9E9008E9FD9006F83CB0096A6 + DD00B2C2F8005579F100466DF000345FEF001040DD000534D1000935C8005B6F + B2003A4D8F00CED7F7000000000000000000000000004F69C0008CA5F6006082 + F2006989F3006989F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006C8BF3004F69C00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2B0E0007E99F0004E73EC005F80EE006686EF006B89EF007692F0007B96 + F100809AF1008BA3F30091A8F30096ACF400A1B4F500A0B3F500A5B7F500677D + C800ABB9E8009BB0F4005069BF00000000000000000000000000000000000000 + 000074727100A3A09F0067656500E2E1E100DFDFDE00DDDCDC00D7D7D600D5D4 + D300D1D1D000CBCAC900C8C7C600C4C3C200BCBBBA0067656500A3A09F000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546FCB005975D1006580D9007990E300BFCDF600546F + CB008FA0DA007491F4005479F100466DF0002250E9001040DE000534D1004161 + CC00596BAC0037488700314075003C539C0000000000506AC1008AA3F6006A8A + F3007D98F5007E99F5007B97F400708EF400708EF400708EF400708EF400708E + F400708EF4007A96F4007995F4007491F400506AC10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C900B4C1EC00829DF4006C8BF3007391F4007995F400829DF40087A1 + F5008DA5F50098AEF6009DB2F600A3B6F700A1B5F700A5B8F700BECBF600617C + D8005A74C900A4B4E800546EC500000000000000000000000000000000000000 + 000085838200AFADAB0073717000F2F2F200F1F1F000F0EFEF00EDECEC00EBEB + EA00E9E9E900E5E5E500E3E3E200E1E0E000DCDBDB0073717000AFADAB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007488CF00B1BFF000829DF500466DF000345FEF002250E900042D + B600082BA100788AC60040539300B8C5F200000000005B76D300526CC300526C + C300526CC300526CC300526CC3007388CF00A2B2E700B3C3F900A0B4F6008FA1 + E0006D82CC00526CC300526CC300526CC300607BD70000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED006D82CE00B1C1F8008AA3F600829DF5009AAFF700A1B5 + F700A6B9F800ACBDF800A8BAF800AFC0F900B5C4F4007E93D6005A76D2000000 + 000000000000C1CDF6005771C900000000000000000000000000000000000000 + 00008E8C8A00B5B3B10079777600F6F6F600F5F5F500F5F5F400F3F3F300F2F2 + F200F1F0F000EEEEEE00ECECEC00EBEAEA00E7E7E60079777600B5B3B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E400687DCA00B3C1F1005277F100466DF000345FEF001035 + B200788CCF009CA8CF00BAC7F300000000000000000000000000000000000000 + 0000000000000000000000000000718AE0006178C900B5C4F500A0B3F300546D + C40092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BBC9F50095A6DE00C2CEF300B9C8F900A8BAF800A4B7 + F800A7B9F800B6C6F900C2CFFA00C1CEF800647CCD00647EDA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000908F8E00959391007F7D7C00F7F7F700F7F7F700F7F7F700F6F6F600F6F6 + F600F5F5F500F4F4F400F3F3F200F2F1F100EFEFEF007F7D7C00959391000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006179CA009CB1F7004F74F100385CD2008196 + DA009FACD6004F67B50000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0006F84CF00A2B2E900A9BBF800AABCF7008C9F + DF00647ACA009FB1F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007C93E400667FCC008799D900BDC9F100C0CD + F600C1CDF600A5B5EA008497DB00657DCD009DB1EF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008B898800EBEBEA00EDECEC00EEEEED00F1F1F100F3F2 + F200F4F4F400F6F6F600F7F7F700F7F7F700F7F7F7008B898800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005670C700647ED2008A9DDC005B74 + CA00C1CDF6000000000000000000000000000000000000000000000000000000 + 0000000000005770C800A1B3EF009BB0F7009BB0F7009BB0F7009BB0F7009BB0 + F7009BB0F7008DA2EB005770C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000918F8D00E4E4E300E6E5E400E7E7E600EAEAE900ECEB + EB00EDEDEC00F0EFEF00F1F1F100F3F2F200F5F5F500918F8D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C8008EA0DF00A5B2DD00C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800A5B7F300A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F80095AAF1005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000908F8E00959391009593910095939100959391009593 + 91009593910095939100959391009593910095939100908F8E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C800A3B0DE005C75CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDB008D9FDF00B4C4F900ADBEF800A8BAF800A6B9F800AABC + F800ACBDF800879ADC006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006B85DE005A74CF005872C9005872C9005B76 + D2006B85DE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C200C0C0 + C000263159002631590026315900263159002631590026315900263159002631 + 5900263159002631590026315900263159002631590026315900263159002631 + 59002E3D7100C0C0C000D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9002736660000000000000000000000000000000000C4C4C4004E63A6003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193004E63A600DBDBDB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F448B002E3F7B002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B7800354B970000000000000000000000000000000000000000000000 + 00004F69BF000328A300FFFFFF00E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F6004F69 + BF002C3D7B0000000000000000000000000000000000000000003D57AE00435D + B30007299A0007299A0007299A0007299A0007299A0007299A0007299A000729 + 9A0007299A0007299A0007299A0007299A0007299A0007299A0007299A000628 + 9A00435DB3003D57AE0000000000000000000000000000000000000000000000 + 00005972C900374D9E0034499400425AAE00768DD80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F2004F609F002C3D7B004E66B700506AC400506A + C400506AC400506AC400506AC400506AC400506AC400506AC400506AC400506A + C400506AC4002D3F7F0000000000000000000000000000000000000000000000 + 0000506AC400042AAA00FFFFFF00E6EAF700E6EAF700E6EAF700E6EAF700E6EA + F700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700506A + C4002F40800000000000000000000000000000000000000000003E58AF004660 + B9000F32A4001032A4001032A4001032A4001032A4001032A4001032A4001032 + A4001032A4001032A4001032A4001032A4001032A4001032A4001032A4000D30 + A3004661B9003E58AF0000000000000000000000000000000000000000005C75 + CF00536CC2005B77D4005874D200566EC1004C60A100354A9300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC6F20031458D00526ECE002F4183000328A000042CB200042C + B200042CB200042CB200042CB200042CB200042CB200042CB200042CB200042C + B200506CC9003043850000000000000000000000000000000000000000000000 + 0000506BC800042CB100FFFFFF009397A5009397A5009397A5009397A5009397 + A5009397A5009397A5009397A5009397A5009397A500E6EAF800E6EAF800506B + C8003245860000000000000000000000000000000000000000003F59B0004863 + BF00173AAE0015359F0015349C0015349C0015349C0015349C0015349C001534 + 9C0015349C0015349C0015349C0015349C0015349C0015349C0015359F001538 + AE004A65C0003F59B000000000000000000000000000000000005E79D3005269 + B900345CE4001744DB000434D200254CCF004666D300586DB6008499DF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374D9A002C459A000732C1006582E30035498F00042BAE000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2004F6DD300364B930000000000000000000000000000000000000000000000 + 0000506ED200042FBF00FFFFFF00E6EBF800E6EBF800E6EBF800E6EBF800E6EB + F800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800506E + D200374B92000000000000000000000000000000000000000000415BB2004D6A + CA002649BF002343AC00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DF + DE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE002343AC002246 + BE00506CCB00415BB200000000000000000000000000607AD1006881D5005176 + F1001344E8000639E3000537DD000434D2000433CE000935C900586EB700374A + 8D00849BE0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F4002E489F000833C5000D3AD0007791EB00374C9700042DB6000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA004F6FD9003A4F990000000000000000000000000000000000000000000000 + 00004F6ED6000431C500FFFFFF009398A6009398A6009398A6009398A6009398 + A6009398A6009398A6009398A6009398A6009398A600E6EBF900E6EBF9004F6E + D6003A4F99000000000000000000000000000000000000000000425CB3004F6D + D0002E52C8002949B300DCDBDA00F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F800DCDBDA00DCDBDA002949B300284D + C500526FD100425CB300000000000000000000000000455EB7007C96EA004D72 + F1002856EE001445E8000639E3000535D8000434D2000433CE004162D100596E + B700384A8E000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000425A + AE005271D9005676E1006583E800859EEF003B509D00042EBC000434D1000434 + D1000434D1000434D1000434D1000434D1000434D1000434D1000434D1000434 + D1004F70DF003C53A10000000000000000000000000000000000000000000000 + 00004F6FDB000432CD00FFFFFF00E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9004F6F + DB003D539F000000000000000000000000000000000000000000435DB400516F + D5003559CF003050BA00D8D7D600F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F700D8D7D600D8D7D6003050BA002F54 + CD005573D700435DB4000000000000000000000000004A62B600859DEE005176 + F1003C65EF002856EE001445E8000537DD000535D8000434D2000935C9004162 + D1005A6FB800859BE00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000445C + AF000432CA000432CA000432CA000432CA000432CA000535D9000537E1000537 + E1000537E1000537E1000537E1000537E1000537E1000537E1000537E1000537 + E1004F73EA00445CAF0000000000000000000000000000000000000000000000 + 00005073E5000536D900FFFFFF009398A8009398A8009398A8009398A8009398 + A8009398A8009398A8009398A8009398A8009398A800E6EBFB00E6EBFB005073 + E500425AAC000000000000000000000000000000000000000000455FB6005676 + E0004367DD003D5DC700DDDDDC00BABED100F3F3F700F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700F2F3F700DDDDDC00DDDDDC003D5DC7003C61 + DB005B7AE100455FB6000000000000000000000000005570CB00859BE6007C97 + F4006384F3005075F1003C65EF001445E8000639E3000537DD000434D2000433 + CE000935C9005A70B9003A4D910096A7E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004760 + B700063AE800073BE900073BE900073BE900073BE900073BE900073BE900073B + E900073BE900073BE900073BE900073BE900073BE900073BE900073BE900063A + E8005075EF004760B70000000000000000000000000000000000000000000000 + 00005174EA00093BE200FFFFFF00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EB + FC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC005174 + EA00465FB20000000000000000000000000000000000000000004660B7005778 + E5004B6EE3004463CC00E1E1E000858FAF00DBDEE800F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700DBDDE700E1E1E000E1E1E0004463CC004368 + E2005D7DE6004660B7000000000000000000000000008197E5007386CE0091A8 + F6007693F4006384F3005075F1002856EE001445E8000639E3000535D8000434 + D2000433CE004162D100979DB700888786000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004963 + BA000E41EC001042EC001143EC001143EC001143EC001143EC001143EC001143 + EC001143EC001143EC001143EC001143EC001143EC001143EC001143EC000E41 + EC005378F1004963BA0000000000000000000000000000000000000000000000 + 00005579EF001344E800FFFFFF00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7EC + FC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC005579 + EF004962B90000000000000000000000000000000000000000004761B8005A7B + EA005376E9004A69D000E5E4E4007C86A700838BAC00B7BBCF00F5F6F900FEFE + FE00FEFEFE00E2E5EC00B6BACD008089A900E5E4E400E5E4E4004A69D000496E + E7006080EB004761B800000000000000000000000000000000004D66BE0094A5 + E300829DF5007794F4006384F3003C65EF002856EE001445E8000537DD000535 + D8000434D2008794C700C5C5C500B3B3B300B0B0B00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004C65 + BC001F4FED002553EE002654EE002654EE002654EE002654EE002654EE002654 + EE002654EE002654EE002654EE002654EE002654EE002654EE002654EE001E4E + ED005A7DF2004C65BC0000000000000000000000000000000000000000000000 + 00005F81F2002856EE00FFFFFF00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD005F81 + F2004D66BD0000000000000000000000000000000000000000004963BA005E80 + F2006283F2005876DA00ECEBEB007780A2007780A1007780A100F1F2F600F1F2 + F600F1F2F600C1C6D500747E9F00737D9F00ECEBEB00ECEBEB005876DA00577B + F2006686F3004963BA00000000000000000000000000000000000000000090A4 + EA009AABE5009FB3F700849EF5006384F3005075F1003C65EF001445E8000639 + E3009BABE100CECECE00C4C4C400BBBBBB00B5B4B3008A898800B1B0B0000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BE002755EE00305CEE00325EEF00325EEF00325EEF00325EEF00325EEF00325E + EF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF002755 + EE005E80F2004D66BE0000000000000000000000000000000000000000000000 + 00006485F300325EEF00FFFFFF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD006485 + F3004E67BF0000000000000000000000000000000000000000004A64BB006082 + F2006989F3005F7BDA00EFEFEE00747E9F00747E9F00737D9F00F1F2F600F1F2 + F600F1F2F600E8EAEF00717A9D00717A9D00EFEFEE00EFEFEE005F7BDA005E80 + F2006989F3004A64BB0000000000000000000000000000000000000000000000 + 0000556DC0009BABE5009FB3F7007794F4006384F3005075F1002856EE00A7B7 + ED00E7E7E700D7D7D700CECECE00C4C4C400C5C5C500B5B4B4008B8A89000000 + 0000000000000000000000000000000000000000000000000000000000004E68 + BF00305CEE003B64EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF002F5B + EE006183F2004E68BF0000000000000000000000000000000000000000000000 + 00006989F3003D66EF00FFFFFF00989DAA00989DAA00989DAA00989DAA00989D + AA00989DAA00989DAA00989DAA00989DAA00989DAA00EBF0FD00EBF0FD006989 + F3004F68C00000000000000000000000000000000000000000004B65BC006384 + F300718FF4006580DB00F2F1F100717A9D00717A9D00717A9C00F1F2F600F1F2 + F600F1F2F600F1F2F5006F7899006F789900F2F1F100F2F1F1006580DB006485 + F3006C8BF3004B65BC0000000000000000000000000000000000000000000000 + 000091A4EB00566FC1009CADE600849EF5007794F4006384F300B7C6F400F5F5 + F500EFEFEF00E0E0E000D7D7D700CECECE00BBBBBB00C5C5C500B5B5B500B1B1 + B10000000000000000000000000000000000000000000000000000000000516A + C1004169F0005075F1005378F1005378F1005378F1005378F1005378F1005378 + F1005378F1005378F1005378F1005378F1005378F1005378F1005378F1004068 + F0006888F300516AC10000000000000000000000000000000000000000000000 + 00007391F4005277F100FFFFFF00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE007391 + F400516BC20000000000000000000000000000000000000000004D67BE006787 + F300809BF500728BDC00F7F7F6006C7697006B7597006B759600F0F1F500F0F1 + F500F0F1F500CDD1DC006972950069729400F7F7F600F7F7F600728BDC007290 + F400718FF4004D67BE0000000000000000000000000000000000000000000000 + 0000000000000000000091A5EB009DAEE6009FB3F700CCD5F300F8F8F800FAFA + FA00F9F9F900EFEFEF00E7E7E700E0E0E000CECECE00C4C4C400BBBBBB00B6B5 + B5008B8A8900000000000000000000000000000000000000000000000000526C + C3004A70F0005A7DF2005E80F2005E80F2005E80F2005E80F2005E80F2005E80 + F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F200496F + F0006B8AF300526CC30000000000000000000000000000000000000000000000 + 00007794F4005C7FF200FFFFFF009DA1AC009DA1AC009DA1AC009DA1AC009DA1 + AC009DA1AC009DA1AC009DA1AC009DA1AC009DA1AC00EFF3FE00EFF3FE007794 + F400526CC30000000000000000000000000000000000000000004D67BF006989 + F30086A0F5007990DC00F9F9F900697295006972940068729400CDD0DC00F0F1 + F500F0F1F5006F77980067709100666F9100F9F9F900F9F9F9007990DC007894 + F4007491F4004D67BF0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C500D0D5E900F7F7F700F7F7F700F8F8 + F800FAFAFA00F5F5F500EFEFEF00E7E7E700D7D7D700CECECE00C4C4C400C7C7 + C700A6A6A500A9A9A9000000000000000000000000000000000000000000536D + C4005075F1006485F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006989F3006989F3006989F3006989F3005075 + F1006E8DF300536DC40000000000000000000000000000000000000000000000 + 00007C97F4006787F300FFFFFF00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE007C97 + F400536DC40000000000000000000000000000000000000000004E68C0006B8A + F3008DA5F6007F95DD00FBFAFA0067709100666F9100666F9100656E9100656E + 9100646E9000646E8F00636D8F00636D8F00FBFAFA00FBFAFA007F95DD007F9A + F5007794F4004E68C00000000000000000000000000000000000000000000000 + 0000000000000000000000000000A2B2EC00BAB9B800ECECEC00F6F6F600F7F7 + F700F8F8F800F9F9F900F5F5F500EFEFEF00E0E0E000D7D7D700CECECE00C3C3 + C300BFBFBE00908F8F000000000000000000000000000000000000000000566F + C600597CF2007290F4007D98F500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF5007D98F500587C + F200718FF400566FC60000000000000000000000000000000000000000000000 + 0000849EF5007C97F400FFFFFF00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00849E + F500556FC6000000000000000000000000000000000000000000506AC100708E + F4009CB1F7008D9FDE00FDFDFD00616A8D00606A8C00606A8C005F698B005F69 + 8B005F698A005F688A005E6789005E678900FDFDFD00FDFDFD008D9FDE008BA4 + F6007C97F400506AC10000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7B7B700ECECEC00F7F7 + F700F6F6F600F8F8F800FAFAFA00F9F9F900EFEFEF00E7E7E700E0E0E000CECE + CE00D3D3D3009B9A990000000000000000000000000000000000000000005770 + C700567AF2006D8CF3007B97F400839EF500839EF500849EF500859FF500859F + F500859FF500859FF500849EF500849EF500839EF500819BF5007A96F4005479 + F1006F8DF3005770C70000000000000000000000000000000000000000000000 + 000088A2F600829DF500FFFFFF0058595C0074757A00F3F6FE0058595C007475 + 7A00F3F6FE0058595C0074757A00F3F6FE0058595C0074757A00F3F6FE0088A2 + F6005670C7000000000000000000000000000000000000000000516BC2007290 + F400A4B7F80093A4DE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE0093A4DE0091A8 + F6007F9AF500516BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BEBCBB00EDEC + EC00F7F7F700F7F7F700F8F8F800FAFAFA00F5F5F500EFEFEF00E7E7E700DADA + DA00DADAD9009C9A990000000000000000000000000000000000000000005871 + C8004A70F0005D80F2006989F3007290F4007491F4007491F4007491F4007491 + F4007491F4007491F4007491F4007491F4007290F4006F8DF3006888F300486F + F0006A8AF3005871C80000000000000000000000000000000000000000000000 + 000089A2F60086A0F500FFFFFF00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D + 7100F4F7FE00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D7100F4F7FE0089A2 + F6005871C8000000000000000000000000000000000000000000526CC3007491 + F400ABBDF80099A9DE00E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5 + E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E50099A9DE0097AD + F700819BF500526CC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B8B8B700BEBD + BC00EDECEC00F6F6F600F7F7F700F8F8F800F9F9F900F5F5F500EFEFEF00E6E6 + E600CFCFCE009F9E9E0000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D20000000000000000000000000000000000000000000000 + 00007D97EE0091A7F1009AAEF200191918007F8FC200A1B4F300191918007F8F + C200A1B4F300191918007F8FC200A1B4F300191918007D8DC2009AAEF2007D97 + EE005872C9000000000000000000000000000000000000000000546EC5007491 + F400B7C7F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F90099AF + F700819BF500546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8B8B800EBEAEA00F6F6F600F5F5F500F7F7F700F9F9F900F9F9F900CDCC + CB00A4A4A3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005F5F5F004F5E92005872C9005F5F5F004F5E + 92005872C9005F5F5F004F5E92005872C9005F5F5F004F5E92005872C9005872 + C9005B76D2000000000000000000000000000000000000000000556FC6006D8C + F300A6B9F800AFC0F900B1C1F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2 + F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2F900B1C1F900ADBEF800849E + F5007894F400556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B6B4B300D7D5D500ECECEB00F6F6F600F8F8F700E6E5E500A7A6 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D2D1D0008080800000000000D2D1D0008080 + 800000000000D2D1D0008080800000000000D2D1D00080808000000000000000 + 00000000000000000000000000000000000000000000000000005670C7006382 + EA00849DEE00889FEE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0 + EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE00879FEE007B94 + ED006886EB005670C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B2B1B100A8A6A600BCBAB900B3B1B000A7A6A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080009090900000000000808080009090 + 9000000000008080800090909000000000008080800090909000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DEDEDE006B80 + C20027335F0026335D002A386D00C3C3C300C3C3C300C4C4C400D1D1D100D5D5 + D500000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C64B5004656 + 8A0098A5CE0098A4CD00828FB90031458A00DEE3F80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D1D1D100CFCFCF00C9C9C900C7C7C700C5C5 + C500C5C5C500C5C5C50091A1D70029386D00C5C5C500C8C8C800D3D3D3000000 + 00000000000000000000000000000000000000000000314792009BA8D200526D + C5002647B5002041B0001B3DAE00909ECB00293D7F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F200364A91004F63 + A5008793BC00A7B0CF00D9DFF300D9DFF400D9DFF400D9DFF400D9DFF400D9DF + F400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400DADF + F200A5AECE003A4D930000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000029396C00526297008494C8000000000000000000000000000000 + 000000000000000000000000000000000000000000002E4285008FA0DB004A66 + C6003C5AC0003655BD003151BA00697FC9002B3E7C0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BAE007182BB005C77 + D3007B90D7006979B200A3ADCF00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CB + EE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C4CE + EF00CFD7F200A3ADD00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008093D9005466A5004059AA008393C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A008296D9005D77 + D000516DCA004C68C8004764C6006079CC002D3F810000000000000000000000 + 00000000000000000000000000008196DC00293A7500293A740033478C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E4696001F3376001F3376001F3376001F3376001F33 + 76001F3376001F3376001F3376001F3376001F3376002E469600000000000000 + 00000000000000000000000000000000000000000000354992008699DA004868 + D200607BD8008699DA005C6CA700B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00BCC8EE00CFD6EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B20036457A00324DAA00032597008494CC000000000000000000000000000000 + 000000000000000000000000000000000000000000006D83D4005669A80092A4 + E300788FDC00758DDB00768DDA004B69CD0032468B0000000000000000000000 + 0000000000008398DE00505F9800A4B1DD003E5BBD003957BB005F77C7005160 + 9400647CCB000000000000000000000000008E8C8A00BBB9B700BBB9B700BBB9 + B700BBB9B700BBB9B70029429500042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB7004F6ED70029429500BBB9B700BBB9 + B700BBB9B700BBB9B700BBB9B7008E8C8A00000000003B509D008EA3E9005D7B + E0005D7BE0008EA3E9003B509D00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00C4CEF00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000045569000546C + BD004762BF007186CE002B4BB6008496D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAE005468 + A90097A9E50092A5E5008399E1003C5ECD003448900000000000000000000000 + 0000000000003B53A2009EABD5005B75CC003252BE002D4EBB002748B70094A2 + D000364A8D0000000000000000000000000093918F00D8D8D700D8D8D700D8D8 + D700D8D8D700D8D8D7002F4AA4001942CD001D46CE001E46CE001E46CE001E46 + CE001E46CE001E46CE001E46CE001C45CE005474E1002F4AA400D8D8D700D8D8 + D700D8D8D700D8D8D700D8D8D70093918F00000000003D54A40095A9ED006885 + E6006885E60095A9ED003D54A400A5B6F000A5B6F0001442D9001442D9001442 + D9001442D9001442D9001442D9001442D9001442D9001442D9001442D900A5B6 + F000A5B6F000C3CEF10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003C54A300516CC7004F6B + C8007184C600344581007184C6009BABE0000000000000000000B9C6F1002E42 + 8800B9C6F1000000000000000000000000000000000000000000000000006E86 + D700384E9A00384E99004264D4004062D200374B950000000000000000000000 + 00000000000034488D0094A5DF005470CD004765C8004260C6003C5BC200788C + D0003143840000000000000000000000000098969400F5F5F400F5F5F400F5F5 + F400F5F5F400F5F5F4003652B4003D63E300476BE300486CE400486CE400486C + E400486CE400486CE400486CE400466BE3005D7DEA003652B400F5F5F400F5F5 + F400F5F5F400F5F5F400F5F5F40098969400000000004058AB009EB1F200738E + EB00738EEB009EB1F2004058AB00A9BAF300A9BAF3001443DE001443DE001443 + DE001443DE001443DE001443DE001443DE001443DE001443DE001443DE00A9BA + F300A9BAF300C7D0F30000000000000000000000000000000000000000000000 + 0000CED7F60092A4E3006179C70033488F002D3C71005568AA004161CB007287 + CC00334687004A5EA40033468700A6B2DA0000000000BAC6F2002F4489004A5E + A4002F448900BAC6F20000000000000000000000000000000000000000000000 + 0000000000003D54A400486BDF004669DC003C529F0000000000000000000000 + 0000000000003D55A5008294D3007F95E0006D86DA006882D700647FD6006982 + D60035498E0000000000000000000000000099989600A3A19F00A3A19F00A3A1 + 9F00A3A19F00A3A19F003D5DC6007994ED0088A0EF00A6B7F200B5C4F500B5C4 + F500B5C4F500B3C2F400A2B4F200859EEF006382EB003D5DC600A3A19F00A3A1 + 9F00A3A19F00A3A19F00A3A19F0099989600000000004660B700B2C2F80094AB + F60094ABF600B2C2F8004660B700B0C0F800B0C0F80088A1F50088A1F50088A1 + F50088A1F500B0C0F80088A1F50088A1F50088A1F50088A1F50088A1F500B0C0 + F800B0C0F800CBD5F70000000000000000000000000000000000536BBE004C5F + 9F004A66C5003857C0002447BA007288D200344889004F6FDB004258A4004F67 + B9004A6BD800123DCC004A6BD8004F67B9003950A1004F67B9004A6BD800123D + CC004A6BD8004F67B90000000000000000000000000000000000000000000000 + 0000000000004058A9004B6EE3004A6DE1003E55A50000000000000000000000 + 0000000000006F85D7005A6DB00094A7E6008197E2007E95E0007E95E0005673 + D400384C93000000000000000000000000000000000000000000000000000000 + 000000000000000000004C6BD2003F5EC8003F5EC8003F5EC8003F5EC8003F5E + C8003F5EC8003F5EC8003F5EC8003F5EC8003F5EC8004C6BD200000000000000 + 000000000000000000000000000000000000000000004962B900BFCDFA00ACBD + F800ACBDF800BFCDFA004962B900B4C4F900B4C4F9001647EC001647EC001647 + EC001647EC00B4C4F9001647EC001647EC001647EC001647EC001647EC00B4C4 + F900B4C4F900CED8F800000000000000000000000000000000003A4F96005A74 + C900042FC000042FC000042FC000728ADB003A4F96005273E200485FAF00536E + C4004B6EE3000535D8001240DA004B6EE300536DC4004B6EE3001240DA001240 + DA004B6EE300536EC40000000000000000000000000000000000000000000000 + 000000000000435CAF004F72E8004D70E5004159AA0000000000000000000000 + 00000000000000000000465FB500586CB2009BADE80097A9E8008BA0E5004969 + D5003A5099000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003C59BC00708CEB006683E6005374 + E1004F70DE005070DA004F6ED700314A9A000000000000000000000000000000 + 000000000000000000000000000000000000000000004A63BB00CAD5FB00BFCD + FA00BECCFA00CAD5FB004A63BB00B7C7F900B7C7F9001849EC001849EC001849 + EC001849EC00B7C7F9001849EC001849EC001849EC001849EC001849EC00B7C7 + F900B7C7F900D0D9F800000000000000000000000000000000004056A3005071 + DE000433CF000433CF000433CF00728DE4004056A3005779E9007F96E3004962 + B7005772CF001344E7000539E6001344E700476DED001344E7000539E6004C71 + ED005772CF00455EB70000000000000000000000000000000000000000000000 + 0000000000004862B9005579F0005578EE00465FB50000000000000000000000 + 000000000000000000000000000000000000BFCDF8004159A7005474E1005272 + DF004056A3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000425FC3007893EE004C6EDE00355A + D6001C45CE00042FC0004F6FD900354DA0000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00D6DEF900DCE3 + F900DBE2F900D6DEF9004C66BD00C3D0FA00C5D1FA00305CEE00305CEE00305C + EE00305CEE00C5D1FA00305CEE00305CEE00305CEE00305CEE00305CEE00C5D1 + FA00C3D0FA00D6DEF900000000000000000000000000000000004A64BB006384 + F3004C72F1004C72F1004C72F10088A1F5004A64BB005E80F2003862EF005D80 + F2008CA2EC005E78D5005378F1001748EC001748EC001748EC005378F1004A64 + BE00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000000000004963BB00597CF200597CF2004963BA0000000000000000000000 + 00000000000000000000000000000000000000000000445CAD005878E5005676 + E3004259A9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004360C5006C88E700738DE4006E88 + E2006781DE005A77D9005976D6003750A3000000000000000000000000000000 + 00000000000000000000000000000000000000000000536ECA004D67BE004D67 + BE004D67BE004D67BE004D67BE00C9D5FB00CBD6FB003E67F0003E67F0003E67 + F0003E67F000CBD6FB003E67F0003E67F0003E67F0003E67F0003E67F000CBD6 + FB00C9D5FB00D9E0F900000000000000000000000000000000004B65BD006F8D + F3006F8DF3006F8DF3006F8DF30095ACF7004B65BD006283F200466DF0006888 + F30092A7EC006780D7006787F300315DEF00315DEF00315DEF006686F3004C66 + C000BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000004A64BC005D80F2005C7FF2004A64BC0000000000000000000000 + 000000000000000000000000000000000000000000004760B3005D7DEA005B7B + E800455DAF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F6DD3004360C500405DBC003F5A + B8003E58B4003B54AC003952A900435EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004F68BF00CFD9FB00D2DBFB004B71F1004B71F1004B71 + F1004B71F100D2DBFB00B1C1F900B1C1F900B1C1F900B1C1F900B1C1F900D2DB + FB00CFD9FB00DCE3F900000000000000000000000000000000004C66BE007995 + F40090A8F60090A8F60090A8F600A0B4F7004C66BE006586F3007391F40097AB + ED00536CC3007C97F400567AF2004C72F1004C72F1004C72F100567AF2006D85 + D9004E68C100BFCDF60000000000000000000000000000000000000000000000 + 0000000000004D67BE006485F3006485F3004D67BE0000000000000000000000 + 000000000000000000000000000000000000000000004C66BD006787F2006484 + F0004A63B9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200D9E1FC00DDE4FC006586F3006586F3006586 + F3006586F300DDE4FC006586F3006586F3006586F3006586F3006586F300DDE4 + FC00D9E1FC00E3E8FB00000000000000000000000000000000004E68C00089A0 + EC00AFC0F900B9C8F900B8C7F900ACBDF8004E68C0006C8BF3005E77CA006D86 + DA009CB1F700819BF50087A1F5009EB3F7007D93DE009DB2F70087A1F50088A2 + F60099AFF7006C85DA0000000000000000000000000000000000000000000000 + 0000000000004E68BF006888F3006E8DF3005B73C4004E68C100839AE700BFCD + F60000000000000000000000000000000000000000004E68BF006B8AF3006989 + F3004D67BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000526CC300DEE5FC00E1E7FD00E2E8FD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E1E7 + FD00DDE4FC00E4EAFB00000000000000000000000000000000006681DA00768C + D400B5C5F900B9C8F900B4C4F900A7B9F8004F69C100718FF4006179CC007189 + DC00ACBDF800A1B5F700AFC0F9008397DF00536EC7008297DF00AEBFF800A1B5 + F700AABCF8006F89DC0000000000000000000000000000000000000000000000 + 0000000000004F69C0006B8AF300849EF500B9C7F700A8B8ED00768AD1005C74 + C500536CC0007991E300AEBEF30000000000000000004F69C0006F8DF3006D8C + F3004F69C0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400E2E8FD00E6EBFD00CDD8FB00CDD8FB00CDD8 + FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00E6EB + FD00E2E8FD00E6EBFB0000000000000000000000000000000000000000006881 + DB00657BC9007388D2008196DB008EA5F000506AC2008FA7F600ADBCF0005D76 + CA00879CE000B4C4F900879CE0005D76CA00C1CDF600556FC800869ADF00B3C3 + F900879BE000556FC80000000000000000000000000000000000000000000000 + 000000000000516BC2007290F400829CF500819BF500809BF5007E99F50089A2 + F6009BB0F700B4C4F900B7C7F900AEBEF200788ED600647BC8007C97F4007693 + F400516BC2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600E7ECFD00EBF0FD0096ACF70098AEF70098AE + F70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF700EBF0 + FD00E7ECFD00EBEFFD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871CF00A8B9F600AABC + F800B6C3F100677FCE00AEBEF000B3C3F9000000000000000000C1CDF6005874 + CF00C1CDF6000000000000000000000000000000000000000000000000000000 + 000000000000526CC3007391F40087A1F50086A0F500859FF500839EF500829D + F500829CF5007F9AF50086A0F50099AFF700B9C8F900C2CFFA008CA5F6007A96 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005771C800E9EEFD00EDF1FE0095ACF7009EB3F7009FB3 + F7009FB3F700A0B4F700A0B4F7009FB3F7009FB3F7009EB3F7009BB0F700EDF1 + FE00E9EEFD00EDF1FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758BD200ACBC + F500A9BBF800C9D5FB0096ACF700A1B5F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006384F30093AAF6008FA7F6008BA4F60089A2F60088A2 + F60087A1F500849EF500839EF500829DF500819BF50087A1F500839EF5007F9A + F500536DC4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C900EAEFFD00ECF0FE00EEF2FE00EFF3FE00EFF3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00ECF0 + FE00EAEFFD00EFF2FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006883DC00768B + D300A7B9F400849EF5007592F4009EB3F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0005D77CF005771C700637CCF007993E90086A0 + F40095ACF70097ADF70092A9F6008FA7F6008DA5F6008BA4F6008AA3F60086A0 + F500556FC6000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009E9C9A009997 + 9500959391008B89870000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005B76D2005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A7ED009DAFEE0086A0F50094ABF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF90093A7ED005874CD005C75 + C900647ED300879EEB008EA6F60099AFF70099AFF70094ABF60090A8F6008AA3 + F6005670C7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D76CA0096A8E7008DA5F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CED8 + F800859CE9005771C9006179CC006680D60092A8F00097ADF7009EB3F70089A2 + F6005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005B74CB008FA2E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF3007C93E4005771 + C8005771C9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C2008FA0D5003A4A + 7A003A4A7A00C0C0C000C1C1C100C7C7C700D5D5D500DCDCDC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C700C0C0C0006679B80027325B0027325B0027325B0027325B002732 + 5B0027325B0027325B0027325B0027325B0027325B00273462007385C800C7C7 + C700D6D6D6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A4B82004B5B + 94004B5A9300B2BFEE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002A3A750003279E0003279E0003279E0003279E000327 + 9E0003279E0003279E0003279E0003279E0003279E00435DB6003F58B0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D4D4D400C5C5C50030428100273567002735670027356700273567002735 + 670027356700273567002735670027356700273567002F428100D1D1D1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B8C6F2003D4E8E003F59B2000F30 + 9F000F309F004B5E9F003D4E8E00B8C6F2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D3D7A00092DA5006077C400768ACC00092DA5006077 + C40096A6D800092DA5006077C4008A9BD4000328A300435EBA004059B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D4188008895C1008895C1008895C1008895C1008895 + C1008895C1008895C1008895C1008795C1006474A9002D438D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C8F2003D5091004C5FA1000F31A3000327 + 9F0003279F003F5AB6004C5FA1003D5091000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E407F00092EAA008C9DD700B5C0E600092EAA008C9D + D700C5CEEB00092EAA008C9DD700BDC7E800042AA900425EBD00415AB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F200283C8200283C8200283C8200283C8200283C + 8200283C8200283C8200283C8200283C82002E479500BAC6F200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DEDEDE00DEDEDE00CECECE00CECECE00C7C7C700C0C0C000C0C0 + C000C0C0C000C0C0C000C0C0C00092A2D700394B8A0093A2D800C0C0C000DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003F5193004C61A500435EBB000328A3000328 + A3000328A3000F32A800435EBB004C61A500BBC8F20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000334688000A31B5006E85D30091A2DD000A31B500607A + CF0098A8E0000A31B500607ACF0091A2DD00042CB4004361C700435CB4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002B408A00283C7E00283C7E00283C + 7E00283C7E00283C7E00283C7E002B408A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007F92D8003E4C7E0093A5E4000000 + 000000000000BDC9F300374E9D004F68BC004A6FE800657ECF00455FBB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004153940041539400415394001338B100042A + AB00042AAB004360C1004153940041539400465CA90000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000035498E000A33BB0091A3E000B5C1EA000A33BB008C9F + DF00BDC8ED000A33BB008C9FDF00CDD5F100042EB9004362CA00445DB5000000 + 0000000000000000000000000000000000003A53A7002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E003A53A7000000000000000000000000000000 + 0000000000000000000000000000000000002E4185005467A7005068BB000000 + 0000000000003950A000506ABE004A6EE5006C8BF1007389D4004661BC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425596001439B500042B + B000042BB0004361C40042559600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000384B9300042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF004363CF00455EB6000000 + 0000000000000000000000000000000000002F44910094A7E90099ABEA009BAD + EA009BADEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009BAD + EA009AACEA0099ABEA008CA1E7002F4491000000000000000000000000000000 + 00000000000000000000000000008296DB0043528900516BBE00384C95000000 + 0000BDC9F400516BC1004A6EE600204EE800738AD500435DB600BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D64B7004F65B20000000000000000000000000043569900143ABA00042D + B500042DB5004361C700435699000000000000000000000000004960AF00BAC9 + F300000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003C529D000A36CA008CA1E600B5C3EF000A36CA008CA1 + E600B8C5EF000A36CA008CA1E600C1CCF2000432CA004365D7004760B8000000 + 00000000000000000000000000000000000032499900617EE100708AE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400708AE4009CAEEC00324999000000000000000000000000000000 + 0000000000000000000000000000475994004D69C7000932BD00556DBD003E54 + A400556EC700204FEB006C8BF300758BD700BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B5004665CC004559A0000000000000000000000000004559A0001C42C3000D36 + BF000D36BF004766CF004559A0000000000000000000000000004559A0005067 + B700445AA300BCCAF40000000000000000000000000000000000000000000000 + 000000000000000000003F55A2000735D0000735D0000735D0000735D0000735 + D0000735D0000735D0000735D0000735D0000735D0004467DB004862B9000000 + 000000000000000000000000000000000000334B9D005D7BE1006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3009BAEED00334B9D000000000000000000000000000000 + 0000000000000000000000000000566AB2003356CB000431C6005D78D7005570 + C9004C71ED006C8BF300758CD7004761BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C63B6005B70 + B6004969D300465AA300465AA300465AA300465AA300465AA300284DCA001A42 + C7001A42C7004D6CD300465AA300465AA300465AA300465AA300465AA3004666 + D200536ABB00445CA70000000000000000000000000000000000000000000000 + 000000000000000000004259A800103ED700A0B2EF00A0B2EF00103ED700A0B2 + EF00A0B2EF00103ED700A0B2EF00A0B2EF00103ED700486BE0004963BA000000 + 000000000000000000000000000000000000354DA1005474E1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE10099ACEE00354DA1000000000000000000000000000000 + 00000000000000000000A8B7ED005470CF000E3ACC000434D1004268E800476D + ED002050ED00778CD8004862BC00BFCCF5000000000000000000000000000000 + 000000000000000000000000000000000000000000004D65B8005E72BA00516F + D5005472D8005C77D1005974D1005974D1005A74D1005C77D1002A50CF00274D + CD00274DCD005876D9005D78D1005A74D1005974D1005974D1005B75D100284E + CE004D6DD700556DBE00BDC9F400000000000000000000000000000000000000 + 000000000000000000004760B3005B668B008895BE008996BF008B98C1008C99 + C2008D9AC3008F9CC500909DC600919EC7008B9ACB005073E9004B65BC000000 + 0000000000000000000000000000000000003952A9004065E000466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE10093A8EE003952A9000000000000000000000000000000 + 000000000000AAB9EF004D61A5000D3CD7000537DE000539E600053AEB000C3F + EC005579F1006B85D8005F76C6004B65BE009DB0EE0000000000000000000000 + 0000000000000000000000000000000000004B63B7005574DC003A5FD9003C61 + D9004064DB003F63DB003F63DB003F63DB003F63DB003F63DB004064DB004064 + DB004064DB004064DB004064DB003F63DB003F63DB003F63DB003F63DB003F63 + DB003B60D900395ED900556FC3004B63B7000000000000000000000000000000 + 000000000000000000004A62B70039456E0054659F005566A0005869A300596A + A4005B6CA6005D6EA8005F70AA006071AB00919DC6005477ED004C66BD000000 + 0000000000000000000000000000000000003B55AC00385FE0003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E10091A7EF003B55AC000000000000000000000000000000 + 0000000000005E77CC005971C5000537E1000539E800053AEB001244EC002654 + EE003B64EF007B97F40086A0F500839BEB006A80CB00526DCA00000000000000 + 0000000000000000000000000000000000004D65BA005777E2004266DE00486B + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF00486BDF004266DE005770C7004D65BA000000000000000000000000000000 + 000000000000000000004C66BD0036426A0051629B0052639C0054659E005667 + A0005768A1005A6BA4005B6CA5005C6DA6008E9AC200597CF1004D67BE000000 + 0000000000000000000000000000000000003C56AE002E56DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE008EA4EE003C56AE000000000000000000000000000000 + 0000D1DAF8004D62AE005B79DF00053AEA00053AEB00093DEB002E5AEE00426A + F000567AF200809BF50093AAF600AEBFF8007287CE00546ECB00000000000000 + 000000000000000000000000000000000000BFCBF5005C76CB006381E7005274 + E3005778E5005475E4005274E3005274E3005374E3005677E5005979E5005979 + E5005979E5005979E5005677E4005374E3005274E3005274E3005475E4005576 + E4005374E3006381E7004A63B600BFCBF5000000000000000000000000000000 + 000000000000000000004F69C000333E63004A5A8F004B5B90004E5E93005060 + 9500516196005464990055659A0056669B008A95BB006283F2004F69C0000000 + 0000000000000000000000000000000000003D57AF001C47D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D80089A0EB003D57AF000000000000000000000000000000 + 0000546BBC005C7CE8001849EC001446EC002856EE003D66EF006D8CF3009BB0 + F700BDCBF9007487CE00536EC90091A5EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5004D66BC005C77 + D0005F7FEC004C65B8004C65B8004C65B8004C65B8004C65B8007792EE00738F + EE00738FEE007994EF004C65B8004C65B8004C65B8004C65B8004C65B8005E7F + EC005C77D0004D66BC0000000000000000000000000000000000000000000000 + 00000000000000000000506AC100313C5F004857890049588A004C5B8D004D5C + 8E004F5E90005160920053629400546395008994B7006686F300506AC1000000 + 0000000000000000000000000000000000003E58B0001340D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D500869DE9003E58B0000000000000000000000000000000 + 0000647DD4003D66EF000A3EEB002F5BEE00446BF0006888F300BAC8F800A2B1 + E6006E83CD009FB1EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004D66 + BF004F74ED004D66BB000000000000000000000000004D66BB007F9AF1007E99 + F1007E99F1007893F0004D66BB000000000000000000000000004D66BB005A76 + D2004D66BF00BFCCF50000000000000000000000000000000000000000000000 + 00000000000000000000516BC2002F395A004554840046558500485787004A59 + 89004B5A8A004E5D8D004F5E8E00516090008690B2006A8AF300516BC2000000 + 0000000000000000000000000000000000003F59B1000B39D3000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D200839AE8003F59B1000000000000000000000000000000 + 00006280E8002654EE002251ED005C7FF20094ABF600B7C6F6006E84CE005C77 + D400AEBEF3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005673D5004E68BF000000000000000000000000004E68BF0089A2F5008BA4 + F5008BA4F5007C97F4004E68BF000000000000000000000000004E68BF004E68 + C100BFCDF6000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC4002B3452003F4C7700414E790043507B004451 + 7C0046537E00485580004A5782004B588300838CAB007391F400546DC4000000 + 000000000000000000000000000000000000415BB2000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE008299E600415BB2000000000000000000000000005972 + CA006183F2008FA7F600AABAF100637BCC006B84DD00D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC1009FB3F700A4B7 + F800A4B7F80086A0F500506AC100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC50029314E003C4870003E4A7200404C7400424E + 7600434F770046527A0047537B0049557D008189A6007794F400556EC5000000 + 000000000000000000000000000000000000415BB3000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB008198E400415BB30000000000000000007C93E6007A8F + D700A2B4EF008699DA005C75CC00D3DBF9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC200516BC200516BC200ADBEF800B1C1 + F900B1C1F90091A8F600516BC200516BC2005973CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600272F49003B466C003B466C003E496F003F4A + 7000414C7200434E740045507600465177007E86A1007B97F400566FC6000000 + 000000000000000000000000000000000000425CB4000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9008198E300425CB40000000000000000005872CA009BAC + E7005C75CC007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000627CD2005F7FEA00748FEC00B7C7F900BDCB + FA00BDCBFA00A7B9F8007E98ED006080EA00546FCA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005871C800242B4400343D5C0038426200384262003943 + 63003B4565003D4767003F496900404A6A00787F99007E99F5005871C8000000 + 000000000000000000000000000000000000445EB5000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4008197E200445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF600536DC6006781DA00AEBFF800C2CF + FA00C3D0FA0094ABF6006E87DB00536DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C90027304F00262D4400282E4400292F4500292F + 4500292F4500292F4500292F4500292F4500515870007794F4005872C9000000 + 000000000000000000000000000000000000445EB500889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCDF600536EC70094ABF6009FB3 + F700A0B4F700718ADD00536EC700BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872CA00879FF0008FA6F00093A9F20095AAF20095AA + F20095AAF20095AAF20094AAF20092A8F200849DF0007A93E7005872CA000000 + 0000000000000000000000000000000000004C67C400445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB5004C67C4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C1CDF6006F88DC00829C + F500829CF500556FC700C1CDF600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005874 + CF005874CF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C0C0 + C0004153940034458000344580009FADDD00C0C0C000C0C0C000C0C0C000C0C0 + C000C0C0C000C0C0C000CBCBCB00CECECE00CECECE00DADADA00DEDEDE00DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B8C5 + F1002338820014309000143090002F407C00A8B8E80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BECCF4003D56AA003A57 + BC008CA2EB008695CC008695CC002650DD003A57BC003D56AA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C400C1C1 + C1003E5194003E5194003E5194003E5194003E5194003E5194003E5194003D50 + 92003B4D8B003647800034447C00324177002C3B6C002A38670029366200B1BC + E500C4C4C400DDDDDD00000000000000000000000000D3D3D3005F5D5E005E5C + 5C0037363800B9B9B90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BB5004967CD003761 + EE008A9AD4004964C1004964C10095ABF5003761EE004967CD00BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000637A + CC0091A4E50095A9EC0095A9ED0091A6ED008EA4ED008BA2ED00849CEB008199 + E9007E96E400788FDB00758CD7007187D1006A7FC500687CC0006F7FB700455A + A30000000000000000000000000000000000000000007B7979008D8B8A007D7B + 7A006462620039383900CFCFCF00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC9004068F00097AC + F5004A65C20000000000000000008E9DD6009EB2F600476EF000455DB700BECC + F500000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000405A + B4008CA5F60089A2F60089A2F6007C97F4007391F4006989F300567AF2004C71 + ED004469E6003157D600274DCD001D43C3000A2FAE000328A3003652AF002636 + 6A000000000000000000000000000000000000000000858383009E9B9A00A19F + 9E00676564006462620039383900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A5B6EF006283F200697F + CC00000000000000000000000000000000004C67C30095A4D9006888F3006E86 + D8004861BA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435D + B500A3B6F800ACBDF800A2B6F8008DA5F600829DF5007894F4006283F2005679 + EE004B6FE700365BD7002C51CE002146C4000B30AE000328A30003269B002838 + 6D00000000000000000000000000000000000000000000000000D3D3D3008583 + 8200A19F9E007D7B7A006765640039383900CFCFCF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000687AB8007084C600566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC007084C6002333670000000000000000009AAADC00A6B9F8007591 + F1004D67C4000000000000000000000000009BAFEC004159B200B2C2F8007391 + F4006F85D0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455F + B700A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A39 + 6D0000000000000000000000000000000000000000000000000000000000D3D3 + D3009E9B9A00A19F9E007D7B7A006462620039383900CFCFCF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004259A600344FA700405C + BB001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF003956B900344FA70027366E0000000000000000004F67BD00B9C4EA00B1C1 + F9006F85CF004E69C50000000000465EB6006177C1005266B10095A3D300839E + F50099ACEC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004761 + B800A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A3A + 6F00000000000000000000000000000000000000000000000000000000000000 + 0000858382009E9B9A00A19F9E00676564006462620039383900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425CB300032491003550 + AB001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3F + B2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2003251 + BA003550AB000324910029397200000000000000000000000000BFCCF5005169 + BF00C5D1FA00A5B7F6007D91D3007A8DCB00A5B8F7006485F3005872C5004357 + 9F008796CD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B65 + BC00A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F40013192E000000 + 0000171C2C00365BD7002C51CE002146C4000B30AE000328A30003269B002D3D + 7100000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D30085838200A19F9E007D7B7A006765640039383900CFCF + CF00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435EBB000429A5000429 + A500324FB0002C4DBC00163BB500163BB500163BB500163BB500163BB5001235 + A8001235A800163BB500163BB500163BB500163BB500163BB5002C4DBC000327 + 9E000429A5000429A5002E3F7D0000000000000000000000000000000000BFCC + F500C4CCEC00C8D4FB00A9BBF700425DB90097A7DD00A4B7F8005E80F1005A73 + C7003B519C000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4001F1F1F000C0C + 0C001F1F1F00365BD7002C51CE002146C4000B30AE000328A30003269B002F3E + 7200000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D3009E9B9A00A19F9E007D7B7A00646262003938 + 3900CFCFCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425FBF00042AAA00042A + AA000328A400304EB200294CBE001338B7001338B7001338B7001136AF000E2F + 9E000E2F9E001338B7001338B7001338B7001338B700294CBE00304EB200042A + AA00042AAA00042AAA0030428200000000000000000000000000000000000000 + 0000536BC100C4CCEC00C8D4FB008E9ED8004F67BA0098A7DE006485F3005E80 + F1005B74C800BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F69 + C000A5B8F800ACBDF800A2B6F8008DA5F600829DF5007894F4003C4257003333 + 330041465600365BD7002C51CE002146C4000B30AE000328A30003269B002F3F + 7400000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000858382009E9B9A00A19F9E00676564006462 + 6200393839000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004361C400052CB000062D + B100062DB100052BAC00304FB6001138B9001138B9001138B9000F31A3008598 + D8008598D8000E33B1001138B9001138B900264AC0002F4EB600042AAB00042B + B000042BB000042BB00033468700000000000000000000000000000000000000 + 000000000000BFCCF500556DC300D5DCF600D5DCF6008E9DD6009AA9E000A4B7 + F8006485F3005D76CA0040549E002D44910019379D002D438F00374B90000000 + 000000000000000000000000000000000000000000000000000000000000536D + C60090A8F6009AAFF7009DB2F7008FA7F60086A0F5007E99F5006C8BF3006383 + F000597AE9004769DA003E60D2003457C9002244B6001C3DAC003652AF003141 + 7600000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D30085838200A19F9E007D7B + 7A005A585700373A4600354A9200425BB3000000000000000000A6B6EC002C3F + 820000000000000000000000000000000000000000004967CD001A40C0002045 + C2002247C3002146C3002146C3003F5DC300284CC3001A3DB1007791E5004C6D + DC004B6CDB008C9EDD00183BAF003052C4001C41BF001D43C2001C42C2001C42 + C200193FC000133ABF00384C9200000000000000000000000000000000000000 + 00000000000000000000D2DBF8005873CE005873CE00657FD9004E68C1009AAA + E200A4B7F8005E80F1005E77CB003E55A3006A84D8000D37C2002846AA00BDC9 + F40000000000000000000000000000000000000000000000000000000000718A + E1008CA3EE0093A8F00096ABF00093A8F00091A7F1008FA5F00089A1EF00879F + ED00849BE8007E94DF007B91DA00788DD4007286C9007083C5007283BE004F66 + B400000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D3009E9B9A008D8C + 8A00646262009E9D9D0034343C0052629D00899DE3006B82D2003B4D8D003A49 + 8000CED7F600000000000000000000000000000000004C6BD200254AC8002D52 + CA002F53CB002F53CB002F53CB00294DC5003B57B70091A3E0005878E1005777 + E0005777E0007993E70091A3E0003855B6002B50CA002B50CA002B50CA002A4F + CA00264BC9001C43C6003A509700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600506A + C3009BABE2006485F3005E80F1005F78CC008C9CD100839BE9001543DA00475F + B300BFCCF5000000000000000000000000000000000000000000000000000000 + 00005771C800888C9C0094939200888C9C005771C8005771C8005771C800556E + C400516ABD004B62AE00485EA7006D717D006C6B6B005E616D003A4A83000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000858382008885 + 8500BBBAB900BBB9B7009E9D9D0032343D00485CA6004A5EA500556FC5004354 + 8E00A5B6EB00000000000000000000000000000000004E6DD6002F54CF003B5E + D2003F61D3003F61D3003E61D300274ABC0096A7E200849CEA006482E5006381 + E5006381E5006381E500839BEA0095A7E2003457CD003A5DD200395CD200395C + D2003257D000254CCD003D529D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DF00516DCC009EADE400A4B7F8006485F3006C80C5004E67BF0093A3DD003761 + EF005270D600516AC30000000000000000000000000000000000000000000000 + 00000000000080808000C6C6C600808080000000000000000000000000000000 + 0000000000000000000000000000808080004646460080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C3CE + F20083838700F0F0F000CCCBCA00BBB9B70032343D002347BF000534D400556C + B6003B4D8F004057A8000000000000000000000000005575E0004669DD005877 + E0005D7BE1005373DE003759CA0098ACF0007B95EC007B95EC007B95EC007B95 + EC007B95EC007A95EC007A95EC007A95EC009EAEE7003457C9004E6FDD005777 + E0004B6DDD00375CDA00435AA700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B75 + D2006B87E6005A72C800A0AFE500AEBFF8007F93D7009FB1EF005671CD009FB3 + F600496FF0005E7AD900BFCDF600000000000000000000000000000000000000 + 00000000000080808000CBCBCB00808080000000000000000000000000000000 + 0000000000000000000000000000808080004C4C4C0080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004660 + B9006A7CBD00CFCECE00F0F0F000CCCBCA009E9D9D002B3049000537DE004668 + D7005772CC00576CB300475EAE0000000000000000005878E4005072E2006683 + E6006885E5004162CF00A3B3E900879FEF00879FEF00879FEF00879FEF00869E + EF00869EEF00869EEF00859EEF00869FF0009EB1F200A1B1E8003E5FCE006683 + E6005979E4003F64DF00465DAE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D3009AACED006C85D8005770C7008598D9005872CA0000000000000000009AA8 + DF00A8BAF700597CF200526BC400000000000000000000000000000000000000 + 00000000000080808000D0D0D0007F7F7F000000000000000000000000000000 + 0000000000000000000000000000888888005050500080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004E69 + C6006A80CE0088888B00CFCECE00F0F0F00093919000383D55000539E8000534 + D4002F54D3005470CE005D74C60000000000000000005A7BE800597AE700728D + EA004D6DD700A4B4EA00ACBDF60093A9F20093A9F20093A9F20092A8F20092A8 + F20092A8F20091A7F20091A7F20091A7F20091A7F2009DB1F300A3B3EB00718D + EA006482E800476CE5004961B300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005972C800A9BBF8007995F2007389D6000000000000000000000000000000 + 00005872CF009AAAE3008FA4EB005C77D4000000000000000000000000000000 + 00000000000080808000D4D4D40082828200C6C6C60000000000000000000000 + 00000000000000000000C6C6C600969696006060600086868600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008FA1E00099AAE300848692004A6AD700305CEE001E4EED004B70 + EE005E77CB004A63BB000000000000000000000000005C7EEE006383F0005273 + E000B4C4F800ADBEF700ACBDF700ACBDF700ACBDF700ABBCF700ABBCF700ABBC + F700ABBCF700AABCF700AABCF700AABCF700A9BBF700A9BBF700A9BBF700A9B9 + EE00486BDF004D72ED004F68BE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF600BDC8EE00B4C4F90089A2F4005973CF0000000000000000000000 + 00005973CF00899DDE00B1C0F1005D78D5000000000000000000000000000000 + 00000000000090909000C0C0C0008B8B8B008A8A8A0000000000000000000000 + 000000000000000000008A8A8A00B1B1B1006A6A6A0096969600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A1B1EB009AAFF7007995F4005479F100436BF000305CEE003B64 + EF00617CD8004F69C4000000000000000000000000005C7FF200466BE500A6B6 + EF00ADBEF800AFC0F900B0C0F900B0C0F900B0C0F900B0C0F900B0C0F900AFC0 + F900AFC0F900AFC0F900AFC0F900AEBFF800ADBEF800ADBEF800ABBDF800AABC + F800A0B2ED003A61E400526CC300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D74CA00C4CDEF00BECCFA008297DB005974CF00000000005974 + CF008297DB009CB0F5009DACE100718AE2000000000000000000000000000000 + 000000000000B0B0B000A4A4A400ADADAD008A8A8A0086868600000000000000 + 000000000000868686008F8F8F00A4A4A40076767600BBBBBB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FB0EF00B0C0F700ACBDF8009BB0F7006787F3005479F1005E80F200486F + F0005A7CED00566EC1000000000000000000000000005578EB0098ACEE0095AC + F7009AAFF7009DB2F7009EB3F7009EB3F7009FB3F7009EB3F7009EB3F7009EB3 + F7009EB3F7009EB3F7009DB2F7009DB2F7009CB1F7009BB0F70099AFF7008EA6 + F6008BA4F60092A7ED00546EC500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005F76CC00C8D4FB00A9BBF7009BACE400A9BB + F700C8D4FB00C7D0F000C1CDF600000000000000000000000000000000000000 + 00000000000000000000D3D3D300D6D6D600DFDFDF00CECECE00ADADAD009C9C + 9C0097979700BBBBBB00C0C0C000B4B4B400D3D3D30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE8005B76D3005B76D300536FCA009EB3F70093AAF6007086D1005B76 + D3005B76D3005B76D300000000000000000000000000617ACC005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF600C7D0F000CED8FB00B7C7F900CED8 + FB00C7D0F0005F76CD0000000000000000000000000000000000000000000000 + 000000000000000000000000000080808000B3B3B300E1E1E100F3F3F300EEEE + EE00E8E8E800CBCBCB00A6A6A600808080000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF30095AAF200889EE600566FC8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005D75CC00A1B0E200CED7F400A1B0 + E2005D75CC00C1CDF60000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B0B0B0008A8A8A00808080008080 + 8000808080008A8A8A00B0B0B000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007289D700637BCE0092A7EC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F00027377300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F1002B3E7C004E5E9400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0031458D0000000000354A88002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D7000D2D2D200000000000000000000000000000000000000 + 00000000000000000000000000002E4282004B5D9F004961B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000003269B000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A9000293973000000000030438600E6EAF700E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F60000000000000000000000000000000000000000000000 + 000000000000BAC7F200354990003F5EC4001E42BA004A65BD00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F80000000000000000000429A8002E3F7E000000 + 00004F70DE004F70DE004F70DE004F70DE004F70DE0039509D00354A9100506E + D400506ED400506ED400506ED400506ED400000000003A51A1005475E2005979 + E3005979E3005878E3003A51A1000000000000000000354A9200E5EAF8004364 + D2000430C2000430C2003659CE000430C2000430C2000430C2000430C2000430 + C2000430C2003659CE000430C2000430C2000430C2003659CE000430C2000430 + C2004364D200E5EAF80000000000000000000000000000000000000000000000 + 0000BCC8F300384D97004F66B1001038BF00143BBF004C67C400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF00000000000000000000000000082EAE00314284000000 + 00005073E8000537DE000537DE000537DE005073E8003E55A900394F9B004F6F + DB000432CD000432CD000432CD004F6FDB00000000004058AF005F80EF002A56 + E9002A56E9002855E9004058AF000000000000000000384E9800E5EAF9004162 + D1000432C9000432C900365BD3000432C9000432C9000432C9000432C9000432 + C9000432C900365BD3000432C9000432C9000432C900365BD3000432C9000432 + C9004365D600E5EAF90000000000000000000000000000000000000000000000 + 00003A519D005169B8003E60D1000430C300143DC7004D6AC900374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004259AC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F8000000000000000000000000001137B800334689000000 + 00004F74EF00053AE900053AE900053AE9004F74EF00425CB2003D55A5005072 + E3000535D8000535D8000535D8005072E30000000000435CB4006A8AF300426A + F000426AF0003F68F000435CB40000000000000000003B519F00DADFED004A64 + B9000937D0000A38D0003B60D9000A38D0000A38D0000A38D0000A38D0000A38 + D0000A38D0003B60D9000A38D0000A38D0000A38D0003A5FD9000A38D0000836 + D0004467DB00E6EBFA0000000000000000000000000000000000BECCF5004159 + AB003E63DE00103ED7000535D5000535D5000838D5001441D8001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001F4AD9003E55A500000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000002248C800384D95000000 + 00005B7EF2001D4DED001D4DED001D4DED005B7EF200455FB600455FB6005075 + F100053AEB00053AEB00053AEB005075F10000000000455FB6007592F4006686 + F3006686F300597CF200455FB60000000000000000004159AB00E5EAFB007E98 + ED003958C0001D48D700496DE5001D49DA001A41C3002F4FBA00B8C4EB003B5B + C6001D49DC00496DE5001E4BDF001E4BDF001E4BDF00496DE5001D4ADF001543 + DE00496DE500E5EAFB00000000000000000000000000BECCF500455EB2005871 + CB001141DF000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DE001544DF004259AD00000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000002B51D0003C519B000000 + 00006485F300305CEE00315DEF00305CEE006485F3004760B7004760B7005075 + F100053AEB00053AEB00053AEB005075F100000000004760B7007590EC008BA2 + EE008BA2EE00849DEE004760B7000000000000000000445DB100E6EBFC004A6F + EA00C7D1F2004260C6004868D3003656BF008FA1DE00D4DCF90089A1F200B0BD + E8002D52CC005074EB002854E6002854E6002854E6005074EB002854E6001C4A + E5004B70EA00E6EBFC000000000000000000000000004962BA005C77D2004A6F + ED001C4BE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001C4BE8002653E900455EB50000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000003459D7003E54A1000000 + 00006C8BF300446BF000456CF000446BF0006D8CF3004861B9004861B9005075 + F100053AEB00053AEB00053AEB005075F100000000005069C7004861B9004861 + B9004861B9004861B9005069C70000000000000000004761B700E6ECFD004D72 + EF006D8BF100CAD4F40090A1DA00D5DDFA0099AEF600476DEE00325DED00ADBE + F70092A3DD00577AF000325DED00325DED00325DED00577AF000325DED002351 + EB004E73EF00E6ECFD000000000000000000000000005E79D600577BF200466D + F0005479F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005479F1005176F1004A64BB0000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000004368E300445CAD000000 + 00007D98F5006989F3006D8CF3006A8AF3007D98F5004A64BB004A64BB005176 + F100083CEB00083CEB00083CEB005176F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004B65BC00E6ECFD007290 + F4006283F2006586F3006586F3006586F3006586F3006586F3006586F3006586 + F3008CA5F600667FD2006586F3006586F300607FE6005874D1005975D400577B + F2007592F400E6ECFD000000000000000000000000004E67C0006681D9006A8A + F3006E8DF300718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F4006F8DF3006586F3004B65BC000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000004D71E9004760B3000000 + 0000829DF5007794F400829CF5007894F400829DF5004C65BC004C65BC00587C + F2001647EC001647EC001647EC00587CF2000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00E6ECFD005277 + F1004B71F1005075F1006D8CF3005075F1005075F1005075F1005075F1005075 + F1005075F100C5CEEC004667D600496CDF00657DCE00B5C1E9009EAEE1003862 + EF00567AF200E6ECFD00000000000000000000000000BFCDF6004F68C2006C86 + D9007E99F50089A2F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F600849EF5007391F4004C66BD000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005579EF004A63B9000000 + 0000829CF5007592F40086A0F5007592F400829CF5004D66BE004D66BE005E80 + F2002453EE002453EE002453EE005E80F2000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF00E6ECFD005479 + F1005479F100597CF2007491F400597CF200597CF200597CF200597CF200597C + F200597CF200CDD7F90099A9DD007E92D500CED8FB00ACBDF800C4D0F900365A + D200587CF200E6ECFD000000000000000000000000000000000000000000BFCD + F6006D86DA0086A0F500A0B4F700C3D0FA00C1CEFA00B4C4F800869EED00839C + ED00829BED00829BED00829BED00829BED00829BED00829BED00829BED008099 + ED007B95EC00728EEB004F69C0000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006787F3004F68BF000000 + 00004F69C0004F69C0004F69C0004F69C0004F69C000556FCC004F69C0006A8A + F3004068F0004169F0004068F0006B8AF3000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC100E6ECFD00577B + F2006586F3006D8CF300829CF5006D8CF3006D8CF3006D8CF3006D8CF3006D8C + F3006D8CF300829CF5007491F4006D8CF3006D8CF300829CF5006C8BF300D2DB + FA008094D700DFE5F60000000000000000000000000000000000000000000000 + 0000536CC5006E87DB0088A2F600B9C8F900B2C2F9009DB0F000506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC3000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006F8DF3005069C1000000 + 0000000000000000000000000000000000000000000000000000516AC100718F + F4004E73F1004F74F1004E73F100718FF4000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC300E6ECFD007995 + F400819BF50088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2 + F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60087A1F500839E + F500D8E0FC00E8EDFD0000000000000000000000000000000000000000000000 + 0000BFCDF600536DC6006E88DB0095ACF70092A9F6008AA1EE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F400516BC2000000 + 0000000000000000000000000000000000000000000000000000526CC3007894 + F4005C7FF2005D80F2005C7FF2007894F4000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC400E6ECFD00597C + F2006F8DF3007C97F4008FA7F600819BF500819BF500819BF500819BF500819B + F500819BF5008FA7F600819BF500819BF500819BF5008EA6F6007A96F4005075 + F1005F81F200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600708ADD006C8BF300708CEC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA00C2C0BE00B6B6 + B500A09E9D00EDEDEC008F8D8D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F600546DC4000000 + 0000000000000000000000000000000000000000000000000000546EC500839E + F5007794F4007A96F4007894F400839EF5000000000000000000000000000000 + 000000000000000000000000000000000000000000005670C700E6ECFD005378 + F100577BF2006384F3007F9AF5006E8DF3006E8DF3006E8DF3006F8DF3006F8D + F3006F8DF300829DF5006E8DF3006E8DF3006C8BF3007E99F5006082F2003F68 + F000587CF200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C8006B85DD006181EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00C2C2C200AFAD + AC00AAA8A700E2E1E00093929100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000092A9F600556EC5000000 + 0000000000000000000000000000000000000000000000000000566FC60087A1 + F500829CF50087A1F500829DF50087A1F5000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00496F + F0005A7DF2005E80F2007E99F5006183F2006183F2006283F2006283F2006283 + F2006283F2007F9AF5006283F2006183F2006183F2007D98F5005D80F2005378 + F1004B71F100E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005871C9006D86D800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00C3C2C200A09F + 9D00BFBDBC00C4C3C200ACACAC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009AAFF700566FC6000000 + 00000000000000000000000000000000000000000000000000005770C7008AA3 + F60088A2F60096ACF7008AA3F6008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8BAF8005872C9000000 + 00000000000000000000000000000000000000000000000000005872C9007D97 + EE0090A7F10097ACF20090A7F1007D97EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF5005872C9000000 + 00000000000000000000000000000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C9005B76D2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004A60B0002839760026356C00283976004A60B000A3B3EA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000042579E0036457D002E3C + 6D00283868008D9DD300C0C0C000C0C0C000C0C0C000C0C0C000C2C2C200CECE + CE00CECECE00CECECE00DEDEDE00DEDEDE00DEDEDE0000000000000000000000 + 00000000000000000000000000000000000000000000000000003B53A4002840 + 93001A3FBA003453BC003F5CBD003453BC001A3FBA000C31B0003B53A4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3B7700DBE0F100DDE2 + F200DEE3F300DFE4F300DFE4F300E0E5F300E0E5F300E2E7F400E3E7F500E3E7 + F500E3E7F500E5E9F600E5E9F600E6EAF600E8ECF700E8ECF700E8ECF700E8EB + F600E9ECF700EAEDF7000000000000000000000000003F59B0005A78DE004D67 + BE00334279002A3C780000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005069C0002E47A2000734 + C8005069BC00475AA20043579D00475AA2005069BC002D52CE002E47A2005069 + C000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D3F7F00D7DDF100C8D0 + EC00C9D1ED00CAD2ED00CBD3ED00CCD3ED00CDD4ED00CED5EE00D0D7EF00D1D8 + EF00D2D9EF00D3D9EF00D4DAF000D5DBF100D7DDF200D7DDF200D7DDF100D9DE + F200DADFF200E6EAF800000000000000000000000000415BB2006F8DF3002F58 + E2003C57B1002A38700000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003F56A9001843D5003059 + E1004059AC008A9FE600000000008A9FE6004059AC005A70BC001843D5003F56 + A900ACBCF1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448600D6DCF200C3CC + EC003E5DC4003E5DC4003E5DC4003F5EC4003F5EC4003F5EC400C9D2EF00C9D2 + EF00CAD2EF00CBD3EF00CDD5F000CDD5F000CFD6F000D0D7F000D1D8F100D2D9 + F100D3DAF100E0E5F5000000000000000000000000004A65BF00657DCF00899F + E800647ED800536DC1003F57A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B61DF002A57EE006076 + C20000000000000000000000000000000000000000008FA3E9002A57EE003B61 + DF00445DB6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000384C9700D7DEF500C6D0 + F1003F61D2003F61D2003F61D2003F61D2003F61D2003F61D200C4CEF000C4CE + F100C4CEF100C4CEF100C3CEF100C3CEF100C3CEF100C3CEF100C3CEF100C4CE + F100C4CEF100D7DEF500000000000000000000000000BFCCF5004862BC006A81 + D000556FC5003355C700506CCC004E65B40090A3E20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000486CE8003C65ED00556C + BC000000000000000000000000000000000000000000000000003963EF004A6E + E600445DB4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000032479000304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 89003045890030458900859AE00000000000000000003B519F00D9E0F700C8D2 + F4003F63DA003F63DA003F63DA003F63DA003F63DA003F63DA00C6D1F400C6D1 + F400C6D1F400C5D0F300C5D0F300C5D0F300C4CFF300C4CFF300C4CFF300C3CE + F300C3CEF300D6DDF70000000000000000000000000000000000BFCCF5004A64 + BD008FA4E8005670C400647DD100425596003645760035498F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006080EB004A6FEE005168 + BB00000000000000000000000000000000000000000000000000476EF0006080 + EB00455EB5000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005C74C5005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0003D529A0000000000000000003F57A700DBE2F900CAD4 + F6004065E0004065E0004065E0004065E0004065E0004065E000C8D3F600C8D3 + F600C8D3F600C7D2F600C7D2F600C7D2F600C6D1F500C6D1F500C6D1F500C5D0 + F500C5D0F500D7DEF80000000000000000000000000000000000000000000000 + 00004F68C1007087D40095A8E9004462C8005570CA00465AA00032458600B8C5 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008397DB006888F3006F88 + DF0000000000000000000000000000000000C9D4F8004A64BD006886EC007F92 + D100607AD3000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587BED001444E6000E2A + 8A001744DB000F2B8A001744DB000F2B8A000F2B8A000F2B8A000F2B8A001744 + DB000F2B8A000F2B8A000F2B8A001744DB000F2B8A000F2B8A001744DB000F2B + 8A001644DB000D2A8A005268B70000000000000000004761B700DEE5FB00D1DA + FA005176EF005075EF005075EF005075EF005075EF005075EF00D0DAFA00D0DA + FA00D0DAFA00CFD9FA00CFD9FA00CFD9FA00CED8FA00CED8FA00CED8FA00CDD7 + FA00CCD7FA00DAE1FB0000000000000000000000000000000000000000000000 + 0000BFCDF600506AC3007288D500637AC5004563C8003B5BC800394A86003142 + 7D00A4B3EA00293B7B00283871002E4185000000000000000000000000000000 + 000000000000000000000000000000000000000000006076C20096ACF4007391 + F4004C64BE0090A4EA000000000090A4EA004C64BE009DACDE00A0B3F3005E73 + BB004159AB000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006383EE002352ED006886 + EB00335EEF006A88EE00335EEF006985E2006985E2006985E2006986E600335E + EF006A88EE006A88EB006986E600335EEF005F71B0006883DF00335EEF006A88 + EE00325EEF006786EE00566EBE0000000000000000004963BA00E0E6FC00D4DD + FC00597CF200597CF200597CF200597CF200597CF200597CF200D4DDFC00D4DD + FC00D4DDFC00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D2DBFB00D2DB + FB00D0DAFB00DDE4FC0000000000000000000000000000000000000000000000 + 000000000000BFCDF600536CC50098AAE900637AC6004566D4003954B1003A49 + 7E0035406900576EB900566DBA00556BB400374E9900CED7F700000000000000 + 000000000000000000000000000000000000000000005C76D2008295D6009EB2 + F500859BE400697EC9006076C200697EC900859BE400A9BBF800A0AEDF004362 + CC002D4FC300BDCBF40000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006D8AEB00305CEE002B43 + 9400243D90003D63E300243D9000354C9800486CE400354C9800304896003960 + E300284192002C44940030489600385EDE007692EF005075F1003D66EF002841 + 92003960E300253E92005A70C10000000000000000004A64BB00E2E8FD00D8E0 + FC006283F2006283F2006183F2006183F2006183F2006183F200D8E0FC00D7DF + FC00D7DFFC00D7DFFC00D7DFFC00D7DFFC00D6DFFC00D6DFFC00D6DFFC00D5DE + FC00D4DDFC00DFE6FC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C800748BD900879DE8004D5D97004E65 + B4004A6AD3000430C2000430C2000430C2004162D1005971C00046589B000000 + 0000000000000000000000000000000000000000000000000000000000005D77 + D3009CABE200BECBF500BCCAF600BECBF5009CABE200687CC600798FDA0086A0 + F5004B71F1002E50C400435BAE00BDCBF4000000000000000000000000000000 + 000000000000000000000000000000000000000000007691ED00496FF0003D51 + 94006381E700394D91005D7DE6005D7DE600394D91005D7DE6005D7DE600394D + 91005D7DE6007483B3007483B3006583E6007483B3007483B3006280E4003C50 + 93005A7AE600374C93005F76C50000000000000000004D66BE00E6EBFD00DEE5 + FC007290F4007290F4007290F4007290F4007290F4007290F400DEE5FC00DEE5 + FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DCE3 + FC00DAE2FC00E2E8FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005872CA006F85D000516BBE004A6C + DC00123ED2000433D0000433D0000433D0000937D2002F56D8005775D700455E + B500BDCBF4000000000000000000000000000000000000000000000000000000 + 0000657FD9004C65BF004C65BC004C65BF00657FD900AEBEF2004C65BF007A90 + DB0086A0F5001848EB002F51C500445CAE000000000000000000000000000000 + 000000000000000000000000000000000000000000007A94EE005378F10092A7 + EE007693F40099AEF2007693F4007693F40099AEF2007693F4007693F40099AE + F2007693F40094A7E60095A8EA007995F40094A7E60095A8EA007995F40099AE + F2007391F4008DA4F1005871C40000000000000000004E68BF00E6ECFD00E1E7 + FD007A96F4007A96F4007A96F4007A96F4007A96F4007A96F400E2E8FD00E1E7 + FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00DFE6 + FC00DDE4FC00E4E9FD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AEBEF3005E6FAD004B6FE7001242 + E0000537DE000537DE000537DE000537DE000537DE000537DE001B49E1005E76 + CA00455DB2008DA2E80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004D66 + C0007A90DB004B71F1001848EB003052C500BDCBF40000000000000000000000 + 000000000000000000000000000000000000000000007B96EE00597CF2004B5C + 96004E5E93007D96E9004E5E93004E5E93007D96E9004E5E93004E5E93007D96 + E9004E5E93005A699A00576698007A94E8005A699A00576698007A94E8005060 + 9500718CE8003D519300536DC40000000000000000004F69C000E8EDFD00E3E9 + FD00829CF500829CF500829CF500829CF500829CF500829CF500E5EAFD00E5EA + FD009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009BB0 + F700E0E6FC00E6EBFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004963BC006A87E8002553EE002553 + EE002553EE007C97F4007F9AF1007C97F4002553EE002553EE002553EE002553 + EE004A70F0006983DB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCDF6007B91DC0086A0F5004B71F1003153C700475EB100BDCBF4000000 + 000000000000000000000000000000000000000000007B93E700819CF30092A9 + F600A3B6F800A4B7F800A6B9F800A8BAF800A6B9F800A8BAF800A8BAF800A6B9 + F800A8BAF800A9BBF800ABBDF800A6B9F800ADBEF800AABCF800A4B7F8009FB3 + F70094ABF60087A1F5005771C9000000000000000000526CC300EBF0FD00E7EC + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7EC + FD00E5EAFD00E8EDFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004A64BB00718DEB003E67F0003E67 + F0006888F300667CC5005A71C100667CC5006888F3003E67F0003E67F0003E67 + F000486FF000718CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004F69C3007B92DC0086A0F5001848EB003154C700485FB2000000 + 000000000000000000000000000000000000000000005872CA00495891004A59 + 9100697EC8006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82 + CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006C82 + CF006B82CE006980CE0093A8ED000000000000000000536DC400ECF0FE00E9EE + FD007693F4007693F4007693F4007693F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007693F4007693F4007693F400708E + F400E6ECFD00E9EEFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F69C4007892E700567AF200567A + F20091A3E4009DB0EE00000000009DB0EE0091A3E400567AF200567AF2005D80 + F2007794F4006B83D40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600506AC4007C92DD004B71F1001848EB003254C800BFCB + F400000000000000000000000000000000000000000000000000000000008380 + 7E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546EC500EDF1FE00EBF0 + FD00809BF500809BF500809BF500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF500809BF5007794 + F400E8EDFD00EBF0FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC0096ACF7007995 + F4005971C4000000000000000000000000005D75C500809AF10087A1F500728A + DB004F69C200BFCDF60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF6007D93DD0086A0F5004B71F1003355 + C9004A62B400BFCBF5000000000000000000000000000000000000000000918F + 8F00908D8B00918E8C00928F8D0093908E0094918F0095929000979492009895 + 9300999694009B9896009C9997009D9A98009E9B99009F9C9A009B999800A09F + 9E00B6B4B400D6D6D6000000000000000000000000005770C700F0F3FE00EDF1 + FE00839EF5008AA3F6008CA5F6008EA6F6008FA7F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008FA7F6008DA5F6008CA5F6008AA3F6007693 + F400EAEFFD00ECF0FE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3DBF9009AACEA008FA7 + F600647BC800000000000000000000000000657BC800859FF5009CB1F700516A + C400BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC6007E94DE0086A0F5001848 + EB003456CA004B63B50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871C800F0F3FE00EDF1 + FE00F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EEF2FE00ECF0 + FE00EAEFFD00EDF1FE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006278C900A2B4 + F3008A9EE2009FB1F000000000009FB1F000869BE3009BB0F700788FDD00BFCD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF600536CC500859AE0004B71 + F1001848EB003457CA00BFCBF500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900F1F4FD00F1F4 + FD00F2F5FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6 + FD00F2F5FD00F2F5FD00F2F5FD00F2F5FD00F1F4FD00F1F4FD00F1F4FD00F0F3 + FD00EFF2FD00EEF2FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005974 + CF0098AAE400B2C2F900B4C4F900ADBEF8007D93DF00566FC700C1CDF6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000566FC8008295D400A1B1E500798F + DD0086A0F5004B71F1005E78D1005169BE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005C75CC00C1CEFA00B9C8F900B7C7F9005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005874CF008DA0DF00C4CEF100657B + C5008B9FE30086A0F5006781DB00556DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A8ED009CAEE900A0B2EF008195DB00C1CDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF6005874CF00556EC300B0BD + E7007A8CCA008399E1005872CA00C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005770 + CA00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C9C9C900A1ADDA0058648C00545664005456640054566400545664005456 + 6400545664005456640054566400545664005456640053556300525E8800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C4003847 + 7D0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0038477D00C4C4C40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C3CEF1005E607000999CA600B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1 + BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00999BA600BEC9 + EE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002B3C + 78000328A30003208200E8E8E700E5E4E300E0DFDE00DBDAD900032082000328 + A3000328A3000328A3000328A3000328A3000328A3000328A3000328A300435E + BA002B3C78000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000060647500A6A9B60025377600253776002537760025377600253776006870 + 92007B819B002537760025377600253776002537760025377600253776006569 + 7A00000000000000000000000000000000000000000000000000000000000000 + 00000000000029386A005469AE005065AC005065AC005065AC005065AC005065 + AC005065AC005065AC005065AC005065AC005065AC005469AE00344686000000 + 0000000000000000000000000000000000000000000000000000000000002C3F + 7E00042AA90003218700E8E8E700EFEEED00EAE9E800E5E4E30003218700042A + A900042AA900042AA900042AA900042AA900042AA900042AA900042AA900425E + BD002C3F7E000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000063677800A2A4B400263877002638770026387700263877002C3D77005960 + 7A0059607A002638770026387700263877002638770026387700263877006367 + 7800000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C7800536CBF000328A0000328A0000328A0000328A0000328 + A0000328A0000328A0000328A0000328A0000328A000536CBF00354994000000 + 0000000000000000000000000000000000000000000000000000000000002F42 + 8300042BAF0003238C00DFDFDD00F3F3F100F3F3F200EFEFEE0003238C00042B + AF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF004360 + C3002F4283000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000676B7C009FA2B20028397800283978002839780028397800283978003A42 + 63003B425C00283978002839780028397800283978002839780028397800676B + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000002E3F7E00536DC3000429A8000429A8000429A80003279E000326 + 99000325970003269A0003279F000429A7000429A800536DC300374D97000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8E00042EBB0003259500CAC9C800E3E2E000E6E6E500EAEAE90003259500042E + BB0003279D00032595000325950003259500032595000325950003279D004262 + CB0034488E000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 00006F738300A7ABBB002B3C7B003963EF00446BF000486FF000496FF000496F + F000496FF000496FF000486FF000476EF000325EEF00466DF0002B3C7B006F73 + 8300000000000000000000000000000000000000000000000000000000000000 + 00000000000034478B005470CD00042DB600042BAC000320800003208000586B + AB00ADB6D50003208000031F7E0003269B00042DB6005470CD003B519F000000 + 000000000000000000000000000000000000000000000000000000000000364B + 94000430C20003269B00C1C0BE00DAD9D800DEDDDC00E2E1E00003269B000430 + C20003269B0002175D0002175D000110410002175D0002175D0003269B004364 + D100364B94000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 000073778700AAAFBF002C3D7C004068F000486FF000496FF000496FF000496F + F000496FF000496FF000496FF000496FF0003761EF00486FF0002C3D7C007377 + 8700000000000000000000000000000000000000000000000000000000000000 + 000000000000364A91005773D300042DB60003228A0003218700032187000321 + 870003238D00032187000321870003218500042CB4005773D3003C53A3000000 + 000000000000000000000000000000000000000000000000000000000000394F + 9A000633C80004289F00B5B4B200D2D1CF00D6D5D300DAD9D70004289F000633 + C70004289F00031860000318600002114300031860000318600004289F004365 + D500394F9A0000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000000000000000000000000 + 000075798A00AFB3C3002E3E7E003E67F000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF0003761EF00486FF0002E3E7E007579 + 8A00000000000000000000000000000000000000000000000000000000000000 + 000000000000394D98005875D8000429A5000324920003249200042AA900042C + B200042CB200032493000324920003249200042DB5005875D8003E56A6000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A4001E49D800193BAC00AFADAC00B3B1B000BAB8B600C1BFBD00193BAC00204A + D800193BAC00091743000D1E58000A194900091743000D1E5800193BAD004B6D + DF003E55A400000000000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F51940000000000000000000000000000000000000000000000 + 00007C819200B7BACA00304180003661EF003B64EF003B64EF003B64EF003B64 + EF003B64EF003B64EF003B64EF003B64EF00305CEE00466DF000304180007C81 + 9200000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A4005878E1000429A8000429A8000429A8000328A1000328 + A1000328A10003279F000429A8000429A800042FBD005878E100425BAE000000 + 0000000000000000000000000000000000000000000000000000000000004159 + AA002A54DF002649BB002445B3002445B3002445B3002445B3002649BB002D56 + DF002649BB002445B3002445B3002445B3002445B3002445B3002649BB004E71 + E4004159AA00000000000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A90000000000000000000000000000000000000000000000 + 000080849500BBBFCF0032428100315CED00355FED00355FED00355FED00355F + ED00355FED00355FED00355FED00355FED002B58EC00456CEF00324281008084 + 9500000000000000000000000000000000000000000000000000000000000000 + 0000000000004259AB005879E6002044BC00ADBBE7003C5BC400032699000326 + 99000326990003239000042DB800C9D2EF000431C6005879E600445DB1000000 + 0000000000000000000000000000000000000000000078767600D3D3D300445D + B000365EE5003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62 + E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6005376 + E900445DB000D3D3D300807F7F0000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE0000000000000000000000000000000000000000000000 + 000084889800BDC2D200334482002D59EA00315CEA00315CEA00315CEA00315C + EA00315CEA00315CEA00315CEA00315CEA002855E900446BEC00334482008488 + 9800000000000000000000000000000000000000000000000000000000000000 + 000000000000455EB100597BEB000430C200042FBF00042FBF00032187000323 + 8D0003238D0003249100042FBF00042FBF000434D300597BEB00465FB5000000 + 00000000000000000000000000000000000000000000EBEBEB00AEADAC007979 + 7D00728EEE005D80F200567AF200567AF200567AF200567AF200567AF200567A + F200567AF200567AF200567AF200567AF200567AF200567AF2005C7FF2004F67 + BB0079797D00AEADAC007C7A790000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800395ED800395ED800395ED800FFFFFF00FFFF + FF00FFFFFF00395ED800395ED800395ED800395ED800395ED800395ED8003459 + D700224BD4005773D30000000000000000000000000000000000000000000000 + 00008B8F9F00C5C9D90035468400234FE2002551E2002551E2002551E2002551 + E2002551E2002551E2002551E2002551E2001F4CE2004066E600354684008B8F + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000004B64BB006082F2001445E9001240D700123FD600123FD600123F + D600123FD600123FD600123FD600113DD1001143EC006082F2004B64BB000000 + 00000000000000000000000000000000000000000000CFCECE00EBEBEB00AFAE + AD005F71B000829CF0006A8AF3006384F3006384F3006384F3005673D4004F6A + C2004F6AC2006283F0006384F3006384F3006384F3006A8AF300829DF5007979 + 7F00AFAEAD00EBEBEB007F7D7C0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569DF003E63 + DD002B53DA005975D70000000000000000000000000000000000000000000000 + 00008E92A300C7CCDD00374785001E4ADE00214DDF00214DDF00214DDF00214D + DF00214DDF00214DDF00214DDF00214DDF001B48DE003E64E400374785008E92 + A300000000000000000000000000000000000000000000000000000000000000 + 0000000000004C65BC006485F3001E4DED001D4CE9001C49DE007691EB00E8ED + FB00E8EDFB001C49DD001C49DE001D4CE9001949ED006586F3004C65BC000000 + 00000000000000000000000000000000000000000000807E7E00D0CFCF00EBEB + EB007E7E81006878B1008DA4F100708EF400708EF400708EF400A4B0D800E4E4 + E300D6D5D400627CD500708EF400708EF4007794F4008FA7F6006D80BF00B0AF + AF00EBEBEB00D0CFCF00D3D3D30000000000000000005C79DB00375EDF00486C + E3005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173E300486C + E3003058DE005B78DB0000000000000000000000000000000000000000000000 + 00009195A600CBD0E000384987001A47DB001B47DA001B47DA001B47DA001B47 + DA001B47DA001B47DA001B47DA001B47DA001744DB003D62E100384987009195 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000004D66BD006888F3002856EE002957EE002956EC002854E5002854 + E5002854E5002854E7002956EC002957EE002150ED006888F3004D66BD000000 + 0000000000000000000000000000000000000000000000000000D3D3D3008584 + 8300EBEBEB00B2B1B10084848700A1B4F30090A8F6008AA3F600C9C8C600D4D3 + D100E0DFDD006F83C5008AA3F60090A8F6007E8EC00084848700B2B1B100D2D2 + D10085848300D3D3D3000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00536CBE00536C + BE00536CBE006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D50000000000000000000000000000000000000000000000 + 0000989CAC00D0D5E6003A4B8900113ED300123FD300123FD300123FD300123F + D300123FD300123FD300123FD300123FD3000F3CD3003A5FDB003A4B8900989C + AC00000000000000000000000000000000000000000000000000000000000000 + 0000000000004F68C0006E8DF3003E67F0004068F0004068F0004068F0004068 + F0004068F0004068F0004068F0004068F000335EEF006E8DF3004F68C0000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300D4D3D200EBEBEB00B3B3B2007C89B400ABBBF4009DB2F7009FA6C200C3C1 + BF00C9C7C5008598D8009DB2F700AEBFF80088878B00B3B3B200EBEBEB008B89 + 8700D3D3D300000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA0000000000000000000000000000000000000000000000 + 00009A9EAF00D3D8E9003B4C8A000D3AD0000E3BD0000E3BD0000E3BD0000E3B + D0000E3BD0000E3BD0000E3BD0000E3BD0000C39D000395ED9003B4C8A009A9E + AF00000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C100718FF400F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE007290F4005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008B898800D5D4D400EBEBEB008B8A8E007E8BB400B4C3F40092A2D9008494 + C6008494C600A8BAF500B5C5F9008896C300B4B4B300EBEBEB00D5D4D4008684 + 83000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500EDF1FD00FFFF + FF00EDF1FD00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 00009DA1B200D6DBEC003C4D8B000835CC000936CC000936CC000936CC000936 + CC000936CC000936CC000936CC000936CC000835CC00375CD5003C4D8B009DA1 + B200000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC2007491F400F1E0CB00F1E0CB00F1E0CB00F1E0CB00F1E0 + CB00F1E0CB00F1E0CB00F1E0CB00F1E0CB00F5EADA007592F400516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D300908E8D00EBEBEB00B7B6B50091919300CBD6FB00C3D0 + FA00C3D0FA00949FC50091909400B7B6B500D7D6D600908E8D0093918F009290 + 8F000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700FFFFFF00FFFF + FF00FFFFFF0096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000A3A7B800DBE0F1003F4F8D000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C500365AD1003F4F8D00A3A7 + B800000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4007E99F500F3E2CB00F3E2CB00F3E2CB00F3E2CB00F3E2 + CB00F3E2CB00F3E2CB00F3E2CB00F3E2CB00F5EADA007E99F500536DC4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300D8D7D700EBEBEB00B8B7B6009DA6C500CDD8 + FB00CDD8FB0094939600B8B7B600EBEBEB009391900099979500A5A4A200A5A4 + A200939291000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000A6AABA00DDE3F3003F518E000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2003558CD003F518E00A6AA + BA00000000000000000000000000000000000000000000000000000000000000 + 000000000000546EC500819BF500F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4 + FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F3F6FE00819BF500546EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000096949300D9D9D800EBEBEB0097979900919D + C500919DC500B9B8B800EBEBEB00D9D9D800D3D3D300A09E9C00CCCCCC00CCCC + CC00A09E9C00000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800E1E3E800F2F2 + F200E1E3E800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000A9ADBD00DFE5F60040518F003558CA003558CA003558CA003558CA003558 + CA003558CA003558CA003558CA003558CA003558CA003558CA0040518F00A9AD + BD00000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600829DF500F4E4CB00F5E4CB00F5E4CB00F5E4CB00F5E4 + CB00F5E4CB00F5E4CB00F5E4CB00F5E4CB00F6EADA00829DF500556FC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D3009B999800EBEBEB00BBBA + BA00BBBABA00DBDBDA009B999800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AEB2C200E2E8F90042539000425390004253900042539000425390006776 + A6006776A600425390004253900042539000425390004253900042539000AEB2 + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800829CF500CACCD100CBCDD100CBCDD100CBCDD100CBCD + D100CBCDD100CBCDD100CBCDD100CBCDD100D9DBDF00829CF5005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D5D5D300DDDCDB00EBEB + EB00EBEBEB009D9C9B00D5D5D300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0B4C400E3E9FA0043549100435491004354910043549100435491003543 + 740035437400435491004354910043549100435491004354910043549100B6BA + CB00000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C97F400A5A7AC00A5A7AB00A5A7AB00A5A7AB00A5A7 + AB00A5A7AB00A5A7AB00A5A7AB00A5A7AB00BEC0C4007D98F5005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A19F9D00DEDD + DC00DEDDDC00D5D5D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000094A2D300D8DEEF0094A0C700445492004454920044549200445492004454 + 920044549200445492004454920044549200445492004454920094A0C70094A2 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C96EE008FA5F00094AAF20095AAF20097ACF20097AC + F20097ACF20096ABF20095AAF20093A9F200889FF0007C96EE005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C2CEF60096A3D400B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9 + CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA0096A3D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1D1D100CBCBCB00C7C7C700C5C5C5007C8FCD005368AF00354785003546 + 8100364783004358A100566CB5007F91D100C7C7C700C7C7C700C9C9C900DADA + DA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C200B1BCE5003446 + 820029376700C0C0C000C0C0C000C5C5C500CDCDCD00DADADA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ACACAC00A4A4A400A4A4A400A4A4A4008A8A + 8A008A8A8A00A4A4A400B3B3B300C7C7C7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008EA2E10031458B004B64B5004561C1002E4FBE00143AB9002347 + BF00143BBC002449C7002E53CD004566D4004B61AF003D56AA0097A9E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008297DD00485A9900415C + B9003654B7002E3F7C008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A4A40000000000000000002A3B7400354476003F518C004D66B7004F67 + B9004F68BA00485DA50040518D00374677007288CB0000000000C7C7C700A4A4 + A400000000000000000000000000000000000000000000000000000000000000 + 00005068BA00374885004B62AD002345B600082EAD00042AAB00617ACB008295 + D7005974CB00042DB600042EB9000832BF003E61D500506AC4004258A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008297DE00304381003755BB000F34 + AE00082DAB004B60A4002F4180008297DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009494 + 940000000000B7C3EE0032427D004C61A5004E69C3004B69CE003F62D6004063 + D9004064DA004365D4004B69CF004F6AC6003A497D002C3E7B00AAB9EB00D3D3 + D30096969600D3D3D30000000000000000000000000000000000000000000000 + 0000415393004B65BE002E50BF00042CB300042CB2001B3FB7008194D6008194 + D5006179CA003353BE00042CB100042DB5000832C0002E53CE004C6ACF005B74 + C900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005169BD00394B89004D65B300082FB000042B + AF00042BAE003655BD004C61A700314483000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000096969600D3D3 + D30095A5DF00959392007D8294004464CE00385DD7004368E3005175EB005275 + EB005174EA004D72EA004469E5003B60DC004963B7007D81940091908F000000 + 0000000000009F9F9F000000000000000000000000000000000093A5E4003E52 + 96003256CD001D44C8002349C900274CCA008B9FE20091A4E4008B9FE100879B + DE008498DC006A82D2002245B800042AAB00042BAF00042CB400042EB9004D6A + CB004258A20095A9E7000000000000000000283870003551AE003552B000455F + B4004964B6004B65B800546EBB005E76BC005F78C000657DC200788DC500788D + C500788DC500788DC5007287C4005F78C0005E76BC005E76BC004B65B8004963 + B5004963B5003A56B1003E59B0002D3E75000000000000000000000000000000 + 00000000000000000000546CC1004C66BC002A4EC400042EB900042DB800042D + B800042DB700042DB7000830B8003657C50035488B00A8B7ED00000000000000 + 000000000000000000000000000000000000000000009A9A9A0000000000B7C4 + EF00C7C6C500E1E1E000F0F0F00094A0C8003D5DC9002D50C400183BAD001739 + A8001738A7001D40B300284BBF003757C300D1D0D000EDECEC00DDDCDB00B1AF + AE00A4B5E80000000000B3B3B3000000000000000000000000003A519D00546D + C1002D52D100365BD3003D60D500496AD8009DAEE9009CADE80096A8E60093A6 + E5008197DF002348C300052EB700042CB200042AAB00042BAD00042CB2002F53 + C9005069BF003D54A30000000000000000002A3C760003279F00032699001032 + A300032699001032A30003279F001032A30003279F000326990003279F000326 + 9C001033A800032699001032A30003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F002947AD002A3C76000000000000000000000000000000 + 000000000000566FC3003F5396002B50C800042FBE00042FBE00042FBD00042F + BD00042EBC00042EBC00042EBB000831BC004F66B100384D9600BCC8F3000000 + 0000000000000000000000000000000000000000000000000000000000003344 + 8000E7E6E600F3F3F300F7F7F700BAB9B8007580A700233F9C00425AAB00425A + AA00455CA700334EA500203B9800747FA500EBEAEA00F9F9F900EFEFEF009EA3 + B7002F3E7300000000009A9A9A0000000000000000006D85D6004F64AD005272 + DB004668DA005070DD005373DE007D95E600A8B8EE00A6B6ED00A1B2EB009EAF + E9006782DC002248C800173EC2000B34BC00042BB000042AAB00042BAC000830 + B8003F60CD004C61A90000000000000000002D3E7C000328A400042695002545 + B000042695002545B0000328A4002545B0000328A400042695000328A4000426 + 95002545B000042695002545B0000328A4000328A4000F32A8003250B5003250 + B5000F32A8000328A4002949B2002D3E7C000000000000000000000000000000 + 00007A8FDC0041559B004E69C4000430C2000430C2000430C2000430C2000430 + C2000430C1000430C100042FC000042FC0003E5FCE004E63A900364D98000000 + 00000000000000000000000000000000000000000000000000007388CB003A49 + 7C00ADB9E100FAFAFA00EBEBEA00CCCAC900A5A3A100797F9800384677003543 + 7500324172003B4B8000797F9800A6A4A300DFDEDD00EEEEEE00FBFBFA004862 + B7003F4E82005D73BE009F9F9F0000000000000000004D63AB005F7DE1004D6F + E100758FE9007691E9007792E900BBC8F400BAC8F400B8C6F300B3C2F200B0BF + F000ACBCEF00496BDA003E61D5003156CF00163DC1000831B900042CB300042A + AB00082FB1004563C70098AAE90000000000324687000D33B3000D2B8F005670 + C9000D2B8F005670C9000E34B3005670C9000E34B3000D2B8F000E34B3000D2B + 8F005670C9000D2B8F005670C9000E34B3000E34B3001B399C00304AA400304A + A4001B399C001439B5002D4EBD0032468700000000000000000000000000BDCB + F400546DC000355AD6000A37CE000D3ACE000E3ACE000E3ACD000E3ACC000E3A + CC000E3ACC000E3ACC000E3ACC000D39CB000A36C9001841CC004C6ACF005871 + C7000000000000000000000000000000000000000000A4B2E5003A4879004C66 + BF005074EA004060CC0098A4CC00C5C3C100D3D2D000A1B3ED00000000000000 + 00000000000000000000A1B3ED00D3D2D000D5D3D20097A2C8003656C2003A5F + DD00506BC8003D4D8200A4A4A4000000000000000000566FC2005E7DE6006180 + E700859DED0088A0EE0088A0EE00C2CEF600C1CDF500C0CCF500BCC9F400B8C6 + F300B5C3F3007892E6004F6FDC004466D800294ECC001940C3000932BA00042B + AC00042BAC006B82D000617ACD000000000035488C002145BD001D378D00788E + D7001D378D00788ED7002549BF00788ED7002549BF001D378D002549BF001D37 + 8D00788ED7001D378D00788ED7002549BF002549BF001C368F006B7CB6006B7C + B6001C368F002549BF003858C50035488C000000000000000000000000004B61 + B4003C61DC001440D4001541D4001B46D5001C46D4001C46D4001D47D4001C46 + D3001C46D3001D47D3001D47D3001C46D2001641D100123ED000284FD300455A + A3008A9EE400000000000000000000000000000000005B71B70042538D004765 + C8005073E8003154CA002541A000D5D4D200A1B3ED0000000000000000000000 + 0000000000000000000000000000A1B3ED009CA3BB001F3A9600274ABE00466B + E7004565D000475A9C009F9F9F0000000000000000005D77CF006684E9007590 + EC0094A9F100A3B5F300B9C7F600CBD5F800C9D4F800C7D2F700C2CEF600C0CC + F500BCC9F400AFBFF1006582E3005575DE00395DD3002A4FCC001A41C300042C + B2003252BB008598D700465FB10000000000384C92003658C8002E4696008398 + DC002E4696008398DC003B5CCA008398DC003B5CCA002E4696003B5CCA002E46 + 96008398DC002E4696008398DC003B5CCA003B5CCA0029408C00828FB900828F + B90029408C003B5CCA004262CB00384C920000000000000000006680D5005067 + B300214CDB001D49DB00234DDB002A53DC002A53DC002A53DC002A53DB002A52 + DA002A52DA002A52DA002A52D9002A52D900244DD7001F49D6001944D500556E + C5003E57A800D1DAF8000000000000000000000000003A4E9000495DA1003D5E + CC004A6DE1002548BE003751AA007382B8000000000000000000000000000000 + 0000000000000000000000000000000000003D4C8100324CA3001B3EB0004D72 + EA004063D5005066B100A4A4A40000000000000000006F89E3007893EF0094AA + F200D6DEFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D5DDFA00D1DAF900CED8 + F900C7D2F800BAC8F50097ABEE00728DE8005776DF005372DB009BADE800133B + C0003354C300425FC200364A8B00000000003E539E005A77D9005A71BD00879C + E3005A71BD00879CE3006983DD00879CE3006983DD005A71BD006983DD005A71 + BD00879CE3005A71BD00879CE3006983DD006983DD006983DD006983DD006983 + DD006983DD006782DC005371D7003E539E0000000000526DC9005B75C800466B + E800345DE6003D64E6004368E700466BE700456AE600456AE600456AE6004469 + E500456AE5004469E4004469E4004469E4004469E4004065E300385FE1002F58 + E0005876DC004B61AF00000000000000000000000000222F59004F67B500385B + D1004063D7001D3FB100425AAB00D4D4D4000000000000000000000000000000 + 00000000000000000000000000000000000038477900425AAA001032A1005174 + E9004266DC00546DBF008A8A8A000000000000000000718BE5007E99F0009EB2 + F400DCE3FB00DDE4FB00DDE4FB00DDE4FB00DCE3FB00DAE1FA00D6DEFA00D4DD + FA00C4D0F800C8D3F800C2CEF60094A9EE006481E4007B94E600A1B2EB003D5F + CE004866CC003354C20036488A00000000004158A3005C7ADD00637CCD00849B + E6006A81CE00859BE600738DE100859BE500738DE1006A81CE00738DE1006A81 + CE00859BE5006A81CE00859BE500738DE100738DE100738DE100738DE100728C + E100718BE1006C86E0005372DB004158A300000000004E67BA006380E500365F + EA00456BEB004D72EB005276EC005376EC005477EC005376EB005376EB005376 + EB005376EA005376EA005376EA005376E9005376E9005073E900496EE7003059 + E300456AE6005972CC00000000000000000000000000232F59004F67B500385B + D1004164D8001E40B200425AAB00D6D6D6000000000000000000000000000000 + 00000000000000000000000000000000000039477900465DA8001133A2005174 + E9004266DC00546DBF008A8A8A000000000000000000728DE400819BF100A5B7 + F500D6DEFB00E2E8FC00E2E8FC00E2E8FC00E1E7FC00E0E6FC00DBE2FA00D8E0 + FA00CBD6F900CED8F900C9D4F800C3CFF600758FE8009CAEED00A8B8EE004062 + D2007C92DD007289D600364A900000000000455CA9003158D900375CDA00395E + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60 + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003A5F + DA00395EDA00365BDA003C61DB00455CA900000000005C75CC005579F100355F + ED005478F0005E80F0006182F1006182F0006182F0006182F0006182F0006182 + EF006182EF006182EF006081EE006181EE006181EE006080ED005A7CEC004268 + E900345DE7005677E400BFCCF5000000000000000000374577004E65B200385B + CE004467DB001E41B600435CAD0093A5DE000000000000000000000000000000 + 0000000000000000000000000000000000003C4B7C00425AAB001537A8005275 + EA003F63D900526BBC00A4A4A4000000000000000000647ED100849EF200A4B7 + F600D3DCFB00D5DEFB00E2E8FC00EAEFFD00E9EEFD00E8EDFD00E5EAFD00E1E7 + FC00DFE5FB00D7DFFA00CDD7F900CDD7F800C0CCF500BAC8F400B2C1F2009FB0 + EA008A9FE3006680D7006079CA0000000000BFCCF5004967CA00335BE3002651 + E100335BE200375EE300385FE3003960E3003960E3003960E3003960E3003960 + E3003960E3003960E3003960E3003960E300385FE300385FE300375EE3002C56 + E1002550E100335BE3004B64B900BFCCF500000000006583E9005A7DF2005C7F + F2007B97F4007E99F5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500829DF50086A0F500859FF500809BF5007E99F5007B97F4006384 + F3004C71F000466DEF005773CE0000000000000000005D71B90045558F004664 + C7005275E9003356CB002642A2009C9A990096A8E20000000000000000000000 + 000000000000000000000000000096A8E2007A809800203B98002B4EC000476C + E6004666CF00495C9E00A4A4A40000000000000000005D74C2007E99F10099AE + F600D8E0FB00DCE3FC00DEE5FC00E7ECFD00ECF0FE00EBF0FD00DAE1FB00CBD6 + FA00CED8FA00DAE1FA00D6DEFA00D1DAF900C5D1F700BECBF500B6C4F300A0B1 + EB0094A7E7006983D70097A9E80000000000000000004E68BF00506DD000456A + E9004F73EA005578EB005578EB005578EB005578EB005578EB005578EB005578 + EB005578EB005578EB005578EB005578EB005578EB005578EB005578EB004268 + E800446AE900506DD000BFCCF50000000000000000006D8AEA006C8BF3007491 + F4008FA7F60092A9F6008EA6F6008AA3F6008AA3F6008AA3F60086A0F500849E + F500839EF50097ADF7009BB0F7009AAFF70093AAF6008FA7F6008AA3F600718F + F400587CF200436BF0004E68C10000000000000000009FAFE3003F4D7E004B66 + BD005174E9004464CF007985AD00BEBCBA009E9C9B0096A8E200000000000000 + 0000000000000000000096A8E2009E9C9B00ABA9A8007884AA003B5BC5003A5F + DB004F6BC80042518500ACACAC0000000000000000004D67C100728CE50091A8 + F500D8E0FC00E2E8FD00E3E9FD00E2E8FD00E4E9FD00EEF2FE00E4E9FC00DBE2 + FB00E3E8FC00DEE5FB00D9E0FA00D4DDFA00C9D4F800C1CDF500BAC8F400A0B1 + EC00A0B1EA00788CCF00000000000000000000000000BFCDF600516BC4005774 + D6005E80EF006A89F0006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8C + F1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006B8AF0005679 + EF005774D500516BC400000000000000000000000000718CEA008EA6F6008AA3 + F6009FB3F700A3B6F800A2B6F8009AAFF70097ADF70093AAF600859FF500829D + F5008AA3F600A7B9F800AABCF800ABBDF800A5B8F800A2B6F8009CB1F7007C97 + F4006183F2004A70F0004E68C00000000000000000000000000034467F004F63 + A5004163D20099A5CC00BFBEBE00C8C6C400BCBBB900B7B5B50093A5DE00D4D4 + D400D4D4D4006C7AB000B7B5B500BDBBB900D6D4D300C2C1C10098A4CB004061 + D0005067B20034447700C7C7C700000000000000000000000000536CC500738D + E000C0CEFA00DDE4FC00E8EDFD00EBF0FD00E9EEFD00E6ECFD00E4E9FD00EDF1 + FE00EAEFFD00E3E8FC00DFE5FB00D9E0FA00CED8F900C5D1F700B7C5F400A9B9 + EF007F93D500455DAA000000000000000000000000000000000000000000C1CD + F6005876DA005F7FEA006A87EB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006B88EB006986EB006281EA005771 + C900C1CDF600000000000000000000000000000000006882DA009DB2F700BDCB + FA00AEBFF800B4C4F900B5C5F900ACBDF800A0B4F7008CA5F600718FF400738C + E1006F87D600C8D4FB00BCCAFA00B3C3F900B8C7F900B4C4F900AEBFF8008AA3 + F6006888F3004E73F1005671CD00000000000000000000000000000000003646 + 8200B4B3B200E8E8E700F9F9F900ECEBEB009CA8D0002642A000425BAC00425A + AB00425AAB003550A800233E9B009CA8CE00F5F4F400F8F8F700E4E3E2007D83 + 97003242780000000000000000000000000000000000000000009CAEEE005B73 + C600AEBFF800CAD5FB00E2E8FD00EEF2FE00EDF1FE00EAEFFD00E3E9FD00E9EE + FD00EAEFFD00E6EBFD00E0E6FC00DBE2FA00CED8F900C1CDF600B0C0F300AFBD + ED00596DB20097A9E80000000000000000000000000000000000000000000000 + 00005771C9005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C800C1CD + F60000000000000000000000000000000000000000006179CC00809AF300B9C8 + F900BAC9FA00B3C3F900B4C4F900A6B9F80096ACF7007D98F5006D8AED005F77 + C800556EC400BAC9FA00CCD7FB00BECCFA00B4C4F900B2C2F900ABBDF800859F + F5006082F200567AF2006882DB0000000000000000000000000000000000ACBB + ED00C4C3C200D8D7D600EBEAEA00BAC6ED004262CD003255CA001D40B300183B + AD00173AAC002245B9002F52C5003E5EC900F8F8F800E7E6E600D4D3D200ACAB + A900A6B5E8000000000000000000000000000000000000000000000000006883 + DC0096ABF100B3C3F900CCD7FB00EAEFFD00EEF2FE00EDF1FE00E6EBFD00E1E7 + FD00E2E8FD00E6ECFD00E1E7FC00DBE2FA00C9D4F900B9C7F600B0C0F3007485 + C400617AD0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005570CC006F87DA008EA6 + F600CBD6FB00C5D1FA00B5C5F9009EB3F700859FF5007894F400637CCD00617C + D8007993E200859CE800B1C1F900C7D3FB00BAC9FA00B0C0F900A7B9F8007995 + F4006082F2005F7EE700AEBEF3000000000000000000B3B3B300000000000000 + 0000C6C5C300C8C7C600DFDFDE004264D3005174EA005174E8004265D9003E61 + D5003E61D4004669DD004F72E5005376EA00A6B2DB00DDDCDB00C3C2C1008EA0 + D900000000000000000000000000000000000000000000000000000000000000 + 00006883DC005E76C9007992E400A9BBF800B8C7F900C9D5FB00D2DBFB00D0DA + FB00C9D4FA00C6D2F900CED8F900C3CFF800B7C6F700A2B1E5005C72BE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005772 + CC006E88DC007A94EA007D97ED006E89E5006A83D3005871C700000000000000 + 0000000000008FA4EA00556FC7006980CF007C96EB007A95EC00738EEB00617D + DA005D76C9006B84DA00000000000000000000000000000000009A9A9A000000 + 000000000000A6B6E90038487C005064AC004D68C0004361C7003A5DD1003E61 + D5003E61D5003F60CF004463CA004D68C50049598E0034447900A6B6E9000000 + 0000B3B3B300ACACAC0000000000000000000000000000000000000000000000 + 0000000000009CAFEE005871C9007B95E80091A8F400A1B5F700ABBDF800ABBC + F700A6B8F700BDCBF900C0CDF800BCCAF7008092D300536CC1009BADEC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E79D6005771C8005670C7005874CD006B84DD00D3DBF900000000000000 + 0000000000000000000000000000859BE9005670C7005670C7005670C700647E + D9009FB1F0000000000000000000000000000000000000000000D3D3D3009696 + 96000000000000000000000000003A497A00445487004A5C9B005068B600526A + B8005169B9005066AF004B5E9D00455588005E74BB000000000000000000B3B3 + B3009A9A9A000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C800677ECD007089DB0096AAEE009DB1 + F200A8B9F30093A6E70091A2DF006F84CD007A91E30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9F9F00BDBDBD0000000000000000008598D8005065AD00344478002A36 + 60002A3661003E4F87005065AD008598D8000000000000000000BDBDBD00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9B9B0092908F0086858500BFBFBF00C0C0C000C0C0C000C5C5C500C7C7 + C700C7C7C700DADADA00DBDBDB00DCDCDC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000DCDCDC00DADADA00CACACA00C5C5C500C0C0C000C0C0C000213166001521 + 490015214900C0C0C000C1C1C100C7C7C700D2D2D200DADADA00DCDCDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200C2C0BF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003349920035447C00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CBCBCB0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0026346600CBCBCB000000000000000000000000000000 + 0000000000006C82CD001E306E002F3F740038509D004E66B60042548F003751 + AB003751AB001E3377004E66B60038509D003F4F88001E306E006C82CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D54A2006271A7003D54 + A200000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B50026377400000000000000000000000000000000000000 + 000000000000203372005264A0005268B30039497D003F518D005067B4001F3E + A6001F3EA6004C60A2003F518D0039497D004963B7005264A000203372000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D1D0CF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000657ECC00647AC5004051 + 8D008397DE000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003753B2000F34AF001337 + AF00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AE00283A7C00000000000000000000000000000000000000 + 00000000000031479600465A9E002948AE004E68BC003C58B5001638A7000328 + A0000328A0002443AC003C58B5004E68BC002948AE00465A9E00314796000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8B7ED005D78CF004664 + C9004F63A4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000415EBF001F44BC00274A + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4E + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002C4E + BD00284BBD001F44BC002D4186000000000000000000000000006F86D200253C + 85002B429000455793004C66C000042AAA00042AAA00042AAA00042AAA00092E + AC00092EAC00042AAA00042AAA00042AAA001B3EB2004C66C00045579300344C + 9C00253C85007F95DB0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D0D8F700728AD900173E + C1005871C800A8B7EE0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003254C400284CC4002F448D000000000000000000D0D8F700263A8000566A + AE004B5FA1004C67C4001237B400042BAF00042BAF001F42B800506BC800506B + C800516BC2003D5BC1001F42B800042BAF00042BAF001237B4004C67C400485E + A900566AAE00263A800000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007A8FD700123B + C500375ACE004359AD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004C6ACD003155CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003C5DCC003155CB003147920000000000000000004B64B800465A9C004B68 + C9003D5CC5001B40BB00042CB4000D34B6004160C600546DC000364886003345 + 84002E41810044599F00546DC0004160C600042CB400042CB4001B40BB00294C + BF004B68C900465A9C0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CD00355A + D8000433CF005B76D0004259A900D1DAF8000000000000000000000000000000 + 000000000000000000000000000000000000000000005C79DA004668D8005674 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005674DA00486AD900374E9D00000000000000000000000000435DB2004659 + 99000F38C1001039C2000F38C1005168B3002B428C00A7B6EC00000000000000 + 00000000000000000000A7B6EC002B428C004766CF000F38C1001039C2005673 + D30045589800435DB20000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006E84CC003E63 + DF000737D6004468E0005A72C000556FC8000000000000000000000000000000 + 000000000000000000000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006380E1005474E0003A51A3000000000000000000000000005A74C7004B61 + AC001A42C8001A42C8003155CD0033488D00A7B7ED0000000000000000000000 + 0000000000000000000000000000A7B7ED005B75CB003055CD001A42C8004E6D + D4004960AB005A74C70000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DC700607F + E8001241DE002450E100607EE2005369B4000000000000000000000000000000 + 000000000000000000000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900718CE900607FE7003C55A800000000000000000096A9E80030499C005A72 + C300244BCE00244BCE00506FD800506AC0000000000000000000000000000000 + 0000000000000000000000000000000000004D64AF004F6FD800234ACE003D60 + D4005871C30030499C0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7004C63B200455EB3005E77CE007189DA005973 + CC004762B90044579B00475DA7004862B6005C77D2005E7CE2006583E7006681 + D8005970C000425BB40000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63BA004A63BA004A63BA005D74C2007995 + F3002855EC002855EC002C58EC006282EF007790E20000000000000000000000 + 000000000000000000000000000000000000000000007C97F400708EF400829D + F4008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F50088A1F5007794F400425CB30000000000000000005D78D5005273E0004669 + DD003A5FDB003A5FDB006481E200000000000000000000000000000000000000 + 0000000000000000000000000000000000003E549D006481E300355BDA00395E + DB004367DD004B6DDE002D459400000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006886EB006D87E0005F7AD500546EC200546F + C8005A74CB004E6DD6003B5DCD002E52CA003E62D8004568DE005778E5007994 + F1007C97F4006881DB0000000000000000000000000000000000000000000000 + 00000000000000000000000000008BA1EA006F8BEB006E8BEB007993ED006C8B + F300325EEF00325EEF00325EEF00486FF000536CBF00D2DBF800000000000000 + 000000000000000000000000000000000000000000007E99F500708EF400829D + F50093AAF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70091A8F6007E99F500445DB40000000000000000005E7AD8005676E3004E70 + E2004368E000466AE1006986E600000000000000000000000000000000000000 + 0000000000000000000000000000000000004157A2006B86E1003E63DF004267 + E0004A6DE1004F71E20030489900000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006282EC00839DF3007C97F3006886EA005878 + E4004E6FDE001D45CB000D36C1000F38C200395ED6005071E0006583E700869F + F20087A1F5007791EA0000000000000000000000000000000000000000000000 + 00000000000000000000000000008DA3EE005378F100496FF0004C72F1004169 + F0003D66EF003D66EF003D66EF003D66EF007087D6005873D000000000000000 + 000000000000000000000000000000000000000000007D98F5006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A0B4 + F70096ACF700819BF500455EB6000000000000000000455CA700556EBF00718B + E5004D70E5004A6EE500718DEA00AABAEF000000000000000000000000000000 + 000000000000000000000000000000000000485EA8006F8BEA00496DE5005677 + E6006D88E500546DBF003E58B300000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700879FF000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009FB3F600839BEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000008498DF007693F4005176F1005176F1005176 + F1005176F10091A7F00099ADF10096ABF1008EA5EF008DA0E100526CC7000000 + 000000000000000000000000000000000000000000005C79DA002E55D6002E55 + D6002E55D6002E55D6006D87E0008DA5F60094ABF60097ADF7009AAFF7009AAF + F7009AAFF7009AAFF7009AAFF7009AAFF7009AAFF70099AFF70097ADF70090A8 + F60086A0F5007794F4004761B800000000000000000000000000667ED5005C75 + C7006081EE006383EF006A88EE00425BAC00ADBCF10000000000000000000000 + 0000000000000000000000000000ADBCF1007690E5006A89EF006383EF007994 + F1005872C600667ED50000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000798ED70090A8F6005D80F2005D80F2005D80 + F2005D80F2006B81CF00506AC100506AC100506AC100506AC100566FCD000000 + 000000000000000000000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ACBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B9000000000000000000000000005370CB005D73 + BE006989F2006E8CF2006A89F2006982D6003E59B100ADBCF100000000000000 + 00000000000000000000ADBCF1003E59B2007C97F4006989F2006E8CF200849E + F4005970BC005370CB0000000000000000000000000000000000000000000000 + 0000A7A5A300D2D1D000AEACAB0089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000007489D1009BB0F7006787F3006787F3006787 + F3006787F300859BE900516BC400000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB000000000000000000728BDD005069BA006F8B + EB006E8DF3007894F4007894F4007F9AF5006B84D700465FB300ADBCF1000000 + 0000000000005D79D100465FB3006781D5007491F4007894F4007894F4007290 + F4006A88EB004F68BA0000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009DB2F600839CED0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C600B1C1F500839EF5007D98F5007D98 + F5007D98F5008BA4F600879EE900536DC6000000000000000000000000000000 + 00000000000000000000000000000000000000000000819BF5005579F1005579 + F1005579F1005579F1005579F1005579F1005D80F2007E99F500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5004C66BD000000000000000000D2DBF800425CB6006983 + D9006A82D100809BF2007E99F5008DA5F60088A2F6008BA4F6008DA5F60086A0 + F50086A0F5008EA6F6008CA5F60088A2F6008BA4F600829CF500849EF200617C + D8006882D900425CB60000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700849DF000A4B7F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C200385DD6004D6FDF006280E60089A1 + F20091A8F5007E98EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005973CF00AEBEF30094ABF60086A0F50086A0 + F50086A0F50089A2F60097ADF7006C83D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C1000000000000000000000000008EA2E9004460 + BC004964C100667DCA00849EF20097ADF70097ADF70097ADF70090A8F6008DA5 + F6008EA6F60094ABF60097ADF70097ADF70093AAF60089A2F300687FCA004E6B + C8004460BC008EA2E90000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A7007691EE009CB1F50091A8F4006D8AEB005979 + E4004669DD001F46CB00143CC3002147C7004567D8005D7BE1006885E7007994 + F1007B96F3007691EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D50099AAE800A5B8F80092A9F60092A9 + F60092A9F60092A9F6009AAFF7008EA4EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004965C2006E85D20094ABF6009BB0F7009EB3F700A2B6F800A2B6 + F800A2B6F800A1B5F7009EB3F7009DB2F70095ACF700748AD5004965C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000817F7E00B9B8B600C1C0BE00787F9E007A93E7007994EF006A87EA006984 + E100647ED800576DB9005468A800475DA7006981D600748DDD00778DDF00546E + C800637BCD006C85DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000859CE9008699DD00BAC9FA00A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A2B6F8005771C90000000000000000000000 + 000000000000000000000000000000000000000000008EA6F6008EA6F6008EA6 + F6008EA6F6008EA6F6008EA6F600546DC10091A5EB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004763BF006D87DB007C96ED006A80C8006D84D20099AEF200A0B4 + F7009EB3F7008399E3006D84D2006A7FC7007491F400718ADD00405DBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFBEBC00D9D8D700E3E2E1007A7877005974CF005F77C9005E74C000556B + B800516BC200899EE500C9D4F600000000000000000000000000000000000000 + 000092A7ED005874CD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000AFBFF3007D91D600B0C0F900A1B5F700A4B7 + F800A5B8F800A2B6F8009BB0F7008AA3F6006D84D4007C93E600000000000000 + 00000000000000000000000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008197E5004862BC005971C2005974D0006B85DB006B84D6008AA3 + F60087A1F5004965C0006B85DB005974D000627BCF004862BC008197E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CFCDCC00EBEBEA00F8F8F8007A7877000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3DBF9006F84D000A7B8F300B1C1F500B2C2 + F500B2C2F500B1C1F500B0C0F500AABAF30093A6E8005872CA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D2DBF8008197E50000000000000000005871C300728D + EA00708CEA009DAFEE0000000000000000006B85DC00D2DBF800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A9A00959392008C8A8900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C2003B4E + 91003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E9100C2C2C200000000000000000000000000D6D6D600566AB0002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667005468AB00DEDEDE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448900BECAF4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000283B80004F6CCD00506C + CB00506ABE00506AC000516BC500475CA5002E46920000000000000000000000 + 00000000000000000000000000002E469200516BC500506BC300506ABE00506C + CB004F6CCD004F6CCD0000000000000000000000000000000000000000003850 + A3000536DB000536DB000536DB000536DB000536DB000536DB000536DB000536 + DB000536DB000536DB000536DB000536DB000536DB000536DB000536DB004368 + E4003850A3000000000000000000000000000000000000000000293C8000042D + B6000000000000000000042DB6006780D3006780D3005B75CF005772CE00536F + CC004765C9004765C9003F5EC7003758C5003758C5000931B800000000000000 + 0000042DB600293C800000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000026366A007D94E1004256 + 9C00687FCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000293D8400042EBC00042E + BC00042EBC00042EBC00042EBC002A408B00BBC7F20000000000000000000000 + 0000000000000000000000000000BBC7F2001B389800042EBC00042EBC00042E + BC00042EBC00042EBC0000000000000000000000000000000000000000003851 + A1000535D8000535D8000535D8000535D8000535D8000535D8000535D8000535 + D8000535D8000535D8000535D8000535D8000535D8000535D8000535D8004368 + E1003851A10000000000000000000000000000000000000000002A3E8200042D + B7000000000000000000042DB7003052C4003052C4003052C4003052C4003052 + C4003052C4003052C4003052C4003052C4003052C400042DB700000000000000 + 0000042DB7002A3E820000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387000869FF1007D95 + E6004A5DA0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3E8600042FBF00042F + BF00042FBF00042FBF001D399C00BBC7F2000000000000000000000000000000 + 0000000000000000000000000000000000002C438E001D399C00042FBF00042F + BF00042FBF00042FBF000000000000000000000000000000000000000000384F + 9F000534D4000534D4000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D4000534D4004367 + DF00384F9F0000000000000000000000000000000000000000002B3F8400042E + B900042EB900042EB900042EB900395AC800395AC800395AC800395AC800395A + C800395AC800395AC800395AC800395AC800395AC800042EB900042EB900042E + B900042EB9002B3F840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3B75008BA1EB00829A + EA006A87EB003349900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002E428D000431C5000431 + C5000431C5000431C5002148CC003A4D9300869AE10000000000000000000000 + 0000000000000000000000000000BBC8F300566CB7003358D0000431C5000431 + C5000431C5000431C5000000000000000000000000000000000000000000384E + 9B000634CD000735CD000735CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000735CD000735CD004366 + D900384E9B0000000000000000000000000000000000000000002D418700042E + BC00042EBC00042EBC00042EBC004C6ACF004C6ACF004C6ACF004C6ACF004C6A + CF004C6ACF004C6ACF004C6ACF004C6ACF004C6ACF00042EBC00042EBC00042E + BC00042EBC002D41870000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000304180009CAEED007F96 + E1004B67C7004368E40030418000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F4590000432C9000432 + C9001F3EA5000432C9000432C9005671C8003B4F9600889CE200000000000000 + 00000000000000000000BDC8F300354B99003358D3000432C9000432C9001F3E + A5000432C9000432C9000000000000000000000000000000000000000000384E + 98000E3ACB000F3ACB000F3ACB000C2FA3000C2FA3000C2FA3000C2FA3000C2F + A3000C2FA3000C2FA3000C2FA3000C2FA3000C2FA3000F3ACB000F3ACB004567 + D600384E980000000000000000000000000000000000000000002F438A00042F + BE000000000000000000042FBE005673D3005673D3005673D3005673D3005673 + D3005673D3005673D3005673D3005673D3005673D300042FBE00000000000000 + 0000042FBE002F438A0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000334486009EB0EE007F96 + E1004B67C7004468E40033448600000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324893000835CC002341 + A800334A9A002442A9000835CC00254DD2005A74CB003E539A00000000000000 + 000000000000BDC9F300374E9C005B71BD000835CC000835CC002442A900334A + 9A002341A8000835CC000000000000000000000000000000000000000000384D + 9800153FCA001740CA001740CA001740CA001740CA001740CA001740CA001740 + CA001740CA001740CA001740CA001740CA001740CA001740CA001740CA004868 + D500384D9800000000000000000000000000000000000000000030448C00042F + C0000000000000000000042FC0005F7AD7005F7AD7005F7AD7005F7AD7005F7A + D7005F7AD7005F7AD7005F7AD7005F7AD7005F7AD700042FC000000000000000 + 0000042FC00030448C0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000035488B009FB1EE007F96 + E1004B67C7004468E40035488B00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004159B0003B53A900BCC9 + F40000000000BCC9F400384FA0001945D6001945D6003359D9004358A1008A9E + E400BDC9F400647AC5004468DE001945D600324FB400324B9F0091A6EB000000 + 0000BCC9F4003B53A90000000000000000000000000000000000000000003A50 + 9B00254CCF00274ECF00274ECF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00274ECF00274ECF004D6D + D8003A509B000000000000000000000000000000000000000000324790000430 + C3000430C3000430C3000430C300718ADD00718ADD00718ADD00718ADD00718A + DD00718ADD00718ADD00718ADD00718ADD00718ADD000430C3000430C3000430 + C3000430C3003247900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A4F9700A0B2EE007F96 + E1004B67C7004469E5003A4F9700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BDC9F4003956BA00224CDA00224CDA006B84D600465A + A5003D55A6004B6EE100224CDA00224CDA00354EA10091A6EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000003B51 + 9C002D53D2003055D2003055D2002745A9002745A9002745A9002745A9002745 + A9002745A9002745A9002745A9002745A9002745A9003055D2003055D2005070 + D9003B519C000000000000000000000000000000000000000000334893000430 + C4000430C4000430C4000430C4007B92E0007B92E0007B92E0007B92E0007B92 + E0007B92E0007B92E0007B92E0007B92E0007B92E0000430C4000430C4000430 + C4000430C4003348930000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D539E00A0B2EE007F96 + E1004B67C7004469E5003D539E00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003C53A700415DBE002B54DE004368E2007189 + D9006E84CD002B54DE002B54DE00415DBE0093A7EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003C53 + 9D003358D400375CD400375CD400375CD400375CD400375CD400375CD400375C + D400375CD400375CD400375CD400375CD400375CD400375CD400375CD4005271 + DA003C539D000000000000000000000000000000000000000000354A95000532 + C70000000000000000000532C700859BE300859BE300859BE300859BE300859B + E300859BE300859BE300859BE300859BE300859BE3000532C700000000000000 + 00000532C700354A950000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004056A300A1B3EE007F96 + E1004B67C7004569E5004056A300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECAF4004059AD003B62E5003B62 + E5003B62E5004B67CA003B55AC0094A8EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A1004366D900486AD900486AD900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00486AD900486ADA005776 + DC003E55A1000000000000000000000000000000000000000000394F99000D39 + CB000D39CB000D39CB000D39CB009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA000D39CB000D39CB000D39 + CB000D39CB00394F990000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004962B9006B82CC00B4C4F900A7B9 + F80098AEF7007692F2006279CA00465EB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECCF500455DB200446AE900446A + E900446AE9006C85DE005065B3008CA1E8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004056 + A2004A6CDB005171DD005171DD00405AB000405AB000405AB000405AB000405A + B000405AB000405AB000405AB000405AB000405AB0005171DD005070DD005977 + DD004056A20000000000000000000000000000000000000000003B519B00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE003B519B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000516AC4006980CD0087A0F3009DB1F3008AA3 + F4007993ED005C7AE0006081EE006078CC00BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF500475FB5008396D9004B70EC004B70 + EC004B70EC006081EF00879CE5005369B6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004157 + A5005272DD005978DE005978DE005978DE005978DE005978DE005978DE005978 + DE005978DE005978DE005978DE005978DE005978DE005978DE005978DE005D7B + E0004157A50000000000000000000000000000000000000000003E539E001641 + D1001641D1001641D1001641D100728CE300728CE3006783E0006480E000607D + E0005574DD005574DD004D6EDC004568DA004568DA001641D1001641D1001641 + D1001641D1003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000677FD0007A95F1008CA1E80096ACF500839D + F100728DEA004F6ED7004667D4005276EC004D65BE00BFCDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCCF5008DA0DF007C97F4005D80F2006A83D700455F + BB004962BB005D80F2005D80F200708EF400586FBD008FA3E900000000000000 + 000000000000000000000000000000000000000000000000000000000000435A + A800617FE2006A86E3006A86E300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006A86E3006985E300617E + E100435AA80000000000000000000000000000000000000000004258A2001E48 + D50000000000000000001E48D5004E6FDE004E6FDE004E6FDE004E6FDE004E6F + DE004E6FDE004E6FDE004E6FDE004E6FDE004E6FDE001E48D500000000000000 + 00001E48D5004258A20000000000000000000000000000000000000000000000 + 000000000000556FCD00637CD1006B85D9008096E1009CAEED0088A1F3007792 + EC006582E4004363CF003354C3002446B5003C63E8005B75CF00506AC3000000 + 000000000000000000000000000000000000000000004E69C5004A65C000BFCC + F50000000000BFCCF5004D66BD00829DF5006686F3006686F3004761BC0098AB + F000BFCCF5007089D9006686F3006686F30098AAEB005970BF0090A3EA000000 + 0000BFCCF5004A65C0000000000000000000000000000000000000000000445B + AA006985E300728CE500728CE5005A6FB7005A6FB7005A6FB7005A6FB7005A6F + B7005A6FB7005A6FB7005A6FB7005A6FB7005A6FB700728CE500718BE5006481 + E300445BAA0000000000000000000000000000000000000000004359A500234C + D700234CD700234CD700234CD7005978E0005978E0005978E0005978E0005978 + E0005978E0005978E0005978E0005978E0005978E000234CD700234CD700234C + D700234CD7004359A50000000000000000000000000000000000000000000000 + 00005671CD00637CD1005C7DEC006E86D7008A9FE500A1B3F000819BF000718C + E9005F7DE1003D5ECB002D4EBD001F41B0001033A500375FE7005C76D000BFCD + F60000000000000000000000000000000000000000004761B8008296DA004862 + BB00BFCCF5004E67BE0096A6E1006E8DF3006E8DF300778DDB0098ABF0000000 + 0000000000004C65BD00778DDB006E8DF3007F9AF5009CAEEC005C73BF00BFCC + F5004862BB008296DA000000000000000000000000000000000000000000465D + AB00708BE5007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94 + E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007892E6006683 + E400465DAB000000000000000000000000000000000000000000455BA8002750 + D9002750D9002750D9002750D9006481E4006481E4006481E4006481E4006481 + E4006481E4006481E4006481E4006481E4006481E4002750D9002750D9002750 + D9002750D900455BA80000000000000000000000000000000000000000000000 + 0000607AD1005375EB004D69C8007990DD0094A8EA00A0B3F3007B96EE006A86 + E6005977DD003758C600284AB9001A3CAB0004248F000C2E9F00375FE700526C + C500BFCDF600000000000000000000000000000000004963BA007F9AF50097AD + F700A0AFE40097ADF7007F9AF5008498DE004B64BF0098ABF000000000000000 + 00000000000000000000BFCCF5004F67BF007F9AF5007F9AF5008DA5F60091A2 + DE0097ADF7007F9AF5000000000000000000000000000000000000000000485F + AF007F98EA008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0 + EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB0089A0EB006A86 + E500485FAF0000000000000000000000000000000000000000004A60AD003058 + DE0000000000000000003058DE007A94EA007A94EA007A94EA007A94EA007A94 + EA007A94EA007A94EA007A94EA007A94EA007A94EA003058DE00000000000000 + 00003058DE004A60AD00000000000000000000000000000000005973CF005F79 + D2003251B7003F5BB8005772C9008DA2E700A1B3F10092A9F4006F8BE8005D7B + E0004C6CD5002C4DBC001E40AF001031A00003238D0003238D0003238D00375F + E7005E78D200536EC7000000000000000000000000004B64BB0087A1F50087A1 + F5009EB3F70087A1F50087A1F5004D66C00098ABF00000000000000000000000 + 0000000000000000000000000000BFCCF5008A9EE00087A1F50087A1F5009EB3 + F70087A1F50087A1F50000000000000000000000000000000000000000004960 + B000879EEB0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8 + ED0093A8ED0093A8ED0093A8ED007D8EC9007D8EC9007D8EC9007B8DC9005A73 + C4004960B00000000000000000000000000000000000000000004C62AF00355C + E0000000000000000000355CE000849CEC00849CEC00849CEC00849CEC00849C + EC00849CEC00849CEC00849CEC00849CEC00849CEC00355CE000000000000000 + 0000355CE0004C62AF000000000000000000000000005973CF005F78D3004068 + EE003B59BF00516DCB006882D8009CAFEE00A3B5F40091A8F400708CE900607E + E3005070DA003255C7002447BC00183BB1001033A6001033A6001033A600193E + B8003B64ED005F78D300C1CDF60000000000000000004C65BC008FA7F6008FA7 + F6008FA7F6008FA7F60090A2E20098ABF0000000000000000000000000000000 + 000000000000000000000000000000000000526AC20090A2E2008FA7F6008FA7 + F6008FA7F6008FA7F60000000000000000000000000000000000000000004B62 + B2008EA4ED009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAE + EF009BAEEF009BAEEF009BAEEF008494CC00485EAB00485EAB00485EAB005167 + B0004B62B20000000000000000000000000000000000000000004F64B1003960 + E2003960E2003960E2003960E2008FA5EF008FA5EF008FA5EF008FA5EF008FA5 + EF008FA5EF008FA5EF008FA5EF008FA5EF008FA5EF003960E2003960E2003960 + E2003960E2004F64B1000000000000000000000000005F79D3003C65EE00426A + F0006183F2007491F40088A2F600B3C3F900ADBEF8009EB3F700829CF5007491 + F4006787F3004F74F100446BF0003B64EF003761EF003761EF003761EF003761 + EF003761EF003B64ED005872CD0000000000000000004E67BE00A1B5F700A1B5 + F700A1B5F700A1B5F700B3C3F8004E68C100BFCDF60000000000000000000000 + 0000000000000000000000000000BFCDF6009BABDE00B3C3F800A1B5F700A1B5 + F700A1B5F700A1B5F70000000000000000000000000000000000000000004D65 + B6009BAEF000ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBB + F200ABBBF200ABBBF200ABBBF20092A0CF00C7D2F600AEBEF200718CE7004C65 + B900BFCCF5000000000000000000000000000000000000000000536AB7004267 + E6004267E6004267E6004267E600A2B4F300A2B4F300A2B4F300A2B4F300A2B4 + F300A2B4F300A2B4F300A2B4F300A2B4F300A2B4F3004267E6004267E6004267 + E6004267E600536AB7000000000000000000000000003761EF000936CC00214A + D4005475E4006E8AE900869EEF0098ADF50088A1F5007B96F0005C7BE2004E6E + DA003F60CF002648B900193BAB000E2F9E000324930003269A000328A000042B + AD00042DB500042EBB005872C90000000000000000004F69C000A9BBF800A9BB + F800A9BBF800A9BBF800A9BBF800A0ADDF00526CC70000000000000000000000 + 0000000000000000000000000000526CC700B9C8F900A9BBF800A9BBF800A9BB + F800A9BBF800A9BBF80000000000000000000000000000000000000000004E66 + B80097ABEF00AEBEF300B1C1F300B2C1F300B2C1F300B2C1F300B2C1F300B2C1 + F300B2C1F300B2C1F300B1C1F30096A3CF00A6B7F100738EE800546DC200BFCC + F500000000000000000000000000000000000000000000000000546BB900466B + E7000000000000000000466BE700AABBF400AABBF400AABBF400AABBF400AABB + F400AABBF400AABBF400AABBF400AABBF400AABBF400466BE700000000000000 + 0000466BE700546BB900000000000000000000000000486CE800496DE8005477 + EA006D8AED007994EE00849DF0008BA2F000849DF0007E98EE00708DED006A88 + ED006483EB005678EA005174EA004C70E800486CE800486CE800486CE800486C + E800486CE800486CE8005872C9000000000000000000556FCC005069C0005069 + C0005069C0005069C0005069C0005069C000556FCC0000000000000000000000 + 0000000000000000000000000000556FCC005069C0005069C0005069C0005069 + C0005069C0005069C00000000000000000000000000000000000000000004F67 + BA00879FEE009DB0F100A5B6F100A8B9F200A8B9F200A8B9F200A8B9F200A8B9 + F200A8B9F200A7B8F100A5B6F1008898CD006986E7005770C4004F67BD000000 + 0000000000000000000000000000000000000000000000000000576DBB00496E + E9000000000000000000496EE900B2C2F500B2C2F500B2C2F500B2C2F500B2C2 + F500B2C2F500B2C2F500B2C2F500B2C2F500B2C2F500496EE900000000000000 + 0000496EE900576DBB000000000000000000000000005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C000516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516A + BD00516ABD00516ABD00516ABD00516ABD00516AC000BFCDF500000000000000 + 00000000000000000000000000000000000000000000000000007790E100546B + BE005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C100546BBE007790E10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455CA5002F3E + 7100475CA400445BA800435AA700435AA600435AA600435AA500435AA500435A + A500445AA5004359A3004359A3004359A2004359A1004359A1004358A0004353 + 8C002D3A660043589F000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B500263774000000000000000000000000007E7E7E003C3C + 3C007B7B7B008A8A8A00D8D8D800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3E90029396C003B4A7E0043549300485C9E00485C + 9E00485C9E00435493003B4B80002A396E00A3B3E90000000000000000000000 + 000000000000000000000000000000000000000000006279C90030427E004660 + B400072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A300495EA5002E3D71000000000000000000000000003753B2000F34AF001236 + AE00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AF00283A7C000000000000000000000000009E9E9E005959 + 5900333333006B6B6B0088888800C6C6C6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E55A3002F3E7400455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF002F3E74003E55A300000000000000 + 00000000000000000000000000000000000000000000283C8000495EA8002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A800485B9B000000000000000000000000003C58B800173CB5001D40 + B6002244B6002345B7002345B6002446B7002446B7002446B7002446B7002446 + B7002446B7002446B7002446B7002446B7002345B6002345B6002345B7002144 + B7001E41B700183DB6002A3D8100000000000000000000000000000000007676 + 76003C3C3C00ADACAC00C4C3C2008D8D8D0080808000B0B0B000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293D85003D4E8900465FB0000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA100465FB0003D4E8900293D85000000 + 000000000000000000000000000000000000000000002B3D81004361C700042C + B300042CB200042CB100042BB000042BAF00042BAE00042BAD00042BAC00042A + AB00042AAA00042AAA00042AA9000429A8000429A7000429A6000429A6000328 + A4000328A300435EBB000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5002B4BB5000626910003269B00677FCF004160C8003556C5003556 + C5003254C400284CC4002F448D00000000000000000000000000000000000000 + 0000E0DFDF00CECCCC00C0BEBD00A09E9D00605F5E006F6F6E0027377200B6C3 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002D41 + 8A003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9002D41 + 8A0000000000000000000000000000000000000000002D4185004362CA00042D + B800042DB600042DB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00042AAA00042A + AA00042AA900425EBD000000000000000000000000004C6ACD003054CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC000728960003279F0003279F002343AD006D85D5004A68CE003F5F + CC003C5DCC003155CB0031479200000000000000000000000000000000000000 + 0000CBCACA00DAD9D900C7C6C500767574007777760071737A003E508B002738 + 7300B6C5F0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000445DAE004154 + 9500082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004154 + 9500445DAE00000000000000000000000000000000002F438A004363CE000530 + BE00042EBC00042EBB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0003259600042B + AE00042BAE00425FC1000000000000000000000000005471D4003C5FD2004969 + D3004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6A + D2003D5BC100072CA400072CA400072CA400072CA4002646B100758CD9004B6A + D2004969D2003C5FD100344A9700000000000000000000000000000000000000 + 00009A999900E3E2E200C8C7C6009291910085888F001F3A95003E57A9003E50 + 8B00283873000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A7B6EC00384987004863 + BE00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004863 + BE0038498700A7B6EC00000000000000000000000000334993004A6BD800143E + CA00153EC900143DC800123CC8000C30A8000A2FA700092EA700062BA4001437 + A9001437A9000328A1000328A1000328A00003279F0003279F0003279F00042D + B800042DB8004362C9000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1005571CF001435 + A2001035AF001035AF001035AF001035AF001035AF001035AF001035AF00859B + E3006C87E3005373E0003A51A300000000000000000000000000000000000000 + 0000B0B0B00093929200B3B2B2006883E0005070DC003B5CCB00092A99000F2D + 93003E57A900293A7500B6C5F100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000394B8E004A67C800133A + BF000C35BE000C35BE000C35BE00FFFFFF00FFFFFF00A2B2E5000C35BE000C35 + BE000C35BE00A2B2E500FFFFFF00FFFFFF000C35BE000C35BE000C35BE001239 + BE004A67C800394B8E00000000000000000000000000354B98004E6FDC001D46 + D1002149D1001F48D0001D46CF001A43CD001841CC001640CB002148CC00D1D9 + F400D1D9F4000B36C5000A35C4000833C3000530C1000530C100042FBF00042F + BE00042FBD004363CD000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900173496001336 + A9001336A900153AB500153AB500153AB500153AB500153AB5001439B1003250 + B4008B9FE3006885E8003C55A800000000000000000000000000000000000000 + 0000000000006F75900091939D006E8CF2006A88EC005574DD002143B300092A + 99000F2D930040528C002A3B7500B6C5F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004A5DA500395BCD00153D + C400173FC400173FC400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173F + C400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173FC400173FC400153D + C400395BCD004A5DA500000000000000000000000000384F9D005172E000264F + D8002C53D7002A51D6002951D600254DD400234BD300214AD200D3DBF500FFFF + FF00FFFFFF00254CCF00153FCB00133DCA000F3AC8000E39C7000C37C7000833 + C4000632C3004364D1000000000000000000000000007591EF006887EE007B96 + F000819BF000819BF000819BF000819BF000819BF000819BF000142F8C00142F + 8C00142F8C001A3FBA001A3FBA001A3FBA001A3FBA001A3FBA002949B400142F + 8C00324B9D008DA3EB004058AE00000000000000000000000000000000000000 + 000000000000BECCF500455FB900829DF5007B97F4006C89EC003B5CCB002143 + B300092A99003E57A90040528D002A3C76000000000000000000000000000000 + 000000000000000000000000000000000000000000005169BD003357CF002148 + CB00234ACB00234ACB00234ACB009DA9D000FFFFFF00FFFFFF00ABBAEB00234A + CB00ABBAEB00FFFFFF00FFFFFF009DA9D000234ACB00234ACB00234ACB002148 + CB003357CF005169BD000000000000000000000000003C54A7005879E800375E + E2004267E3004065E2003F64E2003B61E0004569E100D9E0F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D6DDF700365BDA00264ED600244DD600224BD4001E47 + D2001742D0004B6CDB000000000000000000000000007E99F500708EF400829D + F50094ABF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF7002448BF002448BF002448BF002448BF002448BF00B7C7F90099AF + F70091A8F6007E99F500445DB400000000000000000000000000000000000000 + 00000000000000000000000000004762BB00627BD4007D98F5006B89EC005574 + DD003B5CCB00092A99000F2D93003E57A9002C3D7800B6C5F100000000000000 + 000000000000000000000000000000000000000000005D78D5002D54D500365B + D700395ED800395ED800395ED800395ED8003353BE00A4AFD400FFFFFF00FFFF + FF00FFFFFF00A4AFD4003353BE00395ED800395ED800395ED800395ED800385D + D8002E54D5005F79D5000000000000000000000000003F58AB005C7DEC003F66 + E7004D71E9004B6FE700496EE7005073E600DBE2F900FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00D8DFF8003158DC002F56DB002D55DA002951 + D900204AD6004E6FDE000000000000000000000000007C97F4006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F8002646B3002646B3002646B3002646B3002646B300BECCFA00A1B5 + F70095ACF700819BF500455EB600000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BC00627CD5007894F4006D8A + EC005574DD002143B300092A99000F2D930042548E002C3E7900B6C5F1000000 + 00000000000000000000000000000000000000000000607BD800365CDC004266 + DE004569DF004569DF004569DF004569DF004569DF003D5CC300FFFFFF00FFFF + FF00FFFFFF003D5CC3004569DF004569DF004569DF004569DF004569DF004468 + DF003A5FDC006681DB00000000000000000000000000415AB1006081F000486D + EC00587BED005679EC005477EC00DDE4FA00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005F7EE6003A60E000395FE000335A + DE002952DC005173E200000000000000000000000000ADBEF8009AAFF700A0B4 + F700A7B9F800ACBDF800ADBEF8009FB3F700A4B7F800A6B9F800A7B9F800A7B9 + F800A8BAF800223C9000223C9000223C9000223C9000223C9000C0CEFA009FB3 + F70093AAF600809BF5004660B700000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004A64BD007E99F5007E99 + F5006D8AEC003B5CCB002143B300092A99003E57A90042548F002D3E79000000 + 00000000000000000000000000000000000000000000657FDC003F64E1004D70 + E3005173E3005173E3005173E3005173E3005173E300BCC9F400FFFFFF00FFFF + FF00FFFFFF00BCC9F4005173E3005173E3005173E3005173E3005173E3004F71 + E3004368E1006C85DE00000000000000000000000000455EB6006787F300597C + F2006E8DF3006D8CF3006B8AF3005B77D5005772CF005570CD00FFFFFF00FFFF + FF00FFFFFF004C69CB004A68CB004866CA004563C9004564CA004D71E700486D + E9003A62E700597BEA000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ABBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B900000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67C0006C85 + D80088A2F6006D8AEC005574DD003B5CCB00092A99000F2D93003E57A9002E40 + 7B00B6C5F100000000000000000000000000000000006680D6006080EC006080 + EB006886EC006886EC006886EC00C5D1F800FFFFFF00FFFFFF00B2BBDA005670 + C400B2BBDA00FFFFFF00FFFFFF00C5D1F8006886EC006886EC006886EC006181 + EB006181EC006780D6000000000000000000000000004660B7006B8AF3006183 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300FFFFFF00FFFF + FF00FFFFFF005671CE006384F3006082F1005C7EF0005B7EF000597CEF005276 + EE004269EB005C7EEE000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006D85D9007E99F5006D8AEC005574DD002143B300092A99000F2D93004354 + 8D004C526E00AFBEEE000000000000000000000000006279C8006E8CF0006887 + EF007491F1007491F1007491F100FFFFFF00FFFFFF00FFFFFF00657FD3007491 + F100657FD300FFFFFF00FFFFFF00FFFFFF007491F1007491F1007491F1006988 + EF006E8CF0006279C8000000000000000000000000004761B8006E8DF3006A8A + F300849EF500829DF500819BF5007E99F5007C97F4007A96F400FFFFFF00FFFF + FF00FFFFFF005E78CF006D8CF3006C8BF3006888F3006686F3006586F3005E80 + F2004B71F0006082F1000000000000000000000000007C97F4005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1004B65BC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6004F69C2007E99F5007894F4006B89EC003B5CCB002143B300092A99007B7E + 8F0068676900555769000000000000000000000000005169BB007E97F0006F8D + F300819BF500819BF500819BF500FFFFFF00FFFFFF00BAC2DC00819BF500819B + F500819BF500BAC2DC00FFFFFF00FFFFFF00819BF500819BF500819BF5007290 + F4007E98F1005169BB000000000000000000000000004963BA007491F4007995 + F4009BB0F70099AFF70097ADF70093AAF60091A8F60090A8F600FFFFFF00FFFF + FF00FFFFFF007187D100839EF500829CF5007F9AF5007D98F5007B97F400718F + F400597CF2006686F300000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC4006881D9007D98F5006C89EC005674D700949AAF00F4F4 + F400E3E2E200B1B2B800697CC2000000000000000000AEBDF200586EBF00869E + F0008FA7F60096ACF70096ACF7008497D8008497D80096ACF70096ACF70096AC + F70096ACF70096ACF7008497D8008497D80096ACF70096ACF70091A8F60089A1 + F000586FBF00AEBDF2000000000000000000000000004B64BB007693F4007D98 + F500A6B9F800A4B7F800A2B6F8009FB3F7009DB2F7009BB0F700FFFFFF00FFFF + FF00FFFFFF007B8FD1008EA6F6008CA5F60089A2F60087A1F500859FF5007995 + F4005F81F2006888F30000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600536DC6006882DA007A95ED00B9BFD400BFBEBC00EEEE + ED00CDCED400898D9C005A6387000000000000000000000000005C76D2006980 + CE008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F7008FA7F6006F85 + D0005C76D200000000000000000000000000000000004C65BC007C96EF007F9A + F500ADBEF800AFC0F900ADBEF800AABCF800A8BAF800A6B9F800A3B6F800899A + D3008798D2008496D2009AAFF70098AEF70094ABF60092A9F60090A8F6007B97 + F4006283F200718EEE000000000000000000000000008DA5F6006787F3006787 + F3006787F3006787F3006989F3008597D700546DC10091A5EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600536EC700ADB2C100EDECEC00EDECEC00BFC0 + C6008F93A2008F93A2006A6E7E00000000000000000000000000000000004E68 + C30094ABF60097ADF700A8BAF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF70095ACF7004E68 + C30000000000000000000000000000000000000000007990E3005F77C8008AA2 + F1008AA3F60091A8F60094ABF60094ABF60093AAF60093AAF60090A8F6008EA6 + F6008DA5F6008AA3F60088A2F60086A0F500829DF500809BF5007995F4007391 + F4007D97EF005D74C700000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000787D9300B5B5B900C9CAD000AFB4 + C300B3B8C800B3B9C8007286CC00000000000000000000000000000000000000 + 00004F6AC500758AD3009EB2F400A8BAF800B2C2F900B7C7F900BCCAFA00BCCA + FA00BBCAFA00B6C6F900B1C1F900A7B9F80098ADF2006F85D1004F6AC5000000 + 0000000000000000000000000000000000000000000000000000546FCB006078 + C9007C97F400809BF500829DF500839EF500829DF500829DF500819BF500819B + F500809BF5007F9AF5007E99F5007E99F5007B97F4007A96F4007794F400718B + E6005E75C8006680D90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006974A1009095A500BCC1 + D000BCC1D100A3A8B80000000000000000000000000000000000000000000000 + 0000000000005E79D3005F76C5009FB3F500A3B6F800A4B7F8009FB3F7009FB3 + F7009FB3F700A3B6F800A0B4F7009FB3F5005F76C5005E79D300000000000000 + 0000000000000000000000000000000000000000000000000000000000007991 + E3005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C000506A + C3007991E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007489C8008E92 + A200828BAF007A8ED40000000000000000000000000000000000000000000000 + 00000000000000000000AEBEF2005C74C500768CD500859AE40090A6F10091A7 + F10090A6F100839AE500758AD5005C73C400AEBEF20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DADA + DA002F417A002834600028346000283460002834600028346000283460002834 + 600028346000283460002834600028346000283460002834600028346000CACA + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CDD6F6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000092A1D7002635640026356300C3C3C300CACACA00D3D3D300000000000000 + 0000000000000000000000000000D5D5D50090A1D5002532600025326000C8C8 + C800DADADA0000000000000000000000000000000000C2C2C200C0C0C0003345 + 7F0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0033457F00C0C0C000D6D6D600000000000000000000000000000000000000 + 00002A3970000525910004208000031D7300031D7300031D7300031D7300031D + 7300031D7300031D7300031D7300031D7300031D7300031D7300031D73000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B6C3F0002939 + 740027366B000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F100405396003F5AB6003F5AB5002A3D7D00B9C6F10000000000000000000000 + 0000000000000000000000000000B7C5F1003F5291003E58AF003E58AF00283A + 7800B7C5F100000000000000000000000000000000000000000000000000364B + 99007E93D7007D92D7007D92D7007C91D7007C91D7007C91D7007B90D7007B90 + D7007B90D7007A8FD700798FD700798FD700788ED700788ED700778DD70099A9 + E100364B99000000000000000000000000000000000000000000000000000000 + 00002D407F00637BCA005771CB006684EA006684EA006684EA006684EA006684 + EA006684EA006684EA006684EA006684EA006584EA008AA1EF00032288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7C5F1004A5B99003E59 + B1003E59B1002C3B73008195DB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BAC6F2002C40 + 83003E5AB9000F32A8000F32A800415599002B3F8000B9C6F100000000000000 + 00000000000000000000B9C6F1002A3E7D003F5AB4000F31A0000F31A0004052 + 94002A3C7B00B7C5F1000000000000000000000000000000000000000000384F + 9D008398DC008398DC008297DC008297DC008297DC008196DC008196DC008196 + DC008196DD008095DC007F94DC007F94DC007E94DC007E94DC007E94DD009EAE + E500384F9D000000000000000000000000000000000000000000000000000000 + 000030438400667ECF00536ECB005D7EEB005D7EEB005D7EEB005D7EEB005D7E + EB005D7EEB005D7EEB005D7EEB005D7EEB005D7EEB00879FF00003238D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B9C6F1002E4281003F5AB6000F31 + A3000F31A3004A5D9E002D3E79008196DC000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F2002E4288004358 + A0000F34AD00042AAA00042AA9003E5BBC0042569D002D418500000000000000 + 000000000000B9C6F1002C41820041569A000F32A7000328A1000328A1003F5A + B700415598002B3F7F0000000000000000000000000000000000000000003A51 + A2008A9EE100899DE100899DE100889DE100879CE100879CE100869BE100869B + E100869BE100859AE100859AE100859AE1008499E1008499E1008499E100A2B2 + E8003A51A2000000000000000000000000000000000000000000000000000000 + 000032478A006780D3004C68C8005477EA005477EA005477EA005477EA005477 + EA005477EA005477EA005477EA005477EA005477EA00829CF000032493000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C6F100304285004C5FA1000F33A9000328 + A4000328A4003E5AB9004C5FA1002F417E000000000000000000000000000000 + 000000000000000000000000000000000000000000006678B5004261C800183D + BC001036B7001036B7000F35B6000A31B4001338B700405EC40032468E00BAC7 + F200BAC7F2004459A4003F5DC2001035B200042BAD00042BAC00042BAC00042A + AB000F34AE003E5BBD002F428800000000000000000000000000000000003E56 + AA0097AAEC0097AAEC000633C9000633C9000633C9000633C9000633C9000633 + C9000633C90092A7EB0092A7EB0092A7EB0091A6EB0091A6EB0091A6EB00ABBB + F0003E56AA000000000000000000000000000000000000000000000000000000 + 0000374C96006883DB003C5CC6004268E9000434D2004268E9004268E9004268 + E9004268E9004268E9004268E9000434D2004268E9007893F00003279D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC7F2004E62AA003E5CC2001035B400042BB000042B + B000042BB000042BB0001035B4003E5CC200344688008499DF00000000000000 + 000000000000000000000000000000000000000000007D8DC1007D93DC001C42 + C200183EBF001A40C000193FBF00143BBC001037BB00183EBD00465CA900344A + 9200344991003F5EC6001036B700042CB400042CB300042CB200042CB200042B + B0001035B400798ED40032478C00000000000000000000000000000000004159 + AE00A1B3F200A1B3F200A1B3F200A0B3F200A0B3F2009FB2F2009FB2F2009EB1 + F2009EB1F2009DB0F2009DB0F2009CB0F2009BAFF1009BAFF1009BAFF100B1C1 + F4004159AE000000000000000000000000000000000000000000000000000000 + 00003A509A006984DF003455C4003962EA000434D3003962EA003962EA003962 + EA003962EA003962EA003962EA000434D3003962EA00728FEF000328A1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC7F200374B94003F5EC7001037B900042DB600042DB600042D + B600042DB600042DB600042DB6001037B9004F65AF0036498C00859AE1000000 + 00000000000000000000000000000000000000000000384E9A007F8FC4007F95 + DF001D44C5002147C7002248C7001E44C4001B42C300163DC1004564CD004860 + AD00485FAD00153CBE000831BA000730B900042DB700042DB700042DB7001037 + B9007A90D8007C8BBE00BAC7F20000000000000000000000000000000000425C + B300A9BBF600A9BBF6001541D3001541D3001541D3001541D3001541D3001541 + D3001541D3001541D3001541D3001541D3001541D3001541D300A3B6F600B8C7 + F800425CB3000000000000000000000000000000000000000000000000000000 + 00003C53A1006985E2002B4EC300305BEA000534D400305BEA00305BEA00305B + EA00305BEA00305BEA00305BEA000534D400305BEA006C8AF0000429A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BCC8F300394F98005167B200153CC0000932BC000932BC000932BC000932 + BC000932BC000932BC000932BC000932BC004161CC005167B200394C91000000 + 0000000000000000000000000000000000000000000000000000BDC9F4003C53 + A200839AE5002C52D2002A50D1003055D2002E53D1002C52D100264DCE002D52 + CF002B50CF001E46CB001C44CA001A42C900143DC600103AC500173FC700808F + C500394F9B00BCC8F3000000000000000000000000000000000000000000455F + B600B6C6F900B6C6F900244DD600244DD600244DD600244DD600244DD600244D + D600244DD600244DD600244DD600244DD600244DD600244DD600B1C1F900C0CE + FA00455FB6000000000000000000000000000000000000000000000000000000 + 00004259AD006987EA001B41C1001E4DEA000535D6001E4DEA001E4DEA001E4D + EA001E4DEA001E4DEA001E4DEA000535D6001E4DEA006081F000042BB0000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F400536BBC00496AD7002C51D000284ECE002A50D0002048CD001C44CC001C44 + CC001C44CC001C44CC001C44CC002A50D000254CCE002C51D000496AD7003D52 + 9C00899EE400000000000000000000000000000000000000000000000000BDCB + F4008393CD00859CE7003056D600375CD800365BD700355AD6003056D5002E54 + D4002C52D300274ED100254CD000234BD0001942CC001E46CE007E95E2003A52 + A000BDC9F4000000000000000000000000000000000000000000000000004660 + B700BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9FA00BAC9FA00B9C8F900B9C8 + F900B9C8F900B9C8F900B8C7F900B8C7F900B7C7F900B7C7F900B7C7F900C4D1 + FA004660B7000000000000000000000000000000000000000000000000000000 + 0000455EB2006987ED00133ABE00153CBF000535D7001546EA001546EA001546 + EA001546EA001546EA001546EA000535D7001546EA005A7DF100042DB6000000 + 0000000000000000000000000000000000000000000000000000000000003D56 + A500506ED2005370D2005673D3005B77D4005A78DC002B52D400254DD300254D + D300254DD300254DD300244CD3005A78DC005974D3005673D3005370D2005D72 + B9004056A000D1DAF80000000000000000000000000000000000000000000000 + 00004059AB008495D000869DEA003A5FDC003F64DD003D62DC003A5FDB00385D + DB00355BDA003157D7002E55D6002C53D600254DD4008097E5008292CB00BDC9 + F400000000000000000000000000000000000000000000000000000000004760 + B800C1CEFA00C2CFFA003358D7003358D7003358D7003358D7003358D7003358 + D7003358D7003358D7003358D7003358D7003358D7003358D700BCCAFA00C8D4 + FB004760B8000000000000000000000000000000000000000000000000000000 + 00004761B8006988F1000B34BD009DB2F6000535D7000C3FEA000C3FEA000C3F + EA000C3FEA000C3FEA000C3FEA000535D7000C3FEA005478F000042EBA000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + AF003F56A5003F56A5003F56A5003F56A5005D79D8002A52D9002F56DA002F56 + DA002F56DA002F56DA002951D9005D79D7003F56A5003F56A5003F56A5003F56 + A5003F58AA000000000000000000000000000000000000000000000000000000 + 000000000000BECCF500455EB5006483EA005275E8004F72E7004B6FE600496D + E500466BE4004267E3004166E3004267E2007C8FD100425BB000BDCBF4000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00CBD6FB00CBD6FB004164D8004164D8004164D8004164D8004164D8004164 + D8004164D8004164D8004164D8004164D8004164D8004164D800C7D3FB00CFD9 + FB004962BA000000000000000000000000000000000000000000000000000000 + 00004A64BC006989F300042DB6009AAFF3002242AE002245BA000538E4000538 + E4000538E4000538E4000538E4000434D2000538E4004F73EB00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445DB100607DE000375FE5004167E6004167 + E6004167E6004167E600375FE500607DE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCCF5004861BA006887EE00597BEC00597BEC005578EB005275 + EA005074EA004C70E800496EE8004B6FE7005670CB00465EB400BFCCF5000000 + 0000000000000000000000000000000000000000000000000000000000004A63 + BB00D0DAFB00D1DBFB00D0DAFB00CFD9FB00CFD9FB00CFD9FB00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB00CCD7FB00CCD7FB00CCD7FB00D2DB + FB004A63BB000000000000000000000000000000000000000000000000000000 + 00004B65BD006989F300042CB4009AAEF2009BADEC009AAEF2000537E1000537 + E1000537E1000537E1000537E1000433D0000537E1004F73EA00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004760B5006381E5003E65EA004A6FEB004A6F + EB004A6FEB004A6FEB003E65EA006280E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCCF5004B65BE005975D300577AF0005E80F0006384F1005E80EF005C7E + EF00597CEE005477ED005276ED004E73EC00597BEC005973CF004861B9000000 + 0000000000000000000000000000000000000000000000000000000000004B64 + BC00D5DEFC00D5DEFC005070D9005070D9005070D9005070D9005070D9005070 + D9005070D9005070D9005070D9005070D9005070D9005070D900D0DAFB00D5DE + FC004B64BC000000000000000000000000000000000000000000000000000000 + 00004C66BD006989F300042CB2009AAEF1000433CE000537DE000537DE000537 + DE000537DE000537DE000537DE000433CE000537DE004F72E800042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004964BB006683E800466DEE005478F0005478 + F0005478F0005478F000456CEE006582E8000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005B76D5006183F200577BF2007693F4007894F4007592F400718FF4006E8D + F3006B8AF3006888F3006586F3006384F3005277F1004A70F0005C7FF2004D67 + C000BFCDF6000000000000000000000000000000000000000000000000004D66 + BD00DDE4FC00DDE4FC005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7B + DA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA00D9E1FC00DBE2 + FC004D66BD000000000000000000000000000000000000000000000000000000 + 00004E68BF006989F300042BAD000535D9000432CA000535D9000535D9000535 + D9000535D9000535D9000535D9000432CA000535D9004F71E300042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BE006B88EA005479F1006686F3006686 + F3006686F3006686F3005479F1006A87EA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006384F3005C7FF2006C8BF300829DF500819BF5007F9AF5007290F400718F + F4006F8DF3006F8DF3006F8DF3006C8BF3006485F300577BF2004E73F1005D78 + D6004E68C100BFCDF60000000000000000000000000000000000000000004E67 + BE00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00E0E6FC00E0E6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DFE6 + FC004E67BE000000000000000000000000000000000000000000000000000000 + 00004F69C0006989F300042AAB000535D6000431C7000535D6000535D6000535 + D6000535D6000535D6000535D6000431C7000535D6005072E200042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BF006D8AEA005C7FF200708EF400708E + F400708EF400708EF4005C7FF2006D8AEA000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF6004F69C2005C77 + D6005F81F2007290F400849EF5008CA5F60089A2F600829DF5006B8AF300A3B6 + F800A3B6F8006A8AF3007391F4007592F400718FF4006989F3005A7DF2005D80 + F2005A76D6004F69C20000000000000000000000000000000000000000004F68 + BF00E5EAFD00E5EAFD006D87DB006D87DB006D87DB006D87DB006D87DB006D87 + DB006D87DB006D87DB006D87DB006D87DB006D87DB006D87DB00E1E7FD00E1E7 + FD004F68BF000000000000000000000000000000000000000000000000000000 + 0000506AC1006989F300042AA9000434D3000431C5000434D3000434D3000434 + D3000434D3000434D3000434D3000431C5000434D3004F70DF00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004E68C000708CEA006485F3007995F4007995 + F4007995F4007995F4006485F300708BEA000000000000000000000000000000 + 00000000000000000000000000000000000000000000778EDB005B7EF2005579 + F10086A0F50098AEF700A0B4F70091A8F6007D98F5006888F3008FA1E000506A + C400506AC40095ACF7005B7EF2006B8AF300829CF500809BF5007995F4005378 + F1003E67F0005075F100506AC40000000000000000000000000000000000516A + C100EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E6EB + FD00516AC1000000000000000000000000000000000000000000000000000000 + 0000526CC3006989F3000328A4000433CE000430C1000433CE000433CE00B2C0 + F000B2C0F0000433CE000433CE000430C1000433CE004F6FDC00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000506AC1007590EC007491F4008CA5F6008CA5 + F6008CA5F6008BA4F6007491F400748FEC000000000000000000000000000000 + 000000000000000000000000000000000000000000008B9FE0008FA7F600577B + F20089A2F60099AFF7009EB3F700829CF5006C8BF3009AAFF700516BC400BFCD + F600BFCDF6008EA1E00095ACF7005D80F2007E99F500819BF5007A96F4005479 + F1003E67F00086A0F500516BC40000000000000000000000000000000000526B + C200EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00ECF0 + FE00ECF0FE00EBF0FD00EBF0FD00C8CCD800C8CBD600C8CBD600C8CCD700C6CA + D700526BC2000000000000000000000000000000000000000000000000000000 + 0000536DC4006989F3000328A2000432CB00042FBF000432CB000432CB000432 + CB000432CB000432CB000432CB00042FBF000432CB004F6FDA00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC2007892EC007B97F40095ACF70095AC + F70095ACF70095ACF7007B97F4007691EC000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC50090A2E1009AAF + F7007F9AF5008EA6F60091A8F6006E8DF3009BB0F7008FA2E100BFCDF6000000 + 000000000000526CC5008FA1E10095ACF7006F8DF3007693F400718FF4005378 + F1008DA5F6008D9FE100BFCDF60000000000000000000000000000000000526C + C300F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00EFF3FE00EEF2FE00EEF2FE00CBCED800516BC100526CC300526CC300526C + C300526CC3000000000000000000000000000000000000000000000000000000 + 0000546EC5006989F3000328A0000431C800042EBC000431C8000431C8000431 + C8000431C8000431C8000431C800042EBC000431C800506FD800042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000526CC3007994EC00829CF5009EB3F7009EB3 + F7009EB3F7009EB3F700819BF5007993EC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009DB2F7006082F2006082F20090A3E100536EC700BFCDF600000000000000 + 00000000000000000000BFCDF600536EC70095ACF7004F74F1004E73F10091A3 + E100536EC700BFCDF6000000000000000000000000000000000000000000546E + C500F4F7FE00F5F7FE00F5F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7 + FE00F4F7FE00F3F6FE00F3F6FE00CFD1D800FAFBFF00FAFBFF00F5F7FD00536E + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005670C7006888F30003269C000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C200506ED400042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000546EC5007A94ED00829CF500B0C0F900B0C0 + F900B0C0F900A9BBF800829CF5007993ED000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60092A4E20092A9F60092A9F600556FC700C1CDF60000000000000000000000 + 0000000000000000000000000000C1CDF60090A3E2008DA5F6008CA5F600556F + C700C1CDF600000000000000000000000000000000000000000000000000556F + C600F5F7FE00F7F9FE00F7F9FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F5F7FE00F5F7FE00D0D2D800FAFBFF00F5F7FD00B7C2E800C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 00005771C8006586F30003269900042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC0004F6DD2000430C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556FC600738FEC007693F400A3B6F800A6B9 + F800A6B9F80098AEF7007693F400728EEC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8008DA1E3008DA1E300C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000005670C8008DA1E3008DA1E300C1CD + F600000000000000000000000000000000000000000000000000000000005670 + C700F5F7FE00F7F9FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F7F9FE00D2D4D800F4F6FD00B7C3E8005670C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C8005D80F20003259700032597000325970003259700032597000325 + 970003259700032597000325970003259700032597003F57A6000536D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C7006D88E5007590ED00859DEE00869E + EE00869EEE00829AEE007691ED006C88E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9005871C8005871C8005871C8005871C8005871C8005871C8005871C8005871 + C8005871C8005871C8005871C8005871C8005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005A73C9005A73C9005A73C9005A73C9005A73C9005A73 + C9005A73C9005A73C9005A73C9005A73C9005A73C9005A73C9005771C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002A3B78002F448B00B9C6F1000000000000000000000000002F44 + 8B002A3B78002F448B0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C5CEF3006A7FC8002A3A75002433 + 6900243369002A3A7500364D95006A7FC8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6C3F000414F800023316200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374887006D84CF005B73C7007286C800566EBE000E30A300334FB1008496 + D5006D84CF005D74C10000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000004256 + 9B008E9ED10095A7E2009FB0E900A1B1E9009DADE40099A9DF008E9ED3008999 + CD008595C7007C8BBB007785B5007381AF007180B2007A8ABF008191C3004256 + 9B00000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCD6 + F60022357800435BAA0023336900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000364C98009EADDD008492C30031448600506CCA00042CB400314486008391 + C3009EADDD008291C30000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000002736 + 6E00708ADF007993E70091A7F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC8002736 + 6E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002F43 + 840043538C00425CB00025356D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F20033478B00374D9C00BAC7F2004F6CCE00042EB90033478B00374D + 9C0033478B00374D9C0000000000000000000000000000000000000000000000 + 0000334686006E7AA6004C65B8000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000002A3A + 74006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4002A3A + 7400000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000046589600405B + B8000F33A900435EBA002A3B7700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000384D9600384D9600384D9600384D9600384D + 9600384D9600384D9600384D9600384D96001F46CB000C37C600384D96000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100BCBFC900A6ABBA00808DB6001438AE00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB10000000000000000000000000000000000000000003042 + 8200718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4003042 + 820000000000000000000000000000000000000000000000000090A3E3003B51 + A2002F4385002F4284002E4284002E4183002E4183002E408100405DBD000F34 + AF00042AAA00425EBD002C3E7D002B3D7C002B3C7A002B3C7A002B3C79002A3C + 7800344A95008196DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000617BD4001F44C1002C50C6005F79D3005F79 + D3005F79D3005F79D3005F79D3006079D3005A78DC00133ECD003754BA000000 + 0000000000000000000000000000000000000000000000000000A8B7ED005665 + 9800B2B6C300ADB1BF00A9AEBE004A63B7001439B200042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000000000003346 + 8800708ADF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4003346 + 88000000000000000000000000000000000000000000546CC100405498004D66 + B7004261CA004362CA004362C9004261C7004361C7004361C7001036B600042C + B100042BB0003655BE00425FC1004360C100425FBF00425EBE00435FBE004661 + B9004B60A8003B4C870000000000000000000000000000000000000000000000 + 00000000000000000000000000005E7CE0002C53D7003D52A0003D52A0003D52 + A0003D52A0003D52A0003D52A0003D52A0005670CA00163BB4003D52A0000000 + 0000000000000000000000000000000000000000000000000000455BAE00A2A9 + BF00B1B6C300B1B6C300B1B6C3008794C0004B65BB00153AB700042DB600042D + B600042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD000000000000000000000000000000000000000000364A + 8F007790E1007C95E90092A8F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC800364A + 8F000000000000000000000000000000000000000000506AC100294FD0000C38 + CA000D38C8000C37C6000C37C6000934C3000833C2000833C1000631BF00052F + BD00042EBC00042EBA00042EB900042DB800042DB600042DB600042DB500042C + B300042CB2002346BB00354B9600000000000000000000000000374E9B002C3F + 7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F + 7E002C3F7E00374E9B00000000004259AB008099EB005879E7004960AF000000 + 00000000000000000000000000000000000000000000788DD7008D98BA00CACE + D900C1C5D300C1C5D300C1C5D300C1C5D300BDC2D10097A4CE00274CC500173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000000000000000000000D1DA + F7003D529D003D529D003D529D003D529D003D529D003D529D003D529D003D52 + 9D003D529D003D529D003D529D003D529D003D529D003D529D003D529D00D1DA + F70000000000000000000000000000000000000000004B6BD7001440D1001641 + D1001943CF001943CF001842CE00153FCB00143ECA00133DC900103AC7000E38 + C5000D37C4000B35C2000933C1000832BF000630BD00052FBC00052FBB00042E + B900042DB8000831B90033468A0000000000000000000000000032468C00506D + CF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506D + CF00506DCF0032468C00000000004C66C0008195D8004462C700445DB0000000 + 000000000000000000000000000000000000000000004963B600B6BCD100CBCF + DB00C6CAD800C6CAD800C6CAD800C6CAD800C6CAD800C4C9D8006780D1003256 + CD00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B600000000000000000000000000000000005E77 + CD0092A4E00094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC00899A + D5008596CF007C8CC3007787BC007282B6007182BB007A8CC9008697D3005E77 + CD000000000000000000000000000000000000000000496CE1001945D800214B + D800264FD800254ED700234CD500214AD3001F48D1001E47D1001B44CE001A43 + CD001841CC00163FCA00143DC800133DC800103AC5000F39C4000E38C3000A34 + C0000933BF000630BD00364A9000000000000000000000000000384E99004F6F + DA000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB00384E9900000000005069C4003D5DC9003156D300466AE2000000 + 000000000000000000000000000000000000000000003D54A200D6D9E200CED2 + DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00A7B3DB007088 + D7003D60D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002C52D2003257D3003D54A20000000000000000000000000000000000435B + AC006F89DF007892E8008FA6F10096ABF1008AA0EA007E95E200657ED0005972 + C6004E68BC003751A5002B4498001F388C001C3792002D4AAC00506BC800435B + AC0000000000000000000000000000000000000000004E72EA002B56E5003961 + E6003D64E5003B62E3003A61E300375EE100365DE000355CDF003259DD003057 + DC002F56DB002C54D9002B53D8002A52D700274FD500264ED400244CD3002149 + D1001E47D0001640CD003A519B00000000000000000000000000455EB5004F74 + EF0098ABEA005474DD005474DD00445EB400445EB4005474DD005474DD00435D + B100053AE900455EB50000000000516CC9008B9EDE00536FCE004B65BC000000 + 000000000000000000000000000000000000000000004158A600DFE2EB00D8DC + E900DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00D8DD + EA00B6C1E7005373DF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A600000000000000000000000000000000004A63 + BA00708AE000859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004361C4004A63 + BA0000000000000000000000000000000000000000005176EE00335DEB00436A + EB00486DEB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002C53 + D8002850D7001E48D4003E54A0000000000000000000000000004761B8005176 + F1009AADEC005575DE005575DE00455FB400455FB4005575DE005575DE00455F + B300073CEB004761B80000000000526DC9004D6BCE004366D9005577E8000000 + 00000000000000000000000000000000000000000000435BAB00E3E6EF00DCE0 + ED00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4 + EF00DDE1EF008CA1E8005F7EE4005173E3005173E3005173E3005173E3005173 + E3004F71E3004267E000435BAB00000000000000000000000000000000004C66 + BD00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4004C66 + BD0000000000000000000000000000000000000000005378F1003B64EF004D72 + F0005277EF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00385E + DF003259DD00264FDA004157A6000000000000000000000000004A63BA00567A + F200A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC0094A2 + D2001546EC004A63BA00000000004D67BE0099AEF6007995F4005971C3000000 + 00000000000000000000000000000000000000000000475EB400E6E9F200E2E6 + F200E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8 + F300E5E8F300C3CDF00095A9EC006A87E9005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB400000000000000000000000000000000004D67 + BE00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C5004D67 + BE000000000000000000000000000000000000000000587CF2004A70F0006283 + F2006989F3006888F3006787F3006485F3006384F3006183F2005F81F2005D80 + F2005C7FF200597CF100587BF100567AF0005478EF005276EE005074EC004E73 + EB00486DEA00365FE700465FB3000000000000000000000000004E67BE006283 + F2009FABD3006174B5006174B5006174B5006174B5006174B5006174B5005F73 + B500325EEF004E67BE0000000000556FCC005B76CE005573D9006382EA000000 + 000000000000000000000000000000000000000000007790E100A7B3DC00EBEE + F900EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0 + FA00EDF0FA00EDF0FA00EBEFFA00D0D9F8007E99F1007390F0007390F0007390 + F0006988EF006E8CF0007790E100000000000000000000000000000000006680 + DA0096A7E4009EB0EB00A6B7F000A8B8F000A4B4EC00A0B0E80096A6DE0093A2 + D9008E9ED4008595CA008191C4007D8DC0007C8CC3008294CE00899BD8006680 + DA0000000000000000000000000000000000000000005A7DF2005176F1006C8B + F3007592F4007491F4007290F400708EF4006E8DF3006D8CF3006A8AF3006989 + F3006787F3006485F3006384F3006283F2005F81F2005E80F2005C7FF100597C + F0005176EF003D65EC004962B8000000000000000000000000005069C1006787 + F300B2C0ED008399E2008399E2006B7CB7006B7CB7008399E2008399E2006779 + B4004068F0005069C10000000000506AC100A5B8F70088A2F6005F76C6000000 + 00000000000000000000000000000000000000000000BFCDF6006C81CA00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00EFF2FD00AFBFF8008AA3F500819BF5007E99 + F500718FF4007E98F100CED8F70000000000000000000000000000000000D3DB + F900516AC100516AC100516AC100516AC100516AC100516AC100516AC100516A + C100516AC100516AC100516AC100516AC100516AC100516AC100516AC100D3DB + F90000000000000000000000000000000000000000005D80F200587CF2007693 + F400809BF500FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006485 + F3005B7EF200456CF0004C66BD00000000000000000000000000526CC3006B8A + F300B8C5EE0090A3E40091A4E4007585B9007585B90091A4E40090A3E4006E7E + B5004A70F000526CC300000000005671CD009EADDF007086D000516BC2000000 + 00000000000000000000000000000000000000000000000000005975D100CAD1 + ED00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DAE2FC00B6C6F90095ACF700829C + F500809BF500768DDD0000000000000000000000000000000000000000006882 + DB0094A6E40094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC008A9B + D6008697D0007C8CC3007787BC007282B6007182BB007A8CCB008899D8006882 + DB0000000000000000000000000000000000000000006183F2006586F30088A2 + F60096ACF7007F92D2007D90D1007C90D2007A8ED1007A8ED100778CD100758A + D000758AD1007288D1007086D0007086D1006E85D0006C83CF006B82D0007B97 + F4006E8DF3005277F1004F69C0000000000000000000000000005670C7006A8A + F3005A7DF2006586F3006B8AF3006F8DF3006F8DF3006D8CF3006586F300597C + F200476EF0005670C70000000000546DC400B1C1F80098AEF700647BCA000000 + 000000000000000000000000000000000000000000000000000000000000607A + D700F4F6FD00F4F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F4F7FE00E0E6FC009FB2 + F500758AD500607AD7000000000000000000000000000000000000000000546E + C5006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C500546E + C50000000000000000000000000000000000000000006183F2006A8AF3008FA7 + F600A2B6F800A0B4F7009FB3F7009CB1F7009BB0F70099AFF70097ADF70095AC + F70094ABF60091A8F60090A8F6008EA6F6008CA5F6008AA3F60089A2F600849E + F5007693F400577BF200506AC1000000000000000000000000005871C8006C8A + ED00809AEF00859EF000889FF00089A1F00089A1F00089A1F000849DF0007F99 + EF007A95EE005871C800000000005973CF00A8B5E0007F92D200556EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D6DCF200F4F7FE00F5F7FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F3F6FE00ACBA + E800546FCA00000000000000000000000000000000000000000000000000556F + C6006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004562C500556F + C60000000000000000000000000000000000000000006183F2006989F30091A8 + F600ADBEF800ACBDF800AABCF800A7B9F800A6B9F800A5B8F800A2B6F800A1B5 + F7009FB3F7009CB1F7009BB0F7009AAFF70097ADF70096ACF70094ABF6008CA5 + F6007A96F4005A7DF200516BC2000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000005974CF007C8FD1007A91DC007D97EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C74C900D8DDF200F4F6FD00F6F8FE00F7F9FE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F6F8FE00F5F7FE00F4F6FD005B74 + C900BFCDF6000000000000000000000000000000000000000000000000005670 + C7006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004663C5005670 + C70000000000000000000000000000000000000000006581E0006183F200708E + F400A2B6F800A9BBF800ACBDF800ABBDF800AABCF800AABCF800A8BAF800A6B9 + F800A5B8F800A2B6F800A1B5F700A0B4F7009CB1F70099AFF70093AAF6007B97 + F4006283F2005D80F2005570CB00000000000000000000000000000000000000 + 0000000000000000000000000000B0C0F9009BB0F7005871C8005871C8005871 + C8005871C8005871C8005871C8005871C800B3C3F900A6B9F8005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900CDD4EF00F4F6FD00F6F8FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F6F8FE00F5F7FE00CDD4EF007E91D300627DD9000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006F89DF007993E70090A6F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002F4CAD00556FC9005872 + C90000000000000000000000000000000000000000005C75CB006282EC006686 + F3007995F400829CF500849EF50086A0F500859FF500849EF500839EF500829D + F500829CF500809BF5007F9AF5007E99F5007B97F4007894F4007290F4006586 + F3006183F2006583EC007A92E500000000000000000000000000000000000000 + 0000000000000000000000000000ABBCF400B9C7F600ACBBF000A5B6EF00A5B6 + EF00A5B6EE00A5B6EF00A5B6EF00A7B6EF00BAC9FA00A4B7F8007E97E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D5007489D100AFBBE500F3F6FD00F3F6 + FD00F3F6FD00F3F6FD00D5DCF200AFBBE5005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000006B85 + DE0096A7E5009DAFEB00A6B7F000A9B9F100A5B5ED00A1B1E80098A8E00094A3 + DA00909FD5008696CB008191C5007E8EC1007E8EC5008494CF008A9CDA006B85 + DE0000000000000000000000000000000000000000006983DD006079CB00627E + E0006586F3006888F3006A8AF3006B8AF3006B8AF3006B8AF3006B8AF3006B8A + F3006B8AF3006A8AF3006A8AF3006A8AF3006989F3006888F3006586F3006A88 + EC006380E0005D77CC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900ABBCF400ABBCF4005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA0098A8DC006075BD00455BA3003B4C8B003A4B + 8900394B88003849850042579C005C71B700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F1006177C500273773002534 + 6A0025346A0027377300364D96006177C5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009BAFEC004B61AF007787C000A0ABD400BAC5EA00B5C1 + E700B1BDE500ACB9E20092A0CF006E7EB600465EB000A3B4EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C7C7C700C0C0C000AEBA + E40028345E0028345E0028345E0028345E0028345E0028345E0028345E002834 + 5E0028345E0028345E0028345E0028345E0028345E0028345E0028345E004053 + 9300AEBAE400C0C0C000D6D6D600000000000000000000000000000000000000 + 00000000000000000000000000002D4085003A4A7D0047589300556AB000556A + B000556AB000556AB0004F62A100475893002D4085008195DB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB40095A1CD00DCE1F100BBC8F100AABAEE00A7B7ED009CAEE90094A7 + E8008CA1E500889DE4007991E0006882DC00C8D3F800CED7F500929EC90096A9 + E800000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBEED004C5D9500364E9D00364E9D00364E9D00364E + 9D00364E9D00A3B2E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E42 + 86002445B400042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042A + AA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00586F + BA002D3F7F000000000000000000000000000000000000000000000000000000 + 00008297DD00334580005467A7003351B7001134AA002444B1004E68BF004E68 + BF004E68BF004E68BF003C59B9002444B1003351B700506ABE005467A7008297 + DD00000000000000000000000000000000000000000000000000000000008EA2 + E800C5CAE000E9EDFA00D7DEF500C4CEF100BBC7EF00ADBCEC0092A5E500889D + E2007D94DF008096E0008096E0009CAEE900AFBFF400BAC8F600E3E8FA003E51 + 9400859AE1000000000000000000000000000000000000000000000000000000 + 000000000000B9C8F20040529200324FB0000C2FA10003279F0003279F000327 + 9F002947AD00788DD80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003043 + 8600042CB30003279D0003238F0003238F0003238F0003238F0003238F000323 + 8F0003238F0003238F0003238F0003238F0003238F0003238F0003238F00506C + CA00304386000000000000000000000000000000000000000000000000000000 + 00003A4B8900566DB800415EC100294AB900546FC70093A3DB00E7EBF700E7EB + F700B9BCC600E7EBF700C2CBEA0093A3DB00294AB9001136B100415EC1003A4B + 89005068BB0000000000000000000000000000000000000000009DAFED004860 + B200F2F4F900E2E7F500DBE0F400C4CEEE00B5C1EA00ADBBE9009FAFE50095A7 + E2008C9FE000879BDE007B91DC00ADBDF000BBC9F600D3DCF900D4DCF900B9C1 + DE003D50940096A9E80000000000000000000000000000000000000000000000 + 0000BAC7F300425496004C60A8000C31A9000429A6000429A6000429A6000429 + A600193CAE004C61B00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8F00042FBD00E0E6F700DFE4F600DFE4F600DEE3F600DEE3F600DDE2F600DDE2 + F600DCE2F600DAE0F500DAE0F500DAE0F500D9DFF500D9DFF500D8DEF400506E + D10034488F00000000000000000000000000000000000000000000000000859A + E0005971C1003253C2000D34B6008999CC00CACFDF00E6EAF800E6EAF800E6EA + F800C9CDD900E6EAF800E6EAF800E6EAF8008999CC00415FC5000D34B6005971 + C1003D4F8F00859AE000000000000000000000000000506BC80098A5CF00ECEF + FA00F0F1F600F0F1F400E5E8F100D2D8EC00C4CCE800B8C2E500A2B0DF0099A9 + DD0090A1DA00899BD900B4C2EE00C1CDF500DCE3F900D7DFF900BFCAED00A6B5 + E600C8D1F0008492C2000000000000000000000000000000000000000000BAC9 + F3005066B3003153C3000D34B9000A32B9000A32B9000A32B9000A32B9000A32 + B9000A32B9004E61A200889DE300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003B52 + 9F000433D000C5D0F400C4CFF400C2CDF300C1CDF300C0CCF300BECAF200BECA + F200BDC9F200BBC8F200BBC8F200B9C6F100B7C5F100B6C4F100DAE1F7005071 + DE003B529F0000000000000000000000000000000000000000003B53A3005A70 + BB000934C5004B6AD300E1E6F800E5EAF800DADFEC00E5EAF800E5EAF800E5EA + F800E5EAF800E5EAF800E5EAF800E3E8F600E5EAF800E5EAF800E1E6F8000934 + C5004162D1005A70BB000000000000000000000000005B71B900DEE3F200DAE0 + F600E6E9F400EAECF000EBECF000D5DAE900CAD0E600C6CDE700C0C9E700B8C2 + E400B2BDE300AAB7E300CED7F600C6D1F500DDE3F900C1CBEC00AAB8E400A9B8 + E8007B91DA0097A7D90099ABEA00000000000000000000000000BCCAF400455A + A500395BCC00163EC400133BC300133BC300133BC300133BC300133BC300133B + C300133BC3004E66B700556DC200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003F57 + A8000536D900C6D1F600C6D1F600C4D0F600C4D0F600C3CFF600C1CDF500C0CC + F500BFCCF500BECBF500BDCAF500BCC9F500BAC8F500B9C7F500DCE3F9005073 + E5003F57A800000000000000000000000000000000008A9DE4004E61A8005271 + D8002A50D100CDD6F500E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9002A50 + D100123DCD005271D8008A9DE4000000000000000000AFBADD00D5DDF700CAD3 + F200D7DCEF00E0E4EF00E6E8EC00DDE0E900D9DDEA00C1C9E600627CD0005B75 + CC005771CA008FA1DC00D3DBF700E2E7F900C4CDED00B3BFE600B3BFE7007288 + D300516DCC007E93D8004C64B500000000000000000000000000445CA9006E82 + C7001E46CD001C45CD001C45CD001C45CD00274DCE006B86DE001E46CD001C45 + CD001C45CD00516DCE004A5FA700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435B + B0000538E300CAD5F900C9D4F900A4A9BC00A3A8BC00A3A8BC00A2A8BC00C3CF + F800C2CFF800BFCCF700BECBF700BDCBF700BCCAF700BBC9F700DDE4FA004F73 + EB00435BB00000000000000000000000000000000000425AAE005B75CA003359 + D9008497D600D2D7E400E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EA + FA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA008497 + D6000938D3003359D900425AAE0000000000758BDE00C6D1F500AABAEE00BCC8 + EF00C4CDEB00C8CFE800CFD4E700ADB9E1006880CF00657FD300758CD900738A + D8006F87D6005B76CE004A66C4004C66BF00BCC5E4007A8DCC00697FC9005C76 + CC007189D7005673D5006D7EBA007288D9000000000000000000000000004E67 + BF00708BE700335ADE002D56DE00879DE7006679BE00475FB2006F89E6003159 + DE002D56DE003F64E1005C75CF004B62B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004861 + B800053AEB00CFD9FB00CED8FB00A6ABBD00A6ABBE00A6ABBE00A4A9BD00A4A9 + BD00A3A9BD00A2A8BD00A2A8BD00A1A7BD00C1CEFA00C0CEFA00DFE6FC005075 + F1004861B800000000000000000000000000000000005871C8004268E7000537 + DF00E5EAFB00DFE4F500E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00809AEE000537DF005871C800738BDD00516CC700B1C0F100A7B7ED00ADBC + EC00B8C3E800BBC5E500C9D0E6006880D0006780D4007B91DB006879B2005C6C + A7005B6BA5006E81C500637CCF004965C3008E9DCF008192CC006E83CB006B84 + D5007089DA006A85DD008E9DD4004E67C0000000000000000000000000000000 + 0000788CCD00738EEB006B89EC00596EBA00627BD400000000008093D6005779 + E900365EE6003860E600597AE800576CB8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00053AEB00D1DBFB00D0DAFB00CFD9FB00CED8FB00CDD8FB00CBD6FB00CAD5 + FB00C9D5FB00C7D3FB00C6D2FA00C6D2FA00C4D1FA00C3D0FA00E1E7FD005075 + F1004962BA00000000000000000000000000000000005C78D8002A56EA000539 + E600E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00E5EBFC00E5EBFC00D5DAE6009C9B9D00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00C2CFF8000539E6005C78D800536ECA00435CB0009BADEC00A2B2EB00A0B0 + E900ABB9E500AFBBE300C5CDE7005E78CE007088D9007E90CE007189D800E0E6 + F900000000005668A2006D81C5005B76CE007085CC0098A7D9007B8FD3007990 + DB00728BDD007B93E200A4B3E4004159A9000000000000000000000000000000 + 00004D67C200798DD1008499DC0090A4EA0000000000000000005A71BF0089A0 + EC004A6FEE003E66ED005276EE006079D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004A64 + BB000E41EC00D5DEFC00D4DDFC00A8ADBD00A8ADBD00A8ADBD00A7ACBD00A6AC + BD00A6ACBD00A6ABBD00A5AABD00A5AABD00C8D4FB00C7D3FB00E3E9FD005479 + F1004A64BB00000000000000000000000000000000005C7CE9001849EC00053A + EB00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00C5CA + D900B8BDCA00C9CCD6009B989800B8B9BF00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E8EDFD00053AEB005C7CE9004862BC00445CAF008098E60092A6E800849A + E20094A5DF0099A9DD00B9C3E4005873D000758BD6005E6EA900000000000000 + 000000000000E0E6F9005C6CA7007088D6005873CB00B1BDE3008FA0DA008DA0 + E1007F96E1008CA1E600B2C0EC00445CAF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F6A + C5008A9EE1004F74F1004F74F1006586F3005873CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004C66 + BD002553EE00DDE4FC00DDE4FC00ACB0BE00ACB0BE00ACB0BE00ABB0BD00ABB0 + BE00ABB0BE00A9AEBD00A9AEBD00A9AEBD00D1DBFB00D0DAFB00E7ECFD005E80 + F2004C66BD00000000000000000000000000000000006683E9002C59EE001B4B + ED00CBD0DD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E9EEFD00ADAB + A9009C999700E0E4F100E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00CBD0 + DD00BABECB001B4BED006683E9004A63BB00445CAE007690E400899EE5007C93 + DF008A9DDD008FA0DA00B1BDE3005470CE007289D4005D6EA800000000000000 + 000000000000000000005F6EA900738AD8005C76CD00B7C1E40099A9DE0096A8 + E300879CE30095A8E900B7C4ED00455EB1000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AEBE + F2005E75C4006686F300577BF2005D80F2005A72C200AEBEF200000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00305CEE00E1E7FD00E0E6FC00DFE6FC00DEE5FC00DDE4FC00DCE3FC00DBE2 + FC00DAE2FC00D8E0FC00D8E0FC00D7DFFC00D6DFFC00D5DEFC00E9EEFD006485 + F3004D67BE00000000000000000000000000000000006A88EB003761EF002755 + EE00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00CACA + CB00C3C1C000E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00D8DDEA002755EE006A88EB004B64BC00445CAD006E88E2008198E300718A + DD007F94DA008497D800A8B5E0004F6BCA006B83D4006677B000000000000000 + 000000000000738ADA006B7BB400758CD900627CD000C0C9E700A4B2E1009FAF + E60092A5E6009EB0EB00BBC7EF00465FB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F89DF008DA5F4006686F3006082F2006C85D900546FCB00000000000000 + 0000000000000000000000000000000000000000000000000000000000004E68 + BF003C65EF00E4E9FD00E4E9FD00B0B3BE00B0B3BE00AFB3BE00AFB3BE00AFB3 + BF00AEB2BE00ADB1BE00ADB1BE00ACB0BE00DAE2FC00D9E1FC00EBF0FD006989 + F3004E68BF0000000000000000000000000000000000708BEB00426AF000335E + EF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD008D8A8800EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00D4D8E600335EEF00708BEB004C66BF00516BC3007E95E3006580DB006B84 + D8007086D1006B81C9007F91CC005872C6004A66C400637CCE006878B0005F70 + AA006070AB008091CF007B91DB00647ED300C2CAE700C6CDE700B9C3E600AEBC + EA00AEBDED00A8B8EF00A7B4E0005471CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000576FC600A0AFE7008BA4F6007D98F5007F95E300536DC6000000 + 000000000000000000000000000000000000000000000000000000000000516A + C1005378F100EAEFFD00EAEFFD00B4B7BE00B3B6BE00B3B6BE00B2B5BE00B2B5 + BE00B2B5BE00B2B5BF00B2B5BF00B0B3BE00E2E8FD00E1E7FD00EFF3FE007491 + F400516AC100000000000000000000000000000000006D85D8007391F4004C72 + F100EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE0098959300EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00E9EDFA00EDF1 + FE007588C8004C72F1006D85D8007990E300748CDB008FA3E500506ED4006C84 + D5006980CB006B81CB0092A2D600B1BDE4004D68C0004A66C4006B83D4007088 + D600748BD8007088D9006780D4006880CF00DADEEB00CBD1E700C5CDE900B7C3 + EC00BDC9F100AABAEF008494CE007790E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009FB1EF00637AC800A4B4ED007A96F40086A0F500758AD5000000 + 000000000000000000000000000000000000000000000000000000000000526B + C2005F81F200ECF0FE00ECF0FE00EBF0FD00EBF0FD00EAEFFD00E9EEFD00E8ED + FD00E7ECFD00E6ECFD00E6ECFD00E6EBFD00E5EAFD00E4E9FD00F1F4FE007995 + F400526BC20000000000000000000000000000000000647AC700819CF3005E80 + F200C1C6D400CCCFDA00E2E6F100EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2 + FE009E9B9900EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00C1C6 + D4005370D2005E80F2006479C700BFCDF600BDCBF40097A7DD005772CE00617B + CF006B82CF00A3B1E000B1BDE500E3E8F800C5CEEE005D76CA004F6BCA00536F + CD005873D0005E78CF00667FD000ADB9E100DEE1EA00D6DBEA00D2D8ED00C6D0 + F000C4CFF200BDCAF3005D74C100BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006A7FCB0092A9F60086A0F5008BA3F100849B + E80000000000000000000000000000000000000000000000000000000000536C + C4006B8AF300EFF3FE00EFF3FE00EEF2FE00EDF1FE00EDF1FE00ECF0FE00EBF0 + FD00EBF0FD00EAEFFD00E9EEFD00E8EDFD00E7ECFD00E7ECFD00F3F6FE007E99 + F500536CC40000000000000000000000000000000000526CC8008399E4007D98 + F5007582AE00D7DAE400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00A8A5A400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE007582 + AE006282EE007E99F500526CC8000000000000000000566AAC009EADDE00A0B0 + E500AEBCE800AAB8E600D2DAF500D5DDF800C3CFF500C4CFF200B1BDE400B1BD + E300BAC4E500C6CEE800C9D0E700D0D5E800E8EAEE00EDEEF200E6E9F200DDE2 + F600D9E0F700DFE4F500AABBF100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000778BD200ABBBEF009DB2F7008298 + E0005871C900C1CDF6000000000000000000000000000000000000000000556F + C600819BF500F2F5FE00F2F5FE00DADDE500D9DCE400D9DCE400D8DBE400D8DB + E400D8DBE400D7DAE400D7DAE400D6D9E400E0E4F000EDF1FE00F6F8FE0087A1 + F500556FC6000000000000000000000000000000000000000000536EC900889D + E4007F9AF5006377B900D1D5E100F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00DCDDE200F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00D1D5E1007F9A + F50095ACF7008A9FE2000000000000000000000000004F69BE0093A0CC00C5CF + F000B0BEEA00D0D8F500D6DEF900C1CDF500C0CCF500A2B2E7008FA0DB008FA0 + DA0099A9DD00B0BCE400BCC6E600C8CFE900E2E6F100ECEEF200F2F3F600E4E9 + F700EAEEFB00A1AFDA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007C93E500687FCD00ADBCED008DA5 + F600788EDA005874CD0000000000000000000000000000000000000000005670 + C70088A2F600F3F6FE00E9ECF3008E8C8D008986860089868600898686008986 + 860089868600898686008986860089868600BABBC100E5E8F300F7F9FE008BA4 + F6005670C7000000000000000000000000000000000000000000BFCDF6006178 + C9009DB2F700869FF1006878B100DDE0E700C8CAD100ECEFF700F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DADDE400C0C5D6006878B1009DB2 + F7009EAFEE005C74C700000000000000000000000000D1DAF8004C62AA00B4BE + DE00C5D0F400D7DFF900D8DFF900BAC8F500BDCAF4008599DC00899CDD00899C + DD0094A5DF00ADBBE700BAC5EA00C6CFED00D9DEF100E8EBF600F2F3F800F4F6 + FB00CED3E9005972C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000093A8ED005C75CC00A5B7 + F5008EA6F400778DD70000000000000000000000000000000000000000005771 + C8008DA5F600F5F7FE00E1E3EA00EEEEEF00FDFDFD00FDFDFD00FDFDFD00FDFD + FD00FDFDFD00FDFDFD00FDFDFD00FDFDFD00A09FA100DFE2EA00F8FAFE008CA5 + F6005771C80000000000000000000000000000000000000000000000000092A7 + EC00A7B8F300A6B9F80094AAF2008A92AF00C9CCD500F4F7FE00F4F7FE00F4F7 + FE00D4D6DD00F4F7FE00F4F7FE00F4F7FE008A92AF007182BB0094AAF200ABBB + F4006279C90092A7EC000000000000000000000000000000000000000000889D + E400CAD0E800DDE3F900B3C3F500BBC9F600879CE3007C93DF00778FDF007C93 + E000869BE300A0B1EA00AEBDED00BECAF100CCD5F400DCE2F800ECF0FB005C74 + C70092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AFBF + F3006B85DE005A74CF005B76D20000000000000000000000000000000000728C + E20093A8F0009BAFF20099ABE900B3B2B400B5B3B200ABA9A700ABA9A700ABA9 + A700ABA9A700ABA9A700ABA9A700B5B3B200919BBB0099ABE9009AAEF200748A + D8006B85DE000000000000000000000000000000000000000000000000000000 + 000092A7EC005F77CA009AABE600B5C5F900AEBEF40096A5D7007985AD007985 + AD007985AD007985AD008694C00096A5D700B6C6F900B3C3F8009AACE70092A7 + EC00000000000000000000000000000000000000000000000000000000000000 + 00004A61AA0094A2D100D0D9F7009CAEED00637FDC00748DE100849AE500899E + E60093A7E900A3B4ED00A8B8EF00AABAEF00D6DEF800E2E7F600A4B1DC009FB1 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C900A1A1A700EDECED00F4F4F300E8E8E700E8E8 + E700E8E8E700EBEBEA00F4F4F300EDECED006277BF005872C9005872C9006B85 + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005872CD00A0B0EB00B9C8F900BECCFA00BBCAFA00BCCA + FA00BCCAFA00BBCAFA00BDCBFA00BFCDFA00A1B2EB007489D3005872CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF800526AC0006175B500AEBCEB009CAEEA008BA0E7006E89E3007690 + E4008199E8009CAFEE00B3C2F300C7D2F600B7C2E6006E83CC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B1B1B1009C999800ABABAA00EDECEC00E4E3 + E300E4E3E300D8D7D600ABABAA00959391000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005874CD007287D1008B9FE100ACBCF400ACBC + F500ADBDF500ACBCF4009DAEEA008C9FE1005874CD0093A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF500778DDF005771CA005068BA005169 + BC00526BBE00546DC1005C77D2007A92E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009F9E9D009F9C + 9B009F9C9B000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA00C7C7C7007486C4004659970028345F002835 + 5F0028355F0028345F002F3F770046599700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED7F7003C54A200475B9D00455FB6003754B6001739AA001336 + A9001336A9001739AA002343AF003754B600475B9D00384881003C54A2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859AE000344991003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F51900030468E00000000000000000000000000000000005B74C7004455 + 94004F64AD005062A1004057A900000000000000000000000000000000000000 + 00006780CF005369B3004F64AD005062A1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F2002D418600445796003352B8001337AE000429A8000429A8000429 + A8000B30AB000429A8000429A8000429A8003352B8004761B70044579600BAC6 + F20000000000000000000000000000000000000000004D64B6002A3B78002A3B + 7800344B960000000000344B96002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B7800344B9600000000002A3B + 78002A3B78002A3B7800000000000000000000000000344A96005C72BF00506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED3005C72BF0000000000000000000000000000000000374E9E005671 + CE000B206700435FBF0041569C002A3B75002A3B75002A3B75002A3B75002A3B + 7500364C960010266E000B206700435FBF00D1DAF80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032468C004C61A700405DBE00042BAD00042BAD002245B700617ACC00677F + CD006B81CB00617ACC004360C1002245B700042BAD001B3FB600405DBE003246 + 8C00BAC6F200000000000000000000000000000000006E7CAC00ACB6DC00A8B5 + E0002D3F7F00000000002D3F7F00A5B3E100A4B2E000A4B2E000A4B2E000A3B1 + E000A3B1E000A3B1E000A2B0DF00A2B0E000A2B0E0002D3F7F0000000000A1B0 + E000A0AFDF00A5B1DA005067BA000000000000000000364C9700506FD8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C800506FD800000000000000000000000000000000003E58AE00274F + D600021C7100153EC700455DAE000E2D9A000E2D9A000E2D9A000E2D9A000E2D + 9A003A54AE00031E7900021C7100153EC7000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455C + AE004160C6001037BB00042DB7002F52C4005069BA003D509100859AE100A8B7 + ED00C1CCF200859AE1004B61B1003D5091006981D0002E51C300042DB7004160 + C600495DA200455CAE00000000000000000000000000ACBAE800899DDF00A7B6 + E700546CC10000000000546CC100A5B4E600869ADE00869ADE008499DD008499 + DD008499DD008398DD008398DD008297DD006C7BAF00546CC100000000006B7A + AF00A0B0E5007F94DC0033478D0000000000000000003F57A7005072E4000535 + D9000535D9000535D9000535D9000535D9000430C3000430C2000430C2000430 + C2000430C2000430C2000430C2000430C3000535D9000535D9000535D9000535 + D9000535D9005072E40000000000000000000000000000000000000000006983 + DA00435CB300516CCA0000000000000000000000000000000000000000000000 + 000000000000435CB300435CB3003754B7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000869BE1004255 + 96001C42C300042FBD00042FBD001038C0004161CA004D62A700BCC8F3000000 + 0000000000000000000000000000B4C2F0005264A2006B83D100294EC6001C42 + C3004966C70042559600000000000000000000000000AFBDEC008DA1E300AEBC + EC00000000000000000000000000B0BEEA008A9FE3008A9FE300889DE200889D + E200879CE200879CE300869BE200869BE2005667A60000000000000000005869 + A700AAB8E8008399E200374B95000000000000000000435CAF005074EA000638 + E1000638E1000638E1000638E1000E3EE2003C60D6000533CA000533CA000533 + CA000533CA000533CA000533CA003C60D6000638E1000638E1000638E1000638 + E1000638E1005074EA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003F56A6001939A600869BE10000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3004F66 + B5000934C300153EC6004162D1000934C300143DC6004363CF00384E9B00BCC8 + F300000000000000000000000000000000005671C4005466A700647ED5000833 + C3003558CE004E66B600000000000000000000000000B2C0F00094A8EA00B0BF + EF005B74CA00000000005B74CA00AFBEEF0090A4E80090A4E8008FA4E8008FA4 + E8008FA4E8008EA3E8008CA1E7008CA1E7007381BA005B74CA00000000007483 + BB00AABAED00899FE7003A509C0000000000000000004760B700567AF0001445 + E9001445E9001445E9001445E9001B4AEA008199E900889EE900889EE900889E + E900889EE900889EE900889EE9008199E9001445E9001445E9001445E9001445 + E9001445E900567AF00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A8FDB002D469B004E66BC0000000000000000000000 + 000000000000000000000000000000000000000000005B74CA005067B2004467 + D9002E54D4006882D700465BA300617DDC00214AD2001842D0004A6AD700556A + B5003D53A40000000000000000000000000000000000B7C5F100465BA3002B52 + D3001742D0004063D8006C83CF000000000000000000BCCAF600A2B4F200A2B4 + F200BBC9F600BCC9F500BAC8F6009FB2F2009FB2F2009FB2F2009EB1F2009DB0 + F2009DB0F2009CB0F2009CB0F2009BAFF100AABBF400B7C6F600B8C6F600A7B8 + F30099ADF10099ADF1004259AD0000000000000000004C65BC006586F300335E + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00335EEF006586F300000000000000000000000000465EB3006279C300607C + D900617EDE00617EDE00627EDE00637FDF00637FDF00637FDF00637FDF00637F + DF00627EDE00617EDE00607DDE005F7CDE004F64AB008A9EE500000000000000 + 000000000000000000000000000000000000000000004760B700556EC8003A5F + DB004266DD00657AC4004760B6006B7FC0006480E0002750D8002750D8004E6F + DC00566DB800BDCBF40000000000000000000000000000000000556DC1003F63 + DB001F49D600365CDB004E66BA000000000000000000BFCCF800A8BAF500A8BA + F500A7B9F500A7B9F500A6B8F500A5B7F500A5B7F500A5B7F500A5B7F500A4B6 + F500A4B6F500A3B6F500A2B5F500A2B5F500A1B4F500A1B4F500A0B3F500A0B3 + F5009FB3F5009FB3F500455EB40000000000000000004D67BE006C8BF300446B + F000456CF000456CF000456CF000456CF000456CF000456CF000446BF000446B + F000446BF000446BF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0006C8BF3000000000000000000000000004057A6006B85DC00355B + DA002F54CE003D62DC00365BD3003E63DB00365AD2003357CF00365AD2003256 + CE003E63DC003055CE003A5FDC002B50CD00647CCB00556FC700000000000000 + 000000000000000000000000000000000000000000004058A8005775D900375D + DD005576E3005D71B7008CA1E6004059AC006D81C4006883E300254FDB002D55 + DD004F70DF004159AC00BECCF5000000000000000000000000008CA1E6005374 + E300254FDB00335ADD00445BA8000000000000000000C3D0FA00B0C0F900AFC0 + F900AFC0F900AEBFF800AEBFF800ADBEF800ADBEF800ADBEF800ACBDF800ABBD + F800ABBDF800ABBDF800AABCF800AABCF800AABCF800A9BBF800A9BBF800A8BA + F800A7B9F800A7B9F8004962BA0000000000000000004F69C0007391F4005378 + F1005479F1005479F1005479F100829CF300819BEF007E98EE007E98EE007D97 + EE007D97EE007E98EE007E98EE00819BEF00718FF4005479F1005479F1005479 + F1005378F1007491F4000000000000000000000000005066B100758FE600476B + E300032597004A6AD700082A9C004B6BD700082A9C0003259700082A9C000325 + 97004B6BD700032597004768D600032597007B93E100485FAE00000000000000 + 00000000000000000000000000000000000000000000455EB2006482E6004167 + E7006180E7005168B600C6D1F50000000000BECCF500465FB6006E8BEB003A62 + E700335CE5005577E8005D75C600465FB6000000000000000000C6D1F5005477 + EA003D64E7003B62E700455EB2000000000000000000CBD6FB00BBCAFA00BBCA + FA004068F0004068F0004068F0004068F0004068F0004068F000B8C7F9004068 + F0004068F0004068F0004068F0004068F0004068F000B5C5F900B5C5F900B4C4 + F900B4C4F900B4C4F9004C65BC000000000000000000536DC400809BF500708E + F4007592F4007A96F40096ACF4002750D900053AEB00053AEB007B97F4007A96 + F4007A96F4007995F4007894F4007894F400667DCB0097ACF4007D98F5007592 + F400708EF400809BF500000000000000000000000000657BC5007F9AF1007490 + F0000328A000607DDD000328A000607DDD000328A0000328A0000328A0000328 + A000607DDD000328A000607DDD000328A0007D98F200758BD8005C76D2000000 + 000000000000000000000000000000000000000000004861B7006885E8004B70 + ED005E7FEE00556CBC00AEBDF2000000000000000000BFCCF5007187D0006E8B + EE004067EB003F66EB005D7EEC00627ACB00BFCCF50000000000AEBDF2005A7C + EE003C64EB00446AEB004861B7000000000000000000CED8FB00C1CEFA00C1CE + FA00496FF000496FF000496FF000496FF000496FF000496FF000BECCFA00BECC + FA00BDCBFA00BCCAFA00BCCAFA00BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9 + FA00BAC9FA00B9C8F9004D67BE000000000000000000556EC500839EF5007A96 + F400859FF50099AFF700889ADE000D40EC000D40EC000D40EC00A2B6F800A1B5 + F7007D98F5007C97F4007B97F4007B97F400536FD000889BDE0098AEF700859F + F5007A96F400839EF5000000000000000000000000006C83D3008AA3F500859F + F4000328A4006D87E1000328A4006D87E1000328A4000328A4000328A4000328 + A4006D87E1000328A4006D87E1000328A4007A95F00094A9EF00526AC0000000 + 000000000000000000000000000000000000000000004B65BC006F8BEB005075 + F0006384F2005B73C50090A4EB000000000000000000000000004B65BE00748C + DB007290F300426AEF00466DEF006081F0004B65BE00BFCDF50090A4EB006384 + F200466DEF004D72F0004F68BC000000000000000000D1DBFB00C6D2FA00C6D2 + FA005176F1005176F1005176F1005176F1005176F1005176F100C4D1FA005176 + F1005176F1005176F1005176F1005176F1005176F1005176F1005176F1005176 + F100C0CEFA00BFCDFA004E68BF0000000000000000005770C700819BF5007491 + F4008FA7F6009DAFF0006078CB002553EE002553EE002553EE00B1C1F900B0C0 + F9002553EE002553EE002553EE002553EE002C58E9006078CB009EB0F000839E + F5007592F400839DF300000000000000000000000000748AD6008DA5F60095AC + F7000328A4007891E3000328A4007891E3000328A4000328A4000328A4000328 + A4007891E3000328A4007891E3000328A4006E88E20095ACF7006A80CB000000 + 000000000000000000000000000000000000000000006580D9007087D2006A8A + F3005B7EF2006A87EA00536CC00000000000000000000000000000000000BFCD + F6005069C3007995F4005479F1005479F1006685F000667FD000536CC0006384 + F300587CF2006686F300778FDE000000000000000000D8E0FC00D1DBFB00D1DB + FB006384F3006384F3006384F3006384F3006384F3006384F300CED8FB006384 + F3006384F3006384F3006384F3006384F3006384F3006384F3006384F3006384 + F300CBD6FB00CAD5FB00516BC200000000000000000093A8ED005872CA005872 + C9005872C9005A78DB00567AF200567AF200567AF200567AF200CBD6FB00CAD5 + FB00567AF200567AF200567AF200567AF200567AF200567AF2005A78DB005872 + C9005872C9005872CA000000000000000000000000007A91E200839EF50094AB + F6000328A4007D94E2000328A4007D94E2000328A4000328A4000328A4000328 + A4007D94E2000328A4007D94E2000328A4007991E20090A8F60098ACF0000000 + 000000000000000000000000000000000000000000009FB0EF005B74C5007B96 + F100567AF2006A8AF3006881D400000000000000000000000000000000000000 + 0000BFCDF6007D93DE007E99F5005F81F2006485F3007592F2008197E2006686 + F3006888F3007793F000B7C4F2000000000000000000DBE2FC00D6DFFC00D6DF + FC006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF300D3DCFB00D3DC + FB00D3DCFB00D2DBFB00D2DBFB00D2DBFB00D1DBFB00D1DBFB00D1DBFB00D0DA + FB00D0DAFB00CFD9FB00526CC30000000000000000000000000000000000556E + C500C0CEFA006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300D6DFFC00D5DE + FC006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300C3D0 + FA00556EC50000000000000000000000000000000000829BED007290F400849E + F5003C5BC30095AAF2003454BE008EA4ED00173AAF000328A4000D31A9000328 + A4007D94E2000328A4007D94E2000328A4007891E30088A2F60090A8F60092A7 + EC00000000000000000000000000000000000000000000000000516CC8008196 + DF005D80F2006283F2006C8AEF006681DA000000000000000000000000000000 + 000000000000526BC4007E94DF00849EF5007C97F400809BF5008FA7F6007592 + F4007D98F5007E94DF00000000000000000000000000DEE5FC00DAE2FC00DAE2 + FC007592F4007592F4007592F4007592F4007592F4007592F400D8E0FC007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007592F4007592 + F400D5DEFC00D4DDFC00546DC400000000000000000000000000000000005770 + C700DCE3FC00DFE6FC00E0E6FC00E1E7FD00E0E6FC00E0E6FC00DFE6FC00DFE6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DCE3FC00DCE3FC00D9E1FC00D7DF + F9005770C700000000000000000000000000000000008098E700859FF5008CA5 + F6009AAFF70092A9F60094ABF6008CA5F600859EF1008099EC006E89E100617C + D8009EB3F7003E5DC30095AAF200294AB9007D97EB007D98F5007D98F500617C + D800000000000000000000000000000000000000000000000000000000005D78 + CF00819CF3006787F3006888F300718EEF006C85D6005770C40092A5EC00AEBE + F300C8D2F60092A5EC005671CE005A73C600A7B9F8009AAFF70095ACF7008FA6 + F400788ED6005D78CF00000000000000000000000000E6EBFD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6 + FC00E0E6FC00E0E6FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5 + FC00DEE5FC00DBE2FC005770C7000000000000000000000000000000000093A8 + ED005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + CA0093A8ED000000000000000000000000000000000000000000AFBFF300AFBF + F3007C92E5007C92E5007C92E5005E79D5005E79D500566FC700687ECD006A80 + CD006A80CD00768BD9007B91DB007F97E4008098E600809AEF007893EE006077 + CA0093A7ED00000000000000000000000000000000000000000000000000D3DB + F900859AE100859FF5006D8CF3007491F4007A96F4007892EC00647CCC006078 + C8006078C800647CCC006D85D9007F99EC00A3B6F8009DB2F7008EA6F600899E + E200526CC50000000000000000000000000000000000E7ECFB00E5EAFD00E4E9 + FD00E5EAFD00E6EBFD00E5EAFD00E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9 + FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8FD00E2E8FD00E1E7 + FD00DFE6FC00DEE5FC005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600AFBFF300859BE9007C93E5007C93E5005E79D6005E79D6005770C8004D6A + CC00647EDA000000000000000000000000000000000000000000000000000000 + 00005871C800869AE2008AA3F4007995F4007A96F400819BF500829DF5007F9A + F5007F9AF500859FF50088A2F6008FA7F60099AFF70095ACF70099AEF5005871 + C800BFCDF600000000000000000000000000000000009FAFE100E7ECFB00E8ED + FB00E8EDFB00E8EDFB00E8EDFB00E7ECFB00E7ECFB00E7ECFB00E7ECFB00E7EC + FB00E7ECFB00E6EBFB00E6EBFB00E6EBFB00E6EBFB00E5EAFB00E5EAFB00E5EA + FB00E4EAFB00E3E8FB006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006B85DE002C57 + E700647CCD00647CCD005A72CB00000000000000000000000000000000000000 + 000000000000D3DBF9006179D1008A9EE2009AAFF40099AFF70097ADF70097AD + F7009AAFF7009AAFF7009DB2F700A0B4F7008B9FE200687FCC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9005872C9005872C9005872CA00000000000000000000000000000000000000 + 00000000000000000000000000005772CD00637BCC007A8FD90092A8F00098AD + F0009AAEF10092A8F000879DE6007A8FD9005772CD0092A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F000728BE0005771C8005771 + C8005771C8005771C8005A75D100728BE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DBDBDB002E3F79002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B002E3E7700C5C5C500C5C5C500C5C5C500C7C7C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000027366E004F65 + AE004F64AC00485B9B004F64AC004F64AC00485B9B004F64AC004F64AC00485B + 9B004F64AC004F64AC002736680026335C0026335B0026335B0026335B002632 + 5D002E3F7900CBCBCB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C4C4C400B9B9B9004558 + 9700253159002531590025315900253159002531590025315900253159002531 + 5900253159002531590025315900253159002531590025315900253159004558 + 9700BDBDBD00DADADA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002C3D7A004F69 + BE000328A200032082001D3EAC000328A200032082001D3EAC000328A2000320 + 82001D3EAC004F69BE002C3D7A001D3EAC000328A200032082001D3EAC004F69 + BE002C3D7A0000000000000000000000000000000000A6A4A400E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200A6A4A400B6B5B500A09E9E000000 + 00000000000000000000000000000000000000000000000000002C3B75004B62 + AC0003279D0003279D0003279D0003279D0003279D0003279D0003279D000327 + 9D0003279D0003279D0003279D0003279D0003279D0003279D0003279D004B62 + AC002C3B75000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002E407E004F69 + C200042AA900032187001D3FB100052AA900042288001E40B100052AA9000321 + 87001D3FB1004F69C2002E407E001D40B300062CAB00052389001F42B400506A + C4002F41800000000000000000000000000000000000A7A6A500E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A7A6A500D8D8D800B7B6B600D5D5 + D5000000000000000000000000000000000000000000000000002B3D7900435E + BB00546393005A6792005A6792000328A300546393005A679200546393000328 + A300546393005A679200546393000328A3005A6792005A67920054639300435E + BB002B3D790000000000000000000000000000000000B1BCE500465792003441 + 6E00333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 6800333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 680034416E00485C9B0000000000000000000000000000000000304385004760 + B30005248C0006258D000E2C910009278D0009278D000F2D900009278D000827 + 8D000D2B90004760B300304385002346BC000E34B5000B2A91002548BD00516C + C9003144870000000000000000000000000000000000A8A7A600E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A8A7A600ECECEC00D8D8D800A1A1 + A000D5D5D50000000000000000000000000000000000000000002D407F00435F + BF008190C2008194D4008194D400092EAC008190C2008194D4008392C300042A + AA007080B8008194D4007080B800092EAC008194D4008194D4008392C300435F + BF002D407F00000000000000000000000000000000002D3F7F0043548D004B60 + A8004A60A9004A60A9004A60A9004A60A9004A60A9004A60A9004A60A900495F + A700465BA000425698004256980042569800465BA000495FA7004A60A9004A60 + A9004B60A80044559000DBE2F80000000000000000000000000035498F00516E + CF001239BE00102F98002D50C600183EBF00133299002F52C600183EBF001231 + 99002B4FC600526FCF0035498F003256CE001F46C8001938A1003357CE005472 + D500384D950000000000000000000000000000000000AEACAB00E6E6E600DCDC + DC00DCDCDC00DCDCDC00DCDCDC00718BE400DCDCDC00DCDCDC00DCDCDC00718B + E400DCDCDC00DCDCDC00DCDCDC00718BE400AEACAB00EFEEEE00ECECEC00CDCD + CD00B6B5B400A3A1A1000000000000000000000000000000000032478A004261 + C800042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6008196DA008196DA008196DA00042DB600042DB600042DB600042DB6004261 + C80032478A00000000000000000000000000000000003E58B5001544DF000537 + E0001229760026387700042AAB00042AAB00042AAB00042AAB00182F7F004142 + 4A0079777700ADACAC00ADACAC00ADACAC007977770041424A00182F7F00042A + AB00042AAB001B3EB4003F519200000000000000000000000000374D94005371 + D4001840C50015359E003256CC001E45C70018379F003558CC001E45C6001736 + 9F003054CC005371D400374D94003A5ED600274ED100203FA8003A5ED6005574 + DB003B519D0000000000000000000000000000000000B3B1B100ECECEC00E4E4 + E400E4E4E400E4E4E400E4E4E400758FE800E4E4E400E4E4E400E4E4E400758F + E800E4E4E400E4E4E400E4E4E400758FE800BCBBBA00B3B1B100B3B1B100B3B1 + B100B3B1B100B3B1B10000000000000000000000000000000000354890004262 + CD0055659D005A699B005A699B00042FBD0055659D005A699B0055659D00042F + BD008196DE008196DE008196DE00042FBD005A699B005A699B0055659D004262 + CD0035489000000000000000000000000000000000003555BE000839DD000537 + E000032187002A3B7500042CB200042CB200042CB200042AAA004D4B4C009493 + 92009492920043414200454344004341420094929200949392004D4B4C004C66 + C0004B67C7001439B70041548F0000000000000000000000000039509A004B66 + C2001838A4001B3BA5002241A7001D3CA4001D3CA4002341A7001D3CA4001C3B + A4001F3EA6004B66C20039509A004064DC002F56DA002645AE004064DC005777 + E1003F56A40000000000000000000000000000000000B8B6B600F1F1F100EBEB + EB007892EB007892EB007892EB007892EB007892EB007892EB007892EB007892 + EB007892EB007892EB007892EB007892EB007B95EE007B95EE007B95EE00F1F1 + F100F1F1F100B8B6B60000000000000000000000000000000000384D96004364 + D3008192CB008197E1008197E1000934C5008192CB008197E1008494CD000934 + C50090A3E5008197E10092A5E5000934C5008197E1008197E1008494CD004364 + D300384D9600000000000000000000000000000000003555BE000537DE000537 + E000032187002C3C7600042DB700042DB700042DB600072AA0008F8E8D008483 + 82004342450024283900202537001E23360041404400848382008F8E8D004760 + B2004F6BCA00143BBC00455794000000000000000000000000003F56A5005676 + E1002951D9002545AF004468DE003259DA002847AF004669DE003259DA002645 + AE003F64DC005676E1003F56A5004F73EB003F66E8003352BA004E72EA00597B + EB00455FB30000000000000000000000000000000000C0BEBD00F9F9F900F6F6 + F600F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F6007E98 + F100F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F600F6F6 + F600F9F9F900C0BEBD00000000000000000000000000000000003C54A1004266 + DC000433D0000433D0000433D0000433D0000433D0000433D0000433D0000433 + D0000433D0000433D0000433D0000433D0000433D0000433D0000433D0004266 + DC003C54A100000000000000000000000000000000003555BE000537DE000537 + E000032187002F3F79000E38C6000E38C6000D34B500434757006D6B6B004242 + 4900333540002D2F3C00292C3B00262A3800313648002C303D006D6B6B004347 + 57000D34B5001B43C9004B5FA000000000000000000000000000425AAA005778 + E5003058DF002A4AB300496DE300385FE0002D4CB3004D70E300385EDF002B4A + B200456AE2005778E500425AAA005579F000476DEE003A59BF005478F0005A7D + F1004963BB0000000000000000000000000000000000C2C1C000FBFBFB00F9F9 + F9007F99F2007F99F2007F99F2004E73EF004E73EF004E73EF004E73EF004E73 + EF007F99F2007F99F2007F99F2007F99F2007F99F2007F99F2007F99F200F9F9 + F900FBFBFB00C2C1C000000000000000000000000000000000003F58A8004368 + E1005669A8005B6CA5005B6CA5000535D8005669A8005B6CA5005669A8000535 + D8005669A8005B6CA5005669A8000535D8005B6CA5005B6CA5005669A8004368 + E1003F58A800000000000000000000000000000000003555BE000537DE000537 + E0000321870030417A001B44CE001B44CE00193EBA004E4C4C004D4B4C004243 + 4A00393B42003537400032333F002E313E0025293800222839004D4B4C004E4C + 4C00193EBA00264DD0004E62A400000000000000000000000000445DB100506E + D2002A4AB7002F4FB8003553B9003251B8003251B7003856BA003251B8003150 + B8003150B9004F6DD200445DB1005D80F2005075F100405EC1005B7EF2005C7F + F2004C66BD0000000000000000000000000000000000C5C3C300FDFDFD00FCFC + FC00FCFCFC00FCFCFC00FCFCFC004F74F00099AEF50099AEF50099AEF5004F74 + F000FCFCFC00FCFCFC00FCFCFC00819BF400FCFCFC00FCFCFC00FCFCFC00FCFC + FC00FDFDFD00C5C3C30000000000000000000000000000000000425AAD004469 + E6008295D600819AEE00819AEE000A3ADE008295D600819AEE008598D7000A3A + DE008295D600819AEE008598D7000A3ADE00819AEE00819AEE008598D7004469 + E600425AAD00000000000000000000000000000000003555BE000537DE000537 + E0000321870032427C002951D6002951D6002448C0004F4D4E004F4D4E004545 + 4A006060650072737A0053555D00353741002B2F3D00272B3A004F4D4E005856 + 56002448C0003056D7005166AA000000000000000000000000004A64BB005A7D + F1004169EF003857BF005B7EF1004C71F0003D5BC0005E80F1004C71F0003B59 + BF005478F000597CF1004A64BB006684E8005F81F2004D68C2006482E8005E80 + F2004E68BF0000000000000000000000000000000000C8C7C600FFFFFF00FFFF + FF00829CF500829CF500829CF5005075F1005075F1005075F1005075F1005075 + F100829CF500829CF500829CF500829CF500829CF500829CF500829CF500FFFF + FF00FFFFFF00C8C7C600000000000000000000000000000000004862B9004A70 + F0001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4C + EC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC004C71 + F0004862B900000000000000000000000000000000003555BE000537DE000537 + E0000321870035457F004368E4004368E4003E60D1004F526000686666004E4C + 4D00959495008C8C8E008283880044444A00373944003A3C4400686666004F52 + 60003D5FD1004469E400586DB6000000000000000000000000004B65BD005C7F + F200466DF0003E5CC1006183F2005176F100425FC1006586F3005176F100405E + C100597CF2005B7EF2004B65BD006D89E9006787F300536DC2006986E8005F81 + F2004F69C10000000000000000000000000000000000CAC8C700FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00829C + F500FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00CAC8C700000000000000000000000000000000004A64BB004E73 + F1006777AC006777AC006777AC006777AC006777AC006777AC006777AC006777 + AC006777AC006777AC006777AC006777AC006777AC006777AC006777AC005075 + F1004A64BB00000000000000000000000000000000003555BE000537DE000537 + E00003218700324176005275EB005275EB004D6FDE004F5C8B008F8D8D005452 + 530071707000969496006F6E710049494E003A3B4300514F51008F8D8D004F5C + 8B004D6FDE004E72EA005C72BB000000000000000000000000004C66BD005473 + D9003D5BC100425FC1004965C2004763C1004864C1004C67C3004763C1004561 + C100425FC2005372D9004C66BD00728DE9006F8DF3005871C3006E8AE8006082 + F200516BC20000000000000000000000000000000000C9C7C600FCFCFC00FBFB + FB00FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00809A + F300FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00FBFB + FB00FCFCFC00C9C7C600000000000000000000000000000000004B65BC005075 + F10090A4E80099AFF70090A4E80090A4E80099AFF70090A4E80090A4E80099AF + F70090A4E80090A4E80099AFF70090A4E80090A4E80099AFF70090A4E8005479 + F1004B65BC0000000000000000000000000000000000465EB2001743D5001844 + D60019307D0039497A00809AF300657AC2006D84D1005D77D100908E8E007F7D + 7D00575555004F4D4D004D4B4D0047474A00545254007F7D7D00908E8E003E52 + 94004158A5004059AC005F75C1000000000000000000000000004E68BF005F81 + F200567AF2004C67C200718FF4006586F300516BC2007693F4006586F3004F69 + C2006888F3005D80F2004E68BF00829DF5007C97F4005D75C3007491F4005F81 + F200536DC40000000000000000000000000000000000BDBBBA00E8E8E800DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00E8E8E800BDBBBA00000000000000000000000000000000004D67BE00587C + F2004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1005E80 + F2004D67BE00000000000000000000000000000000005E79D0006B86E2006179 + CA005669AB005669AB007B97F4006279C4006B84D6007B97F4006879B2005959 + 5F00757373008F8E8D008F8E8D008F8E8D007573730059595F006879B2005669 + AB004D62AA004B62AE00617AD3000000000000000000000000004F69C0006082 + F2005B7EF2004F6AC2007794F4006B8AF300566FC3007C97F4006B8AF300536D + C2006D8CF3005E80F2004F69C00086A0F5007995F400566FC3006989F3005C7F + F200556FC60000000000000000000000000000000000AEADAC00D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200AEADAC00000000000000000000000000000000004D67BF005B7E + F2004D5B8B005563930055639300556393005563930055639300556393005563 + 9300556393005563930055639300556393005563930055639300556599006283 + F2004D67BF0000000000000000000000000000000000627ACE007592F4003E4E + 8000343D5D006071AB0089A2F60089A2F60089A2F60089A2F600829AEA007A8E + D5006A7191005A585800646262005A5858006A7191007A8ED500829AEA00829C + F5006D8CF3006F8CF1008EA3E900000000000000000000000000506AC1005775 + DA004D68C200546EC2005B73C4005A72C3005B73C3006077C4005B73C3005871 + C300526CC3005674DA00506AC1009CB1F70096ACF7007A91DC00819BEF006483 + EB005670C700000000000000000000000000000000005263A1005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005263A100000000000000000000000000000000004E68C0005F81 + F2002C3B6C003242790032427900324279003242790032427900324279003242 + 7900324279003242790032427900324279003242790039497E005B6894006787 + F3004E68C000000000000000000000000000000000005C75CC00728ADD00404F + 8100404C72006575AC0091A8F60092A9F60092A9F60093AAF60097ADF70099AE + F30095A9EB008C9EDD008C9EDD008C9EDD0095A9EB0098ADF30094ABF600819B + F5007390F2006983D80000000000000000000000000000000000526CC3006283 + F2006989F3005D75C300859FF5007E99F500657BC3008DA5F6007F9AF5006279 + C4007A96F4006082F200526CC300375EE5003159E4002551E3005771C8000000 + 00000000000000000000000000000000000000000000556CBD005A79DF000536 + D900042EBB00042BAE00042EBB000536D9000536D9000536D9000536D9000536 + D9000536D9000536D9000536D9000536D900042EBB00042BAE00042EBB000536 + D9005A79DF00556CBD0000000000000000000000000000000000506AC1006686 + F30038446D003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C + 7A007982A2005C688F00737D9E004A5782003E4C7A003E4C7A00646F9400708E + F400506AC1000000000000000000000000000000000000000000000000008DA2 + E800536DC400536DC4004E66B8004B62B0004E66B800536DC400546DC0005870 + BF007D8DC6008D9BC7008E9BC7008D9BC7007789C5004F69BE00556EC100637A + CE008DA2E8000000000000000000000000000000000000000000536DC4006283 + F2006C8BF3006077C3008AA3F600839EF5006B80C40092A9F600849EF500657B + C3007C97F4006183F200536DC4005771C8005771C8005771C8005A76D2000000 + 00000000000000000000000000000000000000000000566FC6006A89F200053A + EA005574DB006886EB005574DB00053AEA00053AEA00053AEA00053AEA00053A + EA00053AEA00053AEA00053AEA00053AEA004D6CD3006482E7004D6CD300053A + EA006A89F200566FC60000000000000000000000000000000000516BC2006A8A + F3003D486E0044517A0044517A0044517A0044517A0044517A0044517A004451 + 7A009097B0007881A000848CA8007881A00044517A0044517A00687294007491 + F400516BC2000000000000000000000000000000000000000000000000000000 + 000000000000DAE1F900637BCE00556FC600637BCE00DAE1F9006C84D800607B + D9007D98F500AABCF800ADBEF800AABCF8007491F4005775D9006C84D8000000 + 0000000000000000000000000000000000000000000000000000546EC5005876 + DA00566FC3006379C4006C81C5006E82C4007083C5007587C6006E82C400687D + C4005B73C4005775DA00546EC500000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C8007794F4001C4C + ED0090A7F4007995F40090A7F4001E4EED001E4EED001E4EED001E4EED001E4E + ED001E4EED001E4EED001E4EED001E4EED0090A7F4007995F40090A7F4001C4C + ED007794F4005771C80000000000000000000000000000000000526CC3006D8C + F300434D6E00485378004A557B004A557B004A557B004A557B004A557B004A55 + 7B004A557B004A557B004A557B004A557B004A557B004A557B006F7896007995 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A8B8F0005570 + CB00466BE300CFD8F800CFD8F800CFD8F8004165E300546ECA00A8B8F0000000 + 00000000000000000000000000000000000000000000000000005670C7005D80 + F200587CF2005972C3008EA6F60093AAF600798AC500A3B6F80087A1F5005B73 + C3006989F3005B7EF2005670C700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900889FEB0091A6 + EC0097ABED0098ABED0098ABED0099ACED0099ACED0099ACED0099ACED0099AC + ED0099ACED0099ACED0099ACED0099ACED0099ACED0098ABED0097ABED0091A6 + EC00889FEB005872C900000000000000000000000000000000005670C6007794 + F400AABCF800ADBEF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ADBEF800A9BBF800829C + F500546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C8006583 + EB00809AEE007B92DD009BB0F700AEBFF8009FAEDF00B2C2F9009EB3F7007C92 + DD00809AEE006382EB005771C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005B76D2005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000000000000000000000000000005A74C7008CA3 + ED009BB0F700A6B9F800A9BBF800AABCF800AABCF800AABCF800AABCF800AABC + F800AABCF800AABCF800AABCF800AABCF800A9BBF800A5B8F80098AEF70092A7 + EF005972C6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D2005771 + C8005771C8002A4DBF00425FC100566FC3005B73C3005A72C3004360C100294C + BF005771C8005771C8005A76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000728BDF007289 + D7009BAFF1009FB2F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3 + F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F2009EB1F2009AAEF1007389 + D700728BDF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003044890030448900000000000000000000000000000000000000 + 0000000000003044890000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000263569004F5E9400000000000000000000000000000000000000 + 0000536BBA002635690000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BC007D94DF007B94E7007F97E7008098E7008199E7008199E7008199E7008199 + E7008199E7008199E7008199E7008199E7008098E7007F97E7007C94E5006377 + BB004D66BC000000000000000000000000000000000000000000000000000000 + 00000000000029397200627DD900334992000000000000000000000000003349 + 92005E71B3002939720000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F58AD003D59B9003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003A5097005169BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8004E66 + B7006686F3006888F3006F8DF3007592F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007391F4006F8DF3006888F3007F99 + F0004E66B700D2DBF80000000000000000000000000000000000000000000000 + 0000000000002C3C7700617DDA00445591007389D300000000007389D300495A + 9300526FD2002C3C770000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000283C82000730BA00042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB9003453B900283C820000000000364C9A002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D0000000000000000000000000000000000AEBDF100556C + BB00617FE30040508500576AAB00819BF500819BF500435180005D70B000829C + F500829CF5005A6CAB005C6FAF00819BF500425080005669AA005469AF007B97 + F400556CBB00AEBDF10000000000000000000000000000000000000000000000 + 0000000000002E3F7C00617DDB005872C70032478800CED7F70033478800647B + CB002447BB002E3F7C0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027387A00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD001035B10027387A00000000002F4284005872CB004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8005872CB00000000000000000000000000000000008FA3E900627A + CD004862BC0036488600445BA9006283F2006283F20031417700445BA9006283 + F2006283F200445BA900445BA9006283F20031417700445BA900445BA9007290 + F400627ACD008FA3E90000000000000000000000000000000000000000000000 + 00000000000032458600617EDF00173CBA005472D800435492005D7ADA001238 + B700042BAF003245860000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002A3C7E00042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB0002A3C7E0000000000354A92005875D600BBC2 + DA00D0D8F400D0D8F400D0D8F400CED6F300CED6F300CED6F300CED6F300CCD5 + F200CDD6F300CED6F300CED6F300D0D8F400D1D9F400D1D9F300D3DAF400D5DC + F400E9EDFA005875D60000000000000000000000000000000000768EE1006079 + CD003955B3002F458F003751A8005075F1005075F100273975003751A8005075 + F1005075F1003751A8003751A8005075F100273975003751A8003751A8006183 + F2006079CD00768EE10000000000000000000000000000000000000000000000 + 00000000000034478B00627FE100042CB4002E53CB005B73C7002E53CB00042C + B400042CB40034478B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002C408400042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB9002C40840000000000384E99005876DB00BDC4 + DC00D2DAF500D1D9F500D1D9F500D1D9F500D1D9F500D1D9F500CFD7F400CFD7 + F400CED7F400CED7F400CED7F400CED7F500CED7F500CED7F500CED7F500CED7 + F500E6EBF9005876DB00000000000000000000000000000000007790E100657E + D3002844A200243D8E002C48A7003E67F0003E67F0001E3274002C48A7003E67 + F0003E67F0002C48A7002C48A7003E67F0001E3274002C48A7002C48A7005075 + F100657ED3007790E10000000000000000000000000000000000000000000000 + 000000000000374B8F006280E300042EB9000932BC004164D8000932BC00042E + B900042EB900374B8F0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002F448C000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2002F448C00000000003C53A0005A79E000C0C7 + DE00D5DDF700D3DBF600D3DBF600D3DBF700D2DAF600D2DAF600D2DAF700D1D9 + F600D2DAF700D1D9F600D0D9F600D0D9F600D0D9F600CFD8F600CFD8F600CFD8 + F600E6EBFA005A79E00000000000000000000000000000000000516AC2005E7A + D8000D257600112D8A00123095001A45D6001A45D6000C216800123095001A45 + D6001A45D60012309500123095001A45D6000C2168001230950012309500335B + E1005E7AD800516AC20000000000000000000000000000000000000000000000 + 0000000000003B509A00617FE5000430C4000430C4000430C4000430C4000430 + C4000430C4003B509A0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000354B9B000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D400042AAA00042A + AA00042AAA00042EB9000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D400354B9B0000000000435CAF006181EC00C2C9 + E000D8E0FA00D8E0FA00D7DFFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D6DE + FA00D6DEFA00D6DEFA00D6DEFA00D5DDFA00D5DDFA00D4DDFA00D4DDFA00D4DD + FA00E9EEFC006181EC00000000000000000000000000000000004D66BA005E7A + D80003185F0005207B00062489000833C3000832BD0004195F00062489000833 + C3000832BD0005218000062489000833C30004195F0005218000062489001A43 + CE005E7AD8004D66BA0000000000000000000000000000000000000000000000 + 0000000000003E539E006180E7000432C9000432C9000432C9000432C9000432 + C9000432C9003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003850A3000537DD000537DD000537 + DD000537DD000537DD000537DD000537DD000537DD000537DD00C5C3C200C3C1 + BF00C0BEBC00042EBC000537DD000537DD000537DD000537DD000537DD000537 + DD000537DD000537DD000537DD003850A300000000004660B6006182F100C5CB + E100DAE1FB00DAE1FB00DAE1FB00D9E1FB00D9E1FB00D9E1FB00D8E0FB00D8E0 + FB00D8E0FB00D7DFFB00D7DFFB00D7DFFB00D6DEFB00D6DEFB00D6DEFB00D6DE + FB00EBF0FD006182F100000000000000000000000000000000004960B2005D7D + EA0002175D000216580002165800042CB300042BAC0002175D0002175D00042C + B300042BAC000216580002175D00042CB30002175D000216580002165800173E + C2005D7DEA004960B20000000000000000000000000000000000000000000000 + 0000000000004056A3006180E9000433CE000433CE000433CE000433CE000433 + CE000433CE004056A30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003B54AA000539E5000537E0000434 + D1000433CE000433CE000433CE000433CE000433CE000433CE00D9D8D700D7D5 + D400D4D2D100042BB0000433CE000433CE000433CE000433CE000433CE000433 + CE000434D3000538E2000539E5003B54AA00000000004962BA006283F200C7CD + E300DEE5FC00DDE4FC00DDE4FC00DCE3FC00DCE3FC00DCE3FC00DBE2FC00DBE2 + FC00DBE2FC00DAE2FC00DAE2FC00DAE2FC00D9E1FC00D9E1FC00D8E0FC00D8E0 + FC00EBF0FD006283F2000000000000000000000000003C4E9300405190000D26 + 7800031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D000D2678003C4E8C00879DE200000000000000000000000000000000000000 + 000000000000455DAE006887ED001543DC001543DC001543DC001543DC001543 + DC001543DC00455DAE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F59B000193BAD004565CF005D7D + EA006082F2006082F2006082F2006082F2006082F2006082F200D9D7D600D3D1 + D000CDCBCA00516DCD006082F2006082F2006082F2006082F2006082F2006082 + F2005B7BE5003959C2001646E9003F59B000000000004C65BC006B8AF300CCD1 + E300E3E9FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DDE4 + FC00EDF1FE006B8AF3000000000000000000000000007A93E4003F64E0004569 + E0004A6DE0004C6EE0004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6F + E1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004C6EE000486B + E0004569E0004266DD004C64B700000000000000000000000000000000000000 + 0000000000004760B3006D8BF0001F4CE1001F4CE1001F4CE1001F4CE1001F4C + E1001F4CE1004760B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000415AB1005E7CE2005579F100486F + F000466DF000466DF000466DF000466DF000466DF000466DF000F1F0F000EFED + ED00ECEBEA003B5DCC00466DF000466DF000466DF000466DF000466DF000466D + F000486FF000587CF2002247C400415AB100000000004D67BE006B8AF300CED3 + E300E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00EFF3FE006B8AF3000000000000000000000000007290F4006A8AF3006888 + F300708EF4007290F4007290F4007391F4007391F4007391F4005771CE00354A + 940032458D007391F4007391F4007391F4007290F4007290F4007290F4006E8D + F3006888F3006A8AF3005771C800000000000000000000000000000000000000 + 0000000000004A63B8006F8DF1002854E7002854E7002854E7002854E7002854 + E7002854E7004A63B8004A63B8004A63B8004A63B8004A63B800516BC7000000 + 000000000000000000000000000000000000425BB200597CF2005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1004766CD004766 + CD004766CD004B6CDA005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1004D68C400425BB200000000004E68BF006B8AF300CFD4 + E300E7ECFD00E6ECFD00E6ECFD00E6ECFD00E6EBFD00E6EBFD00E5EAFD00E5EA + FD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8 + FD00F0F3FE006B8AF3000000000000000000000000005872CA005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9003C53A3005072 + E2000535D7005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90093A8ED00000000000000000000000000000000000000 + 0000000000004F69C0007894F4003D66EF003D66EF003D66EF003D66EF003D66 + EF003C65EF004F69C0003656C2005579F1005378F1007592F4004F69C0000000 + 000000000000000000000000000000000000445DB5006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3007491F400445DB50000000000516BC2006D8CF300D3D7 + E400EBF0FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E7ECFD00E7ECFD00E6EC + FD00F2F5FE006D8CF30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAF004F73 + EB000538E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000506AC1007C97F400476EF000476EF000476EF000476EF000476E + F000466DF000506AC1003555C2005176F1005075F1007290F400506AC1000000 + 000000000000000000000000000000000000455EB6007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F400455EB60000000000526CC3007491F400D6D9 + E400EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0 + FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00F4F7FE007491F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004760B8005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC200819BF5005075F1005075F1005075F1005075F1005075 + F1005075F100516BC2002A4DBF004169F0004068F0006B8AF300516BC2000000 + 0000000000000000000000000000000000004660B70086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F5004660B70000000000546DC4007491F400D8DB + E400F0F3FE00EFF3FE00EFF3FE00EFF3FE00EEF2FE00EEF2FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0FD00EAEF + FD00F4F7FE007491F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C65BD005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC40088A2F6006485F3006485F3006485F3006485F3006485 + F3006384F300536DC4000F35B6001546EC001546EC00577BF200536DC4000000 + 0000000000000000000000000000000000005570CD00A3B6F500A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F7008798D6005570CD00000000005770C7007B97F4001B46 + D500254ED600274FD600274FD6002850D6002850D6002850D6002850D6002850 + D6002850D6002850D6002850D6002850D6002850D600274FD600274FD600214A + D5001B46D5007B97F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004E68BF005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546DC4008BA4F6006F8DF3006F8DF3006F8DF3006F8DF3006F8D + F3006E8DF300546DC400042BB0000538E5000538E5005075EF00546DC4000000 + 000000000000000000000000000000000000000000004963BA004963BA004963 + BA004963BA004963BA004963BA003D5BC300042EBC003B57B9004963BA004963 + BA004963BA004963BA003B57B900042EBC004963BA004963BA004963BA004963 + BA004963BA004963BA005670CE0000000000000000005871C800829CF5003E67 + F0005176F1005579F100577BF200597CF200597CF200597CF200597CF200597C + F200597CF200597CF200597CF200597CF200587CF200577BF2005579F1004A70 + F0003E67F000829CF50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC6008FA7F6007995F4007995F4007995F4007995F4007995 + F4007995F400556EC600042AA9000434D3000434D3005073E900556EC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A64BB000430C4004760B300000000000000 + 000000000000000000004760B3000430C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C90089A1F00093A9 + F2009DB0F2009FB2F400A0B3F400A1B4F400A1B4F400A1B4F400A1B4F400A1B4 + F400A1B4F400A1B4F400A1B4F400A1B4F400A0B3F400A0B3F4009FB2F40098AD + F20093A9F20089A1F00000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005971C7005075 + F1001345EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005770C8009DB1F3008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F600697ECB0003269B00042AAA000930B3005D78D6005770C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516ABE002049D4004862BD004D66BD004D66 + BD004D66BD004D66BD004862BD002049D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005972CB006A86 + E4006A86E4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDA0095A8E80097ADF70096ACF70096ACF70096ACF70096AC + F70096ACF700758AD4001A36940003269B002042B3005E78CF005874CF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000536CC0006481E4000B39D4000434D3000434 + D3000434D3000434D3000B39D4006D88E3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000093A8ED005872 + CA005872CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED007086D2009DB2F70098AEF7009CB1F7009DB2F7009AAF + F70095ACF70096A9EB005E74BF0016349A004D6ACB00657BC5007C93E6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006680D9007489D400879FF200829DF500829D + F500829DF500829DF500879FF2007489D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900647EDB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E3E + 79002A396C0090A1D600C8C8C800B6C3EC00667CC4003D559D0025356A002535 + 6A00243468003C5198006277BD00ABB9E500C3C3C30090A1D6002A396C002E3E + 7900000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008196DC002F42 + 820056659A002F4282008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DADADA00CECECE00C0C0C000C0C0C0009EACDC00273360002631 + 590026315900384987008D9DD300C0C0C000C0C0C000CECECE00D3D3D3000000 + 0000000000000000000000000000000000000000000000000000000000003B51 + 9F0003279F0022377D002F3F79003C56AA002F4CAF001F3FA9000F31A3000F31 + A3000F31A3001F3FA9002F4CAF003C56AA002F3F790022377D0003279F003B51 + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000859AE000364C98004C5D99005F79CD003D5C + C4002447BD003D5CC4005F79CD00697CBD00364C9800859AE000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002B3F800030458B0000000000000000000000 + 00000000000000000000000000004055A3007085D00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000CED7F6002A3D7D0056669F004B5989002A3A + 73002A3A73007381AE005264A4002A3A73000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005871 + C1001C368C00374986003F57A9001639AD001034AB002344B1003553B7003553 + B7003553B7002344B1001034AB001639AD003F57A900374986001C368C005871 + C100000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A9B9EE005062A1006E81C300627CD300294EC600294E + C600294EC600294EC600294EC6004161CD006E81C3005062A10039509E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008196DB002E4187005366A6003F4E84007287D200000000000000 + 0000000000000000000090A3E30039487D003F4E84002E4187008196DB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F65B600213783007181B600A3B4EB000000 + 000000000000354B97007281B300213783000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008297 + DE003C4E8D003C58B6002244B6002849B8005C73C1009EA8C800CCCCCC006C6C + 6C00CCCCCC009EA8C8005D74C200294AB9002244B6003C58B6003C4E8D008297 + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000627ACE00465A9E006882DB004A6AD6003E61D3003E61D3002E53 + CF002E53CF002E53CF002E53CF003257D0005674D900748CDD006E82C600627A + CE00000000000000000000000000000000000000000000000000000000000000 + 0000364C980047578E005568AB003C58B800576CAF0030428500000000000000 + 0000000000000000000030468D005568AB004B65BB005568AB0047578E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F428600324CA4004F5E9300000000000000 + 000000000000A5B6EC004F5E9300324CA4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D0D8F7003C4E + 91002348C300163DBE004B66C100DFDEDE00F5F5F500F8F8F800F9F9F900FAFA + FA00FAFAFA00FBFBFB00F8F8F800E2E2E2004D68C300163DBE002348C3003D50 + 9300D0D8F7000000000000000000000000000000000000000000000000000000 + 00005469B1008BA0E8005E7CE2005A6DB400445AA9004D67C0006F83C8007590 + EA004469E3003A60E1004E67BE00445DB200445AA9005A6DB4007388CF009FB0 + EA005469B100ABBBF00000000000000000000000000000000000000000000000 + 0000A8B7ED00495A96006A81CF00042DB6001C41BD005771C500BAC7F2000000 + 000000000000374B9400576FBE002045BE000E35B8006880CF004D5E9B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334689002440A30033468900000000000000 + 00000000000000000000334689001C399F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000566FC400455C + A900113AC3004765CB00B1B4BB00E2E2E200F5F5F500F6F6F600F7F7F700F8F7 + F700F8F8F800F9F9F900F9F9F900FAFAFA00B7BAC1004967CD00113AC300455C + A900566FC40000000000000000000000000000000000000000004B66BF00435C + B4008F9FDA005878E0005B71BD009DAFED0000000000000000004860B5008299 + E7005B7DEC004E6EDD00455EB40000000000000000009DAFED00516AC600859C + E60092A3DB004761BA004B66BF00000000000000000000000000000000000000 + 000000000000455EB2006B7DB900042FBF00042FBF003C5DCC00465EB2000000 + 0000000000005267AE004161CE00042FBF004363CE007081BD00455EB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000465EB100364A8F002B49AB00364A8F00000000000000 + 000000000000364A8F00364A8F001D3CA5000000000000000000000000000000 + 00000000000000000000000000000000000000000000D1DAF7003F539C004463 + CA003156CF00A2AAC700E1E1E100EEEDED00D6D6D600F3F3F300F4F4F400F5F5 + F500F6F5F500F7F6F600F7F7F700F8F7F700E9E9E900A8B1CE003055D0004463 + CA003F539C00D1DAF70000000000000000000000000000000000455FB600A4B4 + E900708CE9006076C4005169BB00000000000000000000000000627CD500798F + DC006A89F2005471D500627CD5000000000000000000000000004E67C5006076 + C400708CE9006E82CB00455FB600000000000000000000000000000000000000 + 000000000000D1DAF70044589E002048CD000431C7000E39CA00485CA000899D + E300A9B9EF005772D1001740CB000431C7007189D70044589E00BDC9F3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000394D9500394D95003350B300394D9500000000000000 + 0000000000003953AE00394D95001E3EAC000000000000000000000000000000 + 00000000000000000000000000000000000000000000556EC7004B68C700385E + DD009CA5C800E5E4E400E9E8E800EAEAEA00EBEAEA00E1E0E000EEEDED00EBEB + EB00EFEFEF00F1F0F000F1F1F100F2F1F100F3F3F300F1F0F000A5AED100385E + DD004B67C700556EC700000000000000000000000000000000004861B8008CA3 + EF004F74F100607EE0004A63BC00000000000000000000000000AEBDF200657A + C400839EF500586FBF00AEBDF200000000000000000000000000BFCCF5008DA1 + E800839EF500587CF2004861B800000000000000000000000000000000000000 + 0000000000000000000000000000778DD7002C55DE000536D9004D6FE100576D + BA005369B4000D3DDA000536D9002751DE00455DB00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003E53A1003E53A1004260C2003E53A100000000000000 + 0000000000004260C2003E53A1002143B8000000000000000000000000000000 + 000000000000000000000000000000000000000000004960B3004C6DDB003A61 + E300C8C9D000E7E6E600E6E6E600E6E5E500E7E6E600E8E7E700BEBEBE00D2D2 + D200D5D4D400EDECEC00EEEDED00EEEEEE00F0EFEF00F1F0F000CFD1D8003960 + E2005473D9004660B700000000000000000000000000000000004962B9008FA4 + EF005E7DE500516ABD0090A4EA00000000000000000000000000D2DBF8006076 + C20087A1F500576FBF00D2DBF800000000000000000000000000000000005970 + C0008CA1EC00849EF5004962B900000000000000000000000000000000000000 + 00000000000000000000000000005C71BD006886EA000E3FE200204EE5005A78 + DE00607BDA000538E2000A3CE3005E7EEA00758CDE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004157A7004157A7004A66C9004157A700000000000000 + 0000000000004A66C9004157A7002246BD000000000000000000000000000000 + 00000000000000000000000000000000000000000000455EB2005474E0004369 + E900E0E0E000EFEEEE00EDECEC00EAE9E900E9E8E800E7E6E6007B7979006A68 + 68007F7D7D00E9E8E800EAE9E900EBEAEA00ECECEC00EDECEC00DEDDDD004268 + E8005878E100455EB200000000000000000000000000000000004A63BA0092A8 + F0005971C4007790E2000000000000000000000000000000000000000000546C + BF0091A7F2005068BD0000000000000000000000000000000000000000007790 + E200697EC90091A7F2004A63BA00000000000000000000000000000000000000 + 00000000000000000000000000005570CC00768DD9004068EF00073BEA003560 + EE003A63EE00073BEA003963EE00778EDD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000445CAD00445CAD00516ED000445CAD00000000000000 + 000000000000516ED000445CAD002449C4000000000000000000000000000000 + 000000000000000000000000000000000000000000004A64BB006E8BEE005A7D + F200E9E9E900F9F8F800F8F8F800F6F6F600F5F5F500F4F4F4009F9E9C009290 + 8E009F9D9B00EDECEC00EBEBEB00EAE9E900E7E6E600E6E5E500D7D6D600587C + F2007490EE004A64BB00000000000000000000000000000000004C65BC007A8D + D000000000000000000000000000000000000000000000000000000000004C65 + BC009AAEF1004C65BC0000000000000000000000000000000000000000000000 + 000000000000526CC9004C65BC0000000000000000005F7FE9006381E9006382 + E9006483E9006483E9006483E9006784EA006A87EA006484EE001A4AED001A4A + ED001A4AED002654EE006484EE006986EA006583E9006483E9006483E9006483 + E9006382E9006381E9004A64BB00000000000000000000000000000000000000 + 000000000000000000004963B9004963B900607CDC004963B900000000000000 + 000000000000607CDC004963B9003458D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC100819BEF006384 + F300DBDDE200FCFCFC00FBFBFB00FAFAFA00F9F9F900F9F8F800E0DFDF005856 + 5500DEDDDD00F3F3F300F2F1F100F1F0F000EEEDED00EDECEC00CCCDD2006183 + F20089A1F100526CC10000000000000000000000000000000000536ECA004F6A + C50000000000000000000000000000000000000000000000000000000000536E + CA009DB0F200536ECA0000000000000000000000000000000000000000000000 + 00000000000000000000536ECA000000000000000000587CF2001949ED001D4D + ED002050ED002150ED002150ED002352ED002352ED002352ED002352ED002352 + ED002352ED002352ED002352ED002352ED002251ED002150ED002150ED001F4F + ED001D4DED001949ED004B65BC00000000000000000000000000000000000000 + 000000000000000000004C66BD004C66BD006782E0004C66BD00000000000000 + 0000000000006782E0004C66BD003C60D7000000000000000000000000000000 + 000000000000000000000000000000000000000000005F79D2008DA1E6006D8C + F300BEC5DE00FAFAFA00FDFDFD00FDFCFC00FCFCFC00FCFBFB00FBFAFA007674 + 7300F9F9F900F8F7F700F7F7F700F6F6F600F4F4F400F0EFEF00B7BDD6006B8A + F30092A5E7005F79D20000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546ECB006177C5006177 + C5007893ED006177C5006177C5005C73C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005B7EF2001F4FED002453 + EE002957EE002A57EE002B58EE002D5AEE002D5AEE002D5AEE002D5AEE002D5A + EE002D5AEE002D5AEE002D5AEE002D5AEE002C59EE002B58EE002A57EE002755 + EE002453EE001F4FED004C66BD00000000000000000000000000000000000000 + 000000000000000000004D67BE004D67BE006E88E2004D67BE00000000000000 + 0000000000006E88E2004D67BE004365DA000000000000000000000000000000 + 00000000000000000000000000000000000000000000919FD0005C74C500A6B8 + F3009FB3F700C5CADA00EFEFEF00FFFFFF00FFFFFF00FFFEFE00FEFEFE008785 + 8400FEFEFE00FDFDFD00FDFDFD00FCFCFC00ECECEC00C4C9D9009DB2F600A3B5 + F3005D75C5008A97C60000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC005069C0005069 + C000A9BAF3005069C0005069C0005069C0000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF005870C300829AEB00426AF000426A + F000426AF0004D72F100849CEE005870C3004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF00546FCB00000000000000000000000000000000000000 + 000000000000000000004F69C0004F69C000879EE9004F69C000000000000000 + 000000000000879EE9004F69C0005171DE000000000000000000000000000000 + 000000000000000000000000000000000000000000007F7E7D008390C10092A3 + DD0091A8F600B2C1F300C2C3C700FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9B + 9A00FFFFFF00FEFEFE00FEFEFE00EBEBEB00C0C1C500B1C1F3008DA5F50091A2 + DD00818FBE008785840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C100B0C0F600516AC10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005975D1007B90DA007592F4004D72F1007794 + F4007995F4004D72F1007592F4007D92DD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000506AC100506AC1009AAEF0005D75C600000000000000 + 0000D3DBF9009AAEF000506AC1005977DF000000000000000000000000000000 + 00000000000000000000000000000000000000000000B2B0AF009A9CA6005E76 + C70096ACF700A3B6F800B8C4EC00E5E5E500FBFBFB00FFFFFF00FFFFFF00D7D6 + D600FFFFFF00FFFFFF00FBFBFB00E5E5E500B7C3EC00A0B4F70092A9F6005E76 + C7009498A100B5B4B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000092A7EC00526B + C200A0B3F400526BC20092A7EC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006278C800869EF2005F81F2006989F300A1B3 + EE00A3B3ED00567AF2005C7FF200859EF20092A5EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200516BC200A3B2E7008396D900000000000000 + 0000607BD700A3B2E700516BC200607DE1000000000000000000000000000000 + 00000000000000000000000000000000000000000000BDBCBB00A3A1A0007978 + 77007B90D300BAC8F600A9BBF800C9D5FB00D1D8F200D0D3DE00CECECE006D6D + 6D00CECECE00D0D3DE00D1D8F200C8D4FB00A5B8F800B8C6F6007B90D3007372 + 71009B999800B5B4B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB1F000BDCAF6009FAE + E3007287CF00A6B4E400CAD5F800798DD2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A92E4008CA4F4006D8CF3006A8AF30099ABEA00556F + CB00556FCB00859FF5006A8AF3006D8CF3007389D3007A92E400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400546DC400718AE0007388CF00C9D3F500C9D3 + F500B2C0EC00718AE000546DC4006E89E4000000000000000000000000000000 + 00000000000000000000000000000000000000000000B4B3B200908E8D007D7B + 7A006C7BAA00758AD200B8C6F200B8C7F900C1CEFA00CED8FB00D5DEFC00D5DE + FC00D5DEFC00CDD8FB00BFCDFA00B6C6F900B6C4F200748AD200707DAE007371 + 700089888700B1B0AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000627DD8009AAAE1005973 + CF00D3DBF9005973CF00A4B2E300C0CBF1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005971C80086A0F5007592F4007C97F4006B81CC009FB1 + F000AEBEF300A7B9F5007F9AF5007592F40092A7EE005D75C800D3DBF9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC500556EC500000000009FB1F000556EC500556E + C5005D78D50000000000556EC5007892E6000000000000000000000000000000 + 00000000000000000000000000000000000000000000A9A8A600898887006E6C + 6B008C8B8B00919BBC00637BCB00C6D1F700C0CEFA00BECCFA00BAC9FA00BAC9 + FA00B7C7F900BCCAFA00BECCFA00C4D0F700627ACB0097A1C200989796006F6E + 6D00817F7E00ADABAA0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000566FC7007085CF00D3DB + F90000000000D3DBF9007488D100C7D1F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006983DD007E92DA007F9AF5007F9AF5009AAFF7005D78D5000000 + 0000000000008DA0DF009CB1F7007F9AF50094ABF6008195DC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600566FC6000000000000000000000000000000 + 00000000000000000000566FC6008AA0EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000B3B3B300A19F9D00CBCA + CA00F2F1F100DEDEDE00B9B9B9007D808B008891B2006B81D3005771C8005771 + C8005771C8006681D8008A93B4007D808B00A8A8A800D1D1D100F2F2F200D6D5 + D500A9A8A6009F9F9F0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000647EDA00B1BEE8005B76 + D200D3DBF9005B76D200AAB8E800A5B5ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000647EDA0090A3E4009DB2F70093AAF600AABCF7008497D900000000000000 + 0000000000007C93E5008497D900A9BBF7008BA4F60097ADF70093A6E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000647EDA008B9FE2005B76D200AFBFF300000000000000 + 0000000000005B76D2008C9EDF00A2B2E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B4B4B400AAA9 + A700E4E4E400D2D1D100BAB9B900A09F9D00A0A09F0000000000000000009896 + 94000000000000000000B4B4B400A09E9D00B1B0B000C9C9C900E1E0E000B1AF + AE00A0A09F000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB2F000D3DCF900B2BF + E9007B8FD400AEBCE700CDD7F800798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005B76D2008195D900AEBDF100A0B4F700A3B4ED005A74CF00000000000000 + 000000000000000000005A74CF00A1B1EC00ACBDF700A2B2EC00778CD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF600BFCBF200A2B1E600778BD3005872C9005872 + C9005872C900A0AFE300BCC9F2006F84D0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9D9B00A9A7A500A1A09E00C8C8C800000000000000000092918F009896 + 940092918F000000000000000000D5D5D5009F9D9B00A9A7A5009F9D9B00C8C8 + C800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758AD300BFCA + EF00D7DFF900C1CBEF00758AD3006B85DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007C93E6005C75CC00A5B6EF006F84D0009FB2F000000000000000 + 000000000000000000009FB2F0006F84D0008296DA005872CA00879CE9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000677ECE00A0B0E400C8D3F600CAD4F500CAD4 + F500CAD4F500A6B5E8006F85D00093A8ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 00000000000000000000DADADA00C1C1C1002C3C720025315900253159002531 + 590025315900253159002531590025315900C1C1C100C8C8C800DADADA000000 + 0000000000000000000000000000000000000000000000000000798CD2001926 + 54001F2E65002233700024367500243675002436750024367500243675002436 + 7500243675002436750024367500243675002436750024367500243675000000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000320000001E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 00000000000000000000000000000000000027387100425CB10013339E001333 + 9E0013339E0013339E001F3DA300425CB1000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001A2755002231 + 6A003655BD001C41BA00042CB300042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300072FB400193EB9003656C200273A + 7D00667DCD00000000000000000000000000031D3D85093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF010D1D3A000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 000000000000000000000000000000000000293A7500435DB60003279E000327 + 9E0003279E0003279E001334A300435DB6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001B2957002333 + 6D003555BF00042DB700042DB700042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB700042DB7003556C500AAAF + BE00293D80000000000000000000000000000C458BFF1D54ABFF1E54A9FF1E54 + A9FF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54 + AAFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1D54ABFF1D54 + ABFF1D54ABFF1C54AEFF0D468CFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000002C3D7B00435EBB000328A4000328 + A4000328A4000328A4001336AA00435EBB000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001D2A5A002435 + 70003656C300042EBB00042EBB00042EBB00042EBB00042EBB00042EBB00042E + BB00042EBB00042EBB00042EBB00042EBB00042EBB00042EBB003658C800B6BB + C8002A3E84000000000000000000000000000F4791FF14439DFF14439DFF1544 + 9EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF1544 + 9EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF1544 + 9EFF15449EFF3E8AD8FF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 000000000000000000000000000000000000314486004361C500042CB100042C + B100042CB100042CB1001439B6004361C5000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001F2D5F002839 + 77003658C9000430C3000430C3000430C3000430C3000430C3000430C3000430 + C3000430C3000430C3000430C3000430C3000430C3000430C3003559CF00BEC3 + D1002E438D000000000000000000000000000F4792FF15459FFF1546A0FF1546 + A0FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647 + A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647 + A1FF1647A1FF1D55AFFF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000033478C004362C900042DB700042D + B700042DB700042DB700143BBC004362C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000203063002A3B + 7B00375ACD000633C8000633C8000633C7000633C7000633C7000633C7000633 + C7000633C7000633C7000633C7000633C7000633C8000633C800375BD300C3C8 + D600314691000000000000000000000000000F4892FF1749A3FF184CA6FF194D + A7FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1B4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1B51ABFF448EDAFF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000364A91004363CF00042FBE00042F + BE00042FBE00042FBE00143CC3004363CF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000213164002B3D + 7E003D5FD1000F3BCD00103CCE00123ECF00123ECF00123ECF00123ECF00123E + CF00123ECF00123ECF00123ECF00123ECF00103CCE000F3BCE003D61D700C6CB + DA00324894000000000000000000000000000F4893FF1A4EA8FF1B51ABFF1C54 + AEFF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57 + B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57 + B1FF1E57B1FF4C92DCFF0B448AFF000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000003B519C003B519C003B51 + 9C003B519C003B519C003B519C003B519C003B519C004366D8000432CB000432 + CB000432CB000432CB00143FCE004366D8003B519C003B519C003B519C003B51 + 9C003B519C003B519C003B519C004B63BA00000000000000000025356A002E41 + 8400496BDA00214BD900244ED9002750D9002750D9002750D9006985E5006985 + E5006985E5002750D9002750D9002750D900244ED900204AD800486BDF00CFD4 + E400364D9C00000000000000000000000000104894FF1A4EA8FF1B52ACFF1C55 + AFFF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF0B448AFF000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000004F6ED500516FD5005270 + D6005270D6005270D6005270D6005270D6005370D600496CDE000E3CD4000E3C + D4000E3CD4000E3CD400113ED4004A6DDF005270D6005270D6005270D6005270 + D6005270D6005270D600506ED4003E55A300000000000000000027366E003044 + 88004E6FDE002A53DE002E57DF00325ADF00325ADF005878E500112B8400112B + 8400112B8400325ADF00325ADF00325ADF002E57DF002A53DE004F72E400D3D8 + E8003951A000000000000000000000000000104894FF1A4EA8FF1B52ACFF1C55 + AFFF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF053D82FF053D82FF0D4187FF053D + 82FF053D82FF053D82FF053D82FF03254F9B000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 00000000000000000000000000000000000000000000476BE300244FDD002852 + DE002953DE002953DE002953DE002953DE002A53DE00224DDD001C48DC001C48 + DC001C48DC001C48DC001C48DC00224DDD002953DE002953DE002953DE002953 + DE002953DE002852DE00496DE3004058AA000000000000000000283870003246 + 8C005475E200335BE300385FE3003C62E3003C62E3005268B000607FE8007792 + EC007792EC00607FE8003C62E3003C62E300385FE300325BE3005476E700D6DB + EC003B52A500000000000000000000000000114995FF1A4EA8FF1C53ADFF1D56 + B0FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59 + B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1C54AEFF3D5978FF6C715CFF3458 + 88FF1C54AEFF1C54AEFF1A4FA9FF053D82FF000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000005175ED00325CEA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA00577AEE00465FB50000000000000000002B3B7500354A + 9400607FE800446AEA004A6FEB004F73EB004F73EB0042548F0042548F004F73 + EB0042548F0042548F004F73EB004F73EB004A6FEB004369EA006081EE00DFE4 + F5003F58AD00000000000000000000000000114A96FF194FA9FF1C53ADFF1D57 + B1FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5A + B4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1C54AEFF3F463CFF32372CFF3B45 + 42FF1A4FA9FF1A4FA9FF1A4FA9FF053D82FF00000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000005579F1003E67EF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF005C7FF2004963BA0000000000000000002D3E7800384D + 97006685EC004C71EF005377EF00597CF000597CF00044569100364B90008BA3 + F400364B900044569100597CF000597CF0005377EF004B70EF006686F100E3E9 + FA00415BB100000000000000000000000000114A97FF1A4FA9FF1D54AEFF1E58 + B2FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205B + B5FF205BB5FF205BB5FF205BB5FF205BB5FF1C54AEFF43586CFFD3D6B6FF3956 + 7BFF1A4FA9FF1A4FA9FF1A4FA9FF053D82FF00000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000597CF2004B71F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1006183F2004A64BB0000000000000000002E407A003A50 + 9A006B89EE005277F1005B7EF2006384F3006384F300394D91003B57B400223C + 90003B57B400394D91006384F3006384F3005B7EF2005277F1006C8BF300E6EC + FD00445DB400000000000000000000000000114B97FF1A50AAFF1D55AFFF1E59 + B3FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205C + B6FF205CB6FF205CB6FF205CB6FF205CB6FF5495DEFF3786D5FF327DCEFF327D + CEFF327DCEFF327DCFFF2D77C4FF032F65C788878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587CF2005479F1006183 + F2006888F3006888F3006888F3006A8AF3006E8DF3006D8CF3006D8CF3006D8C + F3006D8CF3006D8CF3006D8CF3006E8DF3006A8AF3006989F3006888F3006888 + F3006686F3006183F2006082F2004C66BD00000000000000000030417B003C51 + 9C007792EF006283F2006C8BF3007592F4007592F4007592F400294190002941 + 9000294190007592F4007592F4007592F4006B8AF3006183F2007693F400E6EC + FD00465FB700000000000000000000000000124B98FF1A4FA9FF1D55AFFF1F59 + B3FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215C + B6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215C + B6FF215CB6FF6EA7E8FF0B4489FF0000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005A7BE9006987EA006E8A + EA00728EEA00738EEB00738EEB00748EEB007994EB00849EF5007B97F4007B97 + F4007B97F4007B97F4007C97F4008CA5F600748EEB00738EEB00738EEB00728E + EA00718DEA006E8AEA005E7EE9004D67BE00000000000000000031427C003D53 + 9C007C96F0006A8AF3007491F4007E99F5007E99F5007E99F5007E99F5007E99 + F5007E99F5007E99F5007E99F5007E99F5007491F4006888F3007C97F400E6EC + FD004761B800000000000000000000000000124C99FF1A50AAFF1D56B0FF1F59 + B3FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215D + B7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215D + B7FF215DB7FF70A9EAFF0B4489FF000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF004E68BF007391F40087A1F50087A1 + F50087A1F50087A1F5008BA4F600829DF5004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF00546FCB00000000000000000032437D003E53 + 9E007F99F000708EF4007B97F400849EF500849EF500849EF500849EF500849E + F500849EF500849EF500849EF500849EF5007A96F4006F8DF300819BF500E6EC + FD004862B900000000000000000000000000134C99FF2661B5FF3071C2FF3479 + C9FF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377D + CDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377C + CDFF387ECEFF2360B9FF0B448AFF000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA004863C0004D68 + C1004D68C2004D68C2004D68C2004D68C2004D68C2004C66C1004964C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000506AC1007290F400A2B6F800A3B6 + F800A3B6F800A3B6F8009FB3F700859FF5000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034447F004056 + A00088A0F1007B97F40086A0F50091A8F60094ABF60095ACF70095ACF70095AC + F70095ACF70095ACF70094ABF60091A8F600849EF5007A96F40089A2F600E6EC + FD004A64BB00000000000000000000000000134C9AFF2D6ABCFF377ACBFF3B81 + CFFF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84 + D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84 + D2FF3D84D2FF74ABEBFF0B448AFF0000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00607EE4005D7C + E2005E7DE3005E7DE3005E7DE3005E7DE3005E7DE3005D7CE2006B87E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000516BC2007693F400B0C0F900B1C1 + F900B1C1F900B1C1F900ABBDF8008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034457F004156 + A1008DA4F2007F9AF50088A2F60094ABF60097ADF70098AEF7009AAFF7009AAF + F70099AFF70098AEF70097ADF70094ABF60087A1F5007E99F5008DA5F600E6EC + FD004C65BC00000000000000000000000000134D9BFF1E57B1FF6AA0E3FF70A6 + E7FF225FB9FF74ABEBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225FB9FF74AB + EBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225F + B9FF74ABEBFF74ABEBFF0C458AFF00000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00728DEA0094A9 + ED0096AAEC0096AAEC0096AAEC0096AAEC0096AAEC0093A8ED007B95EB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000526CC3007A96F400BDCBFA00BDCB + FA00BDCBFA00BDCBFA00B5C5F9008FA7F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000354681004157 + A2008FA6F100819BF50089A2F60093AAF60096ACF70097ADF70098AEF70098AE + F70098AEF70097ADF70095ACF70093AAF60087A1F5007F9AF5008FA7F600E6EC + FD004D66BD000000000000000000000000001A529AFF7FB5F2FF337ECFFF3481 + D1FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786 + D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786 + D5FF3786D5FF7FB5F2FF0C458BFF0000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC5007C97F400CBD6FB00CDD8 + FB00CDD8FB00CDD8FB00C0CEFA0093AAF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000364882004156 + 9D006984E30097ADF7009AAFF7009DB2F7009EB3F7009FB3F7009FB3F7009FB3 + F7009FB3F7009EB3F7009EB3F7009DB2F70099AFF7009CB0F3007B8FD500E6EC + FD004F69C0000000000000000000000000000D468BFF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF0C458BFF010D1C3800000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000546EC5007995F400C7D3FB00CCD7 + FB00CDD8FB00CAD5FB00B7C7F9008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004459A7003D4F + 91005366A900506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC1006E82CB00E6EC + FD005069C000000000000000000000000000031C3B730D468BFF0D468BFF0D46 + 8BFF0D468BFF0D468BFF0D468CFF0D468CFF0D468CFF0D468CFF0D478CFF0D46 + 8CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D46 + 8CFF0D468CFF0D468CFF00000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000556FC6006F8DF300B2C2F900BECC + FA00C0CEFA00B6C6F900A2B6F800829CF5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F2003B4F + 950097A0C200C9D0E900E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00CCD3 + F000506AC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005A76D2005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000110000001C0000002E0000002E0000002E0000002E0000002E0000 + 002E0000002E0000002E0000002E0000002E0000002E0000002E0000001C0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000101020000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000005000000090000000C0000 + 000F00000016000000190000001D00000024000000260000002A0000002A0000 + 002A0000002A0000002A0000002A0000002A00000024000000200000001D0000 + 0016000000130000000F00000009000000060000000000000000000000000000 + 00000000000000000000339F70FF339F70FF339F70FF339F70FF339F70FF339F + 70FF339F70FF339F70FF339F70FF339F70FF339F70FF339F70FF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000003B2A9C75FF2A9C75FF2A9C75FF0000003E0000 + 003B000000330000002800000017000000140000000E0000000B000000080000 + 000300000002000000000000000000000000000000060000000D000000120000 + 001800000024A5A5A5E6CECECEFFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7 + E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFCCCCCCFF2525 + 254D0000001D000000180000000D000000090000000000000000000000000000 + 0000000000000000000032A072FF12BC8EFF12BC8EFF12BC8EFF12BC8EFF12BC + 8EFF12BC8DFF12BC8EFF12BC8DFF12BC8EFF3CD7A7FF32A172FF000E0B120000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000320000001E0000000000000000000000000000 + 000000000000040F0B190000000035CD98FF15B081FF38D19BFF0D34276F0000 + 0024000000200000001800000014000000100000000900000006000000040000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000F0F0F17B3B3B3EFCECECEFFE4E4E4FFE4E4E4FFE4E4E4FFE3E3E3FFE3E3 + E3FFE3E3E3FFF2F2F2FFD4DDD9FFE2E2E2FFE1E1E1FFEFEFEFFFCCCCCCFF5B5B + 5B76000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000031A172FF12BD8EFF12BC8EFF12BD8EFF12BC8EFF12BD + 8EFF12BC8EFF12BD8EFF12BD8EFF12BD8EFF3CD7A7FF31A172FF000E0B120000 + 0000000000000000000000000000000000000000001E131313EF121212EF1111 + 11EF111111EF111111EF111111EF111111EF111111EF111111EF111111EF1111 + 11FD111111FD111111EF111111EF111111EF111111EF111111EF121212EF1212 + 12EF131313EF141414EF111111B6000000000000000000000000000000000000 + 00000209060F000000002A9C75FF13B082FF13B082FF17B687FF259771F1030C + 0914000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000033333349C2C2C2FCD5D5D5FFE4E4E4FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3 + F3FFE3E3E3FF5DB591FFBFD7CDFFF3F3F3FFF2F2F2FFEDEDEDFFD5D5D5FF8383 + 83AE000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000030A273FF11C090FF0DCB95FF0CCA94FF0DCB94FF0CCB + 95FF0CCB94FF0CCB95FF0CCA95FF0CCB95FF3CD7A7FF30A273FF000E0B120000 + 000000000000000000000000000000000000000000003B3B3BFF3C3C3CFF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D + 3DFF3D3D3DFF3D3D3DFF1B1B1BF6000000000000000000000000000000000000 + 00002A9C75FF32D59FFF14B183FF10CF9EFF10CF9DFF12C191FF31D39DFF23A0 + 78F60D3225520000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008C8C8CC1CFCFCFFFE8E8E8FF6CC0A0FF38B284FF39B083FF3BB083FF3AAE + 82FF78C0A4FF3EAC80FF3BAC81FF3DAB7FFF3DAA7DFFD1DFD8FFE9E9E9FFACAC + ACE6000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002DA575FF11C291FF0CCD97FF0DCD97FF0CCC96FF0CCC + 96FF0CCC97FF0DCC96FF0DCC96FF0DCC97FF3BD7A7FF2EA574FF000E0B120000 + 000000000000000000000000000000000000000000002A2A2AFF2E2E2EFF3939 + 39FF393939FF393939FF393939FF393939FF393939FF393939FF3A3A3AFF3A3A + 3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A + 3AFF3B3B3BFF323232FF1F1F1FC6000000000000000000000000000000000223 + 1A2C2BD19CFF14B284FF13B284FF16D2A1FF11D09EFF10D09EFF16B687FF27CB + 99FF259670F00000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9D9DD6D0D0D0FFEFEFEFFF39B285FF39B184FF5DBC98FF64BC9BFF58B8 + 94FFDEE3E1FF3CAB80FF92CAB3FF84C4AAFF3EAA7EFF96C9B3FFEEEEEEFFB9B9 + B9F5020202040000000000000000000000000000000000000000000000000000 + 000000000000000000002CA676FF11C392FF0DCE98FF0DCE98FF0DCD97FF0DCE + 97FF0DCD98FF0DCE98FF0DCD97FF0CCE97FF3BD7A7FF2CA676FF011C14220000 + 00000000000000000000000000000000000000000000323232FE343434FF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3D3D3DFF3D3D + 3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D + 3DFF3E3E3EFF383838FF1212127100000000000000000000000001150F1A2AA0 + 75FF15B384FF13B283FF0FCE9BFF80EFD0FF6EE5BFFF0FD19EFF13B788FF24C9 + 96FF1FB78AFC0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000ACACACE8D0D0D0FFF1F1F1FF44B98EFF38B285FF41B288FFCFDFD9FFE6E6 + E6FFE6E6E6FF58B691FFA5D0BEFFB9D7CCFF3BAA7DFFAED1C2FFF0F0F0FFC4C4 + C4FE252525340000000000000000000000000000000000000000000000000000 + 000000000000000000002BA776FF10C492FF0DCE98FF0DCF99FF0DCF99FF0DCE + 98FF0DCF99FF0DCE99FF0DCE99FF0DCF99FF3AD7A6FF2BA877FF000E0B120000 + 00000000000000000000000000000000000000000000272727F04E4E4EFF4040 + 40FF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF404040FF4040 + 40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040 + 40FF424242FF4B4B4BFF0505052200000000000000002AA078FF1BD09DFF1DD2 + 9FFF0FD09EFF16D4A3FF5DE7BFFF40AC89FF33A37EF255DCB3FF0FD29FFF11C0 + 90FF1ACC99FF259871EF02090710000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CACACAFEDADADAFFF2F2F2FFE0E7E4FF45B98FFF35B486FF8DCDB5FFE8E8 + E8FFE8E8E8FFE6E6E6FF6FC0A1FF3BAE82FFD7E1DCFFE5E5E5FFEEEEEEFFCDCD + CDFF838383B20000000000000000000000000000000000000000000000000000 + 0000000000000000000028AA79FF10C794FF0DD19BFF0DD19BFF0ED19BFF0DD1 + 9BFF0ED19BFF0DD19BFF0ED19BFF0DD19AFF38D7A6FF28AA79FF000E0B120000 + 0000000000000000000000000000000000000000000000000000121212612C2C + 2CE7686868FF616161FF555555FF464646FF464646FF464646FF464646FF4646 + 46FF464646FF464646FF464646FF474747FF494949FF535353FF5E5E5EFF4A4A + 4AFD303030F01313136500000000000000000001010218CF9CFF1CD4A0FF10D3 + A0FF16D5A3FF5CE8C0FF46CFA8E600000000071E162F269F77F147E4B9FF0FD3 + A0FF0FD3A0FF1DB78AFB1B7255B2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D0D0D0FFE5E5E5FFEFEFEFFF59C09CFF39B88BFF35B587FFE7E9E8FFE6E8 + E7FFE8E8E8FFE8E8E8FFE5E6E6FF80C7ACFFE6E6E6FFE6E6E6FFEBEBEBFFCFCF + CFFF9A9A9ACF0000000000000000000000000000000000000000000000000000 + 0000000000000000000027AC7AFF10C795FF0DD29CFF0ED29CFF0ED29CFF0ED2 + 9CFF0ED29CFF0DD29DFF0DD29DFF0DD29CFF37D6A6FF26AB7AFF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000202 + 020B2F2F2FE83C3C3CEE525252FD6A6A6AFF4F4F4FFF494949FF4A4A4AFF4A4A + 4AFF4A4A4AFF4A4A4AFF4A4A4AFF515151FF6D6D6DFF585858FF434343F81C1C + 1C850202020B0000000000000000000000002AA379FF1AD5A1FF10D4A1FF0FD4 + A1FF5BEAC1FF4CD7B1EE2CAA7FFF0000000000000000071E162F51DCB3FF44E4 + B8FF0FD3A1FF1DD3A1FF23A178F40C2F234B0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D2D2D2FFEDEDEDFFEDEDEDFFEAEAEAFFEAEAEAFFDCE6E2FF3EB88CFF81CB + AFFFE5E8E7FF48B78EFF37AF82FF7FC5AAFFE7E7E7FFE6E6E6FFE8E8E8FFCFCF + CFFFA8A8A8E10000000000000000000000000000000000000000000000000000 + 0000000000000000000025AD7BFF11C996FF0ED39DFF0DD39DFF0ED39EFF0DD3 + 9EFF0ED39DFF0DD39EFF0ED39DFF0DD49DFF36D6A6FF25AD7BFF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000202020A0F0F0F481E1E1E8E3A3A3AF4656565FF585858FF4D4D4DFF4D4D + 4DFF4D4D4DFF4D4D4DFF606060FF6A6A6AFF333333E1202020950F0F0F480000 + 00000000000000000000000000000000000006140F1D3BCDA1FD3EE2B6FF56E9 + C0FF2EAF83FF00020103000000000000000000000000000000000820183127A4 + 7AF14DDCB2FF0FD5A1FF15D5A1FF1CB88BF90000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000B0B + 0B10D3D3D3FFF4F4F4FFEBEBEBFFEBEBEBFFEBEBEBFFEBEBEBFF31B686FF35B5 + 87FF94D1BAFF36B385FF3DB388FF2EAE80FFE9E9E9FFE8E8E8FFE8E8E8FFD0D0 + D0FFC6C6C6FC2C2C2C3F00000000000000000000000000000000000000000000 + 0000000000000000000022B17EFF10CB98FF0ED6A0FF0ED69FFF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF33D7A6FF22B07DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000001010105313131C3545454FF5454 + 54FF545454FF464646F9262626A0010101050000000000000000000000000000 + 00000000000000000000000000000000000000000000259E76E587EBCDFFFFFF + FFFF010504080000000000000000000000000000000000000000000000000821 + 183127A67AF136E0B3FF10D5A2FF13D4A1FF0C2E234800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002C2C + 2C40D6D6D6FFF5F5F5FFECECECFFEBEBEBFFEBEBEBFFEBEBEBFF7CCCAFFF34B6 + 88FF35B587FF38B587FFCEE2DAFF96D0B8FFE9E9E9FFE9E9E9FFE9E9E9FFD6D6 + D6FFCDCDCDFF5C5C5C80000000000000000020B27FFF21B27FFF21B27FFF21B2 + 7FFF20B27FFF21B27FFF21B27FFF10CC99FF0ED7A2FF0ED7A1FF0FD7A1FF0ED7 + A1FF0ED8A1FF0ED7A1FF0ED7A1FF0ED7A1FF31D7A6FF21B27FFF20B27FFF21B2 + 7FFF20B27FFF20B27FFF21B27FFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028282899595959FF5959 + 59FF595959FF444444F41B1B1B75000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000004100C1828A179E528A2 + 7AE3000000000000000000000000000000000000000000000000000000000000 + 00000822193249DCB1FF33E0B2FF0FD6A3FF259C74EC0209060E000000000000 + 0000000000000000000000000000000000000000000000000000000000005B5B + 5B8FD1D1D1FFE4E4E4FFDDDDDDFFDCDCDCFFDCDCDCFFDCDCDCFFD9DBDAFF30AB + 80FF30AA7FFF2AA77BFFDADBDAFFDBDBDBFFDADADAFFD9D9D9FFD9D9D9FFD1D1 + D1FFC2C2C2FF797979B8000000000000000005291D3842E6B8FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF3EDCB0FF11CE9BFF0ED9A3FF0ED8A2FF0ED8A3FF0ED8 + A3FF0ED8A2FF0ED8A2FF0ED8A3FF0FD9A2FF3EDCB0FF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF38E3B4FF05291D38000000000000000000000000000000000000 + 000000000000000000000000000000000000040404113F3F3FF85D5D5DFF5D5D + 5DFF5D5D5DFF5A5A5AFF3B3B3BEE0303030E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000008231A3427A77EF146DDB1FF10D6A3FF26A97EF30C2E22450000 + 0000000000000000000000000000000000000000000000000000000000007171 + 71DEA4A4A4FF949494FF929292FF929292FF929292FF929292FF929292FF9191 + 91FF919191FF909090FF909090FF909090FF909090FF909090FF909090FFA3A3 + A3FF8B8B8BFF767676E500000000000000000000000005291D381CB783FF52EB + C0FF0FDAA5FF0EDBA5FF0EDAA4FF0FDBA5FF0EDBA5FF0FDAA5FF0EDBA5FF0FDB + A5FF0FDBA5FF0EDBA5FF0FDBA5FF0FDBA5FF0FDBA4FF0EDBA5FF0EDBA5FF49E9 + BCFF1CB783FF05291D3800000000000000000000000000000000000000000000 + 000000000000000000000000000000000000434343DD5F5F5FFF636363FF6363 + 63FF636363FF636363FF606060FF333333B30000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000009241B3428AA7FF12BDFAFFF14D09EFF27A177EB0000 + 000000000000000000000000000000000000000000000E7C5AAA21B17FFF21B1 + 7FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B1 + 7FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B1 + 7FFF21B17FFF21B17FFF0E7C5AAA00000000000000000000000005291D381AB8 + 84FF0FDCA6FF0FDCA6FF0FDCA6FF0EDCA7FF0EDCA6FF0FDCA6FF0FDCA6FF0FDC + A6FF0EDCA6FF0FDCA6FF0EDDA6FF0FDCA6FF0FDCA6FF0FDCA6FF0FDCA6FF1AB8 + 84FF05291D380000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000020202064E4E4EFC656565FF666666FF6666 + 66FF666666FF666666FF666666FF414141DD0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000009241B3444DDB1FF28DFAFFF1DBC8EF80000 + 0000000000000000000000000000000000000000000021B17FFF1AC995FF1AC9 + 95FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC9 + 95FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC9 + 95FF1AC995FF1AC995FF21B17FFF000000000000000000000000000000000529 + 1D3860F0C7FF0FDDA7FF0EDDA7FF0FDDA7FF0FDDA7FF0EDDA7FF0FDEA7FF0FDD + A7FF0FDDA7FF0EDDA8FF0FDEA7FF0FDDA7FF0FDDA7FF0EDDA8FF5AEEC4FF0529 + 1D38000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001313132F515151FF686868FF696969FF6969 + 69FF696969FF696969FF696969FF4A4A4AED0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A261C372AAC7FF140DCB0FF29A4 + 7AEA0208060C0000000000000000000000000000000021B17FFF12C28EFF12C2 + 8EFF13C28DFF13C38EFF12C28EFF12C28EFF12C28DFF13C28EFF12C28EFF12C2 + 8EFF12C38DFF13C28EFF12C38EFF12C38EFF12C38EFF12C28EFF13C28EFF13C2 + 8EFF12C38EFF13C38EFF21B17FFF000000000000000000000000000000000000 + 000005291D3817BD87FF6FF3CDFF0FE0AAFF0FDFAAFF0FE0AAFF0FDFA9FF10DF + AAFF0FDFAAFF0FDFA9FF0FE0A9FF0FE0A9FF6AF2CBFF17BD88FF05291D380000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002222224F5B5B5BFF6F6F6FFF707070FF7070 + 70FF707070FF707070FF707070FF585858F60000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000A271D372BAC80F126C1 + 94F81B7256A20000000000000000000000000000000021B17FFF12C490FF11C4 + 8FFF12C48FFF12C48FFF11C48FFF11C48FFF11C48FFF12C48FFF12C48FFF12C4 + 8FFF11C48FFF12C48FFF12C48FFF12C48FFF11C48FFF11C38FFF12C48FFF12C4 + 8FFF11C48FFF11C48FFF21B17FFF000000000000000000000000000000000000 + 00000000000005291D3815BE88FF10E0AAFF0FE0AAFF0FE1ABFF0FE0AAFF0FE1 + ABFF0FE0AAFF10E1ABFF0FE1AAFF0FE1ABFF15BE88FF05291D38000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001D1D1D3F5A5A5AFF727272FF737373FF7373 + 73FF737373FF737373FF737373FF555555F00000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000A271D373ADB + ADFF2BB285F40B2C213F00000000000000000000000021B17FFF11C590FF11C5 + 90FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C5 + 90FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C5 + 90FF11C590FF11C590FF21B17FFF000000000000000000000000000000000000 + 0000000000000000000005291D387BF6D2FF0FE1ACFF10E1ABFF0FE1ACFF0FE1 + ABFF0FE2ABFF0FE1ABFF0FE2ACFF78F5D1FF05291D3800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000D0D0D1B5E5E5EFF757575FF767676FF7676 + 76FF767676FF767676FF767676FF565656E90000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000A29 + 1E392CAF84F232C093FC00000000000000000000000016BD88FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF16BD88FF010604070000000000000000000000000000 + 000000000000000000000000000005291D3813C28BFF86F8D6FF10E4ADFF0FE3 + ADFF0FE4AEFF84F7D5FF12C18BFF05291D380000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003939398E696969FF7C7C7CFF7C7C + 7CFF7C7C7CFF818181FF676767FC191919500000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000B291F3A2CB185F413392C4B00000000000000000E382C4216BD88FF17E8 + B4FF299065FF289266FF25A171FF25A171FF25A171FF25A171FF25A171FF25A1 + 71FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF0CBE + 89FF46E7B5FF17E8B4FF0E372A40000000000000000000000000000000000000 + 00000000000000000000000000000000000005291D3812C38CFF10E4AEFF10E4 + AEFF10E4AEFF11C38CFF05291D38000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000002020207494949D58F8F8FFF8A8A + 8AFF898989FF707070FE444444CA020202070000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000B2B203C2FAE84EF0208060B00000000000000010F3C2E4616BD + 88FF48E6B5FF299065FF25A171FF25A171FF25A171FF25A171FF25A171FF25A1 + 71FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF4DEC + BAFF17E8B4FF16BD88FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000005291D388DF9D8FF10E4 + AFFF8DF9D8FF05291D3800000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000007070718525252EB5D5D + 5DF85D5D5DF8353535A307070718000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000B2B203C2EAE83F40000000000000000000000000001 + 010217DCA7FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF10D1 + 97FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF16CE + 99FF0F3A2D440001010200000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000005291D380FC5 + 8EFF05291D380000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000001000000020000000300000006000000090000000C000000100000 + 001100000014000000100000000D0000000C0000000600000005000000030000 + 0001000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000032000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000200000004000000070000000C000000120000001C000000240000 + 0027339F70FF0000002E00000029000000210000000D0000000A000000060000 + 0002000000000000000000000000000000000000001E00000040000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000270000001E0000001E319F70FF32A071FF319F + 70FF31A070FF319F71FF32A071FF32A070FF31A071FF32A070FFD58F6AFFD58F + 6AFFD58F6AFFD58F6AFFD58F6AFFD58F6AFFD58F6AFF000000001560BCFF1560 + BDFF1560BDFF1660BDFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000FED6AEFFFED6AEFFFED6AEFFFED7B0FFFED7 + B0FFFED8B1FFFED9B4FFFEDAB6FFFEDAB6FFFEDCB9FFFEDCB9FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032A071FF32A071FF0F342452000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000252422FF262624FF2625 + 23FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86 + F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86 + F2FF262524FF262524FF0000000000000000000000000DC992FF13B98CFF13B9 + 8CFF13B98CFF13B98CFF13B98CFF13B98CFF0EC992FF2FA171FFD58F6AFFEBA5 + 7DFFE19D79FFE19D79FFE19D79FFE19D79FFD58F6AFF000000001661BEFF076E + E6FF076EE6FF0578EAFF00000000000000000000000E00000013000000140000 + 0016000000191111113114141431FED4AAFFFED4AAFFFED4AAFFFED5ACFFFED5 + AEFFFED6AFFFFED8B2FFFED8B2FFFED9B4FFFEDAB7FFFFDBB9FF111111310000 + 00180000001600000014000000100000000E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031A172FF3BD7A7FF30A271FF0F3424520000000000000000000000000000 + 00000000000000000000000000000000000000000000262523FF282724FF2727 + 24FF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF272625FF000000000000000000000000000000000DCA93FF13B98CFF0DCA + 93FF0DCA93FF0DCA94FF0DCA93FF13B98CFF0DCA93FF2FA272FFD58F6AFFECA5 + 7DFFE29E79FFECA57DFFECA57CFFE29E79FFD58F6BFF000000001662C0FF057A + EBFF0388F0FF057BEAFF000000000000000000000017000000343F3F3F7FACAC + ACFFACACACFFACACACFF636262FFFFCD9DFFFFCD9DFFFFCE9FFFFFD0A3FFFFD2 + A6FFFFD4AAFFFFD7AFFFFFD8B1FFFFD9B5FFFFDDBCFFFFDDBCFF636363FFACAC + ACFFACACACFF4B4B4B8C00000030000000170000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030A373FF10BF8EFF39D6A6FF30A373FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000272624FF292826FF2929 + 26FF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF2A2927FF292826FF0000000000000000000000000DCB95FF13BA8DFF0DCB + 95FF0DCC94FF0DCB94FF0DCB94FF13B98CFF0ECB94FF2EA273FFD68F6AFFECA5 + 7EFFE39E7AFFECA67DFFECA67DFFE39E7AFFD5906BFF000000001764C3FF057C + EBFF0389F0FF057CEBFF000000000000000000000000ACACACFFD1D1D1FFD1D1 + D1FFD1D1D1FFD1D1D1FF323232FFC49F7BFFC4A07EFFC4A17FFFC4A383FFC4A5 + 87FFC4A688FFC4A78BFFC4A88EFFC4A991FFC4AC96FFC4AC96FF323232FFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000003020400040306000403060004 + 030600040306000403060009060C000403060004030600040306000403060000 + 00002DA575FF10BF8EFF10BF8EFF10BF8EFF2DA575FF0F342452000000000000 + 00000000000000000000000000000000000000000000292927FF2E2D2AFF2E2D + 2AFFFBE7D0FFFBE6D0FFFBE7CFFFFCE6CFFFFBE7D0FFFBE7D0FFFBE6D0FFFCE7 + D0FFFBE6CFFFFBE6CFFFFBE7D0FFFCE7CFFFFBE6D0FFFBE6CFFFFBE7CFFFFBE6 + CFFF2D2C2AFF2D2C2AFF0000000000000000000000000DCD97FF13BD8FFF0ECE + 97FF0ECE97FF0DCE97FF0ECE98FF13BC8EFF0ECD97FF2CA575FFD6906BFFEDA7 + 7FFFE5A17BFFECA77EFFECA77EFFE6A17BFFD6906BFF000000001A66C7FF0581 + EDFF038DF1FF0581EDFF000000000000000000000000ACACACFFD4D4D4FFD4D4 + D4FFD4D4D4FFD4D4D4FF333131FF9E8373FF9E8373FF9E8373FF9E8474FF9E84 + 74FF9E8475FF9E8576FF9E8576FF9E8577FF9E8577FF9E8577FF333131FFC8CC + CAFFCECECEFFCECECEFF00000000000000002CA676FF2CA776FF2CA676FF2CA6 + 75FF2CA675FF2BA676FF2BA675FF2CA675FF2BA676FF2CA676FF2CA676FF2CA6 + 76FF2BA776FF10BF8EFF0DCA94FF10C08EFF31D4A3FF2CA675FF0F3424520000 + 000000000000000000000000000000000000000000002B2927FF302E2CFF302E + 2DFFFBE7D0FFFCE7D0FFFCE7D0FFFBE7D1FFFBE7D1FFFCE7D0FFFBE7D1FFFBE7 + D1FFFBE7D0FFFBE7D1FFFBE7D0FFFBE7D0FFFCE7D1FFFBE7D1FFFCE7D0FFFBE7 + D0FF302E2CFF302F2CFF0000000000000000000000000ECF99FF12C090FF0ECF + 98FF0ECF99FF0ECF99FF0ECF99FF12BF8FFF0ECF99FF2BA675FFD6906CFFEDA8 + 7FFFE7A27CFFECA87FFFECA87FFFE7A27CFFD6906BFF000000001A68CBFF0482 + EDFF038EF1FF0483EEFF000000000000000000000000ACACACFFD7D7D7FFD7D7 + D7FFD7D7D7FFD7D7D7FFD6D6D6FFD6D6D6FFD5D5D5FFD5D5D5FFD5D5D5FFD4D4 + D4FFD4D4D4FFD4D4D4FFD3D3D3FFD3D3D3FFD3D3D3FFD2D2D2FFD2D2D2FF39A4 + 76FFC4CDCAFFD1D1D1FF00000000000000002AA777FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF10BF8EFF0DCB95FF0DCC95FF0FC18FFF2ED4A2FF2BA777FF0000 + 000000000000000000000000000000000000000000002C2A29FF33312EFF3231 + 2FFFC4D1D7FFC4D0D7FFC4D0D7FFC4D0D7FFC4D0D8FFC4D0D7FFC4D1D7FFC4D1 + D8FFC4D1D7FFC4D1D7FFC4D1D8FFC4D0D8FFC4D0D8FFC4D1D7FFC4D0D8FFC4D0 + D7FF33302FFF33302FFF0000000000000000000000000ED09AFF11C392FF0ED0 + 9AFF0ED09AFF0ED09AFF0ED09AFF11C191FF0FD09AFF2AA677FFD7906CFFEDA9 + 80FFE8A47DFFEDA980FFEDA980FFE8A47DFFD7906BFF000000001B6ACDFF0486 + EFFF038FF2FF0486EEFF000000000000000000000000ACACACFFDCDCDCFFEDED + EDFF269B6AFF279B6AFF279B6AFF279B69FF279A69FF289A69FF289A68FF289A + 68FF289A68FF289968FF289968FF289968FF289968FF289968FF289968FFCBE8 + DCFFEAEAEAFFD7D7D7FF000000000000000028AA7AFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF0FC793FF0ECE98FF0DCE98FF0DCE98FF0DCE98FF0FC492FF27AA + 7AFF0F342452000604080000000000000000000000002F2E2BFF373534FF3735 + 34FFFBE8D4FFFBE9D3FFFCE9D4FFFBE8D4FFFCE9D3FFFCE8D4FFFBE8D3FFFCE9 + D4FFFBE9D4FFFBE8D3FFFBE9D3FFFBE8D3FFFCE9D3FFFBE9D4FFFCE8D4FFFCE8 + D4FF383634FF373633FF00000000000000000000000013D59FFF10CB97FF0ED3 + 9CFF0FD39DFF0ED39DFF0ED39DFF10C996FF14D5A0FF27AA78FFD7916DFFEDAB + 81FFEBA880FFEDAA82FFEEAA82FFECA880FFD8926CFF000000001E6ED2FF048C + F1FF0391F3FF048BF1FF000000000000000000000000A3A3A3ECE0E0E0FFF9FC + FBFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC + 9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF2899 + 68FFFFFFFFFFDADADAFF000000000000000026AB7BFF0FC390FF10C18FFF0EC9 + 95FF0ECF99FF0DD099FF0DD09AFF0DD099FF0DCF9AFF0DD09AFF0DD099FF0DD0 + 99FF0ED099FF0DCF9AFF0ED09AFF0ED099FF0ED09AFF0ECF9AFF0DCF99FF19C9 + 97FF26AC7BFF0F342452000000000000000000000000302E2CFF3A3836FF3A38 + 36FFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D3DAFFC4D2DAFFC4D2DAFFC4D2 + DAFFC4D2DAFFC4D3DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2 + DAFF3A3836FF3A3836FF00000000000000000000000016D7A2FF10CE9AFF0FD4 + 9EFF0ED59EFF0FD59EFF0ED49EFF10CC99FF17D7A2FF26AA79FFD8926DFFEDAB + 83FFEDAC82FFEEAC82FFEEAB83FFEEAC82FFD8926DFF000000001F6FD4FF038E + F1FF0393F2FF038EF1FF000000000000000000000000A1A1A1E6EAEAEAFFF4FA + F7FF47CA9DFF23A674FF23A674FF24A472FF24A472FF24A472FF24A472FF24A4 + 72FF24A472FF24A472FF24A472FF24A472FF24A472FF24A472FF23A674FF279B + 6BFFFFFFFFFFE5E5E5FF000000000000000024AD7CFF0FC492FF0ECA96FF0DD1 + 9BFF0DD29BFF0ED29BFF0DD19BFF0ED19AFF0DD19BFF0DD19BFF0ED29BFF0ED1 + 9BFF0DD29BFF0ED19BFF0DD19AFF0DD19BFF0DD19BFF0ED19BFF0ED19BFF0FC9 + 95FF19CB99FF24AD7CFF000403060000000000000000312F2EFF3D3B38FF3C3A + 39FFFCE9D5FFFCEAD5FFFCE9D5FFFBEAD6FFFCEAD5FFFCE9D5FFFCE9D6FFFCEA + D5FFFCEAD6FFFCEAD5FFFCEAD5FFFCEAD6FFFBEAD6FFFCE9D5FFFCEAD6FFFBE9 + D5FF3D3B39FF3D3B39FF0000000000000000000000001AD9A5FF0FD29DFF0ED5 + A0FF0FD5A0FF0FD6A0FF0FD69FFF10D19CFF1BD9A6FF25AC7AFFD9936DFFEEAE + 84FFEDAC83FFEEAC83FFEEAC83FFEEAC83FFD9926DFF000000002071D7FF0393 + F3FF0393F3FF0393F3FF000000000000000000000000A7A7A7E3FFFFFFFFEEFA + F5FF5AE0B6FF26C18FFF26C895FF26C895FF26C895FF26C895FF26C895FF26C8 + 95FF26C895FF26C895FF26C895FF26C895FF26C895FF26C895FF26C08EFF23A2 + 70FFFFFFFFFFFFFFFFFF000000000000000021B17FFF0FC995FF0ED49EFF0ED4 + 9EFF0DD49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED49EFF0ED4 + 9DFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED49EFF0ED5 + 9EFF0ED49EFF0FCF9AFF22B07FFF0F34245200000000353331FF43403EFF4240 + 3EFFC4D3DCFFC4D4DCFFC4D4DCFFC4D4DCFFC4D4DBFFC4D3DCFFC4D4DCFFC4D4 + DCFFC4D4DCFFC4D3DCFFC4D3DCFFC4D4DCFFC4D4DCFFC4D4DCFFC4D3DBFFC4D3 + DCFF42403EFF43403EFF00000000000000000000000022DDABFF0ED9A3FF0FD9 + A3FF0FD9A3FF0ED8A3FF0ED9A2FF0FD8A3FF25DFACFF22B07EFFD9946EFFF0B2 + 8AFFEFAE85FFEEAE85FFEFAE84FFEFAE84FFD9946EFF000000001584EAFF5DC7 + FBFF5DC7FBFF5DC7FBFF000000000000000000000000A8A8A8E0FFFFFFFFE6F8 + F2FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEE + C8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF21A7 + 74FFFFFFFFFFFFFFFFFF000000000000000020B280FF0FCC98FF0ED5A0FF0ED6 + A0FF0ED69FFF0ED5A0FF0ED59FFF0ED6A0FF0ED69FFF0ED59FFF0ED5A0FF0ED6 + 9FFF0ED5A0FF0ED69FFF0ED69FFF0ED69FFF0ED69FFF0ED59FFF0ED6A0FF0ED5 + A0FF0ED69FFF0ED5A0FF2ADEACFF20B27FFF00000000363432FF454341FF4643 + 40FFFBEAD7FFFCEBD8FFFCEBD8FFFCEBD7FFFCEBD8FFFCEBD8FFFCEBD7FFFCEB + D7FFFCEBD7FFFCEBD7FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEAD8FFFCEB + D8FF454341FF454341FF00000000000000000000000027E0AEFF0EDAA4FF0EDA + A5FF0FDBA4FF0FDAA4FF0FDAA5FF0FDAA4FF29E0AEFF22B17FFFD9946EFFEFB4 + 8CFFEFAF86FFEEAF85FFEFAF85FFEFAF86FFDA936EFF00000000000000001584 + EAFF1584EAFF1584EAFF000000000000000000000000A0A0A0D5FFFFFFFFDDF7 + EFFF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEE + C8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF1EAB + 78FFFFFFFFFFFFFFFFFF00000000000000001FB381FF0FCF9AFF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A2FF0ED7A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0FD7A1FF1EB381FF063C2C5200000000383634FF484643FF4846 + 43FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEB + D8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFB2A6 + 9AFF484543FF484543FF0000000000000000000000002CE2B1FF0FDBA6FF0FDC + A5FF0FDBA6FF0FDBA6FF0FDCA6FF0FDCA6FF2EE3B1FF21B381FFDA946EFFF0B7 + 8FFFEFAF86FFEFB086FFEFB086FFEFB086FFDA946FFF00000000000000000000 + 000000000000000000000000000000000000000000007B7B7BA8EFEFEFFFF6FC + FAFF5CE7BDFF23C08DFFECBD96FFECBE97FFECBE97FFECBE97FFECBE97FFECBE + 97FFECBE97FFECBE97FFECBE97FFECBE97FFECBE97FFECBE97FF24BD8BFF19B3 + 7FFFFFFFFFFFF3F3F3FF00000000000000001BB783FF0FD5A1FF0FDAA4FF0EDA + A4FF0EDAA4FF0FDAA4FF0FDAA4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA4FF0FDA + A4FF0EDAA4FF0FD9A4FF0ED9A4FF0EDAA5FF0FDAA4FF0EDAA4FF0FDAA4FF0EDA + A4FF46E7BAFF1BB684FF0000000000000000000000003B3836FF4E4B49FF4E4A + 49FF4E4B49FF4E4B49FF4E4B48FF3D3A39FF3C3A39FF3C3A39FF3C3A38FF3D3A + 39FF3C3A39FF3D3A38FF3C3A39FF3C3A39FF3D3A38FF3D3A39FF3C3A39FF4E4B + 49FF4E4A48FF4D4A49FF00000000000000000000000037E6B5FF0FDEA9FF0FDE + A8FF0FDEA9FF0FDEA9FF10DEA9FF0FDEA9FF39E6B6FF20B885FFDB956FFFF1BD + 94FFF0B188FFEFB188FFEFB187FFEFB187FFDB956FFF00000000000000000000 + 000000000000000000000000000000000000000000000D0D0D13959595C6C3CE + CAFD54BF9EFF48B48FFEF1C9A0FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CC + A3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CBA2FF46B28CFE18B7 + 83FFBDBDBDE99B9B9BCE000000000000000019B884FF0ED8A3FF0EDBA6FF0FDB + A6FF0EDBA6FF0FDBA6FF0EDBA5FF0FDCA6FF0EDCA6FF0EDBA5FF0FDBA5FF0FDC + A5FF0EDBA6FF0EDBA6FF0FDCA6FF0FDCA5FF0FDBA6FF0FDBA6FF0FDBA6FF4FEA + BFFF1AB885FF063C2C520000000000000000000000003C3938FF504D4BFF504E + 4BFF6D6B6AFF5F5B58FF5F5B58FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8 + C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FF3E3C3AFF504D + 4BFF504D4BFF504D4BFF0000000000000000000000003DE8B8FF0FE0A9FF0FDF + AAFF0FDFAAFF10E0A9FF0FE0AAFF0FDFA9FF3EE8B9FF1FB986FFDB9570FFF2C0 + 97FFF0B188FFF0B187FFEFB288FFF0B188FFDB956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002222 + 22321616162000000000F5D1ABFFF9D8B2FFF8D8B2FFF9D8B2FFF8D8B1FFF9D8 + B2FFF9D8B2FFF8D8B1FFF9D8B1FFF9D8B2FFF9D8B1FFF7D5AFFF161817231616 + 16201010101800000000000000000000000018B985FF0FDCA6FF0FDDA7FF0EDD + A7FF0FDDA7FF0EDDA7FF0FDCA7FF0FDDA7FF0EDDA7FF0FDDA7FF0FDCA7FF0FDD + A7FF0EDDA7FF0FDDA7FF0FDCA7FF0FDDA7FF0FDCA7FF0FDDA7FF0FDCA7FF18BA + 85FF063C2C52000000000000000000000000000000003D3A39FF534F4DFF5350 + 4DFF5F5B58FF4A4645FF4A4645FFE9E8C4FFE9E9C4FFE9E9C4FFE9E9C5FFE8E9 + C4FFE8E9C4FFE9E8C4FF2F2E2CFF474341FFE9E9C5FFE9E9C5FF413D3CFF534F + 4DFF53504DFF53504EFF00000000000000000000000041E9BAFF0FE1ABFF0FE1 + ACFF0FE0ABFF10E0ABFF10E1ABFF0FE1ABFF43EABBFF1EBB88FFDC956FFFF2C2 + 99FFF0B288FFEFB389FFEFB288FFF0B288FFDC956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F3CEA9FFFADBB7FFFADBB7FFF9DAB7FFFADBB7FFF9DB + B7FFF9DBB7FFF9DBB7FFF9DAB7FFFADBB7FFF9DBB7FFF5D2AEFF000000000000 + 00000000000000000000000000000000000013C08AFF13C08AFF13C08AFF13C0 + 8AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C0 + 8AFF16BC89FF0FE0AAFF0FDFAAFF0FE0AAFF0FE0A9FF6BF2CCFF16BC88FF0000 + 00000000000000000000000000000000000000000000403E3CFF575452FF5754 + 52FF5F5B58FF4A4645FF575452FFEBEBCDFFEBEBCCFFEBEBCCFFEBEBCCFFEBEC + CCFFEBEBCCFFEBEBCCFF2F2E2CFF474341FFEBEBCCFFEBEBCCFF444140FF5754 + 52FF575452FF575452FF0000000000000000000000004CECBEFF10E3AEFF0FE3 + ADFF10E2AEFF0FE2ADFF0FE3AEFF10E3ADFF4EECBFFF1DBE8BFFDC9670FFF5F9 + F7FFF7E1BAFFF7E1BAFFF7E1BAFFF7E1BAFFDC9670FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F2CCA8FFFADDBAFFFADCBAFFFADCBAFFFADDBAFFF9DC + BAFFFADDBAFFFADCBAFFF9DCBAFFFADCBAFFFADCB9FFF4D0ADFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000014BD89FF0FE1ABFF10E0ABFF10E1ABFF73F4CFFF14BD89FF063C2C520000 + 00000000000000000000000000000000000000000000413E3DFF5A5654FF5A56 + 54FF5F5B58FF4A4645FF5A5654FFEDECD0FFEDEDD1FFEDEDD0FFEDEDD1FFECEC + D0FFEDEDD0FFECEDD0FF2F2E2CFF474341FFECEDD0FFECECD1FF464341FF5A56 + 54FF5A5654FF595554FF00000000000000000000000051EDC0FF0FE3AFFF10E4 + AFFF10E4AEFF10E4AFFF10E3AFFF10E4AEFF53EDC1FF1DC18DFF54392B58D796 + 70E3F2AF85FFF3AE85FFF2AE85FFF2AE85FF35261D3800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F1CBA6FFFADEBCFFFADEBDFFFADDBCFFFADDBCFFFADE + BDFFFADEBDFFFADDBDFFFADEBCFFFADEBDFFFADDBDFFF3CFACFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000013BE8BFF0FE2ACFF10E1ADFF0FE2ACFF13BF8AFF063C2C52000000000000 + 0000000000000000000000000000000000000000000042403EFF5B5855FF5B57 + 56FF5F5B58FF4A4645FF5C5855FFEEEED5FFEEEED5FFEEEED5FFEEEED5FFEEEE + D5FFEEEED5FFEEEED5FF2F2E2CFF474341FFEEEED5FFEEEED5FF484442FF5B57 + 56FF5C5856FF5B5856FF00000000000000000000000056EEC2FF10E5AFFF0FE5 + B0FF10E5B0FF10E4AFFF10E5B0FF10E5B0FF58EEC2FF1CC28FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC8A4FFFAE0C1FFFBE0C2FFFAE0C1FFFBE0C2FFFAE0 + C2FFFAE0C2FFFAE0C2FFFAE0C1FFFBE0C1FFFAE0C2FFF1CBA8FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000012C18CFF10E3AFFF89F8D7FF11C18CFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000444140FF5F5A58FF5F5B + 58FF5F5B58FF4A4645FF5E5B59FFF0F1DEFFF1F1DDFFF1F1DEFFF1F1DEFFF0F1 + DEFFF1F1DEFFF0F1DEFF2F2E2CFF2F2E2CFFF1F1DDFFF0F1DEFF494645FF5F5A + 59FF5F5B59FF6D6B6AFF0000000000000000000000005FEFC4FF10E7B1FF10E7 + B1FF10E6B1FF10E7B1FF10E6B1FF10E6B1FF61EFC5FF1CC591FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EEC7A4FFFBE2C3FFFAE1C4FFFBE1C3FFFAE2C3FFFBE1 + C4FFFAE1C4FFFBE1C4FFFBE1C3FFFBE1C3FFFBE1C4FFEFC8A6FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000011C28DFF8EF9D8FF10C28DFF063C2C520000000000000000000000000000 + 00000000000000000000000000000000000000000000454241FF8D8C8BFF6D6B + 6AFF5F5B58FF4A4645FF6D6B6AFFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFB + F5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FF555353FF6D6B + 6AFF8D8C8BFF454240FF00000000000000000000000063F0C5FF10E7B2FF10E7 + B2FF10E7B2FF10E7B2FF10E7B2FF10E7B2FF65F0C5FF1CC792FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7 + A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A5FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000010C28DFF0FC28DFF063C2C52000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A37369B454241FF4542 + 40FF5F5B58FF4A4645FF454241FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3 + B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFF4F3E4FF363333FF4542 + 41FF454240FF1F1D1D5A00000000000000000000000068F0C7FF10E7B2FF10E7 + B2FF10E7B2FF10E7B2FF10E7B2FF10E7B2FF68F0C7FF1DC894FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000EC48FFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000001BCB97F420CA97F421CB + 98F421CB98F421CB98F421CB98F41FCB97F418C390EC00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000020202220A0A0938000000380000003800000038000000380000 + 0038000000380000003800000038000000380A0A093C02020222000000000000 + 0000000000000000000000000000000000000000000000000002000000040000 + 0002000000000000000B000000180000002A0000002900000029000000290000 + 00290000002900000028000000260000001A0000000900000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008E8F82FF8E8F82FF8E8F82FF8E8F82FF8E8F + 82FF8E8F82FF8E8F82FF8E8F82FF8E8F82FF1313122002020205000000000000 + 0000000000000000000000000000000000000000000000000004000000060000 + 00090000000C0000001000000025349E6FFF349E6FFF349E6FFF349E6FFF349E + 6FFF349E6FFF349E6FFF349E6FFF349E6FFF0000002400000021000000150000 + 000B000000090000000900000003000000020000001E00000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000520000003200000000BD8B6BFBD39E7AFFD39E + 7BFFD39E7AFFD39E7AFFD39E7AFFD49E7AFFD49E7AFFD49E7AFFD49E7AFFD49E + 7AFFD49E7AFFD49F7AFFD49F7AFFD49F7AFFD49F7AFFD59F7AFFD59F7AFFD59F + 7AFFD59F7AFFD59F7AFF73513D9F000000000000000000000000000000000000 + 0000000000000000000000000000A5A69BFFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFA5A69BFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000033A070FF3CD7A7FF13B98CFF13B98CFF13B9 + 8CFF13B98CFF13B98CFF3CD7A7FF329F70FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CC8865FFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFF1361DFFF1361 + DFFF1361DFFF1361DFFF0F3EB0FFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFCC8865FF0000000000000000C29372FFF5C49CFFF3BD + 94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD + 94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD + 94FFF3BD94FFF5C49CFFD09775FF020101030000000000000000000000000000 + 0000000000000000000000000000C2C3B4FFF0F0ECFFF0F0ECFFF0F0ECFFF0F0 + ECFFF0F0ECFFF0F0ECFFF0F0ECFFC2C3B4FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031A171FF39D7A6FF0CC78FFF0CC78FFF0CC7 + 8FFF0CC78FFF0CC78FFF39D7A6FF32A171FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CC8865FFEEA97AFFE59E + 75FFDF9772FFDF9772FFDF9772FFDF9772FFDF9772FFDC936FFF0353DCFF0353 + DCFF0352DBFF0353DBFF0F3FB1FFDD946FFFDF9772FFDF9772FFDF9772FFDF97 + 72FFDF9772FFE59E75FFCC8865FF0000000000000000DDAB86FFC59674FFF5C9 + A3FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B6 + 90FFE8B690FFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B6 + 8FFFF5C9A3FFCF9D7AFFD09775FF020201040000000000000000000000000000 + 000000000000000000000000000000000000A5A69BFFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFA5A69BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000030A272FF34D5A4FF0CC790FF0CC790FF0CC7 + 90FF0CC790FF0CC790FF34D6A5FF31A272FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CD8965FFEEA97AFFDF97 + 72FFDF9772FFDF9772FFDF9772FFDF9772FFDF9772FFDB916EFF0455DCFF0455 + DCFF0454DCFF0454DCFF0E40B3FFDC926EFFDF9772FFDF9772FFDF9772FFDF97 + 72FFDF9772FFDF9772FFCD8965FF0000000000000000F4C49BFFF0C198FFE7B8 + 91FFF7D3B4FFEBBD96FFF5C89FFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C7 + 9EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFEBBC96FFD8A6 + 82FFECB890FFF2BD94FFD09775FF020201040000000000000000000000000000 + 000000000000000000000000000000000000818277FF818277FF818277FF8182 + 77FF818277FF818277FF818277FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002DA474FF29D3A1FF0DCA92FF0DCA92FF0DCA + 92FF0DCA92FF0DCA92FF29D3A1FF2EA473FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CE8A66FFEEA97BFFE19A + 74FFECA77FFFECA77EFFECA77EFFECA87FFFECA87EFFE09873FF0657DEFF0657 + DEFF0657DFFF0657DFFF0E42B7FFE29974FFECA77FFFECA77FFFECA77FFFECA7 + 7FFFECA87FFFE19974FFCE8A66FF0000000000000000F5C89EFFF5C89EFFF4C7 + 9DFFD3A582FFF8D9BCFFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CA + A1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF8D9BCFFF1BE + 96FFF4C198FFF4C198FFD09775FF02020104A5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000002CA675FF23D29FFF0DCB93FF0DCB93FF0DCB + 93FF0DCB93FF0DCB93FF23D19FFF2DA574FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CF8A67FFEEA97CFFE39C + 76FFEDA981FFECA980FFECA980FFECA980FFECA980FFDE9671FF0759E0FF0759 + E0FF0759DFFF0759E0FF0D44BAFFE09772FFECA880FFEDA980FFECA980FFEDA9 + 80FFEDA980FFE39C76FFCF8B67FF0000000000000000F5C89EFFF5C89EFFF5C8 + 9EFFF3C59CFFDBAD88FFF9DFC5FFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF2C5 + 9DFFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF9DFC7FFE2B38DFFF4C4 + 9BFFF4C49BFFF4C49BFFD09775FF03020104A5A69BFFC3C4B5FFC2C3B5FFC2C4 + B5FFC3C4B4FFC2C4B5FFC3C4B5FFC3C3B5FFC2C4B5FFC3C4B5FFC3C3B4FFC3C3 + B5FFC3C3B5FFC3C4B5FFC3C3B5FFC2C4B5FFC3C4B5FFC3C3B4FFC3C4B4FFC3C4 + B5FFC3C3B4FFC2C4B5FFC3C3B5FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000002BA676FF1DD09DFF0DCC94FF0DCC94FF0DCC + 94FF0DCC94FF0DCC94FF1DD19CFF2BA676FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000D08B68FFEEA97DFFE49F + 78FFEEAA81FFEEAB82FFEDAA82FFEDAB82FFEDAA82FFDC936FFF095AE1FF095A + E1FF085AE1FF095AE1FF0D45BDFFDD9470FFEEAB81FFEDAA82FFEEAA81FFEDAB + 82FFEEAA81FFE49F78FFCF8B67FF0000000000000000F6CDA4FFF6CDA4FFF6CD + A4FFF5CCA3FFF5CCA3FFF5CCA3FFFBE8D4FFE9B790FFE9B790FFE9B790FFE9B7 + 90FFE9B790FFE9B790FFE9B790FFE9B790FFECBF97FFF5C89FFFF5C89FFFF5C8 + 9EFFF5C89EFFF5C89EFFD09775FF03020104A5A69BFFE4E3DBFFE4E3DBFFE5E6 + DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6 + DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6 + DFFFE5E6DFFFE5E6DFFFC7C7B8FFA5A69BFF28AA7AFF28AA7AFF27AA79FF28AA + 79FF28AA79FF28AA79FF28AA79FF27AA79FF14CE99FF0DCF98FF0DCF98FF0DCF + 98FF0DCF98FF0DCF98FF13CF99FF28A979FF29A978FF28A979FF28A978FF29A9 + 78FF28A978FF29A978FF29A978FF0000000000000000D28E69FFEFAE82FFECA9 + 81FFF0B086FFF0B086FFF0B086FFF0AF86FFF0AF86FFD68A68FF0D60E4FF0D60 + E4FF0D60E4FF0D60E5FF0E4DC8FFD78B69FFF0B086FFF0B086FFF0B086FFF0AF + 86FFF0AF86FFECAA81FFD28D69FF0000000000000000F6D0A7FFF6D0A7FFF6D0 + A7FFF6CFA6FFF6CFA6FFF6CFA6FFFDF2E6FFFDF4EAFFFBEBD9FFFBEBD9FFFBEB + D9FFFBEBD9FFFBEBD9FFFDF4EAFFFDF4EAFFF5CBA2FFF5CBA2FFF5CBA2FFF5CA + A1FFF5CAA1FFF5CAA1FFD09775FF03020104A5A69BFFD69773FFD79774FFD797 + 74FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD797 + 74FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD797 + 74FFD79774FFD79774FFC7C9B9FFA5A69BFF26AC7BFF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF3EDCB0FF3EDCB0FF11CE98FF0DD099FF0DD099FF0DD0 + 99FF0DD099FF0DD099FF11CE98FF3EDCB0FF3EDCB0FF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF27AA79FF0000000000000000D38E69FFEAA77DFFE8A5 + 7EFFEBA880FFEBA880FFEBA880FFEBA880FFEBA880FFD38564FF0E62E6FF0E62 + E6FF0E61E5FF0E62E6FF0E50CCFFD38665FFEBA881FFEAA981FFEBA880FFEBA8 + 80FFEBA880FFE8A57DFFD38E6AFF0000000000000000F7D3AAFFF7D3AAFFF7D3 + AAFFF6D2A9FFF6D2A9FFF6D3AAFF3786A9FF0685C4FF0685C5FF0299E8FF0299 + ECFF0299EFFF038FE3FF038FE3FF4FA4D4FFF6D0A8FFF6CEA5FFF6CEA5FFF6CD + A4FFF6CDA4FFF6CDA4FFD09775FF03020104A5A69BFFE6A47EFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFC9CABBFFA5A69BFF24AE7CFF11C996FF11C996FF11C9 + 96FF11C996FF11C996FF11C996FF11C996FF11C996FF0DD29BFF0DD29BFF0DD2 + 9BFF0DD29BFF0DD29BFF0DD29BFF11C996FF11C996FF11C996FF11C996FF11C9 + 96FF11C996FF11C996FF26AC7BFF0000000000000000D48F6AFFDB926EFFDA90 + 6EFFDB926EFFDB926EFFDB926EFFDB926EFFDB926EFFCE7F5FFF1064E7FF1064 + E7FF1064E7FF1064E7FF1054D0FFCE8060FFDB916EFFDB926EFFDB926EFFDB92 + 6EFFDB916EFFDB926EFFD48F6BFF0000000000000000F7D5ADFFF7D5ADFFF7D5 + ADFFF7D7B1FFF9E2CAFF0C8ABAFF069AD6FF04AFF2FF03AFF5FF03ACF6FF02AA + F6FF02A8F6FF02A3F6FF01A2F7FF01A0F7FF019DF7FFF9E2CAFFF2D7B6FFF7D3 + AAFFF7D3AAFFF7D3AAFFD09775FF03020104A5A69BFFE6A37DFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFCCCDBEFFA5A69BFF21B17FFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF22AF7DFF0000000000000000D6916CFFCC7C5DFFCC7C + 5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFF1368E9FF1368 + E9FF1367EAFF1367EAFF125BD9FFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C + 5DFFCC7C5DFFCC7C5DFFD6906CFF0000000000000000F7D5ADFFF7D5ADFFF7D5 + ADFFF8DFC3FF0997CAFF0999CEFF05B5F4FF05B5F5FF04B4F5FF04B1F5FF03AE + F5FF03ACF6FF02A8F6FF02A7F6FF02A5F6FF01A0F7FF019FF7FFF8DFC3FFF7D8 + B2FFF7D5ADFFF7D5ADFFD09775FF03020104A5A69BFFE5A37DFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFCCCEBFFFA5A69BFF1FB280FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF20B17FFF0000000000000000F4B78DFFF5B88DFFF4B8 + 8DFFF4B78DFFF4B78DFFF4B88DFFF4B88DFFF4B88DFFF0AF86FF1469EBFF1469 + EBFF166BEBFF1369EBFF135EDDFFF2B289FFF4B78DFFF4B78DFFF4B88DFFF4B8 + 8DFFF4B88DFFF5B78DFFF5BC93FFD7916CFF00000000F7D5ADFFF7D5ADFFEED2 + B0FB0B9BCAFF0AA5D6FF09AFE4FF06B9F5FF06B8F5FF05B6F5FF05B5F5FF04B2 + F5FF04B1F5FF03ACF5FF02ABF6FF02AAF6FF02A5F6FF02A3F6FF01A2F7FFF5D7 + B5FFF4D6B4FCF7D5ADFFD09775FF03020104A5A69BFFE5A37EFFE9A680FFE8A6 + 80FFE9A680FFE8A680FFE8A680FFE9A680FFE9A680FFE9A680FFE8A680FFE8A6 + 80FFE8A780FFE8A680FFE8A780FFE9A680FFE9A780FFE9A680FFE9A681FFE8A6 + 80FFE8A780FFE8A680FFCECFC0FFA5A69BFF1EB482FF10D8A1FF10D8A1FF10D8 + A1FF10D8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0ED8A1FF0ED8 + A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8 + A1FF0ED8A1FF0ED8A1FF20B280FF0000000000000000F5B98FFFEFB087FFEFB0 + 87FFEFB087FFEFB087FFEFB087FFEFAF87FFEFB087FFE8A57EFF146BECFF146B + ECFF2073EEFF156AECFF1462E0FFEAA780FFEFB087FFEFB087FFEFB087FFEFB0 + 87FFEFB087FFEFB087FFF5BD94FFD8926DFF00000000F1D3B3FBF5D8B7FFC9A5 + 8AFF35C4E7FF0BC3F4FF0BC3F4FF0AC1F4FF09C0F4FF08BEF4FF07BCF5FF06B9 + F5FF06B8F5FF05B5F5FF04B4F5FF04B2F5FF36AAD7FFA89D90FFC3A289FFE1B5 + 93FFF5D8B7FFF5D8B7FFDFB090FF03020104A5A69BFFE6A681FFEAAA84FFEAA9 + 84FFEBA983FFEBA983FFEBA984FFEAAA83FFEAAA83FFEBA983FFEAAA83FFEBAA + 83FFEAAA84FFEAAA83FFEBA983FFEAA983FFEAAA84FFEBAA83FFEBA983FFEAAA + 83FFEAAA84FFEAAA83FFD1D2C3FFA5A69BFF1AB784FF16DBA6FF16DBA6FF16DB + A6FF16DBA6FF15DBA6FF15DBA6FF15DBA6FF14DBA6FF14DBA6FF14DBA6FF14DB + A6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DB + A5FF13DBA5FF12DBA5FF1CB683FF0000000000000000F7C79FFFF2B58CFFF6BB + 90FFF6BC90FFF6BB90FFF6BB91FFF6BB90FFF6BB90FFEAA780FF176DEEFF176D + EEFF5196F4FF176EEDFF1568E7FFEAA780FFF6BB90FFF7BB91FFF6BB91FFF6BB + 91FFF6BB90FFF6BB90FFF7C7A0FFD9936EFF00000000E8C2A2FDE6BA96FFE0B2 + 90FF9EA598FF55D2EAFF0CC5F3FF0BC3F4FF0BC3F4FF0AC2F4FF09C0F4FF08BD + F4FF07BCF5FF06B8F5FF05B6F5FF0AB6F3FFBE9F88FFCDA88CFFDEB593FFE8BB + 97FFE8BC97FFE8BC97FFC39071EA00000000A5A69BFFE6A881FFECAB85FFECAC + 86FFEBAC85FFEBAB85FFEBAB85FFECAB85FFEBAC85FFECAC85FFEBAC85FFEBAC + 85FFECAB85FFEBAC85FFEBAC85FFECAC85FFEBAB85FFECAC85FFECAB85FFECAC + 85FFECAC85FFEBAC85FFD3D4C5FFA5A69BFF18B885FF90F9D9FF90F9D9FF90F9 + D9FF90F9D9FF90F9D9FF90F9D9FFF5F9F7FF1FDDA9FF19DCA7FF19DCA7FF19DC + A7FF18DCA7FF18DCA7FF1DDDA9FFF5F9F7FF90F9D9FF90F9D9FF90F9D9FF90F9 + D9FF90F9D9FF90F9D9FF1AB784FF0000000000000000F8CCA6FFF3B78DFFF6BC + 91FFF7BC91FFF7BC91FFF7BC91FFF6BC91FFF6BD91FFEAA881FF176EEEFF1970 + EEFF69A8F7FF176FEEFF166BEAFFE6A27CFFF7BC91FFF7BD91FFF7BC91FFF6BC + 91FFF6BC92FFF6BC91FFF8CCA6FFDA946EFF00000000DAA886FFECCAACFEE7BB + 98FFD7AE90FFB3A793FF74D9EAFF0CC5F3FF0BC3F3FF0BC3F4FF0BC3F4FF0AC1 + F4FF09C0F4FF07BCF4FF21B7E6FF97A49DFFD8B292FFE4B996FFE9BD99FFE9BE + 99FFE9BE9AFFEECFB1FD5642356500000000A5A69BFFE8A983FFECAE87FFECAE + 87FFEDAE87FFEDAE87FFECAE87FFECAD87FFECAE87FFEDAE87FFEDAE88FFEDAE + 87FFECAE88FFEDAE87FFEDAE87FFECAD87FFEDAE87FFECAE87FFECAE87FFECAE + 87FFECAE88FFECAE87FFD4D5C8FFA5A69BFF17BA87FF17BB87FF17BA86FF17BA + 86FF18BA87FF17B986FF17BA87FF17BA86FF2AE0ADFF1DDDA9FF1DDDA9FF1DDD + A9FF1CDDA9FF1CDDA9FF28E0ADFF18B986FF18B986FF18B986FF18B986FF18B9 + 86FF18B986FF19B985FF19B985FF0000000000000000F9DFC7FFF7BE93FFF7BE + 93FFF7BE93FFF7BE93FFF7BE93FFF7BE93FFF7BE93FFE7A47EFF186FEFFF277A + F1FF7AB4F9FF186FEFFF186EEEFFE7A47EFFF7BE93FFF7BE93FFF7BE93FFF7BE + 93FFF7BE93FFF7BE93FFFAE8D8FFDA946FFF000000000000000055413464DAA8 + 86FFEAC09BFFE9BE99FFE5BB98FF9CE8F3FF11CDF2FF0FCAF3FF0DC8F3FF0CC5 + F3FF0EC9F4FFC1A78FFFDAB595FFE8BF9CFFECC29DFFECC29DFFECC39DFFF2D6 + B9FDDEAE8DFF564235650000000000000000A5A69BFFE8AC86FFEFB38CFFEFB3 + 8CFFEFB28CFFEFB28CFFEFB28CFFEFB38CFFEFB28CFFEFB38BFFEFB28CFFEFB3 + 8CFFEFB28BFFEFB28CFFEFB28CFFEFB28CFFEFB38CFFEFB38BFFEFB28CFFEFB3 + 8BFFEFB38BFFEFB28CFFD7D7CBFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000014BC88FF3FE4B3FF26DEABFF25DEABFF25DE + ABFF25DEABFF24DEABFF3CE3B2FF15BC88FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000DA9570FFAE8989FF3648 + 99FF1E3592FF454C91FF615178FFB67E62FFBF8260FF95654AC7146BECFF146B + ECFF146BECFF146BECFFBF8260FF95654AC7B67E63FF8C6B70FF7F708EFF203E + 9AFF1A3B9BFF374E9DFFDA9570FF8D654A8F0000000000000000000000005541 + 3464F2D8BDFDECC19EFFEBC19CFFCBB99EFFAFEEF8FF12CEF2FF10CCF3FF13CE + F3FF5CBFC8FFE3BD9AFFECC39EFFEEC59FFFEEC59FFFEEC59FFFEEC5A0FFDFB0 + 8EFF57433566000000000000000000000000A5A69BFFE9AD87FFF1B58EFFF1B5 + 8EFFF1B58EFFF0B58EFFF0B58DFFF0B58EFFF0B58EFFF1B58EFFF1B58EFFF0B5 + 8EFFF1B58EFFF1B58DFFF1B58EFFF1B58EFFF0B58DFFF1B58DFFF0B58DFFF0B5 + 8DFFF0B58EFFF1B58EFFD7D8CCFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000013BE8AFF46E5B5FF2ADEABFF29DEABFF29DE + ABFF29DEABFF29DEABFF45E5B5FF14BE89FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000017234F7C0E33A0FF1F5D + CEFF0D46BBFF0B4ECBFF0A44BBFF0C2890FF1C3796FF5B5684FF062E9EFF062E + 9EFF062E9EFF062E9EFF947272FF5C5984FF0F379EFF0D3FADFF0C4CC4FF0E48 + BEFF1662DFFF2063D4FF615A75C6000000010000000000000000000000000000 + 0000DCAA88FFF5DBC1FEEDC59FFFECC39DFFCDC2A6FFBFF1FAFF15D3F2FF5AC7 + CEFFDCB998FFEEC7A1FFEEC7A1FFEFC8A2FFEFC8A2FFEFC8A2FFF4DBC0FD5844 + 366800000000000000000000000000000000A5A69BFFEAAF89FFF1B78FFFF1B7 + 90FFF1B890FFF1B790FFF2B790FFF2B890FFF1B790FFF1B790FFF1B890FFF1B8 + 90FFF2B890FFF2B890FFF2B790FFF1B790FFF2B790FFF2B890FFF2B78FFFF2B7 + 8FFFF2B790FFF1B790FFD8DACEFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000013BF8BFF4CE6B7FF2EDEABFF2EDEABFF2DDE + ABFF2DDEABFF2DDEACFF4BE6B7FF13BF8BFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000C317FB61653C5FF3880 + EDFF0E50CCFF0C5FE3FF0448CEFF0E35A5FF0E34A4FF0D35A6FF103CADFF4990 + F1FF4990F1FF103CADFF1345B2FF0E36A3FF0E35A5FF0E35A5FF0D40B5FF0E50 + CCFF387BECFF3880EDFF0C317FB6000000000000000000000000000000000000 + 00000000000058443668DDAD8BFFF0CAA3FFF1CBA4FFF1CBA4FFF0CBA4FFF1CC + A4FFF2CCA5FFF2CDA5FFF2CDA5FFF3CEA6FFF5DDC3FDE1B593FF5B46376B0000 + 000000000000000000000000000000000000A5A69BFFEBB18BFFF4BB93FFF3BB + 94FFF3BB94FFF3BB94FFF4BB93FFF4BB94FFF4BB93FFF4BB94FFF3BB94FFF3BB + 94FFF3BC94FFF4BB94FFF3BB94FFF3BB93FFF4BC93FFF3BB94FFF4BB93FFF4BB + 94FFF4BB94FFF4BB94FFDBDBD0FFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000011C28CFF53E8B9FF35DDABFF34DDABFF34DD + ABFF34DEABFF34DEABFF53E8B9FF11C18CFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000B317FB7215BCAFF5195 + F8FF0C5BDDFF0C5FE3FF0E60E3FF2672E6FF2A6CDDFF124FCBFF123AA3F4173F + A5EF1241AEFF1241ABF80E45B6FD0D4CCBFF206CE4FF2270E7FF0E60E3FF0C5B + DDFF5091F6FF5195F8FF0B317FB7000000000000000000000000000000000000 + 000000000000000000005A45376AF7DFC6FEF7DEC2FFF7DEC2FFF7DEC2FFF7DE + C2FFF7DFC2FFF7DFC3FFF7DFC3FFF8DFC3FFE2B695FF5D47386D000000000000 + 000000000000000000000000000000000000A5A69BFFEBB28CFFF4BD94FFF4BC + 95FFF4BC95FFF4BC95FFF5BD95FFF4BD95FFF4BC95FFF4BD95FFF4BD95FFF5BD + 95FFF4BC95FFF4BD95FFF4BD95FFF5BD95FFF5BD95FFF4BD95FFF4BD95FFF4BD + 95FFF4BD94FFF5BD94FFDBDCD0FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000000FC38DFF54E9BAFF37DDABFF37DDABFF37DD + ABFF37DDABFF37DDABFF54E9BAFF10C28DFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000928699A2158C7FF579B + FDFF1C6CE6FF3781ECFF478AEBFF0D48C8FF0D40B8FE0D34A0F2000001030000 + 00000000000000000203061B486C0F3EA5F20D49C8FF2464D8FF478AEBFF1C6C + E6FF5698FCFF579BFDFF0928699A000000000000000000000000000000000000 + 0000000000000000000000000000B28B6FCDE8BC98FFE8BC98FFE8BC98FFE8BD + 98FFE8BD99FFE8BE99FFE8BE99FFE9BE99FF5E48386E00000000000000000000 + 000000000000000000000000000000000000A5A69BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFDCDDD1FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000000EC38EFF79EDC8FF3ADCABFF39DCABFF39DC + ABFF39DCABFF39DDABFF79EDC8FF0FC38EFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000061C4A6F1B50BEFF599C + FDFF97C3FAFF1859D4FF0D47C7FF0D36A4F70820629500030B11000000000000 + 000000000000000000000000000001040B110F40A9F70E46BCFF0D48C7FF97C3 + FAFF9BC8FDFF599CFDFF061C4A6F000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FF0000000000000000000000000000 + 00000000000000000000000000000EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC4 + 8FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000092963791143 + B8FF0C3296DC071C578501030C13000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000001040C130C3A + 9ADC0E42B0FB1249BBFF00000203000000000000000000000000000000000000 + 000000000001000000020000000300000006000000090000000C000000100000 + 001100000014000000100000000D0000000C0000000600000005000000030000 + 0001000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00010000000300000005000000060000000C0000000E00000010000000140000 + 0011000000100000000C00000009000000060000000300000002000000010000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000200000004000000070000000C000000120000001C0E33246A339F + 70FF0E33247F0000002E00000029000000210000000D0000000A000000060000 + 0002000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000001E000000320000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000003200000000000000000000000000000000000000000000 + 0002000000070000000A0000000C0000001C00000021000000240F34247F339F + 70FF0000002E00000021000000110000000D0000000600000003000000020000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424523AD6A6FF13BA + 8CFF3AD6A6FF0F34245200000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4FF3569DCFF3569DCFF3569DCFF3569DCFF173BB6FF063384FF093889FF0938 + 89FF093889FF0C3C8FFF063384FF173BB6FF3568DCFF3568DCFF3568DCFF3568 + DCFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424523CD7A7FF32A0 + 71FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34245232A171FF13BA8CFF13BA + 8CFF13BA8CFF31A071FF0F342452000402050000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4FF366DDDFF366DDDFF366DDDFF366CDDFF173BB6FF063384FF13469DFF1346 + 9DFF13469DFF0E3E92FF063384FF173BB6FF366CDDFF366CDDFF366CDDFF366C + DDFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34245230A271FF17CA95FF31A1 + 72FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34245230A172FF35D5A5FF11BE8EFF12BD + 8EFF13BB8DFF35D5A5FF30A172FF0F3424520000000000000000000000000000 + 0000000000000000000000000000000000000000001800000021000000210000 + 00250000002A0000002A0000002A0000002A0000002A0000002A0000002A0000 + 002A0000002A0000002A0000002A0000002A0000002A0000002A000000280000 + 0021000000210000001B00000000000000000000000000000000000000002E54 + D4FF5799EBFF5799EBFF5799EBFF72B7FFFF173BB6FF063384FF1548A0FF1448 + A0FF14489FFF114297FF063384FF173BB6FF5799EBFF5799EBFF5799EBFF5799 + EBFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34245230A373FF39D6A6FF1FCE9AFF30A3 + 73FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34245230D4A3FF12BD8EFF12BD8EFF0DCB95FF0DCB + 96FF0DCB95FF12BD8EFF12BD8EFF30D4A3FF0F34245200040205000000000000 + 00000000000000000000000000000000000000000010BD8462F1E8A97FFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFD595 + 70FF140E0B4A0000002700000000000000000000000000000000000000000000 + 0000D4D4D4FFBFBFBFFFBFBFBFFFBFBFBFFF9C9C9CFF063384FF194FA7FF184E + A7FF184EA7FF184EA5FF063384FF9C9C9CFFBFBFBFFFBFBFBFFFC3C3C3FFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34245234D5A4FF10BF8EFF10BF8EFF30D4A2FF2DA5 + 75FF00000000000403060004030600040306000403060009060C000403060004 + 0306000403060004030600040306000302040000000000000000000000000000 + 0000000000000F3424522DA575FF12BE8FFF12BE8FFF0ECC97FF0ECC96FF0DCC + 96FF0ECC96FF0ECD97FF12BE8EFF12BF8FFF2DA575FF0F342452000000000000 + 00000000000000000000000000000000000000000000B57D5BEFF6BB91FFE09B + 73FFD5916AFFD6926BFFD8946CFFD8956DFFD9956DFFDA966FFFDB976FFFDB97 + 6FFFDB976FFFDD9971FFDE9971FFDE9971FFE09A72FFE09A72FFE09B73FFE09C + 74FFB07C5ECD0000000000000000000000000000000000000000000000000000 + 0000D4D5D5FFBFBFBFFFCBCBCBFFCDCDCDFF9C9C9CFF063384FF093889FF0938 + 89FF093889FF1951AAFF063384FF9C9C9CFFCBCBCBFFCBCBCBFFBFBFBFFFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 00000008050A0F3424522CA675FF10C08FFF10C08EFF0DCA94FF37D6A5FF2BA7 + 76FF2CA676FF2CA676FF2CA676FF2BA676FF2BA676FF2BA675FF2BA676FF2CA6 + 76FF2CA675FF2CA676FF2BA675FF2CA676FF0000000000000000000000000000 + 00000F3424522CA676FF2AD3A2FF11C090FF0ECD98FF0ECD98FF0ECE97FF0ECD + 98FF0DCE97FF0ECE98FF0ECD98FF11C190FF2AD4A1FF2CA676FF0F3424520000 + 00000000000000000000000000000000000000000000B67E5CEEFDEFE2FFEDAC + 83FFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A3 + 7AFFE9A47AFFE9A47AFFE9A47BFFE9A47BFFE9A47BFFE9A47BFFE9A47BFFE19C + 74FFD3946FFB0000000000000000000000000000000000000000000000000000 + 0000D6D6D6FFC3C3C3FFD3D3D3FFD6D6D6FF9C9C9CFF063384FF1D58B0FF1D57 + B0FF1D57AFFF114498FF063384FF9C9C9CFFD6D6D6FFD3D3D3FFBFBFBFFFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 00000F3424522BA777FF2ED4A2FF10C18FFF0DCC95FF0DCB95FF0DCB95FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF2AA777FF0000000000000000000000000F34 + 245224D4A1FF10C995FF10C995FF0ED09BFF0ED09AFF0ED09AFF0ED09BFF0ED0 + 9AFF0ED09AFF0ED09AFF0ED09AFF0ED09AFF10C996FF10C995FF24D4A1FF0F34 + 24520000000000000000000000000000000000000000B67E5DECF4C196FFEDB1 + 87FFE19C74FFEAA57CFFEAA57CFFEAA67DFFEAA67DFFEAA67DFFEAA67DFFEAA6 + 7DFFEAA67DFFEBA77DFFEBA77EFFEBA77EFFEBA87EFFEBA87EFFEBA87EFFEAA7 + 7EFFE6A57BFFC88D6BEE00000000000000000000000000000000000000000000 + 0000D9D9D9FFD0CFCFFFD8D8D9FFD8D9D9FF9C9C9CFF063384FF215EB8FF205D + B7FF205EB7FF1952A9FF063384FF9C9C9CFFD9D8D8FFD9D8D8FFC4C4C4FFB3B3 + B3FF000000000000000000000000000000000000000000000000000604080F34 + 245219C895FF0FC492FF0DCE98FF0DCF98FF0DCE98FF0ECE98FF10C18FFF10C1 + 8FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF10C18FFF19D29FFF28AA7AFF00000000000000000F34245227AB + 7AFF0FCC98FF0FCC97FF0ED19CFF0ED19CFF0ED19CFF0ED19BFF0FD19CFF0ED2 + 9CFF0ED19CFF0ED29BFF0ED19CFF0ED29CFF0ED19BFF0FCB97FF0FCC98FF27AA + 7AFF0F34245200000000000000000000000000000000B7805EEBF3C297FFCC8F + 69FFE19E76FFEAA67DFFEBA87EFFEBA87EFFEBA87EFFEBA87FFFECA97FFFECA9 + 7FFFECA97FFFECA97FFFECAA80FFECAA80FFECAA80FFECAA80FFEDAA80FFEDAB + 81FFE9A77EFFDB9C76FE00000000000000000000000000000000000000000000 + 0000DADADAFFD6D6D6FFDADADAFFDADADBFF9C9C9CFF063384FF3786D5FF3786 + D5FF3786D5FF1E5AB2FF063384FF9C9C9CFFDADADAFFDADADAFFCCCCCCFFB3B3 + B3FF0000000000000000000000000000000000000000000000000F34245226AC + 7BFF0FC793FF0DCF99FF0ECF9AFF0DD099FF0ED099FF0ED09AFF0DD099FF0ED0 + 99FF0DD099FF0ED099FF0DD09AFF0DCF9AFF0DCF9AFF0DD09AFF0DD099FF0DD0 + 9AFF0EC995FF10C18FFF20D6A2FF26AB7BFF000000000F34245226AC7BFF1ED4 + A1FF0FCF9AFF0ED39DFF0ED39DFF0ED29DFF0ED39DFF0ED29DFF0FD39DFF0ED3 + 9DFF0ED29DFF0ED39DFF0ED39DFF0ED39DFF0FD29DFF0ED39CFF10CE99FF1ED4 + A1FF26AC7AFF0F342452000000000000000000000000B77F5EE9F3C397FFC286 + 61FFE8AB82FFE5A47AFFECAA80FFEDAA80FFEDAB81FFEDAB81FFEDAB81FFEDAB + 81FFEDAC82FFEDAC82FFEDAC82FFEEAC83FFEEAD83FFEEAD83FFEEAD84FFEEAD + 84FFEDAD83FFE9AA80FF00000000000000000000000000000000000000000606 + 060BDCDBDBFFDCDCDBFFDBDCDBFFDBDBDCFF9C9C9CFF063384FF2260BAFF2260 + BAFF2260BAFF2260BAFF063384FF9C9C9CFFDBDBDBFFDBDBDCFFD3D3D3FFADAD + ADFF2C2C2C4B000000000000000000000000000000000F34245224AD7CFF19CB + 99FF0DD19BFF0ED19BFF0ED19BFF0ED19BFF0DD19BFF0DD19AFF0DD19BFF0DD2 + 9BFF0ED19BFF0ED19BFF0DD19BFF0DD19BFF0DD29BFF0DD19BFF0ED29BFF0ED1 + 9BFF0DD19BFF0ECA96FF27D9A6FF24AD7CFF0F342452D0F5EBFF57E7BEFF57E7 + BEFF56E9BFFF57EABFFFCEF5EBFF0ED59FFF0ED5A0FF0ED5A0FF0ED5A0FF0ED6 + A0FF0ED5A0FF0FD6A0FF0ED59FFF0ED59FFF23DBA9FFCEF5EBFF56EABFFF57E7 + BEFF57E7BEFFD0F5EBFF0F3424520000000000000000B78060E7F2C499FFCC90 + 6AFFEEC499FFEBAC83FFEDAD84FFF0B086FFF0B187FFF0B187FFF1B188FFF1B1 + 88FFF1B288FFF1B388FFF1B389FFF1B389FFF1B489FFF1B489FFF2B48AFFF2B4 + 8BFFF2B48BFFF3B58BFF936A50AD000000000000000000000000000000001935 + BFFF9F9F9FFFD4D4D5FFDEDFDEFFDFDEDEFF9C9C9CFF3786D5FF3786D5FF3786 + D5FF3786D5FF3786D5FF3786D5FF9C9C9CFFDEDEDFFFDEDEDFFFD1D0D0FFA3A3 + A3FE1226ADFF0000000000000000000000000F34245217D09CFF0FCF9AFF0ED4 + 9EFF0DD49EFF0ED49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0ED4 + 9EFF0ED49DFF0ED49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED4 + 9EFF0ED49EFF0ED49EFF34DFB0FF21B17FFF21B17EFF21B17FFF21B17FFF20B1 + 7FFF21B17FFF21B17FFF19B885FF0FD7A2FF0ED7A1FF0ED7A1FF0FD7A1FF0FD6 + A1FF0FD7A2FF0FD6A1FF0FD7A1FF0ED7A1FF27DEACFF18B985FF21B07EFF21B1 + 7FFF21B17EFF21B17EFF21B17FFF0000000000000000B88160E5F2C79AFFD195 + 6EFFE5B287FFEFC094FFECAF85FFF2B48AFFF2B48AFFF2B48BFFF3B58BFFF3B6 + 8BFFF3B68BFFF3B68BFFF3B68CFFF3B68CFFF4B78DFFF4B78DFFF4B78DFFF4B8 + 8EFFF4B88EFFF4B88EFFCA926FEE000000000000000000000000000000001935 + BFFFA1A1A1FF9F9F9FFFD5D5D5FFE0DFDFFFDFE0E0FFE0DFE0FF2A8F60FF0CC7 + 90FF2A8F60FFE0E0E0FFE0DFE0FFE0E0DFFFDFE0E0FFD2D2D2FF9C9C9CFF4275 + DBFF1226ADFF00000000000000000000000020B27FFF0ED6A0FF0ED5A0FF0ED6 + 9FFF0ED69FFF0ED6A0FF0ED59FFF0ED69FFF0ED69FFF0ED69FFF0ED5A0FF0ED5 + A0FF0ED69FFF0ED59FFF0ED59FFF0ED69FFF0ED5A0FF0ED59FFF0ED5A0FF0ED6 + 9FFF0ED6A0FF0ED5A0FF3CE2B4FF20B280FF0000000000000000000000000000 + 0000000000000000000017BB87FF0FD8A3FF0FD8A3FF0FD8A3FF0FD8A2FF0FD9 + A3FF0FD8A2FF0FD8A2FF0ED9A3FF0ED8A3FF2CE0AEFF17BA87FF000000000000 + 00000000000000000000000000000000000000000000B88261E4F1C89BFFD69A + 72FFD79B73FFF0C99CFFF2B58BFFF4B78DFFF4B88DFFF4B88EFFF4B88EFFF4B9 + 8EFFF4B98EFFF5B98FFFF5B98FFFF5BA8FFFF6BA90FFF6BB90FFF6BB90FFF6BB + 90FFF6BB90FFF6BB90FFE8AD85FF624836730000000000000000000000001935 + BFFF4275DBFFA2A2A2FF9F9F9FFFE1E1E1FFE1E1E1FFE1E1E1FF0CC790FF2A8F + 60FF2E54D4FF2A8F60FFE1E1E1FFE1E1E1FFD2D2D2FF9D9D9DFFA4A5A5FF4A8D + EBFF1226ADFF000000000000000000000000063C2C5233E1B1FF0FD7A1FF0ED7 + A1FF0FD7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A2FF0ED7A1FF0ED7A1FF0ED7A1FF0FD6 + A1FF0ED7A1FF0ED7A1FF42E5B7FF1FB381FF0000000000000000000000000000 + 0000000000000000000014BD8AFF0FDBA5FF0FDBA6FF0FDBA6FF0FDBA6FF0FDA + A5FF0FDBA6FF0FDBA5FF0FDAA6FF0FDBA5FF35E4B4FF14BD8AFF000000000000 + 00000000000000000000000000000000000000000000B88362E1EFC99CFFDFA3 + 7BFFDFA37BFFE2A77FFFFFFAF1FFFDF1DFFFFDEFDBFFFDEDD9FFFCEAD2FFFBE9 + CFFFFAE7CCFFF9E2C4FFF9E1C1FFF8DFBEFFF8DDBAFFF7DCB8FFF7DCB8FFF6DB + B7FFF6DAB6FFF6DAB6FFF5D9B5FFD7A481FA0000000000000000000000001935 + BFFF3562DAFF5092EFFF4275DBFFA0A0A0FFD8D9D9FFE4E3E3FF154BA3FFF1B1 + 87FFF1B187FFE4E4E3FFE3E3E3FFD5D5D5FFA4A4A5FF4275DBFF4B8EECFF1934 + BFFF1226ADFF00000000000000000000000000000000063C2C521BB684FF46E7 + BAFF0FDAA4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA5FF0ED9A4FF0FDAA4FF0EDA + A4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA4FF0FDAA4FF0FDAA4FF0FDAA4FF0FDA + A4FF0EDAA4FF0FDAA4FF4EE9BEFF1BB783FF0000000000000000000000000000 + 0000000000000000000013BF8BFF0FDCA7FF0FDCA7FF0FDCA7FF0FDCA7FF0FDC + A6FF0FDCA6FF10DCA7FF0FDCA6FF0FDCA7FF39E6B7FF13BF8BFF000000000000 + 00000000000000000000000000000000000000000000B98363E0EFCA9CFFE3A8 + 7FFFE3A87FFFE3A87FFFE7AE87FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF + 85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFDBA0 + 79FF91674EB18A624AA7886149A43D2C21490000000000000000000000000C17 + 3A462E54D4FF3563DAFF5699F1FFA1A1A3FFA0A0A0FFDADAD9FF154BA3FFF1B1 + 87FFF1B187FFE5E5E5FFD5D5D6FF9D9D9DFF4275DBFF4B8EECFF2447CAFF1226 + ADFF060E34460000000000000000000000000000000000000000063C2C521AB8 + 85FF0EDBA5FF0FDBA6FF0FDBA6FF0FDBA5FF0FDCA5FF0FDCA6FF0EDBA5FF0EDB + A6FF0FDCA5FF0FDBA6FF0EDBA5FF0EDCA6FF0FDCA6FF0EDBA5FF0FDBA6FF0FDB + A6FF0FDBA6FF0EDBA6FF53EBC1FF19B884FF0000000000000000000000000000 + 0000000000000000000012C08CFF0FDDA8FF0FDDA8FF10DDA8FF0FDDA8FF0FDD + A8FF0FDDA8FF0FDEA8FF0FDEA8FF0FDDA8FF3DE7BAFF12C08CFF000000000000 + 00000000000000000000000000000000000000000000B88463DEEFCA9DFFE8AD + 84FFEFB58AFFEFB58BFFEFB58BFFEFB48AFFEEB48AFFEEB48AFFEDB389FFEDB3 + 89FFEDB389FFECB288FFECB188FFECB187FFEBB086FFEAB086FFEAAF86FFDCA0 + 79FF17100B1E0000000000000000000000000000000000000000000000000000 + 00001935BFFF2E54D4FF3664DAFF4275DBFFA1A1A3FFA0A0A0FF063384FF0633 + 84FF063384FFD6D6D6FF9D9D9DFFA4A5A5FF5093EFFF244ACBFF1934BFFF060E + 334500000000000000000000000000000000000000000000000000000000063C + 2C5258EDC3FF0FDCA7FF0FDDA7FF0FDDA7FF0FDDA7FF0FDCA7FF0EDCA7FF0EDD + A7FF0FDDA7FF0EDDA7FF0FDDA7FF0EDDA7FF0FDCA7FF0FDCA7FF0EDDA7FF0FDD + A7FF0EDDA7FF0FDDA7FF56EDC2FF18B985FF0000000000000000000000000000 + 0000000000000000000010C28DFF10E0ABFF10E0ABFF0FE0ABFF0FE0AAFF10E0 + AAFF10E0AAFF0FDFAAFF0FE0ABFF0FDFAAFF45EBBDFF10C28DFF000000000000 + 00000000000000000000000000000000000000000000BA8665DCEECC9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFE2A7 + 7FFF140E0A1A0000000000000000000000000000000000000000000000000000 + 0000000000000B1535401935BFFF3664DBFF579BF2FF4275DBFFA0A0A0FFDBDC + DBFFD8D7D8FFA3A4A7FF4275DBFF579AF1FF878CA6FF1226ADFF060D2F400000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000063C2C5216BC88FF6BF2CCFF0FDFA9FF0FE0AAFF0FDFAAFF21E3B1FF16BC + 89FF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C0 + 8AFF13C08AFF13C08AFF13C08AFF13C08AFF0000000000000000000000000000 + 000000000000000000000FC38EFF0FE1ACFF0FE1ABFF0FE1ACFF10E1ACFF0FE1 + ACFF0FE1ACFF0FE1ABFF10E1ABFF0FE1ACFF4AECC0FF0FC38EFF000000000000 + 00000000000000000000000000000000000000000000BC8867DCEDCC9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFFADDB8FFFADD + B8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFD198 + 73F4050302070000000000000000000000000000000000000000000000000000 + 000000000000000000000B14323D2E54D4FF3664DBFF589BF2FFA0A1A4FFA0A0 + A0FF9D9D9DFF4275DBFF579BF2FF061D94FFABABABFF050C2D3D000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000063C2C5214BD89FF10E0ABFF10E1ABFF10E0ABFF2DE6B6FF14BD + 89FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000FC38EFF0FE2ADFF10E2ADFF0FE2ADFF0FE2ADFF0FE2 + ADFF10E2ADFF10E2ADFF10E2ADFF10E2ADFF4DEDC1FF0FC38EFF000000000000 + 00000000000000000000000000000000000000000000BF8A69E0EDCD9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF3D2AEFFDDAC8EFFDDAC + 8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFF3B2B + 2045000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001935BFFF2E54D4FF3664DBFF4275DBFF9FA1 + A5FF9D9FA7FF589CF2FF061D94FFA0A5BFFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000063C2C527CF5D2FF0FE2ACFF10E1ADFF3AEABBFF13BE + 8BFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF10E4AFFF10E4AFFF10E4AFFF10E4AFFF10E4 + AEFF10E4AFFF10E4AFFF10E4AFFF0FE4AFFF53EFC5FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000087634C99D9A686FAD89D + 78FAD69C77F8D69B77F7D69B77F7D49A75F5C18B69E4271C1531000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A122E381935BFFF3563DAFF72B7 + FFFF72B7FFFF1934BFFFABABABFFCCCCCCFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000063C2C5211C18CFF89F8D7FF50EEC4FF12C1 + 8CFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF10E5B0FF10E5B0FF10E5B0FF10E5B0FF10E5 + B0FF10E5B0FF10E5B0FF0FE5B0FF0FE4B0FF55F0C5FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000009112C352E54D4FF3F82 + E6FF3F82E6FF1226ADFFABABABFFCCCCCCFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000063C2C5210C28DFF57F0C7FF11C2 + 8DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF0FE5B1FF10E6B0FF10E6B0FF10E5B0FF0FE5 + B1FF10E6B1FF10E5B0FF10E6B1FF10E6B1FF57F0C8FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001935BFFF3F82 + E6FF3F82E6FF050A2634ABABABFFE4EBEBFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000063C2C52F5F9F7FF10C2 + 8DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC4 + 8FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000509 + 181E0206161E0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000EC4 + 8FFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000003200000040000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000032000000320000000000000017000000270000 + 0032000000400000004000000040000000400000004100000047000000400000 + 0040000000400000004500000047000000400000004000000040000000400000 + 0040000000250000001A00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000343433FF232323FF2222 + 22FF222222FF212121FF212121FF202020FF202020FF1F1F1FFF1F1F1FFF1E1E + 1EFF1E1E1EFF1D1D1DFF1D1D1DFF1D1D1DFF1C1C1CFF1C1C1CFF1B1B1BFF1B1B + 1BFF1B1B1BFF1A1A1AFF343433FF000000000000000000000000000000000534 + 6AFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF1258 + 9FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF1258 + 9FFF05346AFF000000000000000000000000000000179D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF00000017000000000000000000000000000000150000 + 001BE2B798FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B6 + 96FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B6 + 96FFE1B696FFE1B696FF000000110000000000000000363635FFF4E0BDFFF7E2 + BFFFF7E2BEFFF7E2BEFFF7E1BDFFF7E1BCFFF7E1BCFFF7E0BBFFF7E0BBFFF7E0 + BAFFF7E0BAFFF7E0BAFFF7E0BAFFF7E0BAFFFAEFCCFFF9EED0FFF7EBCFFFF5E5 + C9FFF2DFC0FFF2DAB6FF343433FF000000000000000000000000000000000534 + 6AFF0F5094FF073B75FF073A74FF073973FF073972FF073871FF063770FF0637 + 6FFF06376FFF06366EFF06356DFF05356DFF05356CFF05346BFF05346BFF0E50 + 94FF05346AFF00000000000000000000000000000000CCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5 + C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5 + C4FFF9E5C4FFE2B797FF000000000000000000000000393937FFF7E3C1FFF7E3 + C1FFF7E2C0FFF7E2BFFFF7E2BEFFF7E2BEFFF7E2BEFFF7E1BDFFF7E1BCFFF7E0 + BBFFF7E0BBFFF7E0BAFFF7E0BAFFF7E0BAFFF8E3BCFFFCF3CEFFFDF7D8FFFEF9 + E4FFFEF9E7FFF3DEBBFF343433FF000000000000000000000000000000000534 + 6AFF0F5195FFF6DDB6FFF6DDB5FFF6DDB4FFF6DDB4FFF6DCB3FFF6DCB3FFF6DC + B3FFF6DCB2FFF6DCB2FFF6DCB2FFF9E9C1FFFAEDD2FFF9E9CDFFF7E1BDFF0F51 + 95FF05346AFF00000000000000000000000000000000CCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F8E2BBFFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6 + B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6 + B1FFF8E0BAFFE2B898FF0000000000000000000000003E3D3BFFF8E4C4FFF8E4 + C4FFF7E4C3FFF7E4C3FFF7E3C2FFF7E3C1FFD8C7A9FF8C8171FFF7E2BFFFF7E2 + BEFFF7E2BEFFB4A48CFF756C5DFF736A5CFFF5DEBAFFF7E0BBFFF7E0BBFFFCF5 + D3FFFDF7DBFFF8EBD0FF343433FF000000000000000000000000000000000534 + 6AFF115499FFF6DFB9FFF6DFB8FFF6DEB7FFF6DEB7FFF6DDB5FFF6DDB4FFF6DD + B4FFF6DDB4FFF6DDB4FFF6DDB4FFF6DDB4FFF8E5BBFFFCF5D3FFFDF6DDFF1154 + 99FF05346AFF00000000000000000000000000000000CDCDCDFFCCCCCCFFDF98 + 71FFEBA279FFEBA279FFEAA279FFEAA279FFEAA279FFEAA279FFEAA279FFFCC8 + A5FFEAA279FFEAA279FFEBA279FFEAA279FFEAA279FFEAA279FFEAA279FFDF98 + 71FFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F8E1BEFFF3D6B1FFF5DAB5FFF8E1BBFFF8E0BBFFF8E1BBFFF8E1BBFFF8E1 + BBFFF8E1BBFFF8E1BCFFF8E1BBFFF8E1BBFFF9E1BCFFF8E1BBFFF8E1BBFFF4D7 + B2FFF8E1BBFFE3B99AFF00000000000000000000000040403CFFF8E5C7FFF8E5 + C7FFF8E4C5FFF8E4C4FFF7E4C3FFF7E4C3FFB7AA94FF262626FFF7E3C1FFF7E2 + C0FFF7E2C0FF1D1D1DFF1C1C1CFF1F1F1EFF615A4EFFF5DFBBFFF7E1BCFFF7E1 + BCFFFBEFCCFFFAF1D2FF343433FF000000000000000000000000000000000535 + 6BFF11559BFFF6E0BBFFF6DFB9FFF6DFB8FFF6DEB8FFF6DEB7FFF6DDB6FFF6DD + B6FFF6DDB5FFF6DDB4FFF6DDB4FFF6DDB4FFF6DDB4FFF7DFB7FFFBF1CCFF1155 + 9AFF05356BFF00000000000000000000000000000000CECECEFFCDCDCDFFDE97 + 71FFEBA37AFFEBA27AFFEAA37AFFE9A178FFEAA179FFEBA37AFFEAA27AFFFCC8 + A5FFEAA27AFFEAA279FFEBA379FFEBA27AFFEAA37AFFEBA37AFFEBA27AFFDF98 + 71FFCDCDCDFFCDCDCDFF00000000000000000000000000000000000000000000 + 0000F8E2BFFFF3D7B2FFF8E2BCFFF8E1BCFFF8E1BCFFF8E1BCFFF8E2BCFFF8E1 + BCFFF8E1BCFFF8E1BCFFF8E2BCFFF8E1BCFFF8E1BCFFF9E1BCFFF8E1BCFFF5DA + B5FFF8E1BCFFE3BA9BFF00000000000000000000000042423EFFF8E6C9FFF8E6 + C9FFF8E5C8FFF8E5C7FFF8E4C5FFF8E4C4FFB9AB95FF292929FFF7E4C3FFF7E3 + C2FFE2D0B2FF252524FFC9B79DFFEDD9B7FF1B1B1BFFAA9C85FFF7E2BEFFF7E1 + BDFFF7E1BCFFF9E9C3FF343433FF000000000000000000000000000000000535 + 6CFF12569DFFF6E0BCFFF6E0BBFFF6E0BAFFF6E0BAFFF6DFB9FFF6DEB7FFF6DE + B7FFF6DEB7FFF6DDB6FFF6DDB5FFF6DDB5FFF6DDB5FFF6DDB5FFF6DEB5FF1256 + 9DFF06356CFF00000000000000000000000000000000CFCFCFFFCECECEFFDB94 + 6EFFEBA37AFFEAA37AFFE8A178FFDC9770FFE09971FFE8A079FFEAA37AFFFCC8 + A5FFEBA47AFFEBA37AFFEBA37BFFEBA37AFFEBA37AFFEBA37AFFEAA47BFFDF98 + 71FFCECECEFFCECECEFF00000000000000000000000000000000000000000000 + 0000F8E3BFFFF4D8B3FFF8E2BDFFF8E2BDFFF8E2BDFFF8E1BDFFF9E2BCFFF8E2 + BDFFF8E2BDFFF8E2BDFFF8E2BDFFF8E2BCFFF8E1BDFFF8E1BCFFF8E2BDFFF5DB + B6FFF8E1BDFFE3BC9CFF000000000000000000000000474742FFF8E7CCFFF8E7 + CCFFF8E7CBFFF8E7CBFFF8E6CAFFF8E6C9FFBBAF9AFF303030FFF8E5C7FFF8E4 + C5FFF8E4C5FFF7E4C3FFF7E4C3FFF7E4C3FF222222FF766E61FFF7E3C1FFF7E2 + C0FFF7E2BFFFF7E2BFFF343433FF000000000000000000000000000000000637 + 6FFF1359A0FFF7E2C0FFF7E2BFFFF7E2BEFFF7E2BEFFF6E0BDFFF6E0BBFFF6E0 + BBFFF6E0BBFFF6DFBAFFF6DFB9FFF6DFB9FFF6DFB9FFF6DEB8FFF6DEB8FF1359 + A1FF06366FFF00000000000000000000000000000000D1D1D1FFD0D0D0FFCC87 + 63FFD18C68FFCF8965FFCA8562FFCE9B81FFC7825FFFD18C68FFEBA47BFFFCC8 + A5FFECA57CFFECA57CFFE8A37BFFE9A27AFFEBA57CFFEBA57CFFECA57CFFDF9A + 73FFD0D0D0FFD0D0D0FF00000000000000000000000000000000000000000000 + 0000F9E4C3FFF4DAB5FFF8E2BFFFF8E3BFFFF8E3BFFFF9E3BFFFF8E2BEFFF8E3 + BEFFF9E3BFFFF8E2BFFFF8E2BFFFF8E3BFFFF8E2BFFFF8E2BEFFF8E3BEFFF5DC + B8FFF8E2BFFFE5BE9FFF0000000000000000000000004A4944FFF8E8CEFFF8E8 + CEFFF8E7CDFFF8E7CCFFF8E7CBFFF8E7CBFFBCB09DFF333333FFF8E6C9FFF8E5 + C8FFF6E3C5FF56524CFFBDAF99FFC9B9A1FF262626FFAB9F8BFFF7E4C3FFF7E3 + C2FFF7E3C1FFF7E3C1FF343433FF000000000000000000000000000000000737 + 70FF135AA3FFF7E3C1FFF7E2C0FFF7E2C0FFF7E2C0FFF7E2BFFFF7E1BEFFF7DF + BCFFF7E0BAFFF7E1BBFFF7E0BAFFF7E0BAFFF7E0BBFFF7E0BAFFF7E0BAFF135B + A3FF073771FF00000000000000000000000000000000D2D2D2FFD1D1D1FFD7A7 + 8EFFC78360FFCD8E6FFFDBBCACFFE4E2E1FFD49E81FFC98461FFE59F78FFFBC7 + A4FFEBA67DFFE6A279FFDE9A73FFDC9770FFEAA57DFFECA67DFFECA67DFFDF9A + 73FFD1D1D1FFD1D1D1FF00000000000000000000000000000000000000000000 + 0000F8E4C5FFF6DEBAFFF9E3BFFFF8E2BFFFF8E3C0FFF8E3C0FFF8E3C0FFF9E3 + C0FFF8E2C0FFF8E3C0FFF8E3BFFFF8E3C0FFF9E3C0FFF7E2BEFFF9E1BEFFF6DD + B9FFF7E1BDFFE5BFA0FF0000000000000000000000004C4C46FFF9E9CFFFF9E9 + CFFFF8E8CEFFF8E8CEFFF8E7CDFFF6E5CAFFBDB19FFF373737FFF8E7CBFFF8E6 + CAFFF8E6CAFF2E2E2EFF2D2D2DFF2C2C2CFF6E685EFFF7E3C3FFF8E4C4FFF7E4 + C3FFF7E4C3FFF7E4C3FF343433FF000000000000000000000000000000000738 + 72FF145BA4FFF8E3C3FFF7E3C2FFF7E3C1FFF7E3C1FFF7E2C0FFF7E2BFFFF7E1 + BDFFF6DFBAFFF7DFBAFFF7E1BBFFF7E1BCFFF7E1BCFFF7E0BBFFF7E0BBFF145C + A5FF073872FF00000000000000000000000000000000D3D3D3FFD2D2D2FFE6E4 + E3FFDFC4B5FFE6E4E3FFE6D6CCFFE8BBA1FFE5DED9FFCE906FFFDA956FFFF5BF + 9DFFEAA57DFFD9946DFFCB8763FFCA8663FFE8A37AFFEBA77EFFECA77EFFE09B + 74FFD2D2D2FFD2D2D2FF00000000000000000000000000000000000000000000 + 0000F9E5C5FFF7DFBDFFF8E3C0FFF9E3C0FFF9E3C1FFF8E3C0FFF8E3C0FFF9E3 + C0FFF9E3C0FFF8E2C0FFF9E3C1FFF9E4C1FFF7E2C0FFF8E3BFFFF7E2BFFFF5DD + BAFFF7E0BEFFE6C0A3FF000000000000000000000000515149FFF9EAD2FFF9EA + D2FFF9E9D1FFF9E9D1FFF9E9D0FF464544FF3E3E3EFF3D3D3DFFF8E8CEFFF8E7 + CDFFF8E7CDFF353535FF9E9485FFE2D3B9FFE2D2B8FFF3E2C4FFF8E6C9FFF8E5 + C8FFF8E5C7FFF8E5C7FF363634FF00000000000000000000000000000000073A + 76FF155EA9FFF8E5C4FFF8E4C3FFF8E4C3FFF8E4C3FFF8E4C3FFF7E3C2FFF7E2 + C1FFF6E1BEFFF5DAB4FFF5DCB3FFF6DEB9FFF7E3C0FFF7E2BFFFF7E2BEFF155F + A9FF083A76FF00000000000000000000000000000000D5D5D5FFD4D4D4FFE19C + 75FFECA980FFECA980FFEDA980FFEDA980FFECAA82FFE9DAD1FFCA8662FFCE8D + 6BFFCB8764FFE4D5CEFFE9E5E3FFDFBFAEFFD08D68FFE29F77FFECA87FFFE09C + 75FFD4D4D4FFD4D4D4FF00000000000000000000000000000000000000000000 + 0000F9E6C9FFF7E1BFFFF9E4C2FFF8E4C3FFF8E4C2FFF9E4C2FFF8E4C2FFF9E4 + C2FFF7E3C2FFF7E1BFFFF5DEBDFFF5DFBDFFF5DFBEFFF5DEBEFFF5DEBDFFF3DC + BAFFF3DCBCFFE8C3A5FF00000000000000000000000053534BFFF9EBD4FFF9EB + D4FFF9EAD3FFF9EAD2FFF9E9D1FFE1D3BDFF5D5B57FF414141FFF9E9CFFFF8E8 + CEFFF8E8CEFF393939FF383838FF363636FF333333FFCBBDA7FFF8E7CBFFF8E6 + CAFFF8E6C9FFF8E6C9FF363635FF00000000000000000000000000000000083B + 78FF1660ABFFF8E5C7FFF8E5C5FFF8E5C4FFF8E5C4FFF8E4C3FFF8E4C3FFF8E4 + C3FFF8E3C2FFF5DFB7FFF5DBB2FFF5DCB4FFF7E1BEFFF7E3C0FFF7E3C0FF1660 + ABFF083C78FF00000000000000000000000000000000D7D7D7FFD6D6D6FFEBB1 + 8FFFFCC9A6FFFCC9A6FFFCC9A6FFFCC9A6FFFCC9A6FFF9CAABFFDEB49DFFC887 + 65FFD6A991FFEBCDBAFFF4C4A6FFECE7E4FFCC8B69FFDCA07EFFF3BD9BFFEBB1 + 8FFFD5D5D5FFD5D5D5FF00000000000000000000000000000000000000000000 + 0000F9E7CAFFF7E2C0FFF9E5C4FFF8E4C3FFF9E5C4FFF8E5C4FFF9E5C3FFF9E4 + C4FFF8E3C1FFF4DEBEFFF2DCBCFFF3DDBDFFF4DDBEFFF5DEBEFFF4DEBDFFF4DD + BAFFF4DEBDFFE8C5A7FF00000000000000000000000053534BFFF9ECD5FFF9EC + D5FFF9EBD4FFF9EBD4FFF9EAD3FFF9EAD2FFDACEB9FF504F4DFFF9E9D1FFF9E9 + D0FFF9E9D0FF6B6760FF6A6660FF69655FFF67635CFFD7C9B1FFF8E7CCFFF8E7 + CBFFF8E7CBFFF8E7CBFF383836FF00000000000000000000000000000000093C + 7AFF1662ADFFF8E6C9FFF8E5C8FFF8E5C7FFF8E5C7FFF8E5C5FFF8E4C4FFF8E4 + C3FFF8E4C3FFF8E1BFFFF5DFB8FFF4DAB0FFF5DFBAFFF7E1BFFFF7E3C2FF1661 + ADFF093D7AFF00000000000000000000000000000000D8D8D8FFD7D7D7FFE19E + 77FFEDAB82FFEEAB82FFEEAB82FFEDAB82FFEDAB82FFEDAB82FFEEE9E7FFE7D1 + C3FFECE3DEFFEBA981FFEDAB82FFEBB99AFFD29B7EFFCA8663FFDB9772FFE19E + 77FFD7D7D7FFD7D7D7FF00000000000000000000000000000000000000000000 + 0000F9E8CCFFF8E5C4FFF9E5C5FFF9E5C5FFF9E5C5FFF9E5C4FFF8E5C4FFF8E4 + C4FFF8E3C2FFF2DCBDFFF3DCBDFFF2DBBAFFF2DBBBFFF2DCBCFFF3DCBCFFF3DD + BCFFF3DCBDFFE9C7A9FF00000000000000000000000058584FFF0C5DDDFF0B5C + DCFF0A5ADAFF0959D9FF0958D8FF0855D6FF0754D5FF0653D4FF0551D2FF0550 + D1FF044FD1FF034DCFFF034DCEFF024CCEFF024BCDFF024BCDFF024BCDFF024B + CDFF024BCDFF024BCDFF3A3A38FF000000000000000000000000000000000A3F + 7EFF1864B2FFF8E7CBFFF8E7CAFFF8E7CAFFF8E7CAFFF8E6C9FFF8E5C8FFF8E5 + C8FFF8E5C8FFF8E5C5FFF8E4C4FFF8E2C1FFF6DBB4FFF5DBB3FFF7E0BDFF1864 + B1FF0A3F7EFF00000000000000000000000000000000DADADAFFD9D9D9FFE19F + 78FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFFCC8 + A5FFEEAD85FFEEAD84FFEEAD84FFEEAD84FFEFD7C8FFECD9CFFFCA8663FFDA98 + 72FFD9D9D9FFD9D9D9FF00000000000000000000000000000000000000000000 + 0000F9E8CDFFF8E6C7FFF9E6C8FFF9E5C8FFF8E6C8FFF9E5C7FFF9E6C8FFF7E4 + C5FFF6E1C3FFEDD5B7FFEACFB1FFE8CCAFFFE7CBACFFE6CBADFFE7CBACFFE8CC + AFFFDEBEA3FFE7C3A8FF0101010200000000000000005A5A50FF0C5EDEFF0C5D + DEFF0B5BDCFF0A5ADBFF0A59DAFF0957D8FF0856D7FF0755D6FF0653D4FF0652 + D3FF0551D2FF044FD0FF044ED0FF034DCFFF024CCEFF024BCDFF024BCDFF024B + CDFF024BCDFF024BCDFF3C3C39FF000000000000000000000000000000000A41 + 81FF1965B3FFF8E8CCFFF8E7CBFFF8E7CBFFF8E7CBFFF8E7CAFFF8E6C9FFF8E6 + C9FFF8E6C9FFF8E5C8FFF8E5C7FFF8E5C7FFF6E0BBFFF5DAB3FFF6DCB6FF1865 + B3FF0A4081FF00000000000000000000000000000000DBDBDBFFDADADAFFE2A0 + 79FFEFAE85FFEEAE85FFEFAE85FFEEAE85FFEFAE85FFEFAE85FFEEAE85FFFCC9 + A6FFEEAE85FFEFAE85FFEEAE85FFEFAE85FFECAE87FFF2E4DCFFE5C7B5FFD28E + 6AFFDADADAFFDADADAFF00000000000000000000000000000000000000000000 + 0000F9E9CFFFF8E6C8FFF9E7C8FFF9E6C8FFF9E6C8FFF8E6C9FFF9E7C9FFF8E5 + C7FFF5E1C3FFEACFB3FFE4C5AAFFE2C0A5FFDBB89CFFDBB89CFFD9B69BFFD9B7 + 9BFFE8CDAEFFE7C3A8FF0000000000000000000000005D5C52FF0D5FE0FF0D5F + DFFF0C5DDDFF0B5CDDFF0B5BDCFF0A59DAFF0958D9FF0857D8FF0754D6FF0753 + D5FF0652D4FF0550D2FF044FD1FF044ED0FF034DCEFF034CCEFF024BCDFF024B + CDFF024BCDFF024BCDFF3E3E3BFF000000000000000000000000000000000B41 + 82FF1966B5FFF8E8CEFFF8E8CDFFF8E8CCFFF8E8CCFFF8E7CBFFF8E7CAFFF8E7 + CAFFF8E7CAFFF8E6C9FFF8E5C8FFF8E5C8FFF8E2C3FFF6E0BCFFF5DDB5FF1967 + B5FF0B4282FF00000000000000000000000000000000DCDCDCFFDBDBDBFFE2A1 + 79FFEFAF86FFEEAF86FFEEAE85FFEFAF86FFEFAF86FFEFAF86FFEFAF86FFFCC9 + A6FFEEAE86FFEEAF86FFEFAF86FFEFAF86FFEFAF86FFECB58FFFF5EFEBFFCC88 + 64FFDBDBDBFFDBDBDBFF00000000000000000000000000000000000000000000 + 0000F9E9CFFFF8E7C9FFF8E7C9FFF9E7C9FFF8E6C9FFF9E7CAFFF9E6C9FFF8E5 + C8FFF4E0C1FFE8CBAFFFE2C2A7FFE4C7AEFFDFBFA6FFE1C3A8FFEAD2B6FFF5DF + BCFFE8C5AAFF483B3252000000000000000000000000626156FF0E61E1FF0E61 + E1FF0D60E0FF2A70E4FF3D79E6FF3270E0FF0B5BDCFF0A5ADBFF0958D9FF0857 + D8FF0856D7FF0753D5FF0652D4FF2769DFFF3B77E5FF306CDDFF044ECFFF034C + CEFF024BCDFF024BCDFF43433FFF000000000000000000000000000000000C44 + 87FF1B69B9FFF9E9D0FFF8E9CFFF9B9280FF9B9280FF9B927FFF9B927FFF9B92 + 7FFF9B927EFF9B917EFF9B917DFF9B917DFF9B917DFFBFB299FFF8E5C7FF1B69 + B8FF0C4487FF00000000000000000000000000000000DEDEDEFFDDDDDDFFE3A1 + 7AFFEFB187FFEFB188FFEFB087FFEFB088FFEFB187FFEFB187FFEFB188FFFCCA + A7FFEFB187FFEFB187FFEFB188FFF0B188FFEFB188FFEFB088FFEFB088FFF5EA + E3FFDDDDDDFFDDDDDDFF00000000000000000000000000000000000000000000 + 0000F9EAD1FFF9E7CBFFF9E8CBFFF9E8CBFFF9E7CCFFF9E8CBFFF9E8CBFFF6E6 + C9FFF1DDC0FFFCF9F7FFF8F2ECFFFDF7EEFFFAECD5FFF8E3C3FFF7E0BBFF483D + 33520000000000000000000000000000000000000000646458FF0E61E1FF0E61 + E1FF1F6BE4FF2E65D0FF133896FF133896FF2A5CBFFF0B5CDCFF0A5ADAFF0959 + D9FF0957D8FF0855D6FF1B62DCFF2D63CEFF173271FF133896FF2A5EC5FF034D + CFFF034CCEFF024CCEFF454540FF000000000000000000000000000000000D45 + 8AFF1B6AB9FFF9EAD1FFF9E9D0FF565544FF575545FF575544FF575644FF5755 + 44FF565544FF575545FF575544FF575644FF86806CFF9B917DFFF8E7CAFF1B69 + BAFF0D4589FF00000000000000000000000000000000DFDFDFFFDEDEDEFFE3A3 + 7BFFEFB288FFF0B188FFEFB288FFF0B188FFEFB188FFEFB188FFF0B288FFFCCA + A7FFEFB288FFF0B188FFEFB288FFEFB289FFF0B188FFEFB188FFF0B188FFEFD1 + BDFFDEDEDEFFDEDEDEFF00000000000000000000000000000000000000000000 + 0000F9EBD2FFF9E8CCFFF8E7CCFFF9E8CCFFF9E7CCFFF9E8CCFFF8E7CBFFF7E4 + C8FFF2DDC0FFFEFAF5FFFCF6ECFFFBF0DDFFF8E3C2FFF7DFBAFFEDD0B4FF0000 + 0000000000000000000000000000000000000000000067665AFF0E61E1FF0E61 + E1FF1565E2FF133CA0FF526D97FF506C97FF163A8BFF0C59D5FF0B5BDCFF0A5A + DBFF0A59DAFF0957D8FF115BD9FF123BA0FF4774C5FF506C97FF1742A4FF044E + D0FF034ECFFF034DCFFF484842FF000000000000000000000000000000000D47 + 8CFF1C6BBBFFF9EAD2FFF9EAD1FF908974FF908974FF908974FF908974FF9089 + 74FF908974FF908974FF908974FF908974FF5A5A48FF9B917EFFF8E7CBFF1C6A + BBFF0D468CFF00000000000000000000000000000000E1E1E1FFE0E0E0FFE2A3 + 7BFFEFB289FFF0B289FFF0B289FFF0B289FFF0B288FFF0B289FFEFB289FFFCCA + A7FFF0B289FFEFB289FFEFB289FFEFB289FFEFB289FFEFB289FFF0B289FFE9B7 + 98FFDFDFDFFFDFDFDFFF00000000000000000000000000000000000000000000 + 0000F9EBD2FFF9E8CDFFF9E8CDFFF9E8CCFFF9E8CDFFF8E8CDFFF9E7CBFFF6E4 + C9FFF1DCBFFFFCF4E7FFFBEFDCFFF9E8CEFFF7DFB9FFEFD3B7FF493E35520000 + 000000000000000000000000000000000000000000006B6B5DFF579BF0FF579B + F0FF579BF0FF579BF0FF46453DFF48473FFF345E98FF4C89D6FF579BF0FF579B + F0FF579BF0FF579BF0FF579BF0FF579BF0FF3D3C36FF48473FFF345E98FF579B + F0FF579BF0FF579BF0FF4B4B45FF000000000000000000000000000000000E49 + 90FF3786D5FF3786D5FF3786D5FFF5F6EFFFE3E5D2FFD3D6B6FFD3D6B6FFD3D6 + B6FFD3D6B6FFD3D6B6FFD3D6B6FFDDDFC7FF64634FFF2F5B83FF3786D5FF3786 + D5FF0E4990FF00000000000000000000000000000000E3E3E3FFE2E2E2FFE3A3 + 7CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFEBB2 + 90FFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A3 + 7CFFE2E2E2FFE2E2E2FF00000000000000000000000000000000000000000000 + 0000F9EBD4FFF9E8CEFFF9E8CEFFF9E8CEFFF9E9CEFFF9E9CEFFF7E6CDFFF5E1 + C8FFF0DABEFFF7E2C0FFF7E1BEFFF7DFB9FF51463C5900000000000000000000 + 000000000000000000000000000000000000000000006E6D5FFF4078AFFF2380 + E4FF2380E4FF2380E4FF3D3C36FF3D3C36FF164883FF1F6EC5FF2380E4FF2380 + E4FF2380E4FF2380E4FF2380E4FF2380E4FF3D3C36FF3D3C36FF164883FF2380 + E4FF2380E4FF3770A9FF4F4E47FF000000000000000000000000000000000B39 + 71C70E4A93FF0E4B92FF0F4A92FF686754FF686754FF686754FF72725EFF7272 + 5EFF72725EFF72725EFF686854FF686754FF455C6DFF183A5EFF0E4B92FF0F4A + 92FF0B3971C700000000000000000000000000000000E4E4E4FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FF00000000000000000000000000000000000000000000 + 0000FAECD4FFF9E8CEFFF9E9CFFFF9E9CEFFF9E9CFFFF9E8CDFFF7E5CCFFF4E2 + C7FFF0DABFFFF7DFB9FFF7DFB9FFF1D8BCFF0000000000000000000000000000 + 000000000000000000000000000000000000000000006E6D5FFF6C6C5EFF6B6B + 5DFF6A695CFF69685BFFA9A98AFFB8B998FF32363FFF52544FFF636257FF6261 + 56FF626156FF5F5F54FF5E5E53FF5E5D53FFD4D4ABFFB8B998FF2C313BFF5858 + 4FFF58584FFF57564EFF79786DFF000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006C6B57FF646351FF6463 + 51FF646351FF646351FF6D6C58FF000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000 + 0000FAECD5FFF9E9CFFFF9E9CFFFF9E9CFFFF9E9CFFFF9E9CEFFF7E6CCFFF6E3 + C9FFF1DDC2FFF4DCB8FFF1D8BCFF6A5E50720000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000515044C7515044C70000000000000000000000000000 + 000000000000000000000000000000000000686758FF515044C7000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004545389B73725DFF7372 + 5DFF73725DFF73725DFF4545389B000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000F1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8 + BCFFF1D8BCFF7266587900000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000060000000A00500000100010000000000804300000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000FFFFFF8007FFE00007000000FFFFFF80FFFFC00007000000010101807FFF + E00007000000010101803FFFE00007800001010101801FFFE000078000030101 + 01800FFFE00007C000030101018007FFE00007E00007010101E003FFE00007E0 + 0007010101F001FFF0000FF0000FEFEFEFF000FFF8001FF0001FEFEFEFFC007F + FE00FFF0001FE0000FFE0007FF00FFF8001FFFEFFFFE0003FE00FFFC003FFE00 + FFFF8001FE007FFE007FFE00FFFFC000FE007FFE007FFE00FFFFC000FE007FFE + 00FFFE00FFFFF020FE007FFF00FFFE00FFFFF070FE007FFF00FFFE00FFFFF038 + FE00FFFFC1FFFE00FFFFF01CFE00FFFFC3FFFE00FFFFF81FFF00FFFFC7FFFE00 + FFFFF80FFFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFE00FF800001FFFFFF00003FFE00FF000000FFFFFF8000FFFE00FF + 000000FFFFFF8000FFFE00FF0000008007F98000FFFE00FF0000008007F18000 + FFFE00FF0000008007F18000FFFE00FF000000801FE18000FFFE00FF00000080 + 3FC38000FFFE00FF000000801F038000FFFE00FF0000008000038000F8FE00FF + 0000008000038000F8FE00FF0000008000078000F8FE00FF00000080000FFFE3 + F8E0000300000080000FFFE3F8E0000700000080001FFFE3F8F0000F000000FC + 003FFFE1F0F8001F000000FE00FFFFE1F0FC003F000000FF01FFFFE0E0FE007F + 800003FFFFFFFFF001FF00FFFFFFFFFFFFFFFFF803FF81FFFFFFFFFFFFFFFFFC + 07FFC3FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFC00007FE003FFFFFFFC0000FE0001FFE003F000000C0000FE0001F + FFC0FF800003C0000FE0001FFFC1FF800003C0000FE0001FFFC1FF800003C000 + 0FE0001FFFC1FF800003C0000FE0001FFFC1FF800003C0FC0FE0001FFFC1FF80 + 0003C0FC0FE0001FFFC1FF800003C0FC0FE0001FFFC1FF800001C0FC0FE0001F + FFC1FF800001C0FC0FE0001FFFC1FF800001C0FC0FE0001FFFC1FF800001C0C0 + 00E0001FFFC1FF800001C0C000E0001FFFC1FF800001C0C000E0001FF3C1E3FE + 007FC0F003E0001FF1C1E3FE007FC0F803800007F1C1C3FE007FC0F807800007 + F00003FFFFFFC0FE1F800007F00003FFFFFFE1FF1F800007F00003FFFFFFFFFF + 1FC0000FFFFFFFFFFFFFFFFFFFFF87FFF0000FFFFFFFFFFFFFFFFFFFF8001FFF + FFFFFFFFFFFF801FF0000FFFFFFFC00001FFE0FFE00007FFFFFFC00001FFC07F + C00003FFFFFFC00001FFC03F800001FFFFFFC00001FF001F000000FFFFFFC000 + 01FE000F000000FFFFFFC00001FE0007000000FFFFFFC00001F8000300000080 + 0003C00001F00001000000800003C00001F00000000000800003C00001C00001 + 000000E00007C00001800003000000E00007C00001800003000000F0000FC000 + 0180000F000000F0000FC0000180001F000000F0000FC0000180001F000000F0 + 000FC0000182007F800001F0001FC000018200FF800003F8001FC000018000FF + E00007FFFFFFFFFFFFC003FFF0000FFFFFFFFFFFFFE007FFF0001FFFFFFFFFFF + FFF007FFFC003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000FF01C07FC0FFFFF87FFFFFC3FF07F0FF007FFFF87FFFFF83FF83E1F + F003FFFF87FFFFF83FF8181FC000FFF8007FFFE03FFC001FC0C0FFF8007FFFC0 + 3FFC001F81E0FFF8007FFC003FFC001F83F0FFFF03FFF0001FFE003F87F8FFFE + 00FFF0001FFE001F87F8FFFC00FFF0000FF8001F83F0FFF0003FF0000FE00003 + 81E0FFF0303FF0000FC00003C0C0C7F0781FF0000F800000E00047F0FC1FF000 + 1F800000F00007F1FE1FF0001FFF80FFF00007F1FE1FF0003FFF80FFFFF807F0 + FC1FFFC03FFFC1FFFFF807F0781FFFE03FFFC1FFFFE007F0303FFFF03FFFC3FF + FFE007F8007FFFF83FFFC3FFFFE007FC00FFFFFC3FFFE7FFFFFFFFFE00FFFFFE + 3FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFF03E0FC0 + 000FE00007FF81FFF07F0780001FF8003FFE00FFF07F0780001FF8003FFE007F + F03E0780001FF8003FFE007FF03C2780001FF8003FF8001FF01847F0001FF800 + 3FF0001FF00807F0001FF8003FF0001FF0000FF0001FF8003FF0000FF8001FF0 + 001FF8003FE00007FE003FF0001FF8003FE00007FF80FFF0001FF8003FC00003 + FF80FFF0001FF8003FC00003FF00FFF0001FF8003FC00003FE087FF0001FF800 + 3FC00003FE183FF0001FF8003FC00003FE183FF0001FF8003FC00003FC3E1FF0 + 0003F8003FC00003F87F1FF00003F8003FC00003F07F0FF00003F8003FC00003 + F1FF8FF00003F8003FFF81FFF1FFCFF00003F8003FFFC3FFF3FFEFF80003F800 + 3FFFC7FFFFFFFFFFFFFFF8003FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFE00003E0 + 0003FFFFFFFFFFFFFC001FFC001FC00003E00003F0000FF0000F800003C00003 + F00007F00007800003800003E00003E00003800003800003C00003C000038000 + 03800003C00003C0000380000380000380000180000180000380000380000180 + 0001800003800003800001800001800003800003800001800001800003800003 + 8000018000018000038000038000018000018000038000038000018000018000 + 03800003800001800001800003800003C00003C00003800003800003E00003E0 + 0003800003800003F00007F00007800003800003F00007F00007800003800003 + FC001FFC001F800003800003FE003FFE003FC00003800003FF00FFFF00FFE000 + 07800003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00003E0 + 0003E00003FFFFFFFC001FFC001FFC001FFC007FF0000FF0000FF0000FF8003F + F00007F00007F00007F0001FE00003E00003E00003E0000FC00003C00003C000 + 03C00007C00003C00003C0000380000380000180000180000180000380000180 + 0001800001800003800001800001800001800003800001800001800001800003 + 8000018000018000018000038000018000018000018000038000018000018000 + 01800003800001800001800001800003C00003C00003C00003800003E00003E0 + 0003E00003800003F00007F00007F00007C00007F00007F00007F00007E0000F + FC001FFC001FFC001FF0001FFE003FFE003FFE003FF8003FFF00FFFF00FFFF00 + FFFC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFC3FFFFF8FFFC007FFFFFFFFF80E3FFF8FFF8003F + FFFFFFFF00C3FFF87FF0001FFFFFFFFE0001FFF81FE0000FFFFFFFFC0001FFF8 + 1FC00007FFFFFFF8000180000F800003800001F00003800003800003800001E0 + 0003800003800003800001E00003800001800003800001800001800001800003 + 8000018000018000018000038000018000018000038000038000018000018000 + 0780000380000180000180000F800003800001800001FFF81F800003FFFFFF80 + 0001FFF83F800003FFFFFF800001FFF87FC00007FFFFFF800001FFF8FFE0000F + FFFFFF801803FFFFFFF0001FFFFFFFC03803FFFFFFF8003FFFFFFFF03E07FFFF + FFFC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003F80 + 07FFFFFFFFFFFFFFFC003F83FFFF80007FFFFFFFF0001FC1FFFF80007FFFFFFF + F0000FE0FFFF80007FFFFFFF800003F03E7F8000639FFFFF800003F03C7F8000 + 439FE001800003F0187F8000418FE001800003FC007FC200018FF001800003FE + 007FE3000187F801800003FE007FFF000183F801800003FF803FC20001806001 + 800003FF001F800001C00001800003FE001F800001C00001C00003FC00078000 + 63E00001E00007FC000380007FF00001F0001FFC000080007FF00001F0001FFF + F80080007FF80019F0001FFFF801FE07FFFC003FF0001FFFFC03FC03FFFE007F + FC003FFFFF07F801FFFFFFFFFC003FFFFF0FF801FFFFFFFFFC003FFFFF1FF801 + FFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFF800001FFFFFFFFFFFFFFFFFFF0 + 0007800001FFFFFFFE0003F00007C00003F07FFFFC0003F00007C00003E03FFF + F80003F00007C00003C01FFFF00003F00007C000038007FFE00003F00007C000 + 038007FFE00003F00007C000038003FFE00003F00007C000038000FFE00003F0 + 0007C000038000FFE00003F00007C00003C0007FE00003F00007C00003E0001F + E00003F00007C00003F0001FE00003F00007C00003F0000FE00003F00007C000 + 03FC0007E00003F00007C00003FE0003E00003F00007C00003FE0003E00003F0 + 0007C00003FF8003E00003F00007C00003FFC003E00003F00007C00003FFC003 + E00003F00007C00003FFF007FFFFFFF00007C00003FFF80FFFFFFFFE493FC000 + 03FFFC1FFFFFFFFE493FFFFFFFFFFFFFC00FFFFFFFFFFFFFFFFFFFFFC07FFFFF + FFFFFFFFFFFE001F807FFFFFFFFF800003FFF8FF807FFFFFFFFF800003FFF0FF + 807E1FFC003F800003FFE0FF807807000000800003FFC0FFC078070000008000 + 03FF80C7E07807000000800003F00083F87807000000800003C00003F87807FC + 003F800003C00003F87C07FF00FF800003C00003F87F07FF00FF800003C00007 + F87F87FF00FF800003C00007F87F87FF00FFFC0003C00003F87F87FFC3FFFC00 + 03C00003F80F87FFC3FFFC0003C00003F80187FFC3FFFC0003E00003F80007FF + C3FFFC0003FF80C7F80007FFC3FFFC0003FFC0FFF80007FFC3FFFC0003FFC0FF + FC0007FFC3FFFC0003FFF0FFFF0007FFFFFFFFFFFFFFF8FFFFE007FFFFFFFFFF + FFFFF8FFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003FF00007FF + FFFFFFFFFFFFC3FFFC001FF0001FFFFFFFFF00FFFC001FFC003FFFFFFFFE00FF + FC001FFC003FF8000FFE007FFC001FFF00FFFF181FFE007FFC001F000000FF18 + 1FFF81FFFC001F000000FE101FF381CFFC001F000000FE007FE381C3FC001F00 + 0000FE00FFC00003FC001F000000FC00FF800001FC001F000000F8007F000000 + FC001F000000F8003F000000FC001F000000F0003F000000FC001F000000F000 + FF800003FC001F000000F003FFC381C3FC001F000000F007FFE381C7FC001F00 + 0000E03FFFFF81FFFC001F000000C0FFFFFE007FFC001F000000C3FFFFFE007F + FC001F000000FFFFFFFE00FFFC001F000000FFFFFFFF00FFFC001F000000FFFF + FFFF81FFFFFFFFFFFFFFFFFFFFFFC7FFC0000FFFFFFFFFFFFFFFFFFFE07FFFFF + FFFFFFFFFFFFFFFF803FFF80000383FFFFFFFFFF801FFFE0000F81FFFFFFFFFF + 860FFFE0000F81FFFFFFFFFF8F07FFE0000FC07FFF8000018707FFE0000FE03F + FF8000018207FFE0000FF03FFF800001C007FFE0000FF80FFF800001E007FFE0 + 000FFC07FF800001F003FFE0000FFE07FF800001F8001FE0000FFF00CF800001 + FC000FE0000FFF8007800001FFC007F0001FFFC007800001FFE003F8FE3FFFE0 + 03800001FFE001F8FE3FFFE001800001FFE061F8FE3FFFE001800001FFF0F0F8 + 7C3FFFF803800001FFF070F87C3FFFF803800001FFF820F8383FFFF003800001 + FFFC01FC007FFFF003800001FFFE03FE00FFFFFE1FFFFFFFFFFF03FF01FFFFFF + 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + E003FFFFFFFFFFFFFF3FFFFFFF01FFFFFFFFFFFFFE3FFFFFFF01800000800001 + FE3FFFFFFE01800000800003F83FFFFFF801900081800003F03FFFFFF8039000 + 81800003F00001FFF003900081800003C00001FFE00F900081800003800001F0 + 001F900081800003800001E0001F90008180000380000180007F9000FF800003 + 8000018000FF9000FF8000038000018001FF9000FF800003E000010001FF9000 + FF800003F000010001FF9FC0FF800003F03FFF0001FF9FC0FF800003FC3FFF00 + 01FF9FC0FF800003FE3FFF0001FF9FC0FF800003FE3FFF0001FF9FC0FF800003 + FFFFFF8003FF9FC0FFFFFFFFFFFFFF8007FF9FC0FFFFFFFFFFFFFFC007FF9FFF + FFFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 + 3FFFFFFFFFFFFFFF80007FC01FFFFFFFFF80000383FFFF800FFFFFFFFF800003 + 83FFFF8207FFFFFFFF80000381FFFF8F87FFFFFFFF800003807FFF8FC7FF8000 + 01800003C03FFF8FC7FF800001800003F00FFF8F07FF800001800003F000FF82 + 07FF800001800003F8003F8003FF800001800003FE001FE000FF800001800003 + FE0007F000FF800001800003FF0003FFC07F800001800003FF0003FFF01F8000 + 01800003FF0003FFF81F800001800003FF0203FFF80FEFFFFF800003FF8703FF + FE03E00003800003FF8707FFFF03FFFFFF800003FFC20FFFFF01FFFFFF800003 + FFE01FFFFF00FFFFFFFFFFFFFFE03FFFFF00FFFFFFFFFFFFFFF07FFFFF00FFFF + FFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFF00007FFFFFF800003FF + FFFFF0000FFFFFFFE00007FC007FF0000FF8001FE00007F8003FF0000FF8001F + E00007F0001FF0000FF8001FE00007E0000FF0000FF8001FE00007C00007F000 + 0FF8001FE00007800003F0000FF8001FE00007800003F0000FF8001FE0000780 + 0003F0000FF8001F800001800003F0000FF8001F800001800003F0000FF8001F + 800001800003F0000FF8001F800001800003F0000FF8001FC00003800003F000 + 0FF8001FE00007800003F0000FF8001FF0000F800003F0000FF8001FF8000F80 + 0003F0000FF8001FFC0007C00007F0000FF8001FFE0007E0000FF0000FF8001F + FF00FFF0001FF0000FF8001FFF81FFF8003FF0000FF8001FFFC3FFFC007FF000 + 0FF8001FFFFFFFFFFFFFF8001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFF + FFFFFC003FFE00FFF8001FFFFFFFFF81FFF6004FF0001FFFFFFFFF00FFE80003 + F0000FFFFFFFFE00FFC0001BC00003000000FC003FA00005C00003000000F800 + 1FE00005800003000000F0001FC00001800001000000E0000F803C0180000100 + 0000E00007807E01800001000000C0000380FF0180000100000080000380FF01 + 80000100000080000380FF0180000100000080000180FF018000010000008000 + 01807E01800001800001800001803C01800003800003800001C00001C00003E0 + 0007800001E00007C00003F0000F800001E00007E00007FFFFFF800001B0000F + F0001FFFFFFFC03803D80013F8001FFFFFFFF03E07CE0067FE007FFFFFFFFFFF + FFF300CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000FFFF + BFFFFFFFFFF0001FF1FFFFFF8FFF000000F8001FF1FFFFFF8FFF800001F8001F + F1FFFFFF87FF800001F8001FF1FFFFFF87FF800001C00003F1FFFFFF83FF8000 + 01800003F1FFFFFFC3FF800001800003F1FFFFFFC0FF800001C03C03F1FFFFFF + C0FF800001C07E03F1FFFFFFC0FF80000180FF03F00003FE007F80000181FF01 + F00003FE003F80000181FF01F00003FE003F80000180FF01F00003FE001F8000 + 01C07E03F00003FE001F800001C03C03F00003FE01FF800001801803F00003FE + 00FF800001800003F00003FE00FF800001C00003F00003FE00FF803FFFF8001F + F00003FE007F807FFFF8001FF001F3FE003F80FFFFF8001FF0FFFFFE003FFFFF + FFFCC33FF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0003800001FF9FFF807E03E00007CC0033FF87FF807E03E00007CC0033FF87FF + 80FF03E00007C00003FF83FF807E03E00007C00003FF81FF803C03E00007CC00 + 33FF81FF803803E00007CC0033FF81FF880013E00007C00003FF81FFFC003FE0 + 0007C00003FF81FFFE007FE00007CC0033FF81FFFF00FFE00007C00003FF00FF + FF00FFE00007C00003FE007FFE00FFE00007C00003FE003FFC003FE00007CC00 + 33F8001F880013E00007C00003F0000F801803E00007C00003F00007803C03E0 + 0007CC0033C00003807E03E00007CC003380000180FF03E00007C00003800001 + 807E03E00007C00003800001807E03E0000FCC0033800001807E03E0001FCC00 + 33800001FFFFFFE0003FC00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFC00003800001C1FFFFFC007F800003800001C0FFFFF8003F + 800003800001E03FFFF0001F800003800001F00FFFE0000F800003800001F007 + FFC00007800003800001F007FF800003800003800001F001FF80000380000380 + 0001F800FF800003800003800001F800FF800003800003800001FE003F800003 + 800003800001FE001F800003800003800001FF001F800003800003800001FFC0 + 07800003800003800001FFC003800003800003800001FFE00380000380000380 + 0001FFF801800003800003803FFFFFF801C00007800003803FFFFFFC01E0000F + 80000380FFFFFFFF01F0001FC00003FFFFFFFFFF83F8003FE00007FFFFFFFFFF + C3FC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000FFFF7FFF03E0780 + 0001F0001FFFC7FFE07E07E00007F0001FFF81FFC03C03E00007F0001FFF00FF + 803803E00007F0001FFE00FF800001E00007F0001FFC003F800001E00007F000 + 1FF8001F800001E00007F0001FF0001FC00003E00007F0001FE00007E00007E0 + 0007F0001FE00003F0000FE00007F0001FE00007F8001FE00007F0001FFE00FF + F8001FE00007F0001FFE00FFF0001FE00007F0001FFE00FFE00007E00007F000 + 1FFE00FFC00003E00007F0001FFE00FF800003E00007F0001FFE00FF800001E0 + 0007F0001FFE00FF800001E00007F0001FFE00FF801801E00007F0001FFE00FF + C03C03E00007F0001FFE00FFE07E07E0000FF0001FFE00FFF0FF0FE0001FF000 + 1FFE00FFFFFFFFE0003FF0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + F0E3FF00FFFFFFFFFFF1FFFFF003FC001FE0000FFFE1FFFFF003F0000FE0000F + FFE1FFFFF003F00007E0000FFFC1FFFE001FE00003E0000FC00003FE001FC000 + 03E0000F800003FE001FC00003E0000F800001C0021F800001E0000F800001C0 + 021F800001E0000F800001C0021F800001E0000F800001C0021F800001E0000F + 800001C0021F800001E0000F800001C0021F800001E0000F800001C0021F8000 + 01E0000F800001C0021F800001E0000F800001C0021FC00003E0000F800001C0 + 021FE00003E0000F800001C0021FF00007E0000F800001C0021FF00007E0000F + 800001FE001FFC001FE0000F800001FE001FFE003FE0000F800003FE001FFF00 + FFF0001FFFFFFFFFFFFFFFFFFFFFFFFFF8001FFFFFFFFFFFFFFF00FFFC003FFF + FFFF800001FE003FF0000FFC03FFE00007F0000FE00007F803FFE00007F00007 + C00003F003FFE00007E00003800003E001FFE00007C00003800001C001FFE000 + 07800001800001C001FFE00007800001000000E000FFE00007800000000000F0 + 40FFE00007800000000800F0C0FFE00007800000003800FFE07FE00007800000 + 003C00FFE03FE00007800000003800FFF03FE00007800000000000FFF81FE000 + 07800000000000FFF81FE00007800000000000FFFC0FE00007800001800001FF + FF03E00007C00003800003FFFF03E00007C00003800003FFFF83E00007E00003 + E00007FFFFE1E00007F0000FF0000FFFFFFFF0000FF8001FF0001FFFFFFFFE00 + FFFE003FFE00FFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8001FFF + FFFFFFFFFFFFFFFFF8001FFFFFFF800003C1F0FFF0000F840023800003C0007F + F00007840021800003C000FFE00003840021800003E3F8FFC01E038E00618000 + 03FFFC7FC00F03840021800003FFFC7F80078180000180000380003F8003C180 + 000180000380003F8001C180000180000380003F8100C180000180000380001F + 81804180000180000380001F81C00180000180000380001F81E0018000018000 + 0380001F81F001800001E0000780000FC0F803800001E0000780000FE0000380 + 0001E00007C00007E00007800001FFFFFFFFE007F00007800001FFFFFFFFFFC1 + F8001FFFFFFFFFFFFFFFFFE1FE003FFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80001FFFFFFFFFFFFFFFFFFFC00003FF + FFFF800003FFFFFFC0000780001FC00007FFFFFFC0000780000FC00007800003 + C00007800007C00007800001C00007800003C00007800001C00007800003C000 + 07800001C00007800003C00007800001C00007800003C00007800001C0000780 + 0003C00007800001C00007800003C00007800001C00007800003C00007800001 + C00007800003C00007800001C00007800003C00007800001C00007800003C000 + 07800001C00007800003C00007800001C00007800003C00007800003C0001F80 + 0003C00007E00007C0001F800003C00007F8001FC001FF800003C00007FFC01F + C001FF800003C00007FFFFFFC001FF800003C00007FFFFFFC001FFFFFFFFC000 + 07FFFFFFF007FFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFFFFFFFFFFFFFFFFFFFFF9 + F3FFFFFFFFFFFFFFE00007F8E3FF000000FFFFFFC00003F843FF000000800003 + C00003F803FF000000800003C00003F803FF000000800003C00003F803FF0000 + 00800003C00003F803FF000000800003C00003F803FF000000800003C00003F8 + 03FF000000800003C00003F803FF000000800003800001F803FF000000800003 + 800001F803FF000000800003800001F8001F000000800003800001F8001F0000 + 00800003FFC7FFF8001F000000800003FFC7FFF8001F000000800003FFC7FFF8 + 001F000000800003FFC7FFF8001F800001800003FFC7FFF8001FFE3CFF800003 + FFC7FFF8001FFE00FFFFFFFFFFC7FFF8001FFE00FFFFFFFFFFC7FFF8001FFE00 + FFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFE0000FFF + C1FFFFFFFFF8001FE0000FFE003FFE7E7FFE00FFE0000FFC001FF83C1FFE18FF + E0000FF8000FF03C1FFE38FFC00007F00003F0181FFE3CFFC00007C0C181F818 + 1FFC38FF800003C1C1C1F8001FFC38FF800003C1C1C1FE007FFC38FF800003C1 + C1E1FE007FFC38FF800003C3E3E1FE00FFFC38FF800003CFE3F9800001FC38FF + 800003CFE3FD800001FC38FF800003FF80FF800001FC38FF800003FF80FF8000 + 01FC38FF800003FFE3FFFE00FFFC30FF800003FFC1FFFE007FFC30FF800003FF + 80FFFC003FFC00FF800003FF80FFFC001FFC84FF800003FF88FFF8181FFCFCFF + 800003FF80FFF0381FFC38FFC06C07FF80FFF03C1FFC00FFF0C60FFFC0FFF83C + 1FFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + E003FC001FC0001F000000FFFF01FF00FFC00007000001FFFF01FF00FFC00007 + 000001FFFE01FF00FFC00007000001FFF801FF00FFC00007000001FFF803FF00 + FFC00007000001FFF003FF00FFC00007000001FFE00F800000C00007000001F0 + 001F800000C00007000000E0001F800000C0000700000080007F800000C00007 + 0000008000FF800000C000070000008001FF800000C000070000000001FF8000 + 00C000070000010001FF800000C000070000010001FF800000C0000700000100 + 001FFF00FFC0000700000100001FFF00FFC0000700000100001FFF00FFC00007 + 0000018003FFFF00FFC000070000018007FFFF00FFC00007000001C007FFFF00 + FFC00007FFFFFFF03FFFFF00FFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFE000F00 + 0000FC001FFFFFFFFC0007000000FC001F000000FA000FF0000FFC001F000001 + F00FFFF0000FFC001F800001F007FFF0000FFC001F800001E003FFF00007FC00 + 1F8000018003FFF00007FC001F8000018001FFF00007FC001FC000030001FFF0 + 0007FC001FE0000701807FF00003FC001FF0000F03C07FE00003FC003FFF00FF + 87E07FE00003000001FF81FF87F03FE00003000001FF00FFFFF81FE000018000 + 03FF00FFFFFC0F800001C00007FE00FFFFFE0F800001E0000FFE00FFFFFF0780 + 0001F0001FFE00FFFFFF87800001F8003FFE00FFFFFFC1800001FC007FFE00FF + FFFFE1800000FE00FFFF00FFFFFFF1800001FF01FFFF00FFFFFFF8800001FF83 + FFFF81FFFFFFFCE00003FFC7FFFFFFFFFFFFFFF0000FFFFFFF000001F8000FF0 + 000F000000000041FE003FFFF1FF800001800041000000FFF0FF800005800041 + 000000FFF07F80000180004180000100103F80000180004180000100000F8000 + 0180004180000100000780000180004180000100000380000180004180000100 + 0003800001800041800001000000800001800041800001000000800001800041 + 80000100000080000180006380000100000080000180007F8000010000018000 + 0180007F80000100000380000180007FE4000700000780000180007FFC003F00 + 000F80000180007FFC003FFFF01F80000180007FFC003FFFF03F800001803FFF + FC003FFFF07F800001803FFFFC003FFFF0FF800001803FFFFC003FFFF1FF8000 + 01803FFFFFFFFFFFF7FFFFFFFF807FFFFFFFFFF8003F88007FFFFFFF000000FE + 003F800000000000800001FE00FFFE00FF800001800000FE00FFFE00FF800001 + 800000FF01FFFE00FF800001800000FF01FFFE00FF800001800000000000FE00 + FF800001800000000000FE00FF80000180000000000000000180000180000000 + 0000000001800001800000000000000001800001800000000000000001800001 + 8000000000000000018000008000000000000000018000008000000000000000 + 01800000800001000000000001800000800001000000000001800000C0000300 + 0000FE00FF800000E00007000000FE00FF800000F0000F000000FE00FF800001 + F8001F000000FE00FF800001FC003F000000FE00FF801801FE007F000000FE00 + FF803E01FFFFFF000000FE00FFC1FFC1F0000FFFFFFFFFFFFFE0001FF0000FFF + FFFF800001E0001FFF83FFFFFFFFE00007FF8FFFFF00FFFFFFFFE00007FF0FFF + FE007F000001E00007FE0FFFFC003F000001F0000FFC0800F8003F800007F000 + 0FF00000F0000F800003F0000FE00000E0000F800003F0000FC00000C0000780 + 0001F0000FC00000800001800001E00007000000000001800001E00007000000 + 000001800001E00007000000FC003F800000E00007000000FC003F800000E000 + 07800000FC003F800000E00007C00000FC003F800007F0000FE00000FC003F80 + 0007F8001FF00000FC003F800007FC003FF80FFFFC003F80000FFE007FFC0FFF + FC003F803FFFFF007FFE0FFFFC003FFFFFFFFF807FFF0FFFFC003FFFFFFFFFC0 + 7FFF8FFFFC003FFFFFFFFFE7FFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFF00000080 + 0001000001E00001800001E00007000001C00001800001E00007800001F00003 + 800001E00007800001F00003800001E00007800001F00003800001E000078000 + 01F00003800001E00007800001F00003800001E00007800001F00003800001E0 + 0007800001F00003800001E00007800001F00003800001E00007800001F00003 + 800001E00007800001F00003800001E00007800001F00001800001E000078000 + 01F00001800001E00007800001F00001800001E00007800001F00003800001E0 + 0007800001F0000F800001E00007800001F0000F800001E00007800001F0001F + 800001E00007800001F0007F800001E00007800001F0007F800001FF81FF8000 + 01F000FFFCFF3FFF81FFFFFFFFF003FF00000000000000000000000000000000 + 000000000000} + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 236 + Top = 264 + end +end diff --git a/盛纺贸易管理/U_ZJInPut.dfm b/盛纺贸易管理/U_ZJInPut.dfm new file mode 100644 index 0000000..e967907 --- /dev/null +++ b/盛纺贸易管理/U_ZJInPut.dfm @@ -0,0 +1,311 @@ +object frmZJInPut: TfrmZJInPut + Left = 235 + Top = 123 + Width = 804 + Height = 590 + Caption = #36136#26816#25253#21578#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 788 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + Caption = #20445#23384 + ImageIndex = 15 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 59 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 21 + OnClick = TBCloseClick + end + end + object ScrollBox1: TScrollBox + Left = 0 + Top = 29 + Width = 788 + Height = 522 + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + Color = clBtnFace + Ctl3D = False + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Panel3: TPanel + Left = 0 + Top = 0 + Width = 786 + Height = 520 + Align = alClient + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Label1: TLabel + Left = 26 + Top = 54 + Width = 65 + Height = 12 + Caption = #36136#26816#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 453 + Top = 54 + Width = 52 + Height = 12 + Caption = #36127#36131#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 225 + Top = 54 + Width = 52 + Height = 12 + Caption = #20379#24212#21830#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 595 + Top = 22 + Width = 67 + Height = 12 + Caption = #20811' '#37325#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 453 + Top = 22 + Width = 53 + Height = 12 + Caption = #38376' '#24133#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label33: TLabel + Left = 26 + Top = 22 + Width = 66 + Height = 12 + Caption = #35746' '#21333' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label34: TLabel + Left = 225 + Top = 22 + Width = 53 + Height = 12 + Caption = #21697' '#21517#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 26 + Top = 471 + Width = 66 + Height = 12 + Caption = #35760' '#24405' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 596 + Top = 54 + Width = 65 + Height = 12 + Caption = #36136#26816#32467#26524#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 26 + Top = 86 + Width = 65 + Height = 12 + Caption = #35814#32454#20449#24687#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ZJFZPerson: TEdit + Left = 501 + Top = 51 + Width = 81 + Height = 18 + TabOrder = 0 + end + object ZJKZ: TEdit + Left = 656 + Top = 19 + Width = 81 + Height = 18 + TabOrder = 1 + end + object ZJMF: TEdit + Left = 501 + Top = 19 + Width = 81 + Height = 18 + TabOrder = 2 + end + object OrderNo: TEdit + Left = 101 + Top = 19 + Width = 108 + Height = 18 + TabOrder = 3 + end + object ZJPerson: TEdit + Left = 101 + Top = 468 + Width = 108 + Height = 18 + TabOrder = 4 + end + object ZJStatus: TComboBox + Left = 656 + Top = 50 + Width = 81 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 5 + Items.Strings = ( + #36890#36807 + #19981#36890#36807) + end + object ZJInfo: TRichEdit + Left = 101 + Top = 84 + Width = 637 + Height = 371 + ScrollBars = ssBoth + TabOrder = 6 + end + object ZJDate: TDateTimePicker + Left = 101 + Top = 50 + Width = 109 + Height = 20 + Date = 42240.000000000000000000 + Time = 42240.000000000000000000 + TabOrder = 7 + end + object FactoryName: TBtnEditA + Left = 282 + Top = 50 + Width = 153 + Height = 20 + Hint = 'FactoryNo' + ReadOnly = True + TabOrder = 8 + OnBtnClick = FactoryNameBtnClick + end + object ZJName: TEdit + Left = 282 + Top = 19 + Width = 153 + Height = 18 + TabOrder = 9 + end + end + end + object ADOTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 640 + Top = 65533 + end + object ADOCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 584 + Top = 65533 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 608 + Top = 65533 + end +end diff --git a/盛纺贸易管理/U_ZJInPut.pas b/盛纺贸易管理/U_ZJInPut.pas new file mode 100644 index 0000000..76d5069 --- /dev/null +++ b/盛纺贸易管理/U_ZJInPut.pas @@ -0,0 +1,245 @@ +unit U_ZJInPut; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, + cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, + ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit,jpeg, + IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC, + cxGridCustomPopupMenu, cxGridPopupMenu, FTComboBox; + +type + TfrmZJInPut = class(TForm) + ToolBar1: TToolBar; + TBClose: TToolButton; + ScrollBox1: TScrollBox; + ADOTemp: TADOQuery; + ADOCmd: TADOQuery; + ADOQuery1: TADOQuery; + TBSave: TToolButton; + Panel3: TPanel; + Label1: TLabel; + Label7: TLabel; + Label10: TLabel; + Label11: TLabel; + Label13: TLabel; + Label33: TLabel; + Label34: TLabel; + ZJFZPerson: TEdit; + ZJKZ: TEdit; + ZJMF: TEdit; + OrderNo: TEdit; + Label2: TLabel; + ZJPerson: TEdit; + Label3: TLabel; + Label4: TLabel; + ZJStatus: TComboBox; + ZJInfo: TRichEdit; + ZJDate: TDateTimePicker; + FactoryName: TBtnEditA; + ZJName: TEdit; + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure FactoryNameBtnClick(Sender: TObject); + private + procedure InitData(); + function SaveData():Boolean; + { Private declarations } + public + canshu1:String; + PState,CopyInt:Integer; + FMainId:String; + { Public declarations } + end; + +var + frmZJInPut: TfrmZJInPut; +implementation +uses + U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_GYSList; + +{$R *.dfm} + +procedure TfrmZJInPut.TBCloseClick(Sender: TObject); +begin + Close; +end; + +procedure TfrmZJInPut.InitData(); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_ZhiJian where ZJId='''+Trim(FMainId)+''''); + Open; + end; + SCSHDataNew(ADOQuery1,Panel3,0); + if PState=0 then + begin + ZJDate.Date:=SGetServerDate(ADOTemp); + ZJPerson.Text:=Trim(DName); + end; +end; + + +procedure TfrmZJInPut.FormShow(Sender: TObject); +begin + InitData(); +end; + +function TfrmZJInPut.SaveData():Boolean; +var + maxno:String; +begin + Result:=False; + try + ADOCmd.Connection.BeginTrans; + /// + if Trim(FMainId)='' then + begin + if GetLSNo(ADOCmd,maxno,'ZJ','JYOrder_ZhiJian',3,1)=False then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(FMainId); + end; + with ADOCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrder_ZhiJian where ZJId='''+Trim(FMainId)+''''); + Open; + end; + with ADOCmd do + begin + if Trim(FMainId)='' then + begin + Append; + end + else begin + Edit; + end; + FieldByName('ZJId').Value:=Trim(maxno); + if Trim(FMainId)='' then + begin + FieldByName('Filler').Value:=Trim(DName); + end else + begin + FieldByName('Editer').Value:=Trim(DName); + FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); + end; + RTSetsavedata(ADOCmd,'JYOrder_ZhiJian',Panel3,0); + FieldByName('Valid').Value:='Y'; + FieldByName('Status').Value:=''; + Post; + end; + {if Trim(KHName.Text)<>'' then + begin + with ADOTemp do + begin + Close; + sql.Clear; + sql.Add('select * from ZH_KH_Info where KHName='''+Trim(KHName.Text)+''''); + SQL.Add(' and Type=''GYS'' '); + Open; + end; + if ADOTemp.RecordCount>1 then + begin + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('Ӧظ!','ʾ',0); + Exit; + end; + end; } + ADOCmd.Connection.CommitTrans; + FMainId:=Trim(maxno); + Result:=True; + except + Result:=False; + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TfrmZJInPut.TBSaveClick(Sender: TObject); +begin + ToolBar1.SetFocus; + if Trim(OrderNo.Text)='' then + begin + Application.MessageBox('ŲΪգ','ʾ',0); + Exit; + end; + if Trim(ZJName.Text)='' then + begin + Application.MessageBox('ƷΪ!','ʾ',0); + Exit; + end; + if Trim(ZJMF.Text)='' then + begin + Application.MessageBox('ŷΪ!','ʾ',0); + Exit; + end; + if Trim(ZJKZ.Text)='' then + begin + Application.MessageBox('زΪ!','ʾ',0); + Exit; + end; + if Trim(FactoryName.Text)='' then + begin + Application.MessageBox('Ӧ̲Ϊ!','ʾ',0); + Exit; + end; + if Trim(ZJFZPerson.Text)='' then + begin + Application.MessageBox('˲Ϊ!','ʾ',0); + Exit; + end; + if Trim(ZJStatus.Text)='' then + begin + Application.MessageBox('ʼΪ!','ʾ',0); + Exit; + end; + if Trim(ZJInfo.Text)='' then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + if Trim(ZJPerson.Text)='' then + begin + Application.MessageBox('¼˲Ϊ!','ʾ',0); + Exit; + end; + if SaveData() then + begin + Application.MessageBox('ɹ','ʾ',0); + end; +end; + +procedure TfrmZJInPut.FactoryNameBtnClick(Sender: TObject); +begin + try + frmGYSList:=TfrmGYSList.Create(Application); + with frmGYSList do + begin + if ShowModal=1 then + begin + Self.FactoryName.Text:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyName').AsString); + Self.FactoryName.TxtCode:=Trim(frmGYSList.CDS_HZ.fieldbyname('ZdyCode').AsString); + end; + end; + finally + frmGYSList.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ZJManage.dfm b/盛纺贸易管理/U_ZJManage.dfm new file mode 100644 index 0000000..8923582 --- /dev/null +++ b/盛纺贸易管理/U_ZJManage.dfm @@ -0,0 +1,2093 @@ +object frmZJManage: TfrmZJManage + Left = 5 + Top = 33 + Width = 1238 + Height = 760 + Caption = 'frmZJManage' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 22 + Top = 25 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 22 + Top = 93 + Width = 62 + Height = 29 + Caption = #24133#23485 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 22 + Top = 157 + Width = 62 + Height = 29 + Caption = #38271#24230 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 22 + Top = 222 + Width = 62 + Height = 29 + Caption = #37325#37327 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 22 + Top = 362 + Width = 62 + Height = 29 + Caption = #30133#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 22 + Top = 281 + Width = 62 + Height = 29 + Caption = #36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Edit1: TEdit + Left = 88 + Top = 21 + Width = 297 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Text = 'Edit1' + end + object ScrollBox1: TScrollBox + Left = 88 + Top = 339 + Width = 501 + Height = 342 + TabOrder = 1 + object SpeedButton13: TSpeedButton + Left = 3 + Top = 3 + Width = 80 + Height = 80 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton14: TSpeedButton + Left = 85 + Top = 3 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton15: TSpeedButton + Left = 167 + Top = 3 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton16: TSpeedButton + Left = 249 + Top = 3 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton17: TSpeedButton + Left = 331 + Top = 3 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton18: TSpeedButton + Left = 413 + Top = 3 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton19: TSpeedButton + Left = 3 + Top = 85 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton20: TSpeedButton + Left = 85 + Top = 85 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton21: TSpeedButton + Left = 167 + Top = 85 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton22: TSpeedButton + Left = 249 + Top = 85 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton23: TSpeedButton + Left = 331 + Top = 85 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton24: TSpeedButton + Left = 413 + Top = 85 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton25: TSpeedButton + Left = 3 + Top = 168 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton26: TSpeedButton + Left = 85 + Top = 168 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton27: TSpeedButton + Left = 167 + Top = 168 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton28: TSpeedButton + Left = 249 + Top = 168 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton29: TSpeedButton + Left = 331 + Top = 168 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton30: TSpeedButton + Left = 413 + Top = 168 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton31: TSpeedButton + Left = 3 + Top = 251 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton32: TSpeedButton + Left = 85 + Top = 251 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton33: TSpeedButton + Left = 167 + Top = 251 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton34: TSpeedButton + Left = 249 + Top = 251 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton35: TSpeedButton + Left = 331 + Top = 251 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object SpeedButton36: TSpeedButton + Left = 413 + Top = 251 + Width = 80 + Height = 80 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + end + object Button1: TButton + Left = 424 + Top = 16 + Width = 145 + Height = 57 + Caption = #30133#28857#23450#20041 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + end + object Button2: TButton + Left = 584 + Top = 16 + Width = 145 + Height = 57 + Caption = #20998#20999#35774#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button2Click + end + object Button3: TButton + Left = 744 + Top = 16 + Width = 145 + Height = 57 + Caption = #25171' '#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + end + object MovePanel1: TMovePanel + Left = 546 + Top = 382 + Width = 439 + Height = 299 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 5 + Visible = False + object Label17: TLabel + Left = 50 + Top = 47 + Width = 120 + Height = 29 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 237 + Top = 116 + Width = 30 + Height = 29 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 353 + Top = 55 + Width = 16 + Height = 29 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 353 + Top = 167 + Width = 16 + Height = 29 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 51 + Top = 116 + Width = 112 + Height = 29 + Caption = 'Label21' + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Edit50: TEdit + Left = 171 + Top = 47 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + end + object Button4: TButton + Left = 73 + Top = 223 + Width = 75 + Height = 49 + Caption = #30830#23450 + TabOrder = 1 + end + object Button5: TButton + Left = 299 + Top = 223 + Width = 75 + Height = 49 + Caption = #21462#28040 + TabOrder = 2 + end + object Edit51: TEdit + Left = 171 + Top = 157 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + end + end + object cxGrid2: TcxGrid + Left = 552 + Top = 334 + Width = 337 + Height = 337 + TabOrder = 6 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#31181#31867 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 83 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Width = 59 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 61 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 64 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 984 + Top = 344 + Width = 201 + Height = 333 + TabOrder = 7 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object cxGridDBColumn1: TcxGridDBColumn + Caption = #24050#32463#30331#35760#30340#23567#21367 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 186 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Panel5: TPanel + Left = 589 + Top = 337 + Width = 625 + Height = 172 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 8 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 80 + Height = 80 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 88 + Top = 3 + Width = 80 + Height = 80 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 172 + Top = 3 + Width = 80 + Height = 80 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 256 + Top = 3 + Width = 80 + Height = 80 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 340 + Top = 3 + Width = 80 + Height = 80 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 4 + Top = 87 + Width = 80 + Height = 80 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 88 + Top = 87 + Width = 80 + Height = 80 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 172 + Top = 87 + Width = 80 + Height = 80 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 256 + Top = 87 + Width = 80 + Height = 80 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 340 + Top = 87 + Width = 80 + Height = 80 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 424 + Top = 87 + Width = 80 + Height = 80 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 424 + Top = 3 + Width = 80 + Height = 80 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 517 + Top = 37 + Width = 91 + Height = 82 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object Button6: TButton + Left = 904 + Top = 16 + Width = 145 + Height = 57 + Caption = #37325#26032#25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + end + object Panel6: TPanel + Left = 88 + Top = 78 + Width = 1122 + Height = 258 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 10 + object Panel1: TPanel + Left = 8 + Top = 7 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object Edit2: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + end + object Edit3: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + end + object Edit4: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + end + object Edit5: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + end + object Edit6: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + end + object Edit7: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + end + object Edit8: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + end + object Edit9: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + end + object Edit10: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + end + object Edit11: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + end + object Edit12: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + end + object Edit13: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + end + end + object Panel2: TPanel + Left = 8 + Top = 71 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Edit14: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + end + object Edit15: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + end + object Edit16: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + end + object Edit17: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object Edit18: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object Edit19: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + end + object Edit20: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + end + object Edit21: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + end + object Edit22: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + end + object Edit23: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + end + object Edit24: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + end + object Edit25: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + end + end + object Panel3: TPanel + Left = 8 + Top = 132 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object Edit26: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + end + object Edit27: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + end + object Edit28: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + end + object Edit29: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object Edit30: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + end + object Edit31: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + end + object Edit32: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + end + object Edit33: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + end + object Edit34: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + end + object Edit35: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + end + object Edit36: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + end + object Edit37: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + end + end + object Panel4: TPanel + Left = 8 + Top = 197 + Width = 1105 + Height = 53 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Edit38: TEdit + Tag = 1 + Left = 27 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + OnClick = Edit38Click + end + object Edit39: TEdit + Tag = 2 + Left = 119 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + OnClick = Edit38Click + end + object Edit40: TEdit + Tag = 3 + Left = 211 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + OnClick = Edit38Click + end + object Edit41: TEdit + Tag = 4 + Left = 303 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + OnClick = Edit38Click + end + object Edit42: TEdit + Tag = 5 + Left = 395 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + OnClick = Edit38Click + end + object Edit43: TEdit + Tag = 6 + Left = 487 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + OnClick = Edit38Click + end + object Edit44: TEdit + Tag = 7 + Left = 578 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + OnClick = Edit38Click + end + object Edit45: TEdit + Tag = 8 + Left = 670 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + OnClick = Edit38Click + end + object Edit46: TEdit + Tag = 9 + Left = 762 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + OnClick = Edit38Click + end + object Edit47: TEdit + Tag = 10 + Left = 854 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + OnClick = Edit38Click + end + object Edit48: TEdit + Tag = 11 + Left = 946 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + OnClick = Edit38Click + end + object Edit49: TEdit + Tag = 12 + Left = 1038 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + OnClick = Edit38Click + end + end + end + object Panel7: TPanel + Left = 83 + Top = 79 + Width = 1115 + Height = 242 + TabOrder = 11 + Visible = False + object Label7: TLabel + Left = 22 + Top = 35 + Width = 62 + Height = 29 + Caption = #23494#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 502 + Top = 37 + Width = 124 + Height = 29 + Caption = #20998#20999#20010#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Panel10: TPanel + Left = 1 + Top = 1 + Width = 1113 + Height = 23 + Align = alTop + Alignment = taLeftJustify + BevelOuter = bvNone + Caption = #36873#21333 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + end + object Button7: TButton + Left = 160 + Top = 166 + Width = 81 + Height = 67 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button7Click + end + object Button8: TButton + Left = 880 + Top = 169 + Width = 73 + Height = 65 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button8Click + end + object Panel8: TPanel + Left = 8 + Top = 87 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Edit52: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = Edit64Click + end + object Edit53: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = Edit64Click + end + object Edit54: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = Edit64Click + end + object Edit55: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = Edit64Click + end + object Edit56: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = Edit64Click + end + object Edit57: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = Edit64Click + end + object Edit58: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = Edit64Click + end + object Edit59: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = Edit64Click + end + object Edit60: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = Edit64Click + end + object Edit61: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = Edit64Click + end + object Edit62: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = Edit64Click + end + object Edit63: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = Edit64Click + end + end + object Edit64: TEdit + Tag = 1 + Left = 97 + Top = 32 + Width = 240 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + PasswordChar = '*' + TabOrder = 4 + OnClick = Edit64Click + end + object Button9: TButton + Left = 344 + Top = 30 + Width = 89 + Height = 43 + Caption = #23494#30721#30830#35748 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + OnClick = Button9Click + end + object ComboBox1: TComboBox + Left = 632 + Top = 34 + Width = 145 + Height = 41 + Style = csDropDownList + DropDownCount = 15 + Enabled = False + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ItemHeight = 33 + ParentFont = False + TabOrder = 6 + OnChange = ComboBox1Change + Items.Strings = ( + '1' + '2' + '3' + '4' + '5' + '6' + '7' + '8' + '9' + '10' + '11' + '12') + end + end + object cxStyleRepository5: TcxStyleRepository + Left = 960 + Top = 16 + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 1008 + Top = 56 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 886 + Top = 119 + end +end diff --git a/盛纺贸易管理/U_ZJManage.pas b/盛纺贸易管理/U_ZJManage.pas new file mode 100644 index 0000000..775c616 --- /dev/null +++ b/盛纺贸易管理/U_ZJManage.pas @@ -0,0 +1,391 @@ +unit U_ZJManage; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, Buttons, ExtCtrls, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, MovePanel, ADODB; + +type + TfrmZJManage = class(TForm) + Edit1: TEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + SpeedButton29: TSpeedButton; + SpeedButton30: TSpeedButton; + SpeedButton31: TSpeedButton; + SpeedButton32: TSpeedButton; + SpeedButton33: TSpeedButton; + SpeedButton34: TSpeedButton; + SpeedButton35: TSpeedButton; + SpeedButton36: TSpeedButton; + Button1: TButton; + Button2: TButton; + Button3: TButton; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Edit50: TEdit; + Button4: TButton; + Button5: TButton; + Edit51: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Panel5: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + Button6: TButton; + Panel6: TPanel; + Panel1: TPanel; + Edit2: TEdit; + Edit3: TEdit; + Edit4: TEdit; + Edit5: TEdit; + Edit6: TEdit; + Edit7: TEdit; + Edit8: TEdit; + Edit9: TEdit; + Edit10: TEdit; + Edit11: TEdit; + Edit12: TEdit; + Edit13: TEdit; + Panel2: TPanel; + Edit14: TEdit; + Edit15: TEdit; + Edit16: TEdit; + Edit17: TEdit; + Edit18: TEdit; + Edit19: TEdit; + Edit20: TEdit; + Edit21: TEdit; + Edit22: TEdit; + Edit23: TEdit; + Edit24: TEdit; + Edit25: TEdit; + Panel3: TPanel; + Edit26: TEdit; + Edit27: TEdit; + Edit28: TEdit; + Edit29: TEdit; + Edit30: TEdit; + Edit31: TEdit; + Edit32: TEdit; + Edit33: TEdit; + Edit34: TEdit; + Edit35: TEdit; + Edit36: TEdit; + Edit37: TEdit; + Panel4: TPanel; + Edit38: TEdit; + Edit39: TEdit; + Edit40: TEdit; + Edit41: TEdit; + Edit42: TEdit; + Edit43: TEdit; + Edit44: TEdit; + Edit45: TEdit; + Edit46: TEdit; + Edit47: TEdit; + Edit48: TEdit; + Edit49: TEdit; + Panel7: TPanel; + Panel10: TPanel; + Button7: TButton; + Button8: TButton; + Panel8: TPanel; + Edit52: TEdit; + Edit53: TEdit; + Edit54: TEdit; + Edit55: TEdit; + Edit56: TEdit; + Edit57: TEdit; + Edit58: TEdit; + Edit59: TEdit; + Edit60: TEdit; + Edit61: TEdit; + Edit62: TEdit; + Edit63: TEdit; + Edit64: TEdit; + Label7: TLabel; + Button9: TButton; + Label8: TLabel; + ComboBox1: TComboBox; + ADOQueryTemp: TADOQuery; + procedure Edit38Click(Sender: TObject); + procedure Edit64Click(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Button9Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure ComboBox1Change(Sender: TObject); + procedure Button7Click(Sender: TObject); + private + { Private declarations } + procedure ClearSpenndHit(); + procedure VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); + function ChkEditNULL(panel55:TWinControl):Boolean; + public + { Public declarations } + end; + +var + frmZJManage: TfrmZJManage; + +implementation +uses +U_DataLink,U_Fun,U_ZDYHelp,U_iniParam,AES,ElAES; + +{$R *.dfm} + +procedure TfrmZJManage.Edit38Click(Sender: TObject); +begin + if Trim(TcxTextEdit(Sender).Text)='' then + begin + TcxTextEdit(Sender).Text:=''; + end else + begin + TcxTextEdit(Sender).Text:=''; + end; +end; + +procedure TfrmZJManage.Edit64Click(Sender: TObject); +var + i:Integer; +begin + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; +end; +procedure TfrmZJManage.ClearSpenndHit(); +var + i:Integer; +begin + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=''; + end; + end; + end; +end; +procedure TfrmZJManage.VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + Controls[i].Visible:=XS; + end; + end; +end; + +procedure TfrmZJManage.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManage.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManage.Button2Click(Sender: TObject); +begin + Panel7.Visible:=True; +end; + +procedure TfrmZJManage.Button8Click(Sender: TObject); +begin + Panel7.Visible:=False; + Edit64.Text:=''; + ComboBox1.ItemIndex:=-1; + ComboBox1.Enabled:=False; + VisbleControl(Panel8,False,Panel8.ControlCount); +end; + +procedure TfrmZJManage.Button9Click(Sender: TObject); +var + mm,mm2:string; +begin + with ADOQueryTemp do + begin + sql.Clear; + sql.add('SELECT userid,username,password FROM SY_User WHERE userid='+''''+trim(DCode)+''''); + Open; + mm:=Trim(Fields[2].AsString); + if Trim(mm)<>'' then + mm2:=Trim(DecryptString(Trim(mm),'ljb^0122!@#*&^%$',kb128)) + else + begin + Application.MessageBox('벻Ϊգ','ʾ',0); + Exit; + end; + close; + end; + + if (mm2=trim(Edit64.text)) then + begin + ComboBox1.Enabled:=True; + ComboBox1.SetFocus; + ComboBox1.DroppedDown:=True; + ClearSpenndHit(); + end + else + Application.MessageBox('', 'Ϣʾ', MB_OK or MB_ICONinformation); +end; + +procedure TfrmZJManage.SpeedButton49Click(Sender: TObject); +begin + Panel5.Visible:=false; +end; + +procedure TfrmZJManage.ComboBox1Change(Sender: TObject); +var + i,FCont:Integer; +begin + if Trim(ComboBox1.Text)='' then + begin + VisbleControl(Panel8,False,Panel8.ControlCount); + end else + begin + VisbleControl(Panel8,False,Panel8.ControlCount); + FCont:=StrToInt(ComboBox1.Text); + VisbleControl(Panel8,True,FCont); + end; + +end; + +procedure TfrmZJManage.Button7Click(Sender: TObject); +begin + if Trim(ComboBox1.Text)='' then + begin + Application.MessageBox('иδѡ','ʾ',0); + Exit; + end; + if ChkEditNULL(Panel8)=False then + begin + Application.MessageBox('ݲȫд','ʾ',0); + Exit; + end; + Panel7.Visible:=False; + VisbleControl(Panel1,False,Panel1.ControlCount); + VisbleControl(Panel1,True,StrToInt(ComboBox1.Text)); + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel2,True,StrToInt(ComboBox1.Text)); + VisbleControl(Panel3,False,Panel3.ControlCount); + VisbleControl(Panel3,True,StrToInt(ComboBox1.Text)); + VisbleControl(Panel4,False,Panel4.ControlCount); + VisbleControl(Panel4,True,StrToInt(ComboBox1.Text)); + ComboBox1.ItemIndex:=-1; + VisbleControl(Panel8,False,Panel8.ControlCount); + Edit64.Text:=''; + +end; + +function TfrmZJManage.ChkEditNULL(panel55:TWinControl):Boolean; +var + i:Integer; +begin + Result:=False; + with panel55 do + begin + for i:=0 to panel55.ControlCount-1 do + begin + if Controls[i].Visible=True then + begin + if Trim(TEdit(Controls[i]).Text)='' then + begin + Result:=False; + Break; + end else + begin + Result:=True; + end; + end; + + end; + end; + +end; + +end. diff --git a/盛纺贸易管理/U_ZJManageNew.dfm b/盛纺贸易管理/U_ZJManageNew.dfm new file mode 100644 index 0000000..3e1aa71 --- /dev/null +++ b/盛纺贸易管理/U_ZJManageNew.dfm @@ -0,0 +1,2690 @@ +object frmZJManageNew: TfrmZJManageNew + Left = -2 + Top = 20 + Width = 1292 + Height = 734 + Caption = 'frmZJManageNew' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 22 + Top = 13 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 22 + Top = 159 + Width = 62 + Height = 58 + Caption = #24133#23485#13#10' cm' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 22 + Top = 227 + Width = 62 + Height = 58 + Caption = #38271#24230#13#10' M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 22 + Top = 379 + Width = 62 + Height = 58 + Caption = #37325#37327#13#10' Kg' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 22 + Top = 518 + Width = 62 + Height = 29 + Caption = #30133#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 22 + Top = 450 + Width = 62 + Height = 29 + Caption = #36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 992 + Top = 56 + Width = 23 + Height = 84 + Caption = #20998#13#10#20999#13#10#35828#13#10#26126 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 22 + Top = 334 + Width = 62 + Height = 29 + Caption = #25509#22836 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 22 + Top = 291 + Width = 62 + Height = 29 + Caption = #36192#36865 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 994 + Top = 16 + Width = 100 + Height = 24 + Caption = #27597#21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object MJID: TEdit + Left = 88 + Top = 9 + Width = 297 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object ScrollBox1: TScrollBox + Left = 88 + Top = 517 + Width = 501 + Height = 151 + TabOrder = 1 + object SpeedButton13: TSpeedButton + Left = 3 + Top = 3 + Width = 60 + Height = 60 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 64 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 125 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 186 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 247 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 308 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton19: TSpeedButton + Left = 369 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton20: TSpeedButton + Left = 430 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 3 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 64 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 125 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 186 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 247 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 308 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton27: TSpeedButton + Left = 369 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton28: TSpeedButton + Left = 430 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object Button1: TButton + Left = 390 + Top = 7 + Width = 145 + Height = 42 + Caption = #21516#21333#21512#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button1Click + end + object Button3: TButton + Left = 544 + Top = 9 + Width = 144 + Height = 40 + Caption = #25171' '#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button3Click + end + object cxGrid2: TcxGrid + Left = 584 + Top = 514 + Width = 398 + Height = 156 + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + object v2Column3: TcxGridDBColumn + Caption = #21367#24207#21495 + DataBinding.FieldName = 'XJInt' + Width = 56 + end + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#31181#31867 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 79 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Width = 60 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 61 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Footer = cxStyle2 + Width = 92 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Styles.Content = cxStyle2 + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 984 + Top = 516 + Width = 225 + Height = 155 + TabOrder = 5 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object v3Column1: TcxGridDBColumn + Caption = #21367#24207#21495 + DataBinding.FieldName = 'XJInt' + Styles.Content = cxStyle2 + Width = 56 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #23567#21367#26465#30721 + DataBinding.FieldName = 'XJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 158 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Button6: TButton + Left = 700 + Top = 10 + Width = 145 + Height = 39 + Caption = #37325#26032#25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = Button6Click + end + object Panel6: TPanel + Left = 88 + Top = 154 + Width = 1122 + Height = 344 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 7 + object Panel1: TPanel + Left = 8 + Top = 7 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object SmalMF1: TEdit + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + end + object SmalMF2: TEdit + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + end + object SmalMF3: TEdit + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + end + object SmalMF4: TEdit + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + end + object SmalMF5: TEdit + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + end + object SmalMF6: TEdit + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + end + object SmalMF7: TEdit + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + end + object SmalMF8: TEdit + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + end + object SmalMF9: TEdit + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + end + object SmalMF10: TEdit + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + end + object SmalMF11: TEdit + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + end + object SmalMF12: TEdit + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + end + end + object Panel2: TPanel + Left = 8 + Top = 66 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object XJLen1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJLen2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJLen3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJLen4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJLen5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJLen6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJLen7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJLen8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJLen9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJLen10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJLen11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJLen12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel3: TPanel + Left = 8 + Top = 228 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object XJMaoZ1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel4: TPanel + Left = 8 + Top = 283 + Width = 1105 + Height = 53 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Sel1: TEdit + Tag = 1 + Left = 27 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + OnClick = Sel1Click + end + object Sel2: TEdit + Tag = 2 + Left = 119 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + OnClick = Sel1Click + end + object Sel3: TEdit + Tag = 3 + Left = 211 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + OnClick = Sel1Click + end + object Sel4: TEdit + Tag = 4 + Left = 303 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + OnClick = Sel1Click + end + object Sel5: TEdit + Tag = 5 + Left = 395 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + OnClick = Sel1Click + end + object Sel6: TEdit + Tag = 6 + Left = 487 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + OnClick = Sel1Click + end + object Sel7: TEdit + Tag = 7 + Left = 578 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + OnClick = Sel1Click + end + object Sel8: TEdit + Tag = 8 + Left = 670 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + OnClick = Sel1Click + end + object Sel9: TEdit + Tag = 9 + Left = 762 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + OnClick = Sel1Click + end + object Sel10: TEdit + Tag = 10 + Left = 854 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + OnClick = Sel1Click + end + object Sel11: TEdit + Tag = 11 + Left = 946 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + OnClick = Sel1Click + end + object Sel12: TEdit + Tag = 12 + Left = 1038 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + OnClick = Sel1Click + end + end + object Panel7: TPanel + Left = 8 + Top = 124 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object XJFree1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJFree2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJFree3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJFree4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJFree5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJFree6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJFree7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJFree8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJFree9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJFree10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJFree11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJFree12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel8: TPanel + Left = 8 + Top = 172 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object XjJt1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XjJt2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XjJt3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XjJt4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XjJt5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XjJt6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XjJt7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XjJt8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XjJt9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XjJt10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XjJt11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XjJt12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + end + object Panel5: TPanel + Left = 578 + Top = 493 + Width = 625 + Height = 172 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 8 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 80 + Height = 80 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 88 + Top = 3 + Width = 80 + Height = 80 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 172 + Top = 3 + Width = 80 + Height = 80 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 256 + Top = 3 + Width = 80 + Height = 80 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 340 + Top = 3 + Width = 80 + Height = 80 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 4 + Top = 87 + Width = 80 + Height = 80 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 88 + Top = 87 + Width = 80 + Height = 80 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 172 + Top = 87 + Width = 80 + Height = 80 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 256 + Top = 87 + Width = 80 + Height = 80 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 340 + Top = 87 + Width = 80 + Height = 80 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 424 + Top = 87 + Width = 80 + Height = 80 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 424 + Top = 3 + Width = 80 + Height = 80 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 517 + Top = 37 + Width = 91 + Height = 82 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object cxGrid4: TcxGrid + Left = 88 + Top = 51 + Width = 898 + Height = 55 + TabOrder = 9 + object TvSel: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle3 + object vSelColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 149 + end + object vSelColumn4: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 89 + end + object vSelColumn6: TcxGridDBColumn + Caption = #22823#21367#38376#24133'CM' + DataBinding.FieldName = 'MJFK' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 94 + end + object vSelColumn5: TcxGridDBColumn + Caption = #22823#21367#38271'M' + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 68 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #22823#21367#37325'Kg' + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle1 + Width = 81 + end + object vSelColumn2: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MJSJKZ' + Styles.Content = cxStyle3 + Width = 41 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Width = 43 + end + object vSelColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + Styles.Content = cxStyle3 + Width = 74 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Width = 58 + end + object vSelColumn3: TcxGridDBColumn + Caption = #20998#20999#20010#25968 + DataBinding.FieldName = 'SmalCount' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 79 + end + object vSelColumn8: TcxGridDBColumn + Caption = #20801#35768#20559#24046 + DataBinding.FieldName = 'SmalPC' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 78 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TvSel + end + end + object Button2: TButton + Left = 860 + Top = 10 + Width = 101 + Height = 39 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = Button2Click + end + object MJCDHZ: TRichEdit + Left = 88 + Top = 108 + Width = 899 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 11 + end + object SmalNote: TRichEdit + Left = 1016 + Top = 50 + Width = 193 + Height = 98 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 12 + end + object MovePanel2: TMovePanel + Left = 56 + Top = 37 + Width = 1137 + Height = 505 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 13 + Visible = False + object Label8: TLabel + Left = 421 + Top = 24 + Width = 262 + Height = 35 + Caption = #21516' '#21333' '#21512' '#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 22 + Top = 85 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object cxGrid1: TcxGrid + Left = 8 + Top = 144 + Width = 1121 + Height = 249 + TabOrder = 0 + object TvHJ: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TvHJCellDblClick + DataController.DataSource = DSHJ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = vHJColumn1 + end + item + Kind = skSum + Column = vHJColumn2 + end + item + Format = #21367#20010#25968#65306'#' + Kind = skCount + Column = cxGridDBColumn3 + end + item + Kind = skAverage + Column = vHJColumn11 + end + item + Kind = skAverage + Column = vHJColumn3 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Content = cxStyle3 + Styles.Footer = cxStyle3 + Styles.Header = cxStyle1 + object cxGridDBColumn3: TcxGridDBColumn + Caption = #22823#21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 179 + end + object vHJColumn1: TcxGridDBColumn + Caption = #37325#37327'Kg' + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object vHJColumn2: TcxGridDBColumn + Caption = #38271#24230'm' + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object vHJColumn3: TcxGridDBColumn + Caption = #24133#23485'cm' + DataBinding.FieldName = 'MJFk' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object vHJColumn11: TcxGridDBColumn + Caption = #23454#38469#20811#37325 + DataBinding.FieldName = 'MJSJKZ' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object vHJColumn4: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 166 + end + object vHJColumn9: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 98 + end + object vHJColumn10: TcxGridDBColumn + Caption = #21407#26009#37197#27604 + DataBinding.FieldName = 'YLPB' + HeaderAlignmentHorz = taCenter + Width = 117 + end + object vHJColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 54 + end + object vHJColumn8: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object vHJColumn6: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object vHJColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvHJ + end + end + object HJMJID: TEdit + Left = 88 + Top = 81 + Width = 297 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnKeyPress = HJMJIDKeyPress + end + object Button7: TButton + Left = 140 + Top = 431 + Width = 145 + Height = 42 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button7Click + end + object Button8: TButton + Left = 852 + Top = 431 + Width = 145 + Height = 42 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button8Click + end + end + object MovePanel1: TMovePanel + Left = 88 + Top = 487 + Width = 344 + Height = 202 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 14 + Visible = False + object Label17: TLabel + Left = 30 + Top = 24 + Width = 84 + Height = 20 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 185 + Top = 69 + Width = 21 + Height = 20 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 301 + Top = 24 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 301 + Top = 104 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 31 + Top = 69 + Width = 77 + Height = 20 + Caption = 'Label21' + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object CDBeg: TEdit + Tag = 9999 + Left = 119 + Top = 16 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = XJLen1Click + end + object Button4: TButton + Left = 31 + Top = 147 + Width = 66 + Height = 38 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button4Click + end + object Button5: TButton + Left = 246 + Top = 147 + Width = 66 + Height = 38 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button5Click + end + object CDEnd: TEdit + Tag = 9999 + Left = 119 + Top = 94 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = XJLen1Click + end + end + object MovePanel3: TMovePanel + Left = 568 + Top = 104 + Width = 321 + Height = 177 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 15 + Visible = False + object Label13: TLabel + Left = 88 + Top = 16 + Width = 132 + Height = 33 + Caption = #36755#20837#23494#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Button9: TButton + Left = 32 + Top = 112 + Width = 75 + Height = 49 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button9Click + end + object Button10: TButton + Left = 200 + Top = 112 + Width = 75 + Height = 49 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button10Click + end + object Password: TEdit + Tag = 99999 + Left = 32 + Top = 56 + Width = 241 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + PasswordChar = '*' + TabOrder = 2 + OnClick = XJLen1Click + end + end + object cxStyleRepository5: TcxStyleRepository + Left = 936 + Top = 65532 + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 1232 + Top = 124 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 598 + Top = 75 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 686 + Top = 74 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 638 + Top = 74 + end + object DataSource1: TDataSource + DataSet = Cds_Main + Left = 744 + Top = 76 + end + object Cds_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 76 + end + object DataSource3: TDataSource + DataSet = CDS_XJID + Left = 1000 + Top = 670 + end + object CDS_XJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1032 + Top = 670 + end + object DataSource2: TDataSource + DataSet = CDS_XJCD + Left = 752 + Top = 670 + end + object CDS_XJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 792 + Top = 670 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svFont] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 136 + Top = 120 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 104 + Top = 120 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 168 + Top = 120 + end + object DSHJ: TDataSource + DataSet = CDS_HJ + Left = 352 + Top = 550 + end + object CDS_HJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 550 + end +end diff --git a/盛纺贸易管理/U_ZJManageNew.pas b/盛纺贸易管理/U_ZJManageNew.pas new file mode 100644 index 0000000..01bca90 --- /dev/null +++ b/盛纺贸易管理/U_ZJManageNew.pas @@ -0,0 +1,1525 @@ +unit U_ZJManageNew; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, Buttons, ExtCtrls, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, MovePanel, ADODB, + DBClient, ComCtrls, RM_Common, RM_Class, RM_GridReport, RM_System, + RM_Dataset; + +type + TfrmZJManageNew = class(TForm) + MJID: TEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + Button1: TButton; + Button3: TButton; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Button6: TButton; + Panel6: TPanel; + Panel1: TPanel; + SmalMF1: TEdit; + SmalMF2: TEdit; + SmalMF3: TEdit; + SmalMF4: TEdit; + SmalMF5: TEdit; + SmalMF6: TEdit; + SmalMF7: TEdit; + SmalMF8: TEdit; + SmalMF9: TEdit; + SmalMF10: TEdit; + SmalMF11: TEdit; + SmalMF12: TEdit; + Panel2: TPanel; + XJLen1: TEdit; + XJLen2: TEdit; + XJLen3: TEdit; + XJLen4: TEdit; + XJLen5: TEdit; + XJLen6: TEdit; + XJLen7: TEdit; + XJLen8: TEdit; + XJLen9: TEdit; + XJLen10: TEdit; + XJLen11: TEdit; + XJLen12: TEdit; + Panel3: TPanel; + XJMaoZ1: TEdit; + XJMaoZ2: TEdit; + XJMaoZ3: TEdit; + XJMaoZ4: TEdit; + XJMaoZ5: TEdit; + XJMaoZ6: TEdit; + XJMaoZ7: TEdit; + XJMaoZ8: TEdit; + XJMaoZ9: TEdit; + XJMaoZ10: TEdit; + XJMaoZ11: TEdit; + XJMaoZ12: TEdit; + Panel4: TPanel; + Sel1: TEdit; + Sel2: TEdit; + Sel3: TEdit; + Sel4: TEdit; + Sel5: TEdit; + Sel6: TEdit; + Sel7: TEdit; + Sel8: TEdit; + Sel9: TEdit; + Sel10: TEdit; + Sel11: TEdit; + Sel12: TEdit; + ADOQueryTemp: TADOQuery; + Panel5: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + cxGrid4: TcxGrid; + TvSel: TcxGridDBTableView; + vSelColumn1: TcxGridDBColumn; + vSelColumn4: TcxGridDBColumn; + vSelColumn6: TcxGridDBColumn; + vSelColumn5: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + vSelColumn7: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + vSelColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + vSelColumn3: TcxGridDBColumn; + vSelColumn8: TcxGridDBColumn; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + DataSource1: TDataSource; + Cds_Main: TClientDataSet; + Button2: TButton; + MJCDHZ: TRichEdit; + DataSource3: TDataSource; + CDS_XJID: TClientDataSet; + DataSource2: TDataSource; + CDS_XJCD: TClientDataSet; + v2Column3: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + SmalNote: TRichEdit; + Label7: TLabel; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ADOQueryPrint: TADOQuery; + MovePanel2: TMovePanel; + Label8: TLabel; + cxGrid1: TcxGrid; + TvHJ: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + DSHJ: TDataSource; + CDS_HJ: TClientDataSet; + vHJColumn1: TcxGridDBColumn; + vHJColumn2: TcxGridDBColumn; + vHJColumn3: TcxGridDBColumn; + Label9: TLabel; + HJMJID: TEdit; + Button7: TButton; + Button8: TButton; + vHJColumn4: TcxGridDBColumn; + vHJColumn5: TcxGridDBColumn; + vHJColumn6: TcxGridDBColumn; + vHJColumn7: TcxGridDBColumn; + vHJColumn8: TcxGridDBColumn; + vHJColumn9: TcxGridDBColumn; + vHJColumn10: TcxGridDBColumn; + vHJColumn11: TcxGridDBColumn; + Panel7: TPanel; + XJFree1: TEdit; + XJFree2: TEdit; + XJFree3: TEdit; + XJFree4: TEdit; + XJFree5: TEdit; + XJFree6: TEdit; + XJFree7: TEdit; + XJFree8: TEdit; + XJFree9: TEdit; + XJFree10: TEdit; + XJFree11: TEdit; + XJFree12: TEdit; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + CDBeg: TEdit; + Button4: TButton; + Button5: TButton; + CDEnd: TEdit; + Panel8: TPanel; + XjJt1: TEdit; + XjJt2: TEdit; + XjJt3: TEdit; + XjJt4: TEdit; + XjJt5: TEdit; + XjJt6: TEdit; + XjJt7: TEdit; + XjJt8: TEdit; + XjJt9: TEdit; + XjJt10: TEdit; + XjJt11: TEdit; + XjJt12: TEdit; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + MovePanel3: TMovePanel; + Button9: TButton; + Button10: TButton; + Password: TEdit; + Label13: TLabel; + procedure Sel1Click(Sender: TObject); + procedure Edit64Click(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure XJLen1Click(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button3Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure HJMJIDKeyPress(Sender: TObject; var Key: Char); + procedure TvHJCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button9Click(Sender: TObject); + procedure Button10Click(Sender: TObject); + procedure PasswordClick(Sender: TObject); + private + { Private declarations } + FCDName:string; + procedure ClearSpenndHit(); + procedure VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); + function ChkEditNULL(panel55:TWinControl):Boolean; + procedure InitJP(); + procedure InitGridCD(); + procedure InitGridCDID(); + procedure ClearControl(Panel55:TWinControl;ConValue:String;SXCount:Integer); + procedure PrintData(FXJID:string;CDFlag:String); + public + { Public declarations } + end; + +var + frmZJManageNew: TfrmZJManageNew; + +implementation +uses +U_DataLink,U_Fun,U_ZDYHelp,U_iniParam,AES,ElAES,U_LabelPrint; + +{$R *.dfm} + +procedure TfrmZJManageNew.Sel1Click(Sender: TObject); +begin + if Trim(TcxTextEdit(Sender).Text)='' then + begin + TcxTextEdit(Sender).Text:=''; + end else + begin + TcxTextEdit(Sender).Text:=''; + end; +end; + +procedure TfrmZJManageNew.Edit64Click(Sender: TObject); +var + i:Integer; +begin + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; +end; +procedure TfrmZJManageNew.ClearSpenndHit(); +var + i:Integer; +begin + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=''; + end; + end; + end; +end; +procedure TfrmZJManageNew.VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + Controls[i].Visible:=XS; + end; + end; +end; +procedure TfrmZJManageNew.ClearControl(Panel55:TWinControl;ConValue:String;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + TEdit(Controls[i]).Text:=ConValue; + end; + end; +end; + +procedure TfrmZJManageNew.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManageNew.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManageNew.SpeedButton49Click(Sender: TObject); +begin + Panel5.Visible:=false; +end; + +function TfrmZJManageNew.ChkEditNULL(panel55:TWinControl):Boolean; +var + i:Integer; +begin + Result:=False; + with panel55 do + begin + for i:=0 to panel55.ControlCount-1 do + begin + if Controls[i].Visible=True then + begin + if Trim(TEdit(Controls[i]).Text)='' then + begin + Result:=False; + Break; + end else + begin + Result:=True; + end; + end; + + end; + end; + +end; + +procedure TfrmZJManageNew.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZJManageNew.FormDestroy(Sender: TObject); +begin + frmZJManageNew:=nil; +end; + +procedure TfrmZJManageNew.XJLen1Click(Sender: TObject); +var + i:Integer; +begin + if CDS_XJID.IsEmpty=False then + begin + if CDS_XJID.Locate('XJInt',TEdit(Sender).tag,[])=True then + begin + TEdit(Sender).Text:=Trim(CDS_XJID.fieldbyname(Copy(Trim(TEdit(Sender).Name),1,Length(Trim(TEdit(Sender).Name))-1)).AsString); + Panel5.Visible:=False; + Exit; + end; + end; + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; + // Panel5.Left:=Edit14.Left; + //Panel5.top:=Edit14.top+Edit14.Height; +end; + +procedure TfrmZJManageNew.MJIDKeyPress(Sender: TObject; var Key: Char); +var + FCount,i:Integer; + FXJXH:String; +begin + if Key=#13 then + begin + MJID.SelectAll; + ClearControl(Panel1,'',Panel1.ControlCount); + ClearControl(Panel2,'',Panel2.ControlCount); + ClearControl(Panel3,'',Panel3.ControlCount); + Label12.Visible:=True; + Label12.Caption:=Trim(MJID.Text); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select MJCDHZ=dbo.F_Get_WFBOrder_SubStr(A.MJID,''MJCDHZ''), '); + SQL.Add('A.*,B.*,C.OrderNo from WFB_MJJY A inner join WFBOrder_Sub B on A.SubId=B.SubId'); + sql.Add('inner join WFBOrder_Main C on A.MainId=C.MainId'); + sql.Add('where A.MJID='''+Trim(MJID.Text)+''''); + sql.Add(' and A.Valie=''Y'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Cds_Main); + SInitCDSData20(ADOQueryMain,Cds_Main); + if Cds_Main.IsEmpty then + begin + MJCDHZ.Text:=''; + InitGridCDID(); + InitGridCD(); + Label12.Visible:=False; + MJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + MJCDHZ.Visible:=True; + MJCDHZ.Text:=Trim(Cds_Main.fieldbyname('MJCDHZ').AsString); + SmalNote.Text:=Trim(Cds_Main.fieldbyname('SmalNote').AsString); + if Cds_Main.FieldByName('SmalCount').Value<1 then + begin + Application.MessageBox('иС1','ʾ',0); + Exit; + end else + begin + FCount:=Cds_Main.FieldByName('SmalCount').Value; + VisbleControl(Panel1,False,Panel1.ControlCount); + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel3,False,Panel3.ControlCount); + VisbleControl(Panel4,False,Panel4.ControlCount); + VisbleControl(Panel1,True,FCount); + VisbleControl(Panel2,True,FCount); + VisbleControl(Panel3,True,FCount); + VisbleControl(Panel4,True,FCount); + VisbleControl(Panel7,True,FCount); + VisbleControl(Panel8,True,FCount); + SCSHDataCDS(Cds_Main,Panel1,0); + end; + InitGridCDID(); + InitGridCD(); + finally + ADOQueryMain.EnableControls; + end; + MJID.Text:=''; + {if CDS_XJID.IsEmpty=False then + begin + with CDS_XJID do + begin + First; + while not Eof do + begin + + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); + Next; + end; + end; + end; } + end; +end; + +procedure TfrmZJManageNew.Button2Click(Sender: TObject); +begin + WriteCxGrid('ʾϢ',TvSel,'޷IJ'); + Close; +end; + +procedure TfrmZJManageNew.FormShow(Sender: TObject); +begin + ReadCxGrid('ʾϢ',TvSel,'޷IJ'); + InitJP(); +end; + +procedure TfrmZJManageNew.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCDZJ'' order by ZDYNO '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ûжСõ㣡','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + if i>17 then + begin + i:=29; + end; + for j:=0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible:=True; + TSpeedButton(Controls[j]).Hint:=AA[j]; + if Length(AA[j])>4 then + begin + TSpeedButton(Controls[j]).Caption:=Copy(Trim(AA[j]),1,4)+#13+Copy(Trim(AA[j]),5,Length(AA[j])-4); + end else + TSpeedButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmZJManageNew.Button4Click(Sender: TObject); +var + i:Integer; +begin + if Trim(CDBeg.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + with CDS_XJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(FCDName); + FieldByName('CDbeg').Value:=Trim(CDBeg.Text); + FieldByName('CDEnd').Value:=Trim(CDEnd.Text); + if Trim(CDEnd.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(CDEnd.Text)-StrToFloat(CDBeg.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; + FieldByName('XJInt').Value:=i+1; + Post; + end; + end; + end; + end; + CDBeg.Text:=''; + CDEnd.Text:=''; + MovePanel1.Visible:=False; +end; + +procedure TfrmZJManageNew.SpeedButton13Click(Sender: TObject); +var + i,j:Integer; +begin + if Cds_Main.IsEmpty then Exit; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + j:=9; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end; + FCDName:=Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible:=True; + Label21.Caption:=Trim(FCDName); + CDBeg.SetFocus; + + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim('CDBeg'); + end; + end; + end; +end; +procedure TfrmZJManageNew.InitGridCD(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + if Trim(CDS_XJID.fieldbyname('XJID').AsString)<>'' then + begin + sql.Add('select A.*,B.XJInt from WFB_XJJY_CD A inner join WFB_XJJY B on A.XJID=B.XJID'); + sql.Add(' where B.MJID='''+Trim(MJID.Text)+''''); + end + else + sql.Add('select A.*,B.XJInt from WFB_XJJY_CD A inner join WFB_XJJY B on A.XJID=B.XJID where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_XJCD); + SInitCDSData20(ADOQueryMain,CDS_XJCD); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmZJManageNew.InitGridCDID(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(MJID.Text)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_XJID); + SInitCDSData20(ADOQueryMain,CDS_XJID); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmZJManageNew.Button5Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmZJManageNew.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Trim(CDS_XJCD.fieldbyname('XJID').AsString)<>'' then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_XJCD.Delete; +end; + +procedure TfrmZJManageNew.Button3Click(Sender: TObject); +var + i,j,FXJInt,CRID:Integer; + FXJSJKZ:Double; + maxno,maxnocd,MaxCkNo,MaxCkSubNo,XJBanZu,FFXJLen,FFXJMaoZ,FFXJFk,FFXJFree,FFXJJt:String; +begin + if Cds_Main.IsEmpty then Exit; + with Panel2 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + Application.MessageBox('δȫ¼룬ܴӡ','ʾ',0); + Exit; + end; + end; + end; + with Panel3 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + Application.MessageBox('δȫ¼룬ܴӡ','ʾ',0); + Exit; + end; + end; + end; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end else + if j>9 then + begin + Application.MessageBox('ѡС','ʾ',0); + Exit; + end; + if Trim(TEdit(FindComponent('XJLen'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ȲΪգ','ʾ',0); + Exit; + end else + begin + FFXJLen:=Trim(TEdit(FindComponent('XJLen'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJMaoZ'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end else + begin + FFXJMaoZ:=Trim(TEdit(FindComponent('XJMaoZ'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('SmalMF'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end else + begin + FFXJFk:=Trim(TEdit(FindComponent('SmalMF'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJFree'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + FFXJFree:='0'; + end else + begin + FFXJFree:=Trim(TEdit(FindComponent('XJFree'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJJt'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + FFXJJt:='0'; + end else + begin + FFXJJt:=Trim(TEdit(FindComponent('XJJt'+Trim(IntToStr(FXJInt)))).Text); + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJID').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѵ룬볢´ӡ','',0); + Exit; + end; + FXJSJKZ:=StrToFloat(FFXJMaoZ)/(StrToFloat(FFXJLen)*StrToFloat(FFXJFk)/100)*1000; + if( (FXJSJKZ-Cds_Main.FieldByName('MJSJKZ').Value)/Cds_Main.FieldByName('MJSJKZ').Value )<-0.3 then + begin + Application.MessageBox('ݣ','ʾ',0); + Exit; + end; + if( (FXJSJKZ-Cds_Main.FieldByName('MJSJKZ').Value)/Cds_Main.FieldByName('MJSJKZ').Value )>0.3 then + begin + Application.MessageBox('ݣ','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + //////////////////////////////////////////////////////////////С + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + XJBanZu:=Trim(ADOQueryTemp.fieldbyname('BanZu').AsString); + if GetLSNo(ADOQueryCmd,maxno,Trim(XJFlag),'WFB_XJJY',4,1)=false then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡС쳣','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('select * from WFB_XJJY where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJID').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XJInt').Value:=FXJInt; + FieldByName('XJLen').Value:=StrToFloat(FFXJLen); + FieldByName('XJMaoZ').Value:=StrToFloat(FFXJMaoZ); + FieldByName('XJFK').Value:=StrToFloat(FFXJFk); + FieldByName('XJFree').Value:=StrToFloat(FFXJFree); + FieldByName('XJJt').Value:=StrToFloat(FFXJJt); + FieldByName('XJBanZu').Value:=Trim(XJBanZu); + FieldByName('JTTYpe').Value:=Trim(XJFlag); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('XJSJKZ').Value:=StrToFloat(FFXJMaoZ)/(StrToFloat(FFXJLen)*StrToFloat(FFXJFk)/100)*1000; + //FieldByName('') + Post; + end; + with CDS_XJID do + begin + Append; + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XJInt').Value:=FXJInt; + FieldByName('XJLen').Value:=StrToFloat(FFXJLen); + FieldByName('XJMaoZ').Value:=StrToFloat(FFXJMaoZ); + FieldByName('XJFK').Value:=StrToFloat(FFXJFk); + FieldByName('XJFree').Value:=StrToFloat(FFXJFree); + FieldByName('XJJt').Value:=StrToFloat(FFXJJt); + Post; + end; + //////////////////////////////////////////////////////////////С + //////////////////////////////////////////////////////////////Сõ + with CDS_XJCD do + begin + First; + while not Eof do + begin + if CDS_XJCD.FieldByName('XJInt').Value=FXJInt then + begin + if GetLSNo(ADOQueryCmd,maxnocd,'XC','WFB_XJJY_CD',5,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡСõʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_XJJY_CD where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XCID').Value:=Trim(maxnocd); + FieldByName('CDName').Value:=CDS_XJCD.fieldbyname('CDName').Value; + FieldByName('CDBeg').Value:=CDS_XJCD.fieldbyname('CDBeg').Value; + FieldByName('CDEnd').Value:=CDS_XJCD.fieldbyname('CDEnd').Value; + FieldByName('CDQty').Value:=CDS_XJCD.fieldbyname('CDQty').Value; + Post; + end; + end; + Next; + end; + end; + //////////////////////////////////////////////////////////////Сõ + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryTemp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Cds_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Cds_Main.fieldbyname('SubId').AsString); + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJId').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('MQty').Value:=StrToFloat(FFXJLen); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('KCKGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('KCMQty').Value:=StrToFloat(FFXJLen); + Post; + end; + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + ADOQueryCmd.Connection.CommitTrans; + PrintData(Trim(maxno),''); + //Application.MessageBox('ɹ','ʾ',0); + //MJID.SelectAll; + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +procedure TfrmZJManageNew.PrintData(FXJID:string;CDFlag:String); +var + fPrintFile,LabInt,LabName:String; +begin + if Trim(FXJID)='' then exit; + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + if Trim(CDFlag)<>'' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_XJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where XJID='''+Trim(FXJID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add(' select C.LbXInt,C.LbXName from WFB_XJJY A'); + sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID'); + sql.Add(' inner join WFBOrder_Main C on B.MainId=C.MainId'); + sql.Add(' where A.XJID='''+Trim(FXJID)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + LabInt:=ADOQueryTemp.fieldbyname('LbXInt').AsString; + LabName:=ADOQueryTemp.fieldbyname('LbXName').AsString; + end ; + if Trim(LabName)='' then + begin + Application.MessageBox('Сǩδã','ʾ',0); + Exit; + end; + { try + frmLabelPrint:=TfrmLabelPrint.Create(Application); + with frmLabelPrint do + begin + fLabelId:=LabInt; + FFCDFlag:=Trim(CDFlag); + fKeyNo:=Trim(FXJID); + fIsPreviewPrint:=True; + frmLabelPrint.Button1.Click; + // if ShowModal=1 then + //begin + + // end; + end; + finally + frmLabelPrint.Free; + end; } + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select RTrim(AA.XJID) XJID,RTrim(Cast(AA.XJSJKZ as varchar(20))) XJSJKZ,RTrim(cast(Cast(AA.XJFK*10 as int) as varchar(20))) XJFK,RTrim(B.OrderNo)+'''+Trim(CDFlag)+''' OrderNo'); + sql.Add(',Rtrim(C.SWFBColor) SWFBColor, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + SQL.Add(',EngColor=(select Top 1 note from KH_Zdy where ZdyName=C.SWFBColor)'); + sql.Add(',Rtrim(Cast(AA.XJlen as varchar(20))) XJlen,Rtrim(Cast(AA.XJMaoZ as varchar(20))) XJMaoZ'); + sql.Add(',Rtrim(Cast(AA.XJFree as varchar(20))) XJFree,Rtrim(Cast( Cast(AA.XJlen*AA.XJFK/100 as int) as varchar(20))) XJPFM'); + sql.Add(',Rtrim(Cast(Cast(C.SWFBKZ as int) as varchar(20))) SWFBKZ'); + sql.Add(',Rtrim(Cast(Cast(AA.XJJt as int) as varchar(20))) XJJt'); + sql.Add(',RTrim(B.LbEngName) LbEngName'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_XJJY AA '); + sql.add(' inner join WFB_MJJY A on AA.MJID=A.MJID') ; + sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where AA.XJID='''+Trim(FXJID)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + Rm2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf'),'ʾ',0); + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmZJManageNew.Button6Click(Sender: TObject); +var + i,j,FXJInt:Integer; +begin + if Cds_Main.IsEmpty then Exit; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end else + if j>9 then + begin + Application.MessageBox('ѡС','ʾ',0); + Exit; + end; + + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJId').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=True then + begin + Application.MessageBox('δ룬´ӡ','ʾ',0); + Exit; + end; + MovePanel3.Visible:=True; + // PrintData(Trim(ADOQueryTemp.fieldbyname('XJID').AsString),'ش'); + //MJID.SelectAll; +end; + +procedure TfrmZJManageNew.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FXJXH:String; +begin + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); +end; + +procedure TfrmZJManageNew.Button1Click(Sender: TObject); +begin + MovePanel2.Visible:=True; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId,C.SWFBKZ '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB'')'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_HJ); + SInitCDSData20(ADOQueryTemp,CDS_HJ); +end; + +procedure TfrmZJManageNew.Button8Click(Sender: TObject); +begin + MovePanel2.Visible:=False; +end; + +procedure TfrmZJManageNew.Button7Click(Sender: TObject); +var + maxno,fPrintFile,maxnosub:String; + i:Double; +begin + if Application.MessageBox('ȷҪϾ𣿺Ͼݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxno,'','WFB_MJJY',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_HJ.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_HJ.fieldbyname('SubId').AsString); + FieldByName('MJId').Value:=Trim(maxno); + FieldByName('MJMaoZ').Value:=TvHJ.DataController.Summary.FooterSummaryValues[1]; + FieldByName('MJLen').Value:=TvHJ.DataController.Summary.FooterSummaryValues[2]; + FieldByName('MJFK').Value:=TvHJ.DataController.Summary.FooterSummaryValues[5]; + FieldByName('MJSJKZ').Value:=TvHJ.DataController.Summary.FooterSummaryValues[4]; + FieldByName('MJType').Value:='Ͼ'; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + Post; + end; + i:=0; + with CDS_HJ do + begin + First; + while not Eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set HJMJID='''+Trim(maxno)+''''); + SQL.Add(',MJType=''Ͼ'',Valie=''N'' '); + SQL.Add(' where MJID='''+Trim(CDS_HJ.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_HJ.fieldbyname('MJID').AsString)+''''); + Open; + end; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxnosub,'','WFB_MJJY_CD',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡСʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD where 1<>1'); + open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MCID').Value:=Trim(maxnosub); + FieldByName('CDBeg').Value:=ADOQueryTemp.fieldbyname('CDBeg').Value+i; + FieldByName('CDEnd').Value:=ADOQueryTemp.fieldbyname('CDEnd').Value+i; + FieldByName('CDQty').Value:=ADOQueryTemp.fieldbyname('CDQty').Value; + FieldByName('CDName').Value:=ADOQueryTemp.fieldbyname('CDName').Value; + Post; + end; + Next; + end; + end; + i:=i+CDS_HJ.FieldByName('MJLen').Value; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add(' select RTrim(A.MJID) MJID,RTrim(Cast(A.MJSJKZ As varchar(20))) MJSJKZ,RTrim(Cast(A.MJFK as varchar(20))) MJFK,RTrim(B.OrderNo) OrderNo,'); + sql.Add(' RTrim(Cast(A.MJMaoZ As varchar(20))) MJMaoZ,RTrim(Cast(A.MJLen As varchar(20))) MJLen,'); + sql.Add(' Rtrim(C.SWFBColor) SWFBColor,Rtrim(Cast(C.SWFBKZ as varchar(20))) SWFBKZ, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(maxno)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; + Application.MessageBox('Ͼɹ','ʾ',0); + MovePanel2.Visible:=False; + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ͼ쳣','ʾ',0); + end; + +end; + +procedure TfrmZJManageNew.HJMJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_MJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_XJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + HJMJID.Text:=''; + Application.MessageBox('˴ѷУ','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB''),C.SWFBKZ'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and A.valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if CDS_HJ.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + HJMJID.Text:=''; + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + if CDS_HJ.IsEmpty=False then + begin + if CDS_HJ.Locate('SubId',Trim(ADOQueryTemp.fieldbyname('SubId').AsString),[])=False then + begin + HJMJID.Text:=''; + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + {if CDS_HJ.Locate('YLPB',Trim(ADOQueryTemp.fieldbyname('YLPB').AsString),[])=False then + begin + Application.MessageBox('ԭȲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBCode',Trim(ADOQueryTemp.fieldbyname('SWFBCode').AsString),[])=False then + begin + Application.MessageBox('ƷŲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBColor',Trim(ADOQueryTemp.fieldbyname('SWFBColor').AsString),[])=False then + begin + Application.MessageBox('ɫͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBHW',Trim(ADOQueryTemp.fieldbyname('SWFBHW').AsString),[])=False then + begin + Application.MessageBox('ͲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('WKMS',Trim(ADOQueryTemp.fieldbyname('WKMS').AsString),[])=False then + begin + Application.MessageBox('ĿͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('XJFK',Trim(ADOQueryTemp.fieldbyname('XJFK').AsString),[])=False then + begin + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBKZ',Trim(ADOQueryTemp.fieldbyname('SWFBKZ').AsString),[])=False then + begin + Application.MessageBox('زͬܺϾ','ʾ',0); + Exit; + end; } + end; + with CDS_HJ do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('SubId').Value:=ADOQueryTemp.fieldbyname('SubId').Value; + FieldByName('MainId').Value:=ADOQueryTemp.fieldbyname('MainId').Value; + FieldByName('YLPB').Value:=ADOQueryTemp.fieldbyname('YLPB').Value; + FieldByName('SWFBCode').Value:=ADOQueryTemp.fieldbyname('SWFBCode').Value; + FieldByName('SWFBCodeName').Value:=ADOQueryTemp.fieldbyname('SWFBCodeName').Value; + FieldByName('SWFBColor').Value:=ADOQueryTemp.fieldbyname('SWFBColor').Value; + FieldByName('WKMS').Value:=ADOQueryTemp.fieldbyname('WKMS').Value; + FieldByName('SWFBHW').Value:=ADOQueryTemp.fieldbyname('SWFBHW').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + FieldByName('SWFBKZ').Value:=ADOQueryTemp.fieldbyname('SWFBKZ').Value; + FieldByName('MJMaoZ').Value:=ADOQueryTemp.fieldbyname('MJMaoZ').Value; + FieldByName('MJLen').Value:=ADOQueryTemp.fieldbyname('MJLen').Value; + FieldByName('MJFK').Value:=ADOQueryTemp.fieldbyname('MJFK').Value; + FieldByName('MJSJKZ').Value:=ADOQueryTemp.fieldbyname('MJSJKZ').Value; + Post; + end; + end else + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + HJMJID.Text:=''; + end; + +end; + +procedure TfrmZJManageNew.TvHJCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_HJ.Delete; +end; + +procedure TfrmZJManageNew.Button9Click(Sender: TObject); +var + i,j,FXJInt:Integer; + mm,mm2:String; +begin + with ADOQueryTemp do + begin + sql.Clear; + sql.add('SELECT userid,username,password FROM SY_User WHERE userid='+''''+trim(DCode)+''''); + Open; + mm:=Trim(Fields[2].AsString); + if Trim(mm)<>'' then + mm2:=Trim(DecryptString(Trim(mm),'ljb^0122!@#*&^%$',kb128)) + else + begin + Application.MessageBox('벻Ϊգ','ʾ',0); + Exit; + end; + close; + end; + + if ( mm2=trim(Password.text) ) then + begin + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJId').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=True then + begin + Application.MessageBox('δ룬´ӡ','ʾ',0); + Exit; + end; + PrintData(Trim(ADOQueryTemp.fieldbyname('XJID').AsString),'ش'); + MovePanel3.Visible:=False; + end else + Application.MessageBox('', 'Ϣʾ', MB_OK or MB_ICONinformation); + + //MJID.SelectAll; +end; + +procedure TfrmZJManageNew.Button10Click(Sender: TObject); +begin + MovePanel3.Visible:=False; +end; + +procedure TfrmZJManageNew.PasswordClick(Sender: TObject); +begin + Panel5.Visible:=True; +end; + +end. diff --git a/盛纺贸易管理/U_ZJManageNewFD.dfm b/盛纺贸易管理/U_ZJManageNewFD.dfm new file mode 100644 index 0000000..0b45c5a --- /dev/null +++ b/盛纺贸易管理/U_ZJManageNewFD.dfm @@ -0,0 +1,2690 @@ +object frmZJManageNewFD: TfrmZJManageNewFD + Left = -2 + Top = 20 + Width = 1292 + Height = 734 + Caption = #23567#21367#20998#20999 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 22 + Top = 13 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 22 + Top = 159 + Width = 62 + Height = 58 + Caption = #24133#23485#13#10' cm' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 22 + Top = 227 + Width = 62 + Height = 58 + Caption = #38271#24230#13#10' M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 22 + Top = 379 + Width = 62 + Height = 58 + Caption = #37325#37327#13#10' Kg' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 22 + Top = 518 + Width = 62 + Height = 29 + Caption = #30133#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 22 + Top = 450 + Width = 62 + Height = 29 + Caption = #36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 992 + Top = 56 + Width = 23 + Height = 84 + Caption = #20998#13#10#20999#13#10#35828#13#10#26126 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 22 + Top = 334 + Width = 62 + Height = 29 + Caption = #25509#22836 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 22 + Top = 291 + Width = 62 + Height = 29 + Caption = #36192#36865 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 994 + Top = 16 + Width = 100 + Height = 24 + Caption = #27597#21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object MJID: TEdit + Left = 88 + Top = 9 + Width = 297 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object ScrollBox1: TScrollBox + Left = 88 + Top = 517 + Width = 501 + Height = 151 + TabOrder = 1 + object SpeedButton13: TSpeedButton + Left = 3 + Top = 3 + Width = 60 + Height = 60 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 64 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 125 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 186 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 247 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 308 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton19: TSpeedButton + Left = 369 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton20: TSpeedButton + Left = 430 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 3 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 64 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 125 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 186 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 247 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 308 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton27: TSpeedButton + Left = 369 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton28: TSpeedButton + Left = 430 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object Button1: TButton + Left = 390 + Top = 7 + Width = 145 + Height = 42 + Caption = #21516#21333#21512#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button1Click + end + object Button3: TButton + Left = 544 + Top = 9 + Width = 144 + Height = 40 + Caption = #25171' '#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button3Click + end + object cxGrid2: TcxGrid + Left = 584 + Top = 514 + Width = 398 + Height = 156 + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + object v2Column3: TcxGridDBColumn + Caption = #21367#24207#21495 + DataBinding.FieldName = 'XJInt' + Width = 56 + end + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#31181#31867 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 79 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Width = 60 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 61 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Footer = cxStyle2 + Width = 92 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Styles.Content = cxStyle2 + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 984 + Top = 516 + Width = 225 + Height = 155 + TabOrder = 5 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object v3Column1: TcxGridDBColumn + Caption = #21367#24207#21495 + DataBinding.FieldName = 'XJInt' + Styles.Content = cxStyle2 + Width = 56 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #23567#21367#26465#30721 + DataBinding.FieldName = 'XJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 158 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Button6: TButton + Left = 700 + Top = 10 + Width = 145 + Height = 39 + Caption = #37325#26032#25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = Button6Click + end + object Panel6: TPanel + Left = 88 + Top = 154 + Width = 1122 + Height = 344 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 7 + object Panel1: TPanel + Left = 8 + Top = 7 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object SmalMF1: TEdit + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + end + object SmalMF2: TEdit + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + end + object SmalMF3: TEdit + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + end + object SmalMF4: TEdit + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + end + object SmalMF5: TEdit + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + end + object SmalMF6: TEdit + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + end + object SmalMF7: TEdit + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + end + object SmalMF8: TEdit + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + end + object SmalMF9: TEdit + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + end + object SmalMF10: TEdit + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + end + object SmalMF11: TEdit + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + end + object SmalMF12: TEdit + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + end + end + object Panel2: TPanel + Left = 8 + Top = 66 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object XJLen1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJLen2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJLen3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJLen4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJLen5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJLen6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJLen7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJLen8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJLen9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJLen10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJLen11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJLen12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel3: TPanel + Left = 8 + Top = 228 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object XJMaoZ1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel4: TPanel + Left = 8 + Top = 283 + Width = 1105 + Height = 53 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Sel1: TEdit + Tag = 1 + Left = 27 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + OnClick = Sel1Click + end + object Sel2: TEdit + Tag = 2 + Left = 119 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + OnClick = Sel1Click + end + object Sel3: TEdit + Tag = 3 + Left = 211 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + OnClick = Sel1Click + end + object Sel4: TEdit + Tag = 4 + Left = 303 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + OnClick = Sel1Click + end + object Sel5: TEdit + Tag = 5 + Left = 395 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + OnClick = Sel1Click + end + object Sel6: TEdit + Tag = 6 + Left = 487 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + OnClick = Sel1Click + end + object Sel7: TEdit + Tag = 7 + Left = 578 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + OnClick = Sel1Click + end + object Sel8: TEdit + Tag = 8 + Left = 670 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + OnClick = Sel1Click + end + object Sel9: TEdit + Tag = 9 + Left = 762 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + OnClick = Sel1Click + end + object Sel10: TEdit + Tag = 10 + Left = 854 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + OnClick = Sel1Click + end + object Sel11: TEdit + Tag = 11 + Left = 946 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + OnClick = Sel1Click + end + object Sel12: TEdit + Tag = 12 + Left = 1038 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + OnClick = Sel1Click + end + end + object Panel7: TPanel + Left = 8 + Top = 124 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object XJFree1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJFree2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJFree3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJFree4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJFree5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJFree6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJFree7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJFree8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJFree9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJFree10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJFree11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJFree12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel8: TPanel + Left = 8 + Top = 172 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object XjJt1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XjJt2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XjJt3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XjJt4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XjJt5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XjJt6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XjJt7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XjJt8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XjJt9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XjJt10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XjJt11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XjJt12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + end + object Panel5: TPanel + Left = 578 + Top = 493 + Width = 625 + Height = 172 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 8 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 80 + Height = 80 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 88 + Top = 3 + Width = 80 + Height = 80 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 172 + Top = 3 + Width = 80 + Height = 80 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 256 + Top = 3 + Width = 80 + Height = 80 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 340 + Top = 3 + Width = 80 + Height = 80 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 4 + Top = 87 + Width = 80 + Height = 80 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 88 + Top = 87 + Width = 80 + Height = 80 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 172 + Top = 87 + Width = 80 + Height = 80 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 256 + Top = 87 + Width = 80 + Height = 80 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 340 + Top = 87 + Width = 80 + Height = 80 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 424 + Top = 87 + Width = 80 + Height = 80 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 424 + Top = 3 + Width = 80 + Height = 80 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 517 + Top = 37 + Width = 91 + Height = 82 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + end + object cxGrid4: TcxGrid + Left = 88 + Top = 51 + Width = 898 + Height = 55 + TabOrder = 9 + object TvSel: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle3 + object vSelColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 149 + end + object vSelColumn4: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 89 + end + object vSelColumn6: TcxGridDBColumn + Caption = #22823#21367#38376#24133'CM' + DataBinding.FieldName = 'MJFK' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 94 + end + object vSelColumn5: TcxGridDBColumn + Caption = #22823#21367#38271'M' + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 68 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #22823#21367#37325'Kg' + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle1 + Width = 81 + end + object vSelColumn2: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MJSJKZ' + Styles.Content = cxStyle3 + Width = 41 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Width = 43 + end + object vSelColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + Styles.Content = cxStyle3 + Width = 74 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Width = 58 + end + object vSelColumn3: TcxGridDBColumn + Caption = #20998#20999#20010#25968 + DataBinding.FieldName = 'SmalCount' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 79 + end + object vSelColumn8: TcxGridDBColumn + Caption = #20801#35768#20559#24046 + DataBinding.FieldName = 'SmalPC' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 78 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TvSel + end + end + object Button2: TButton + Left = 860 + Top = 10 + Width = 101 + Height = 39 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + OnClick = Button2Click + end + object MJCDHZ: TRichEdit + Left = 88 + Top = 108 + Width = 899 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 11 + end + object SmalNote: TRichEdit + Left = 1016 + Top = 50 + Width = 193 + Height = 98 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 12 + end + object MovePanel2: TMovePanel + Left = 80 + Top = 53 + Width = 1137 + Height = 505 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 13 + Visible = False + object Label8: TLabel + Left = 421 + Top = 24 + Width = 262 + Height = 35 + Caption = #21516' '#21333' '#21512' '#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 22 + Top = 85 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object cxGrid1: TcxGrid + Left = 8 + Top = 144 + Width = 1121 + Height = 249 + TabOrder = 0 + object TvHJ: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TvHJCellDblClick + DataController.DataSource = DSHJ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = vHJColumn1 + end + item + Kind = skSum + Column = vHJColumn2 + end + item + Format = #21367#20010#25968#65306'#' + Kind = skCount + Column = cxGridDBColumn3 + end + item + Kind = skAverage + Column = vHJColumn11 + end + item + Kind = skAverage + Column = vHJColumn3 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Content = cxStyle3 + Styles.Footer = cxStyle3 + Styles.Header = cxStyle1 + object cxGridDBColumn3: TcxGridDBColumn + Caption = #22823#21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 179 + end + object vHJColumn1: TcxGridDBColumn + Caption = #37325#37327'Kg' + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object vHJColumn2: TcxGridDBColumn + Caption = #38271#24230'm' + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object vHJColumn3: TcxGridDBColumn + Caption = #24133#23485'cm' + DataBinding.FieldName = 'MJFk' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object vHJColumn11: TcxGridDBColumn + Caption = #23454#38469#20811#37325 + DataBinding.FieldName = 'MJSJKZ' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object vHJColumn4: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 166 + end + object vHJColumn9: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 98 + end + object vHJColumn10: TcxGridDBColumn + Caption = #21407#26009#37197#27604 + DataBinding.FieldName = 'YLPB' + HeaderAlignmentHorz = taCenter + Width = 117 + end + object vHJColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 54 + end + object vHJColumn8: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object vHJColumn6: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object vHJColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvHJ + end + end + object HJMJID: TEdit + Left = 88 + Top = 81 + Width = 297 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnKeyPress = HJMJIDKeyPress + end + object Button7: TButton + Left = 140 + Top = 431 + Width = 145 + Height = 42 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button7Click + end + object Button8: TButton + Left = 852 + Top = 431 + Width = 145 + Height = 42 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button8Click + end + end + object MovePanel1: TMovePanel + Left = 88 + Top = 487 + Width = 344 + Height = 202 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 14 + Visible = False + object Label17: TLabel + Left = 30 + Top = 24 + Width = 84 + Height = 20 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 185 + Top = 69 + Width = 21 + Height = 20 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 301 + Top = 24 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 301 + Top = 104 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 31 + Top = 69 + Width = 77 + Height = 20 + Caption = 'Label21' + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object CDBeg: TEdit + Tag = 9999 + Left = 119 + Top = 16 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = XJLen1Click + end + object Button4: TButton + Left = 31 + Top = 147 + Width = 66 + Height = 38 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button4Click + end + object Button5: TButton + Left = 246 + Top = 147 + Width = 66 + Height = 38 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button5Click + end + object CDEnd: TEdit + Tag = 9999 + Left = 119 + Top = 94 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = XJLen1Click + end + end + object MovePanel3: TMovePanel + Left = 568 + Top = 104 + Width = 321 + Height = 177 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 15 + Visible = False + object Label13: TLabel + Left = 88 + Top = 16 + Width = 132 + Height = 33 + Caption = #36755#20837#23494#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Button9: TButton + Left = 32 + Top = 112 + Width = 75 + Height = 49 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button9Click + end + object Button10: TButton + Left = 200 + Top = 112 + Width = 75 + Height = 49 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button10Click + end + object Password: TEdit + Tag = 99999 + Left = 32 + Top = 56 + Width = 241 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + PasswordChar = '*' + TabOrder = 2 + OnClick = XJLen1Click + end + end + object cxStyleRepository5: TcxStyleRepository + Left = 936 + Top = 65532 + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 1232 + Top = 124 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 598 + Top = 75 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 686 + Top = 74 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 638 + Top = 74 + end + object DataSource1: TDataSource + DataSet = Cds_Main + Left = 744 + Top = 76 + end + object Cds_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 76 + end + object DataSource3: TDataSource + DataSet = CDS_XJID + Left = 1000 + Top = 670 + end + object CDS_XJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1032 + Top = 670 + end + object DataSource2: TDataSource + DataSet = CDS_XJCD + Left = 752 + Top = 670 + end + object CDS_XJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 792 + Top = 670 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svFont] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 136 + Top = 120 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 104 + Top = 120 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 168 + Top = 120 + end + object DSHJ: TDataSource + DataSet = CDS_HJ + Left = 352 + Top = 550 + end + object CDS_HJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 550 + end +end diff --git a/盛纺贸易管理/U_ZJManageNewFD.pas b/盛纺贸易管理/U_ZJManageNewFD.pas new file mode 100644 index 0000000..f336ab3 --- /dev/null +++ b/盛纺贸易管理/U_ZJManageNewFD.pas @@ -0,0 +1,1530 @@ +unit U_ZJManageNewFD; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, Buttons, ExtCtrls, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, MovePanel, ADODB, + DBClient, ComCtrls, RM_Common, RM_Class, RM_GridReport, RM_System, + RM_Dataset; + +type + TfrmZJManageNewFD = class(TForm) + MJID: TEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + Button1: TButton; + Button3: TButton; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Button6: TButton; + Panel6: TPanel; + Panel1: TPanel; + SmalMF1: TEdit; + SmalMF2: TEdit; + SmalMF3: TEdit; + SmalMF4: TEdit; + SmalMF5: TEdit; + SmalMF6: TEdit; + SmalMF7: TEdit; + SmalMF8: TEdit; + SmalMF9: TEdit; + SmalMF10: TEdit; + SmalMF11: TEdit; + SmalMF12: TEdit; + Panel2: TPanel; + XJLen1: TEdit; + XJLen2: TEdit; + XJLen3: TEdit; + XJLen4: TEdit; + XJLen5: TEdit; + XJLen6: TEdit; + XJLen7: TEdit; + XJLen8: TEdit; + XJLen9: TEdit; + XJLen10: TEdit; + XJLen11: TEdit; + XJLen12: TEdit; + Panel3: TPanel; + XJMaoZ1: TEdit; + XJMaoZ2: TEdit; + XJMaoZ3: TEdit; + XJMaoZ4: TEdit; + XJMaoZ5: TEdit; + XJMaoZ6: TEdit; + XJMaoZ7: TEdit; + XJMaoZ8: TEdit; + XJMaoZ9: TEdit; + XJMaoZ10: TEdit; + XJMaoZ11: TEdit; + XJMaoZ12: TEdit; + Panel4: TPanel; + Sel1: TEdit; + Sel2: TEdit; + Sel3: TEdit; + Sel4: TEdit; + Sel5: TEdit; + Sel6: TEdit; + Sel7: TEdit; + Sel8: TEdit; + Sel9: TEdit; + Sel10: TEdit; + Sel11: TEdit; + Sel12: TEdit; + ADOQueryTemp: TADOQuery; + Panel5: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + cxGrid4: TcxGrid; + TvSel: TcxGridDBTableView; + vSelColumn1: TcxGridDBColumn; + vSelColumn4: TcxGridDBColumn; + vSelColumn6: TcxGridDBColumn; + vSelColumn5: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + vSelColumn7: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + vSelColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + vSelColumn3: TcxGridDBColumn; + vSelColumn8: TcxGridDBColumn; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + DataSource1: TDataSource; + Cds_Main: TClientDataSet; + Button2: TButton; + MJCDHZ: TRichEdit; + DataSource3: TDataSource; + CDS_XJID: TClientDataSet; + DataSource2: TDataSource; + CDS_XJCD: TClientDataSet; + v2Column3: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + SmalNote: TRichEdit; + Label7: TLabel; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ADOQueryPrint: TADOQuery; + MovePanel2: TMovePanel; + Label8: TLabel; + cxGrid1: TcxGrid; + TvHJ: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + DSHJ: TDataSource; + CDS_HJ: TClientDataSet; + vHJColumn1: TcxGridDBColumn; + vHJColumn2: TcxGridDBColumn; + vHJColumn3: TcxGridDBColumn; + Label9: TLabel; + HJMJID: TEdit; + Button7: TButton; + Button8: TButton; + vHJColumn4: TcxGridDBColumn; + vHJColumn5: TcxGridDBColumn; + vHJColumn6: TcxGridDBColumn; + vHJColumn7: TcxGridDBColumn; + vHJColumn8: TcxGridDBColumn; + vHJColumn9: TcxGridDBColumn; + vHJColumn10: TcxGridDBColumn; + vHJColumn11: TcxGridDBColumn; + Panel7: TPanel; + XJFree1: TEdit; + XJFree2: TEdit; + XJFree3: TEdit; + XJFree4: TEdit; + XJFree5: TEdit; + XJFree6: TEdit; + XJFree7: TEdit; + XJFree8: TEdit; + XJFree9: TEdit; + XJFree10: TEdit; + XJFree11: TEdit; + XJFree12: TEdit; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + CDBeg: TEdit; + Button4: TButton; + Button5: TButton; + CDEnd: TEdit; + Panel8: TPanel; + XjJt1: TEdit; + XjJt2: TEdit; + XjJt3: TEdit; + XjJt4: TEdit; + XjJt5: TEdit; + XjJt6: TEdit; + XjJt7: TEdit; + XjJt8: TEdit; + XjJt9: TEdit; + XjJt10: TEdit; + XjJt11: TEdit; + XjJt12: TEdit; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + MovePanel3: TMovePanel; + Button9: TButton; + Button10: TButton; + Password: TEdit; + Label13: TLabel; + procedure Sel1Click(Sender: TObject); + procedure Edit64Click(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure XJLen1Click(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button3Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure HJMJIDKeyPress(Sender: TObject; var Key: Char); + procedure TvHJCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button9Click(Sender: TObject); + procedure Button10Click(Sender: TObject); + procedure PasswordClick(Sender: TObject); + private + { Private declarations } + FCDName:string; + procedure ClearSpenndHit(); + procedure VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); + function ChkEditNULL(panel55:TWinControl):Boolean; + procedure InitJP(); + procedure InitGridCD(); + procedure InitGridCDID(); + procedure ClearControl(Panel55:TWinControl;ConValue:String;SXCount:Integer); + procedure PrintData(FXJID:string;CDFlag:String); + public + { Public declarations } + end; + +var + frmZJManageNewFD: TfrmZJManageNewFD; + +implementation +uses +U_DataLink,U_Fun,U_ZDYHelp,U_iniParam,AES,ElAES,U_LabelPrint; + +{$R *.dfm} + +procedure TfrmZJManageNewFD.Sel1Click(Sender: TObject); +begin + if Trim(TcxTextEdit(Sender).Text)='' then + begin + TcxTextEdit(Sender).Text:=''; + end else + begin + TcxTextEdit(Sender).Text:=''; + end; +end; + +procedure TfrmZJManageNewFD.Edit64Click(Sender: TObject); +var + i:Integer; +begin + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; +end; +procedure TfrmZJManageNewFD.ClearSpenndHit(); +var + i:Integer; +begin + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=''; + end; + end; + end; +end; +procedure TfrmZJManageNewFD.VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + Controls[i].Visible:=XS; + end; + end; +end; +procedure TfrmZJManageNewFD.ClearControl(Panel55:TWinControl;ConValue:String;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + TEdit(Controls[i]).Text:=ConValue; + end; + end; +end; + +procedure TfrmZJManageNewFD.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManageNewFD.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManageNewFD.SpeedButton49Click(Sender: TObject); +begin + Panel5.Visible:=false; +end; + +function TfrmZJManageNewFD.ChkEditNULL(panel55:TWinControl):Boolean; +var + i:Integer; +begin + Result:=False; + with panel55 do + begin + for i:=0 to panel55.ControlCount-1 do + begin + if Controls[i].Visible=True then + begin + if Trim(TEdit(Controls[i]).Text)='' then + begin + Result:=False; + Break; + end else + begin + Result:=True; + end; + end; + + end; + end; + +end; + +procedure TfrmZJManageNewFD.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZJManageNewFD.FormDestroy(Sender: TObject); +begin + frmZJManageNewFD:=nil; +end; + +procedure TfrmZJManageNewFD.XJLen1Click(Sender: TObject); +var + i:Integer; +begin + if CDS_XJID.IsEmpty=False then + begin + if CDS_XJID.Locate('XJInt',TEdit(Sender).tag,[])=True then + begin + TEdit(Sender).Text:=Trim(CDS_XJID.fieldbyname(Copy(Trim(TEdit(Sender).Name),1,Length(Trim(TEdit(Sender).Name))-1)).AsString); + Panel5.Visible:=False; + Exit; + end; + end; + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; + // Panel5.Left:=Edit14.Left; + //Panel5.top:=Edit14.top+Edit14.Height; +end; + +procedure TfrmZJManageNewFD.MJIDKeyPress(Sender: TObject; var Key: Char); +var + FCount,i:Integer; + FXJXH:String; +begin + if Key=#13 then + begin + MJID.SelectAll; + ClearControl(Panel1,'',Panel1.ControlCount); + ClearControl(Panel2,'',Panel2.ControlCount); + ClearControl(Panel3,'',Panel3.ControlCount); + Label12.Visible:=True; + Label12.Caption:=Trim(MJID.Text); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select MJCDHZ=dbo.F_Get_WFBOrder_SubStr(A.MJID,''MJCDHZ''), D.*,'); + SQL.Add('A.*,C.OrderNo,B.SWFBColor,B.SWFBHW,B.WKMS,B.SWFBCode,B.SWFBCodeName '); + sql.add('from WFB_MJJY A inner join WFBOrder_Sub_AnPai D on A.APId=D.APId'); + sql.Add('inner join WFBOrder_Sub B on A.SubId=B.SubId'); + sql.Add('inner join WFBOrder_Main C on A.MainId=C.MainId'); + sql.Add('where A.MJID='''+Trim(MJID.Text)+''''); + sql.Add(' and A.Valie=''Y'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Cds_Main); + SInitCDSData20(ADOQueryMain,Cds_Main); + if Cds_Main.IsEmpty then + begin + MJCDHZ.Text:=''; + InitGridCDID(); + InitGridCD(); + Label12.Visible:=False; + MJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + MJCDHZ.Visible:=True; + MJCDHZ.Text:=Trim(Cds_Main.fieldbyname('MJCDHZ').AsString); + SmalNote.Text:=Trim(Cds_Main.fieldbyname('SmalNote').AsString); + if Cds_Main.FieldByName('SmalCount').Value<1 then + begin + Application.MessageBox('иС1','ʾ',0); + Exit; + end else + begin + FCount:=Cds_Main.FieldByName('SmalCount').Value; + VisbleControl(Panel1,False,Panel1.ControlCount); + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel3,False,Panel3.ControlCount); + VisbleControl(Panel4,False,Panel4.ControlCount); + VisbleControl(Panel1,True,FCount); + VisbleControl(Panel2,True,FCount); + VisbleControl(Panel3,True,FCount); + VisbleControl(Panel4,True,FCount); + VisbleControl(Panel7,True,FCount); + VisbleControl(Panel8,True,FCount); + SCSHDataCDS(Cds_Main,Panel1,0); + end; + InitGridCDID(); + InitGridCD(); + finally + ADOQueryMain.EnableControls; + end; + MJID.Text:=''; + {if CDS_XJID.IsEmpty=False then + begin + with CDS_XJID do + begin + First; + while not Eof do + begin + + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); + Next; + end; + end; + end; } + end; +end; + +procedure TfrmZJManageNewFD.Button2Click(Sender: TObject); +begin + WriteCxGrid('ʾϢ',TvSel,'޷IJ'); + Close; +end; + +procedure TfrmZJManageNewFD.FormShow(Sender: TObject); +begin + ReadCxGrid('ʾϢ',TvSel,'޷IJ'); + InitJP(); +end; + +procedure TfrmZJManageNewFD.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCDZJ'' order by ZDYNO '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ûжСõ㣡','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + if i>17 then + begin + i:=29; + end; + for j:=0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible:=True; + TSpeedButton(Controls[j]).Hint:=AA[j]; + if Length(AA[j])>4 then + begin + TSpeedButton(Controls[j]).Caption:=Copy(Trim(AA[j]),1,4)+#13+Copy(Trim(AA[j]),5,Length(AA[j])-4); + end else + TSpeedButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmZJManageNewFD.Button4Click(Sender: TObject); +var + i:Integer; +begin + if Trim(CDBeg.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + with CDS_XJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(FCDName); + FieldByName('CDbeg').Value:=Trim(CDBeg.Text); + FieldByName('CDEnd').Value:=Trim(CDEnd.Text); + if Trim(CDEnd.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(CDEnd.Text)-StrToFloat(CDBeg.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; + FieldByName('XJInt').Value:=i+1; + Post; + end; + end; + end; + end; + CDBeg.Text:=''; + CDEnd.Text:=''; + MovePanel1.Visible:=False; +end; + +procedure TfrmZJManageNewFD.SpeedButton13Click(Sender: TObject); +var + i,j:Integer; +begin + if Cds_Main.IsEmpty then Exit; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + j:=9; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end; + FCDName:=Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible:=True; + Label21.Caption:=Trim(FCDName); + CDBeg.SetFocus; + + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim('CDBeg'); + end; + end; + end; +end; +procedure TfrmZJManageNewFD.InitGridCD(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + if Trim(CDS_XJID.fieldbyname('XJID').AsString)<>'' then + begin + sql.Add('select A.*,B.XJInt from WFB_XJJY_CD A inner join WFB_XJJY B on A.XJID=B.XJID'); + sql.Add(' where B.MJID='''+Trim(MJID.Text)+''''); + end + else + sql.Add('select A.*,B.XJInt from WFB_XJJY_CD A inner join WFB_XJJY B on A.XJID=B.XJID where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_XJCD); + SInitCDSData20(ADOQueryMain,CDS_XJCD); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmZJManageNewFD.InitGridCDID(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(MJID.Text)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_XJID); + SInitCDSData20(ADOQueryMain,CDS_XJID); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmZJManageNewFD.Button5Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmZJManageNewFD.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Trim(CDS_XJCD.fieldbyname('XJID').AsString)<>'' then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_XJCD.Delete; +end; + +procedure TfrmZJManageNewFD.Button3Click(Sender: TObject); +var + i,j,FXJInt,CRID:Integer; + FXJSJKZ:Double; + maxno,maxnocd,MaxCkNo,MaxCkSubNo,XJBanZu,FFXJLen,FFXJMaoZ,FFXJFk,FFXJFree,FFXJJt:String; +begin + if Cds_Main.IsEmpty then Exit; + with Panel2 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + Application.MessageBox('δȫ¼룬ܴӡ','ʾ',0); + Exit; + end; + end; + end; + with Panel3 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + Application.MessageBox('δȫ¼룬ܴӡ','ʾ',0); + Exit; + end; + end; + end; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end else + if j>9 then + begin + Application.MessageBox('ѡС','ʾ',0); + Exit; + end; + if Trim(TEdit(FindComponent('XJLen'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ȲΪգ','ʾ',0); + Exit; + end else + begin + FFXJLen:=Trim(TEdit(FindComponent('XJLen'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJMaoZ'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end else + begin + FFXJMaoZ:=Trim(TEdit(FindComponent('XJMaoZ'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('SmalMF'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end else + begin + FFXJFk:=Trim(TEdit(FindComponent('SmalMF'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJFree'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + FFXJFree:='0'; + end else + begin + FFXJFree:=Trim(TEdit(FindComponent('XJFree'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJJt'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + FFXJJt:='0'; + end else + begin + FFXJJt:=Trim(TEdit(FindComponent('XJJt'+Trim(IntToStr(FXJInt)))).Text); + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJID').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѵ룬볢´ӡ','',0); + Exit; + end; + FXJSJKZ:=StrToFloat(FFXJMaoZ)/(StrToFloat(FFXJLen)*StrToFloat(FFXJFk)/100)*1000; + if( (FXJSJKZ-Cds_Main.FieldByName('MJSJKZ').Value)/Cds_Main.FieldByName('MJSJKZ').Value )<-0.3 then + begin + Application.MessageBox('ݣ','ʾ',0); + Exit; + end; + if( (FXJSJKZ-Cds_Main.FieldByName('MJSJKZ').Value)/Cds_Main.FieldByName('MJSJKZ').Value )>0.3 then + begin + Application.MessageBox('ݣ','ʾ',0); + Exit; + end; + try + ADOQueryCmd.Connection.BeginTrans; + //////////////////////////////////////////////////////////////С + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + XJBanZu:=Trim(ADOQueryTemp.fieldbyname('BanZu').AsString); + if GetLSNo(ADOQueryCmd,maxno,Trim(XJFlag),'WFB_XJJY',4,1)=false then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡС쳣','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('select * from WFB_XJJY where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJID').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XJInt').Value:=FXJInt; + FieldByName('XJLen').Value:=StrToFloat(FFXJLen); + FieldByName('XJMaoZ').Value:=StrToFloat(FFXJMaoZ); + FieldByName('XJFK').Value:=StrToFloat(FFXJFk); + FieldByName('XJFree').Value:=StrToFloat(FFXJFree); + FieldByName('XJJt').Value:=StrToFloat(FFXJJt); + FieldByName('XJBanZu').Value:=Trim(XJBanZu); + FieldByName('JTTYpe').Value:=Trim(XJFlag); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('XJSJKZ').Value:=StrToFloat(FFXJMaoZ)/(StrToFloat(FFXJLen)*StrToFloat(FFXJFk)/100)*1000; + //FieldByName('') + Post; + end; + with CDS_XJID do + begin + Append; + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XJInt').Value:=FXJInt; + FieldByName('XJLen').Value:=StrToFloat(FFXJLen); + FieldByName('XJMaoZ').Value:=StrToFloat(FFXJMaoZ); + FieldByName('XJFK').Value:=StrToFloat(FFXJFk); + FieldByName('XJFree').Value:=StrToFloat(FFXJFree); + FieldByName('XJJt').Value:=StrToFloat(FFXJJt); + Post; + end; + //////////////////////////////////////////////////////////////С + //////////////////////////////////////////////////////////////Сõ + with CDS_XJCD do + begin + First; + while not Eof do + begin + if CDS_XJCD.FieldByName('XJInt').Value=FXJInt then + begin + if GetLSNo(ADOQueryCmd,maxnocd,'XC','WFB_XJJY_CD',5,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡСõʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_XJJY_CD where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XCID').Value:=Trim(maxnocd); + FieldByName('CDName').Value:=CDS_XJCD.fieldbyname('CDName').Value; + FieldByName('CDBeg').Value:=CDS_XJCD.fieldbyname('CDBeg').Value; + FieldByName('CDEnd').Value:=CDS_XJCD.fieldbyname('CDEnd').Value; + FieldByName('CDQty').Value:=CDS_XJCD.fieldbyname('CDQty').Value; + Post; + end; + end; + Next; + end; + end; + //////////////////////////////////////////////////////////////Сõ + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryTemp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Cds_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Cds_Main.fieldbyname('SubId').AsString); + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJId').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('MQty').Value:=StrToFloat(FFXJLen); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('KCKGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('KCMQty').Value:=StrToFloat(FFXJLen); + Post; + end; + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + ADOQueryCmd.Connection.CommitTrans; + PrintData(Trim(maxno),''); + //Application.MessageBox('ɹ','ʾ',0); + //MJID.SelectAll; + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; +procedure TfrmZJManageNewFD.PrintData(FXJID:string;CDFlag:String); +var + fPrintFile,LabInt,LabName:String; +begin + if Trim(FXJID)='' then exit; + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + if Trim(CDFlag)<>'' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_XJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where XJID='''+Trim(FXJID)+''''); + ExecSQL; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add(' select C.LbXInt,C.LbXName from WFB_XJJY A'); + sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID'); + sql.Add(' inner join WFBOrder_Main C on B.MainId=C.MainId'); + sql.Add(' where A.XJID='''+Trim(FXJID)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + LabInt:=ADOQueryTemp.fieldbyname('LbXInt').AsString; + LabName:=ADOQueryTemp.fieldbyname('LbXName').AsString; + end ; + if Trim(LabName)='' then + begin + Application.MessageBox('Сǩδã','ʾ',0); + Exit; + end; + { try + frmLabelPrint:=TfrmLabelPrint.Create(Application); + with frmLabelPrint do + begin + fLabelId:=LabInt; + FFCDFlag:=Trim(CDFlag); + fKeyNo:=Trim(FXJID); + fIsPreviewPrint:=True; + frmLabelPrint.Button1.Click; + // if ShowModal=1 then + //begin + + // end; + end; + finally + frmLabelPrint.Free; + end; } + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select RTrim(AA.XJID) XJID,RTrim(Cast(AA.XJSJKZ as varchar(20))) XJSJKZ,RTrim(cast(Cast(AA.XJFK*10 as int) as varchar(20))) XJFK,RTrim(B.OrderNo)+'''+Trim(CDFlag)+''' OrderNo'); + sql.Add(',Rtrim(C.SWFBColor) SWFBColor, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + SQL.Add(',EngColor=(select Top 1 note from KH_Zdy where ZdyName=C.SWFBColor)'); + sql.Add(',Rtrim(Cast(AA.XJlen as varchar(20))) XJlen,Rtrim(Cast(AA.XJMaoZ as varchar(20))) XJMaoZ'); + sql.Add(',Rtrim(Cast(AA.XJFree as varchar(20))) XJFree,Rtrim(Cast( Cast(AA.XJlen*AA.XJFK/100 as int) as varchar(20))) XJPFM'); + sql.Add(',Rtrim(Cast(Cast(C.SWFBKZ as int) as varchar(20))) SWFBKZ'); + sql.Add(',Rtrim(Cast(Cast(AA.XJJt as int) as varchar(20))) XJJt'); + sql.Add(',RTrim(B.LbEngName) LbEngName'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_XJJY AA '); + sql.add(' inner join WFB_MJJY A on AA.MJID=A.MJID') ; + sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where AA.XJID='''+Trim(FXJID)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + Rm2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf'),'ʾ',0); + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmZJManageNewFD.Button6Click(Sender: TObject); +var + i,j,FXJInt:Integer; +begin + if Cds_Main.IsEmpty then Exit; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end else + if j>9 then + begin + Application.MessageBox('ѡС','ʾ',0); + Exit; + end; + + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJId').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=True then + begin + Application.MessageBox('δ룬´ӡ','ʾ',0); + Exit; + end; + MovePanel3.Visible:=True; + // PrintData(Trim(ADOQueryTemp.fieldbyname('XJID').AsString),'ش'); + //MJID.SelectAll; +end; + +procedure TfrmZJManageNewFD.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FXJXH:String; +begin + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); +end; + +procedure TfrmZJManageNewFD.Button1Click(Sender: TObject); +begin + MovePanel2.Visible:=True; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId,C.SWFBKZ '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB'')'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_HJ); + SInitCDSData20(ADOQueryTemp,CDS_HJ); +end; + +procedure TfrmZJManageNewFD.Button8Click(Sender: TObject); +begin + MovePanel2.Visible:=False; +end; + +procedure TfrmZJManageNewFD.Button7Click(Sender: TObject); +var + maxno,fPrintFile,maxnosub:String; + i:Double; +begin + if Application.MessageBox('ȷҪϾ𣿺Ͼݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxno,'','WFB_MJJY',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_HJ.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_HJ.fieldbyname('SubId').AsString); + FieldByName('APId').Value:=Trim(CDS_HJ.fieldbyname('APId').AsString); + FieldByName('MJId').Value:=Trim(maxno); + FieldByName('MJMaoZ').Value:=TvHJ.DataController.Summary.FooterSummaryValues[1]; + FieldByName('MJLen').Value:=TvHJ.DataController.Summary.FooterSummaryValues[2]; + FieldByName('MJFK').Value:=TvHJ.DataController.Summary.FooterSummaryValues[5]; + FieldByName('MJSJKZ').Value:=TvHJ.DataController.Summary.FooterSummaryValues[4]; + FieldByName('MJType').Value:='Ͼ'; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + + Post; + end; + i:=0; + with CDS_HJ do + begin + First; + while not Eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set HJMJID='''+Trim(maxno)+''''); + SQL.Add(',MJType=''Ͼ'',Valie=''N'' '); + SQL.Add(' where MJID='''+Trim(CDS_HJ.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_HJ.fieldbyname('MJID').AsString)+''''); + Open; + end; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxnosub,'','WFB_MJJY_CD',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡСʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD where 1<>1'); + open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MCID').Value:=Trim(maxnosub); + FieldByName('CDBeg').Value:=ADOQueryTemp.fieldbyname('CDBeg').Value+i; + FieldByName('CDEnd').Value:=ADOQueryTemp.fieldbyname('CDEnd').Value+i; + FieldByName('CDQty').Value:=ADOQueryTemp.fieldbyname('CDQty').Value; + FieldByName('CDName').Value:=ADOQueryTemp.fieldbyname('CDName').Value; + Post; + end; + Next; + end; + end; + i:=i+CDS_HJ.FieldByName('MJLen').Value; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add(' select RTrim(A.MJID) MJID,RTrim(Cast(A.MJSJKZ As varchar(20))) MJSJKZ,RTrim(Cast(A.MJFK as varchar(20))) MJFK,RTrim(B.OrderNo) OrderNo,'); + sql.Add(' RTrim(Cast(A.MJMaoZ As varchar(20))) MJMaoZ,RTrim(Cast(A.MJLen As varchar(20))) MJLen,'); + sql.Add(' Rtrim(C.SWFBColor) SWFBColor,Rtrim(Cast(C.SWFBKZ as varchar(20))) SWFBKZ, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(maxno)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; + Application.MessageBox('Ͼɹ','ʾ',0); + MovePanel2.Visible:=False; + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ͼ쳣','ʾ',0); + end; + +end; + +procedure TfrmZJManageNewFD.HJMJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_MJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_XJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + HJMJID.Text:=''; + Application.MessageBox('˴ѷУ','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB''),C.SWFBKZ'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and A.valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if CDS_HJ.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + HJMJID.Text:=''; + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + if CDS_HJ.IsEmpty=False then + begin + if CDS_HJ.Locate('SubId',Trim(ADOQueryTemp.fieldbyname('SubId').AsString),[])=False then + begin + HJMJID.Text:=''; + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + {if CDS_HJ.Locate('YLPB',Trim(ADOQueryTemp.fieldbyname('YLPB').AsString),[])=False then + begin + Application.MessageBox('ԭȲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBCode',Trim(ADOQueryTemp.fieldbyname('SWFBCode').AsString),[])=False then + begin + Application.MessageBox('ƷŲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBColor',Trim(ADOQueryTemp.fieldbyname('SWFBColor').AsString),[])=False then + begin + Application.MessageBox('ɫͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBHW',Trim(ADOQueryTemp.fieldbyname('SWFBHW').AsString),[])=False then + begin + Application.MessageBox('ͲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('WKMS',Trim(ADOQueryTemp.fieldbyname('WKMS').AsString),[])=False then + begin + Application.MessageBox('ĿͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('XJFK',Trim(ADOQueryTemp.fieldbyname('XJFK').AsString),[])=False then + begin + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBKZ',Trim(ADOQueryTemp.fieldbyname('SWFBKZ').AsString),[])=False then + begin + Application.MessageBox('زͬܺϾ','ʾ',0); + Exit; + end; } + end; + with CDS_HJ do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('SubId').Value:=ADOQueryTemp.fieldbyname('SubId').Value; + FieldByName('APId').Value:=ADOQueryTemp.fieldbyname('APId').Value; + FieldByName('MainId').Value:=ADOQueryTemp.fieldbyname('MainId').Value; + FieldByName('YLPB').Value:=ADOQueryTemp.fieldbyname('YLPB').Value; + FieldByName('SWFBCode').Value:=ADOQueryTemp.fieldbyname('SWFBCode').Value; + FieldByName('SWFBCodeName').Value:=ADOQueryTemp.fieldbyname('SWFBCodeName').Value; + FieldByName('SWFBColor').Value:=ADOQueryTemp.fieldbyname('SWFBColor').Value; + FieldByName('WKMS').Value:=ADOQueryTemp.fieldbyname('WKMS').Value; + FieldByName('SWFBHW').Value:=ADOQueryTemp.fieldbyname('SWFBHW').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + FieldByName('SWFBKZ').Value:=ADOQueryTemp.fieldbyname('SWFBKZ').Value; + FieldByName('MJMaoZ').Value:=ADOQueryTemp.fieldbyname('MJMaoZ').Value; + FieldByName('MJLen').Value:=ADOQueryTemp.fieldbyname('MJLen').Value; + FieldByName('MJFK').Value:=ADOQueryTemp.fieldbyname('MJFK').Value; + FieldByName('MJSJKZ').Value:=ADOQueryTemp.fieldbyname('MJSJKZ').Value; + Post; + end; + end else + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + HJMJID.Text:=''; + end; + +end; + +procedure TfrmZJManageNewFD.TvHJCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_HJ.Delete; +end; + +procedure TfrmZJManageNewFD.Button9Click(Sender: TObject); +var + i,j,FXJInt:Integer; + mm,mm2:String; +begin + with ADOQueryTemp do + begin + sql.Clear; + sql.add('SELECT userid,username,password FROM SY_User WHERE userid='+''''+trim(DCode)+''''); + Open; + mm:=Trim(Fields[2].AsString); + if Trim(mm)<>'' then + mm2:=Trim(DecryptString(Trim(mm),'ljb^0122!@#*&^%$',kb128)) + else + begin + Application.MessageBox('벻Ϊգ','ʾ',0); + Exit; + end; + close; + end; + + if ( mm2=trim(Password.text) ) then + begin + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJId').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=True then + begin + Application.MessageBox('δ룬´ӡ','ʾ',0); + Exit; + end; + PrintData(Trim(ADOQueryTemp.fieldbyname('XJID').AsString),'ش'); + MovePanel3.Visible:=False; + end else + Application.MessageBox('', 'Ϣʾ', MB_OK or MB_ICONinformation); + + //MJID.SelectAll; +end; + +procedure TfrmZJManageNewFD.Button10Click(Sender: TObject); +begin + MovePanel3.Visible:=False; +end; + +procedure TfrmZJManageNewFD.PasswordClick(Sender: TObject); +begin + Panel5.Visible:=True; +end; + +end. diff --git a/盛纺贸易管理/U_ZJManageNewFDMORE.dfm b/盛纺贸易管理/U_ZJManageNewFDMORE.dfm new file mode 100644 index 0000000..28ee41b --- /dev/null +++ b/盛纺贸易管理/U_ZJManageNewFDMORE.dfm @@ -0,0 +1,2804 @@ +object frmZJManageNewFDMORE: TfrmZJManageNewFDMORE + Left = -78 + Top = 21 + Width = 1292 + Height = 734 + Caption = #23567#21367#20998#20999 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 22 + Top = 13 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 22 + Top = 159 + Width = 62 + Height = 58 + Caption = #24133#23485#13#10' cm' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 22 + Top = 227 + Width = 62 + Height = 58 + Caption = #38271#24230#13#10' M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 22 + Top = 379 + Width = 62 + Height = 58 + Caption = #37325#37327#13#10' Kg' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 22 + Top = 518 + Width = 62 + Height = 29 + Caption = #30133#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 22 + Top = 450 + Width = 62 + Height = 29 + Caption = #36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 992 + Top = 56 + Width = 23 + Height = 84 + Caption = #20998#13#10#20999#13#10#35828#13#10#26126 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 22 + Top = 334 + Width = 62 + Height = 29 + Caption = #25509#22836 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 22 + Top = 291 + Width = 62 + Height = 29 + Caption = #36192#36865 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 994 + Top = 16 + Width = 100 + Height = 24 + Caption = #27597#21367#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -24 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label14: TLabel + Left = 30 + Top = 54 + Width = 42 + Height = 40 + Caption = #38271#24230#13#10#25130#26029 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object MJID: TEdit + Left = 88 + Top = 9 + Width = 233 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = XJLen1Click + OnKeyPress = MJIDKeyPress + end + object ScrollBox1: TScrollBox + Left = 88 + Top = 517 + Width = 501 + Height = 151 + TabOrder = 1 + object SpeedButton13: TSpeedButton + Left = 3 + Top = 3 + Width = 60 + Height = 60 + Caption = #23567#40657#28857 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton14: TSpeedButton + Left = 64 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton15: TSpeedButton + Left = 125 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton16: TSpeedButton + Left = 186 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton17: TSpeedButton + Left = 247 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton18: TSpeedButton + Left = 308 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton19: TSpeedButton + Left = 369 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton20: TSpeedButton + Left = 430 + Top = 3 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton21: TSpeedButton + Left = 3 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton22: TSpeedButton + Left = 64 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton23: TSpeedButton + Left = 125 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton24: TSpeedButton + Left = 186 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton25: TSpeedButton + Left = 247 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton26: TSpeedButton + Left = 308 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton27: TSpeedButton + Left = 369 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + object SpeedButton28: TSpeedButton + Left = 430 + Top = 69 + Width = 60 + Height = 60 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + Visible = False + OnClick = SpeedButton13Click + end + end + object Button1: TButton + Left = 418 + Top = 7 + Width = 145 + Height = 42 + Caption = #21516#21333#21512#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button1Click + end + object Button3: TButton + Left = 571 + Top = 9 + Width = 144 + Height = 40 + Caption = #25171' '#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button3Click + end + object cxGrid2: TcxGrid + Left = 584 + Top = 514 + Width = 361 + Height = 156 + TabOrder = 4 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle3 + object v2Column3: TcxGridDBColumn + Caption = #21367#24207#21495 + DataBinding.FieldName = 'XJInt' + Width = 56 + end + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#31181#31867 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Width = 79 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Width = 60 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Width = 61 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Footer = cxStyle2 + Width = 92 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = cxStyle2 + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Styles.Content = cxStyle2 + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxGrid3: TcxGrid + Left = 944 + Top = 514 + Width = 265 + Height = 155 + TabOrder = 5 + object Tv3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv3CellClick + DataController.DataSource = DataSource3 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object v3Column1: TcxGridDBColumn + Caption = #21367#24207#21495 + DataBinding.FieldName = 'XJInt' + Styles.Content = cxStyle2 + Width = 56 + end + object cxGridDBColumn1: TcxGridDBColumn + Caption = #23567#21367#26465#30721 + DataBinding.FieldName = 'XJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 188 + end + end + object cxGridLevel2: TcxGridLevel + GridView = Tv3 + end + end + object Button6: TButton + Left = 723 + Top = 10 + Width = 145 + Height = 39 + Caption = #37325#26032#25171#21360 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + OnClick = Button6Click + end + object Panel6: TPanel + Left = 88 + Top = 154 + Width = 1122 + Height = 344 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 7 + object Panel1: TPanel + Left = 8 + Top = 7 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 0 + object SmalMF1: TEdit + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + end + object SmalMF2: TEdit + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + end + object SmalMF3: TEdit + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + end + object SmalMF4: TEdit + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + end + object SmalMF5: TEdit + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + end + object SmalMF6: TEdit + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + end + object SmalMF7: TEdit + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + end + object SmalMF8: TEdit + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + end + object SmalMF9: TEdit + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + end + object SmalMF10: TEdit + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + end + object SmalMF11: TEdit + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + end + object SmalMF12: TEdit + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + end + end + object Panel2: TPanel + Left = 8 + Top = 66 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object XJLen1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJLen2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJLen3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJLen4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJLen5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJLen6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJLen7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJLen8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJLen9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJLen10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJLen11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJLen12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel3: TPanel + Left = 8 + Top = 228 + Width = 1105 + Height = 54 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 2 + object XJMaoZ1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJMaoZ12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel4: TPanel + Left = 8 + Top = 283 + Width = 1105 + Height = 53 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 3 + object Sel1: TEdit + Tag = 1 + Left = 27 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 0 + Visible = False + OnClick = Sel1Click + end + object Sel2: TEdit + Tag = 2 + Left = 119 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 1 + Visible = False + OnClick = Sel1Click + end + object Sel3: TEdit + Tag = 3 + Left = 211 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 2 + Visible = False + OnClick = Sel1Click + end + object Sel4: TEdit + Tag = 4 + Left = 303 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 3 + Visible = False + OnClick = Sel1Click + end + object Sel5: TEdit + Tag = 5 + Left = 395 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 4 + Visible = False + OnClick = Sel1Click + end + object Sel6: TEdit + Tag = 6 + Left = 487 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 5 + Visible = False + OnClick = Sel1Click + end + object Sel7: TEdit + Tag = 7 + Left = 578 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 6 + Visible = False + OnClick = Sel1Click + end + object Sel8: TEdit + Tag = 8 + Left = 670 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 7 + Visible = False + OnClick = Sel1Click + end + object Sel9: TEdit + Tag = 9 + Left = 762 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 8 + Visible = False + OnClick = Sel1Click + end + object Sel10: TEdit + Tag = 10 + Left = 854 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 9 + Visible = False + OnClick = Sel1Click + end + object Sel11: TEdit + Tag = 11 + Left = 946 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 10 + Visible = False + OnClick = Sel1Click + end + object Sel12: TEdit + Tag = 12 + Left = 1038 + Top = 5 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 11 + Visible = False + OnClick = Sel1Click + end + end + object Panel7: TPanel + Left = 8 + Top = 124 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 4 + object XJFree1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XJFree2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XJFree3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XJFree4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XJFree5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XJFree6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XJFree7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XJFree8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XJFree9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XJFree10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XJFree11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XJFree12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + object Panel8: TPanel + Left = 8 + Top = 172 + Width = 1105 + Height = 52 + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 5 + object XjJt1: TEdit + Tag = 1 + Left = 9 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnClick = XJLen1Click + end + object XjJt2: TEdit + Tag = 2 + Left = 100 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + Visible = False + OnClick = XJLen1Click + end + object XjJt3: TEdit + Tag = 3 + Left = 191 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + Visible = False + OnClick = XJLen1Click + end + object XjJt4: TEdit + Tag = 4 + Left = 282 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + OnClick = XJLen1Click + end + object XjJt5: TEdit + Tag = 5 + Left = 373 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + Visible = False + OnClick = XJLen1Click + end + object XjJt6: TEdit + Tag = 6 + Left = 464 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + Visible = False + OnClick = XJLen1Click + end + object XjJt7: TEdit + Tag = 7 + Left = 555 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 6 + Visible = False + OnClick = XJLen1Click + end + object XjJt8: TEdit + Tag = 8 + Left = 646 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 7 + Visible = False + OnClick = XJLen1Click + end + object XjJt9: TEdit + Tag = 9 + Left = 737 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 8 + Visible = False + OnClick = XJLen1Click + end + object XjJt10: TEdit + Tag = 10 + Left = 828 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + Visible = False + OnClick = XJLen1Click + end + object XjJt11: TEdit + Tag = 11 + Left = 919 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 10 + Visible = False + OnClick = XJLen1Click + end + object XjJt12: TEdit + Tag = 12 + Left = 1010 + Top = 8 + Width = 85 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 11 + Visible = False + OnClick = XJLen1Click + end + end + end + object cxGrid4: TcxGrid + Left = 88 + Top = 51 + Width = 898 + Height = 55 + TabOrder = 8 + object TvSel: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + Styles.Header = cxStyle3 + object vSelColumn1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 149 + end + object vSelColumn4: TcxGridDBColumn + Caption = #20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 89 + end + object vSelColumn6: TcxGridDBColumn + Caption = #22823#21367#38376#24133'CM' + DataBinding.FieldName = 'MJFK' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 94 + end + object vSelColumn5: TcxGridDBColumn + Caption = #22823#21367#38271'M' + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 68 + end + object cxGridDBColumn7: TcxGridDBColumn + Caption = #22823#21367#37325'Kg' + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Styles.Header = cxStyle1 + Width = 81 + end + object vSelColumn2: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MJSJKZ' + Styles.Content = cxStyle3 + Width = 41 + end + object cxGridDBColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Width = 43 + end + object vSelColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + Styles.Content = cxStyle3 + Width = 74 + end + object cxGridDBColumn6: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle3 + Width = 58 + end + object vSelColumn3: TcxGridDBColumn + Caption = #20998#20999#20010#25968 + DataBinding.FieldName = 'SmalCount' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 79 + end + object vSelColumn8: TcxGridDBColumn + Caption = #20801#35768#20559#24046 + DataBinding.FieldName = 'SmalPC' + HeaderAlignmentHorz = taCenter + Styles.Content = cxStyle3 + Width = 78 + end + end + object cxGridLevel3: TcxGridLevel + GridView = TvSel + end + end + object Button2: TButton + Left = 876 + Top = 10 + Width = 82 + Height = 39 + Caption = #36864#20986 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 9 + OnClick = Button2Click + end + object MJCDHZ: TRichEdit + Left = 88 + Top = 108 + Width = 899 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 10 + end + object SmalNote: TRichEdit + Left = 1016 + Top = 50 + Width = 193 + Height = 98 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + Lines.Strings = ( + '') + ParentFont = False + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 11 + end + object MovePanel2: TMovePanel + Left = 96 + Top = 53 + Width = 1137 + Height = 505 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 12 + Visible = False + object Label8: TLabel + Left = 421 + Top = 24 + Width = 262 + Height = 35 + Caption = #21516' '#21333' '#21512' '#21367 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 22 + Top = 85 + Width = 66 + Height = 33 + Caption = #25195#25551 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object cxGrid1: TcxGrid + Left = 8 + Top = 144 + Width = 1121 + Height = 249 + TabOrder = 0 + object TvHJ: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = TvHJCellDblClick + DataController.DataSource = DSHJ + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = vHJColumn1 + end + item + Kind = skSum + Column = vHJColumn2 + end + item + Format = #21367#20010#25968#65306'#' + Kind = skCount + Column = cxGridDBColumn3 + end + item + Kind = skAverage + Column = vHJColumn11 + end + item + Kind = skAverage + Column = vHJColumn3 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Content = cxStyle3 + Styles.Footer = cxStyle3 + Styles.Header = cxStyle1 + object cxGridDBColumn3: TcxGridDBColumn + Caption = #22823#21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = cxStyle2 + Styles.Header = cxStyle1 + Width = 179 + end + object vHJColumn1: TcxGridDBColumn + Caption = #37325#37327'Kg' + DataBinding.FieldName = 'MJMaoZ' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object vHJColumn2: TcxGridDBColumn + Caption = #38271#24230'm' + DataBinding.FieldName = 'MJLen' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object vHJColumn3: TcxGridDBColumn + Caption = #24133#23485'cm' + DataBinding.FieldName = 'MJFk' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object vHJColumn11: TcxGridDBColumn + Caption = #23454#38469#20811#37325 + DataBinding.FieldName = 'MJSJKZ' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object vHJColumn4: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Width = 166 + end + object vHJColumn9: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'SWFBCodeName' + HeaderAlignmentHorz = taCenter + Width = 98 + end + object vHJColumn10: TcxGridDBColumn + Caption = #21407#26009#37197#27604 + DataBinding.FieldName = 'YLPB' + HeaderAlignmentHorz = taCenter + Width = 117 + end + object vHJColumn5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'SWFBColor' + HeaderAlignmentHorz = taCenter + Width = 54 + end + object vHJColumn8: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'SWFBHW' + HeaderAlignmentHorz = taCenter + Width = 59 + end + object vHJColumn6: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'SWFBKZ' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object vHJColumn7: TcxGridDBColumn + Caption = #32593#23380#30446#25968 + DataBinding.FieldName = 'WKMS' + HeaderAlignmentHorz = taCenter + Width = 79 + end + end + object cxGridLevel4: TcxGridLevel + GridView = TvHJ + end + end + object HJMJID: TEdit + Left = 88 + Top = 81 + Width = 244 + Height = 41 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = XJLen1Click + OnKeyPress = HJMJIDKeyPress + end + object Button7: TButton + Left = 45 + Top = 431 + Width = 69 + Height = 42 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button7Click + end + object Button8: TButton + Left = 1017 + Top = 431 + Width = 75 + Height = 42 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = Button8Click + end + object Button12: TButton + Left = 334 + Top = 81 + Width = 78 + Height = 41 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = Button12Click + end + end + object MovePanel1: TMovePanel + Left = 88 + Top = 487 + Width = 344 + Height = 202 + BevelInner = bvLowered + Color = clSkyBlue + TabOrder = 13 + Visible = False + object Label17: TLabel + Left = 30 + Top = 24 + Width = 84 + Height = 20 + Caption = #36215#22987#20301#32622 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 185 + Top = 69 + Width = 21 + Height = 20 + Caption = #21040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 301 + Top = 24 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 301 + Top = 104 + Width = 11 + Height = 20 + Caption = 'M' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 31 + Top = 69 + Width = 77 + Height = 20 + Caption = 'Label21' + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -20 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object CDBeg: TEdit + Tag = 9999 + Left = 119 + Top = 16 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = XJLen1Click + end + object Button4: TButton + Left = 31 + Top = 147 + Width = 66 + Height = 38 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button4Click + end + object Button5: TButton + Left = 246 + Top = 147 + Width = 66 + Height = 38 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = Button5Click + end + object CDEnd: TEdit + Tag = 9999 + Left = 119 + Top = 94 + Width = 174 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + OnClick = XJLen1Click + end + end + object MovePanel3: TMovePanel + Left = 568 + Top = 104 + Width = 321 + Height = 177 + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 14 + Visible = False + object Label13: TLabel + Left = 88 + Top = 16 + Width = 132 + Height = 33 + Caption = #36755#20837#23494#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + end + object Button9: TButton + Left = 32 + Top = 112 + Width = 75 + Height = 49 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = Button9Click + end + object Button10: TButton + Left = 200 + Top = 112 + Width = 75 + Height = 49 + Caption = #21462#28040 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -19 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = Button10Click + end + object Password: TEdit + Tag = 99999 + Left = 32 + Top = 56 + Width = 241 + Height = 37 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + PasswordChar = '*' + TabOrder = 2 + OnClick = XJLen1Click + end + end + object LenCut: TEdit + Tag = 1 + Left = 31 + Top = 99 + Width = 43 + Height = 43 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + ReadOnly = True + TabOrder = 15 + OnClick = LenCutClick + end + object Button11: TButton + Left = 326 + Top = 8 + Width = 78 + Height = 41 + Caption = #30830#23450 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 16 + OnClick = Button11Click + end + object Panel5: TPanel + Left = 586 + Top = 501 + Width = 625 + Height = 172 + BevelInner = bvRaised + BevelOuter = bvLowered + ParentColor = True + TabOrder = 17 + Visible = False + object SpeedButton1: TSpeedButton + Left = 4 + Top = 3 + Width = 80 + Height = 80 + Caption = '0' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 88 + Top = 3 + Width = 80 + Height = 80 + Caption = '1' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton3: TSpeedButton + Left = 172 + Top = 3 + Width = 80 + Height = 80 + Caption = '2' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton4: TSpeedButton + Left = 256 + Top = 3 + Width = 80 + Height = 80 + Caption = '3' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton5: TSpeedButton + Left = 340 + Top = 3 + Width = 80 + Height = 80 + Caption = '4' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton6: TSpeedButton + Left = 4 + Top = 87 + Width = 80 + Height = 80 + Caption = '5' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton7: TSpeedButton + Left = 88 + Top = 87 + Width = 80 + Height = 80 + Caption = '6' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton8: TSpeedButton + Left = 172 + Top = 87 + Width = 80 + Height = 80 + Caption = '7' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton9: TSpeedButton + Left = 256 + Top = 87 + Width = 80 + Height = 80 + Caption = '8' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton10: TSpeedButton + Left = 340 + Top = 87 + Width = 80 + Height = 80 + Caption = '9' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -37 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton11: TSpeedButton + Tag = 9 + Left = 424 + Top = 87 + Width = 80 + Height = 80 + Caption = '.' + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton1Click + end + object SpeedButton12: TSpeedButton + Left = 424 + Top = 3 + Width = 80 + Height = 80 + Caption = #8592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -53 + Font.Name = #40657#20307 + Font.Style = [] + ParentFont = False + OnClick = SpeedButton12Click + end + object SpeedButton49: TSpeedButton + Tag = 9 + Left = 517 + Top = 88 + Width = 84 + Height = 77 + Caption = #38544#34255 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton49Click + end + object SpeedButton29: TSpeedButton + Tag = 9 + Left = 517 + Top = 6 + Width = 84 + Height = 77 + Caption = #20840#28165 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + OnClick = SpeedButton29Click + end + end + object KWName: TEdit + Left = 0 + Top = 595 + Width = 88 + Height = 29 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = #26999#20307'_GB2312' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 18 + Visible = False + end + object KWSel: TButton + Left = 0 + Top = 565 + Width = 87 + Height = 31 + Caption = #25176#30424#36873#25321 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 19 + Visible = False + OnClick = KWSelClick + end + object ZdyFlag: TEdit + Left = 8 + Top = 632 + Width = 57 + Height = 21 + TabOrder = 20 + Visible = False + end + object cxStyleRepository5: TcxStyleRepository + Left = 954 + Top = 65532 + object cxStyle6: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -29 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 1232 + Top = 124 + object cxStyle1: TcxStyle + AssignedValues = [svColor, svFont] + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle2: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -20 + Font.Name = #23435#20307 + Font.Pitch = fpFixed + Font.Style = [fsBold] + TextColor = clDefault + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 598 + Top = 75 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 686 + Top = 74 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + Parameters = <> + Left = 638 + Top = 74 + end + object DataSource1: TDataSource + DataSet = Cds_Main + Left = 744 + Top = 76 + end + object Cds_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 800 + Top = 76 + end + object DataSource3: TDataSource + DataSet = CDS_XJID + Left = 1000 + Top = 670 + end + object CDS_XJID: TClientDataSet + Aggregates = <> + Params = <> + Left = 1032 + Top = 670 + end + object DataSource2: TDataSource + DataSet = CDS_XJCD + Left = 752 + Top = 670 + end + object CDS_XJCD: TClientDataSet + Aggregates = <> + Params = <> + Left = 792 + Top = 670 + end + object cxStyleRepository2: TcxStyleRepository + object cxStyle3: TcxStyle + AssignedValues = [svFont] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 136 + Top = 120 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 104 + Top = 120 + ReportData = {} + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_WFBProducttion.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 168 + Top = 120 + end + object DSHJ: TDataSource + DataSet = CDS_HJ + Left = 352 + Top = 550 + end + object CDS_HJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 384 + Top = 550 + end +end diff --git a/盛纺贸易管理/U_ZJManageNewFDMORE.pas b/盛纺贸易管理/U_ZJManageNewFDMORE.pas new file mode 100644 index 0000000..a9d624a --- /dev/null +++ b/盛纺贸易管理/U_ZJManageNewFDMORE.pas @@ -0,0 +1,2026 @@ +unit U_ZJManageNewFDMORE; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, Buttons, ExtCtrls, cxStyles, cxCustomData, cxGraphics, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, MovePanel, ADODB, + DBClient, ComCtrls, RM_Common, RM_Class, RM_GridReport, RM_System, + RM_Dataset; + +type + TfrmZJManageNewFDMORE = class(TForm) + MJID: TEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + ScrollBox1: TScrollBox; + SpeedButton13: TSpeedButton; + SpeedButton14: TSpeedButton; + SpeedButton15: TSpeedButton; + SpeedButton16: TSpeedButton; + SpeedButton17: TSpeedButton; + SpeedButton18: TSpeedButton; + SpeedButton19: TSpeedButton; + SpeedButton20: TSpeedButton; + SpeedButton21: TSpeedButton; + SpeedButton22: TSpeedButton; + SpeedButton23: TSpeedButton; + SpeedButton24: TSpeedButton; + SpeedButton25: TSpeedButton; + SpeedButton26: TSpeedButton; + SpeedButton27: TSpeedButton; + SpeedButton28: TSpeedButton; + Button1: TButton; + Button3: TButton; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + cxStyleRepository5: TcxStyleRepository; + cxStyle6: TcxStyle; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxGrid3: TcxGrid; + Tv3: TcxGridDBTableView; + cxGridDBColumn1: TcxGridDBColumn; + cxGridLevel2: TcxGridLevel; + Button6: TButton; + Panel6: TPanel; + Panel1: TPanel; + SmalMF1: TEdit; + SmalMF2: TEdit; + SmalMF3: TEdit; + SmalMF4: TEdit; + SmalMF5: TEdit; + SmalMF6: TEdit; + SmalMF7: TEdit; + SmalMF8: TEdit; + SmalMF9: TEdit; + SmalMF10: TEdit; + SmalMF11: TEdit; + SmalMF12: TEdit; + Panel2: TPanel; + XJLen1: TEdit; + XJLen2: TEdit; + XJLen3: TEdit; + XJLen4: TEdit; + XJLen5: TEdit; + XJLen6: TEdit; + XJLen7: TEdit; + XJLen8: TEdit; + XJLen9: TEdit; + XJLen10: TEdit; + XJLen11: TEdit; + XJLen12: TEdit; + Panel3: TPanel; + XJMaoZ1: TEdit; + XJMaoZ2: TEdit; + XJMaoZ3: TEdit; + XJMaoZ4: TEdit; + XJMaoZ5: TEdit; + XJMaoZ6: TEdit; + XJMaoZ7: TEdit; + XJMaoZ8: TEdit; + XJMaoZ9: TEdit; + XJMaoZ10: TEdit; + XJMaoZ11: TEdit; + XJMaoZ12: TEdit; + Panel4: TPanel; + Sel1: TEdit; + Sel2: TEdit; + Sel3: TEdit; + Sel4: TEdit; + Sel5: TEdit; + Sel6: TEdit; + Sel7: TEdit; + Sel8: TEdit; + Sel9: TEdit; + Sel10: TEdit; + Sel11: TEdit; + Sel12: TEdit; + ADOQueryTemp: TADOQuery; + cxGrid4: TcxGrid; + TvSel: TcxGridDBTableView; + vSelColumn1: TcxGridDBColumn; + vSelColumn4: TcxGridDBColumn; + vSelColumn6: TcxGridDBColumn; + vSelColumn5: TcxGridDBColumn; + cxGridDBColumn7: TcxGridDBColumn; + vSelColumn7: TcxGridDBColumn; + cxGridDBColumn5: TcxGridDBColumn; + cxGridDBColumn6: TcxGridDBColumn; + vSelColumn2: TcxGridDBColumn; + cxGridLevel3: TcxGridLevel; + vSelColumn3: TcxGridDBColumn; + vSelColumn8: TcxGridDBColumn; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + DataSource1: TDataSource; + Cds_Main: TClientDataSet; + Button2: TButton; + MJCDHZ: TRichEdit; + DataSource3: TDataSource; + CDS_XJID: TClientDataSet; + DataSource2: TDataSource; + CDS_XJCD: TClientDataSet; + v2Column3: TcxGridDBColumn; + v3Column1: TcxGridDBColumn; + cxStyleRepository2: TcxStyleRepository; + cxStyle3: TcxStyle; + SmalNote: TRichEdit; + Label7: TLabel; + RMDB_Main: TRMDBDataSet; + RM2: TRMGridReport; + ADOQueryPrint: TADOQuery; + MovePanel2: TMovePanel; + Label8: TLabel; + cxGrid1: TcxGrid; + TvHJ: TcxGridDBTableView; + cxGridDBColumn3: TcxGridDBColumn; + cxGridLevel4: TcxGridLevel; + DSHJ: TDataSource; + CDS_HJ: TClientDataSet; + vHJColumn1: TcxGridDBColumn; + vHJColumn2: TcxGridDBColumn; + vHJColumn3: TcxGridDBColumn; + Label9: TLabel; + HJMJID: TEdit; + Button7: TButton; + Button8: TButton; + vHJColumn4: TcxGridDBColumn; + vHJColumn5: TcxGridDBColumn; + vHJColumn6: TcxGridDBColumn; + vHJColumn7: TcxGridDBColumn; + vHJColumn8: TcxGridDBColumn; + vHJColumn9: TcxGridDBColumn; + vHJColumn10: TcxGridDBColumn; + vHJColumn11: TcxGridDBColumn; + Panel7: TPanel; + XJFree1: TEdit; + XJFree2: TEdit; + XJFree3: TEdit; + XJFree4: TEdit; + XJFree5: TEdit; + XJFree6: TEdit; + XJFree7: TEdit; + XJFree8: TEdit; + XJFree9: TEdit; + XJFree10: TEdit; + XJFree11: TEdit; + XJFree12: TEdit; + MovePanel1: TMovePanel; + Label17: TLabel; + Label18: TLabel; + Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + CDBeg: TEdit; + Button4: TButton; + Button5: TButton; + CDEnd: TEdit; + Panel8: TPanel; + XjJt1: TEdit; + XjJt2: TEdit; + XjJt3: TEdit; + XjJt4: TEdit; + XjJt5: TEdit; + XjJt6: TEdit; + XjJt7: TEdit; + XjJt8: TEdit; + XjJt9: TEdit; + XjJt10: TEdit; + XjJt11: TEdit; + XjJt12: TEdit; + Label10: TLabel; + Label11: TLabel; + Label12: TLabel; + MovePanel3: TMovePanel; + Button9: TButton; + Button10: TButton; + Password: TEdit; + Label13: TLabel; + Label14: TLabel; + LenCut: TEdit; + Button11: TButton; + Button12: TButton; + Panel5: TPanel; + SpeedButton1: TSpeedButton; + SpeedButton2: TSpeedButton; + SpeedButton3: TSpeedButton; + SpeedButton4: TSpeedButton; + SpeedButton5: TSpeedButton; + SpeedButton6: TSpeedButton; + SpeedButton7: TSpeedButton; + SpeedButton8: TSpeedButton; + SpeedButton9: TSpeedButton; + SpeedButton10: TSpeedButton; + SpeedButton11: TSpeedButton; + SpeedButton12: TSpeedButton; + SpeedButton49: TSpeedButton; + SpeedButton29: TSpeedButton; + KWName: TEdit; + KWSel: TButton; + ZdyFlag: TEdit; + procedure Sel1Click(Sender: TObject); + procedure Edit64Click(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure SpeedButton12Click(Sender: TObject); + procedure SpeedButton49Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure XJLen1Click(Sender: TObject); + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button2Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure SpeedButton13Click(Sender: TObject); + procedure Button5Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button3Click(Sender: TObject); + procedure Button6Click(Sender: TObject); + procedure Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button1Click(Sender: TObject); + procedure Button8Click(Sender: TObject); + procedure Button7Click(Sender: TObject); + procedure HJMJIDKeyPress(Sender: TObject; var Key: Char); + procedure TvHJCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure Button9Click(Sender: TObject); + procedure Button10Click(Sender: TObject); + procedure PasswordClick(Sender: TObject); + procedure LenCutClick(Sender: TObject); + procedure Button11Click(Sender: TObject); + procedure Button12Click(Sender: TObject); + procedure SpeedButton29Click(Sender: TObject); + procedure KWSelClick(Sender: TObject); + private + { Private declarations } + FCDName,FPanname,PrintFlag:string; + procedure ClearSpenndHit(); + procedure VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); + function ChkEditNULL(panel55:TWinControl):Boolean; + procedure InitJP(); + procedure InitGridCD(); + procedure InitGridCDID(); + procedure ClearControl(Panel55:TWinControl;ConValue:String;SXCount:Integer); + procedure PrintData(FXJID:string;CDFlag:String); + public + { Public declarations } + end; + +var + frmZJManageNewFDMORE: TfrmZJManageNewFDMORE; + +implementation +uses +U_DataLink,U_Fun,U_ZDYHelp,U_iniParam,AES,ElAES,U_LabelPrint; + +{$R *.dfm} + +procedure TfrmZJManageNewFDMORE.Sel1Click(Sender: TObject); +begin + if Trim(TcxTextEdit(Sender).Text)='' then + begin + TcxTextEdit(Sender).Text:=''; + end else + begin + TcxTextEdit(Sender).Text:=''; + end; +end; + +procedure TfrmZJManageNewFDMORE.Edit64Click(Sender: TObject); +var + i:Integer; +begin + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; +end; +procedure TfrmZJManageNewFDMORE.ClearSpenndHit(); +var + i:Integer; +begin + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=''; + end; + end; + end; +end; +procedure TfrmZJManageNewFDMORE.VisbleControl(Panel55:TWinControl;XS:Boolean;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + Controls[i].Visible:=XS; + end; + end; +end; +procedure TfrmZJManageNewFDMORE.ClearControl(Panel55:TWinControl;ConValue:String;SXCount:Integer); +var + i:Integer; +begin + with Panel55 do + begin + for i:=0 to SXCount-1 do + begin + TEdit(Controls[i]).Text:=ConValue; + end; + end; +end; + +procedure TfrmZJManageNewFDMORE.SpeedButton1Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TSpeedButton(Sender).Hint); + if Trim(fsj)='' then Exit; + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=fsj+Trim(TSpeedButton(Sender).Caption); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManageNewFDMORE.SpeedButton12Click(Sender: TObject); +var + fsj:string; +begin + fsj:=Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); + if Trim(fsj)='' then Exit; + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text:=Copy(fsj,1,Length(fsj)-1); + TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; +end; + +procedure TfrmZJManageNewFDMORE.SpeedButton49Click(Sender: TObject); +begin + Panel5.Visible:=false; +end; + +function TfrmZJManageNewFDMORE.ChkEditNULL(panel55:TWinControl):Boolean; +var + i:Integer; +begin + Result:=False; + with panel55 do + begin + for i:=0 to panel55.ControlCount-1 do + begin + if Controls[i].Visible=True then + begin + if Trim(TEdit(Controls[i]).Text)='' then + begin + Result:=False; + Break; + end else + begin + Result:=True; + end; + end; + + end; + end; + +end; + +procedure TfrmZJManageNewFDMORE.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZJManageNewFDMORE.FormDestroy(Sender: TObject); +begin + frmZJManageNewFDMORE:=nil; +end; + +procedure TfrmZJManageNewFDMORE.XJLen1Click(Sender: TObject); +var + i:Integer; +begin + if Trim(LenCut.Text)='' then + begin + if CDS_XJID.IsEmpty=False then + begin + if CDS_XJID.Locate('XJInt',TEdit(Sender).tag,[])=True then + begin + TEdit(Sender).Text:=Trim(CDS_XJID.fieldbyname(Copy(Trim(TEdit(Sender).Name),1,Length(Trim(TEdit(Sender).Name))-1)).AsString); + Panel5.Visible:=False; + Exit; + end; + end; + end; + FPanname:=Trim(Copy(Trim(TEdit(Sender).Name),1,Length(Trim(TEdit(Sender).Name))-1)); + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim(TEdit(Sender).Name); + end; + end; + end; + // Panel5.Left:=Edit14.Left; + //Panel5.top:=Edit14.top+Edit14.Height; +end; + +procedure TfrmZJManageNewFDMORE.MJIDKeyPress(Sender: TObject; var Key: Char); +var + FCount,i:Integer; + FXJXH:String; +begin + if Key=#13 then + begin + KWName.Text:=''; + KWName.Hint:=''; + ZdyFlag.Text:=''; + MJID.SelectAll; + ClearControl(Panel1,'',Panel1.ControlCount); + ClearControl(Panel2,'',Panel2.ControlCount); + ClearControl(Panel3,'',Panel3.ControlCount); + Label12.Visible:=True; + Label12.Caption:=Trim(MJID.Text); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select MJCDHZ=dbo.F_Get_WFBOrder_SubStr(A.MJID,''MJCDHZ''), D.*,'); + SQL.Add('A.*,C.OrderNo,B.SWFBColor,B.SWFBHW,B.WKMS,B.SWFBCode,B.SWFBCodeName,B.SubType'); + sql.add('from WFB_MJJY A inner join WFBOrder_Sub_AnPai D on A.APId=D.APId'); + sql.Add('inner join WFBOrder_Sub B on A.SubId=B.SubId'); + sql.Add('inner join WFBOrder_Main C on A.MainId=C.MainId'); + sql.Add('where A.MJID='''+Trim(MJID.Text)+''''); + sql.Add(' and A.Valie=''Y'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Cds_Main); + SInitCDSData20(ADOQueryMain,Cds_Main); + if Cds_Main.IsEmpty then + begin + MJCDHZ.Text:=''; + InitGridCDID(); + InitGridCD(); + Label12.Visible:=False; + MJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + MJCDHZ.Visible:=True; + MJCDHZ.Text:=Trim(Cds_Main.fieldbyname('MJCDHZ').AsString); + SmalNote.Text:=Trim(Cds_Main.fieldbyname('SmalNote').AsString); + if Cds_Main.FieldByName('SmalCount').Value<1 then + begin + Application.MessageBox('иС1','ʾ',0); + Exit; + end else + begin + FCount:=Cds_Main.FieldByName('SmalCount').Value; + VisbleControl(Panel1,False,Panel1.ControlCount); + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel3,False,Panel3.ControlCount); + VisbleControl(Panel4,False,Panel4.ControlCount); + VisbleControl(Panel1,True,FCount); + VisbleControl(Panel2,True,FCount); + VisbleControl(Panel3,True,FCount); + VisbleControl(Panel4,True,FCount); + VisbleControl(Panel7,True,FCount); + VisbleControl(Panel8,True,FCount); + SCSHDataCDS(Cds_Main,Panel1,0); + end; + InitGridCDID(); + InitGridCD(); + if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + begin + KWSel.Visible:=True; + KWName.Visible:=True; + end else + begin + KWSel.Visible:=False; + KWName.Visible:=False; + end; + finally + ADOQueryMain.EnableControls; + end; + MJID.Text:=''; + with Panel3 do + begin + for i:=0 to Panel3.ControlCount-1 do + begin + TEdit(Controls[i]).Hint:=''; + end; + end; + {if CDS_XJID.IsEmpty=False then + begin + with CDS_XJID do + begin + First; + while not Eof do + begin + + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); + Next; + end; + end; + end; } + end; +end; + +procedure TfrmZJManageNewFDMORE.Button2Click(Sender: TObject); +begin + WriteCxGrid('ʾϢ',TvSel,'޷IJ'); + Close; +end; + +procedure TfrmZJManageNewFDMORE.FormShow(Sender: TObject); +begin + ReadCxGrid('ʾϢ',TvSel,'޷IJ'); + InitJP(); +end; + +procedure TfrmZJManageNewFDMORE.InitJP(); +var + AA:array[0..100] of string; + i,j:Integer; +begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select ZDYName from KH_Zdy where Type=''WFBCDZJ'' order by ZDYNO '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('ûжСõ㣡','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + First; + i:=0; + while not Eof do + begin + AA[i]:=Trim(fieldbyname('ZDYName').AsString); + i:=i+1; + Next; + end; + end; + i:=i-1; + if i>17 then + begin + i:=29; + end; + for j:=0 to i do + begin + with ScrollBox1 do + begin + TSpeedButton(Controls[j]).Visible:=True; + TSpeedButton(Controls[j]).Hint:=AA[j]; + if Length(AA[j])>4 then + begin + TSpeedButton(Controls[j]).Caption:=Copy(Trim(AA[j]),1,4)+#13+Copy(Trim(AA[j]),5,Length(AA[j])-4); + end else + TSpeedButton(Controls[j]).Caption:=AA[j]; + end; + end; +end; + +procedure TfrmZJManageNewFDMORE.Button4Click(Sender: TObject); +var + i:Integer; +begin + if Trim(CDBeg.Text)='' then + begin + Application.MessageBox('λòΪգ','ʾ',0); + exit; + end; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + with CDS_XJCD do + begin + Append; + FieldByName('cdname').Value:=Trim(FCDName); + FieldByName('CDbeg').Value:=Trim(CDBeg.Text); + FieldByName('CDEnd').Value:=Trim(CDEnd.Text); + if Trim(CDEnd.Text)<>'' then + begin + FieldByName('CDQty').Value:=StrToFloat(CDEnd.Text)-StrToFloat(CDBeg.Text); + end else + begin + FieldByName('CDQty').Value:=0; + end; + FieldByName('XJInt').Value:=i+1; + Post; + end; + end; + end; + end; + CDBeg.Text:=''; + CDEnd.Text:=''; + MovePanel1.Visible:=False; +end; + +procedure TfrmZJManageNewFDMORE.SpeedButton13Click(Sender: TObject); +var + i,j:Integer; +begin + if Cds_Main.IsEmpty then Exit; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + j:=9; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end; + FCDName:=Trim(TSpeedButton(Sender).Hint); + MovePanel1.Visible:=True; + Label21.Caption:=Trim(FCDName); + CDBeg.SetFocus; + + Panel5.Visible:=True; + with Panel5 do + begin + for i:=0 to ControlCount-1 do + begin + if Controls[i] is TSpeedButton then + begin + TSpeedButton(Controls[i]).Hint:=Trim('CDBeg'); + end; + end; + end; +end; +procedure TfrmZJManageNewFDMORE.InitGridCD(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + if Trim(CDS_XJID.fieldbyname('XJID').AsString)<>'' then + begin + sql.Add('select A.*,B.XJInt from WFB_XJJY_CD A inner join WFB_XJJY B on A.XJID=B.XJID'); + sql.Add(' where B.MJID='''+Trim(MJID.Text)+''''); + end + else + sql.Add('select A.*,B.XJInt from WFB_XJJY_CD A inner join WFB_XJJY B on A.XJID=B.XJID where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_XJCD); + SInitCDSData20(ADOQueryMain,CDS_XJCD); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmZJManageNewFDMORE.InitGridCDID(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(MJID.Text)+''''); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_XJID); + SInitCDSData20(ADOQueryMain,CDS_XJID); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmZJManageNewFDMORE.Button5Click(Sender: TObject); +begin + MovePanel1.Visible:=False; +end; + +procedure TfrmZJManageNewFDMORE.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Trim(CDS_XJCD.fieldbyname('XJID').AsString)<>'' then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_XJCD.Delete; +end; + +procedure TfrmZJManageNewFDMORE.Button3Click(Sender: TObject); +var + i,j,FXJInt,CRID:Integer; + FXJSJKZ:Double; + maxno,maxnocd,MaxCkNo,MaxCkSubNo,XJBanZu,FFXJLen,FFXJMaoZ,FFXJFk,FFXJFree,FFXJJt:String; +begin + if Cds_Main.IsEmpty then Exit; + with Panel2 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + Application.MessageBox('δȫ¼룬ܴӡ','ʾ',0); + Exit; + end; + end; + end; + with Panel3 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if TEdit(Controls[i]).Text='' then + begin + Application.MessageBox('δȫ¼룬ܴӡ','ʾ',0); + Exit; + end; + end; + end; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end else + if j>9 then + begin + Application.MessageBox('ѡС','ʾ',0); + Exit; + end; + if Trim(TEdit(FindComponent('XJLen'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ȲΪգ','ʾ',0); + Exit; + end else + begin + FFXJLen:=Trim(TEdit(FindComponent('XJLen'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJMaoZ'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end else + begin + FFXJMaoZ:=Trim(TEdit(FindComponent('XJMaoZ'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('SmalMF'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + Application.MessageBox('ëزΪգ','ʾ',0); + Exit; + end else + begin + FFXJFk:=Trim(TEdit(FindComponent('SmalMF'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJFree'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + FFXJFree:='0'; + end else + begin + FFXJFree:=Trim(TEdit(FindComponent('XJFree'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(TEdit(FindComponent('XJJt'+Trim(IntToStr(FXJInt)))).Text)='' then + begin + FFXJJt:='0'; + end else + begin + FFXJJt:=Trim(TEdit(FindComponent('XJJt'+Trim(IntToStr(FXJInt)))).Text); + end; + if Trim(LenCut.Text)='' then + begin + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJID').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + Application.MessageBox('Ѵ룬볢´ӡ','',0); + Exit; + end; + end else + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select isnull(Sum(XJLen),0) XJLen from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJID').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if( (ADOQueryTemp.FieldByName('XJLen').Value+StrToFloat(FFXJLen)-CDS_Main.FieldByName('MJLen').Value)/(CDS_Main.FieldByName('MJLen').Value) )>0.05 then + begin + Application.MessageBox('Сܳȴĸȣ˶!','ʾ',0); + Exit; + end; + end; + FXJSJKZ:=StrToFloat(FFXJMaoZ)/(StrToFloat(FFXJLen)*StrToFloat(FFXJFk)/100)*1000; + if( (FXJSJKZ-Cds_Main.FieldByName('MJSJKZ').Value)/Cds_Main.FieldByName('MJSJKZ').Value )<-0.3 then + begin + Application.MessageBox('ݣ','ʾ',0); + Exit; + end; + if( (FXJSJKZ-Cds_Main.FieldByName('MJSJKZ').Value)/Cds_Main.FieldByName('MJSJKZ').Value )>0.3 then + begin + Application.MessageBox('ݣ','ʾ',0); + Exit; + end; + if KWName.Visible=True then + begin + if Trim(KWName.Text)='' then + begin + Application.MessageBox('̲Ϊ!','ʾ',0); + exit; + end; + end; + if Trim(LenCut.Text)<>'' then + begin + if TEdit(FindComponent('XJMaoZ'+Trim(inttostr(FXJInt)))).Hint='2' then + begin + Application.MessageBox('δȫݣܴӡ!','ʾ',0); + Exit; + end; + end; + try + ADOQueryCmd.Connection.BeginTrans; + //////////////////////////////////////////////////////////////С + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from SY_User where UserId='''+Trim(DCode)+''''); + Open; + end; + XJBanZu:=Trim(ADOQueryTemp.fieldbyname('BanZu').AsString); + if GetLSNo(ADOQueryCmd,maxno,Trim(XJFlag),'WFB_XJJY',4,1)=false then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡС쳣','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.add('select * from WFB_XJJY where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJID').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XJInt').Value:=FXJInt; + FieldByName('XJLen').Value:=StrToFloat(FFXJLen); + FieldByName('XJMaoZ').Value:=StrToFloat(FFXJMaoZ); + FieldByName('XJFK').Value:=StrToFloat(FFXJFk); + FieldByName('XJFree').Value:=StrToFloat(FFXJFree); + FieldByName('XJJt').Value:=StrToFloat(FFXJJt); + FieldByName('XJBanZu').Value:=Trim(XJBanZu); + FieldByName('JTTYpe').Value:=Trim(XJFlag); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('XJSJKZ').Value:=StrToFloat(FFXJMaoZ)/(StrToFloat(FFXJLen)*StrToFloat(FFXJFk)/100)*1000; + //FieldByName('') + Post; + end; + with CDS_XJID do + begin + Append; + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XJInt').Value:=FXJInt; + FieldByName('XJLen').Value:=StrToFloat(FFXJLen); + FieldByName('XJMaoZ').Value:=StrToFloat(FFXJMaoZ); + FieldByName('XJFK').Value:=StrToFloat(FFXJFk); + FieldByName('XJFree').Value:=StrToFloat(FFXJFree); + FieldByName('XJJt').Value:=StrToFloat(FFXJJt); + Post; + end; + //////////////////////////////////////////////////////////////С + //////////////////////////////////////////////////////////////Сõ + with CDS_XJCD do + begin + First; + while not Eof do + begin + if CDS_XJCD.FieldByName('XJInt').Value=FXJInt then + begin + if GetLSNo(ADOQueryCmd,maxnocd,'XC','WFB_XJJY_CD',5,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡСõʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_XJJY_CD where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('XCID').Value:=Trim(maxnocd); + FieldByName('CDName').Value:=CDS_XJCD.fieldbyname('CDName').Value; + FieldByName('CDBeg').Value:=CDS_XJCD.fieldbyname('CDBeg').Value; + FieldByName('CDEnd').Value:=CDS_XJCD.fieldbyname('CDEnd').Value; + FieldByName('CDQty').Value:=CDS_XJCD.fieldbyname('CDQty').Value; + Post; + end; + end; + Next; + end; + end; + //////////////////////////////////////////////////////////////Сõ + //////////////////////////////////////////////////////////////浽ֿ//////////////////////////////////////////////// + if Trim(Cds_Main.fieldbyname('SubType').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_DJCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_DJCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryTemp,MaxCkNo,Trim(ZdyFlag.Text),'CK_DJCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡ룡','ʾ',0); + Exit; + end; + if GetLSNo(ADOQueryTemp,MaxCkSubNo,'CR','CK_DJCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_DJCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('OwnerMainId').Value:=Trim(Cds_Main.fieldbyname('MainId').AsString); + FieldByName('OwnerSubId').Value:=Trim(Cds_Main.fieldbyname('SubId').AsString); + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJId').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('DJID').Value:=Trim(MaxCkNo); + FieldByName('CDID').Value:=Trim(MaxCkSubNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('MQty').Value:=StrToFloat(FFXJLen); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('KWCode').Value:=Trim(KWName.Hint); + FieldByName('KWName').Value:=Trim(KWName.Text); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_DJCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('DJID').Value:=Trim(MaxCkNo); + FieldByName('CDID').Value:=Trim(MaxCkSubNo); + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJId').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('KCKGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('KCMQty').Value:=StrToFloat(FFXJLen); + FieldByName('OwnerMainId').Value:=Trim(Cds_Main.fieldbyname('MainId').AsString); + FieldByName('OwnerSubId').Value:=Trim(Cds_Main.fieldbyname('SubId').AsString); + FieldByName('KWCode').Value:=Trim(KWName.Hint); + FieldByName('KWName').Value:=Trim(KWName.Text); + Post; + end; + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + end else + begin + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); + sql.Add('select * from CK_BanCP_CRID'); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').Value; + if GetLSNo(ADOQueryTemp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡƷֿʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(Cds_Main.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(Cds_Main.fieldbyname('SubId').AsString); + FieldByName('MJID').Value:=Trim(Cds_Main.fieldbyname('MJId').AsString); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + FieldByName('JTType').Value:=Trim(XJFlag); + FieldByName('CRID').Value:=CRID; + FieldByName('KGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('MQty').Value:=StrToFloat(FFXJLen); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCP_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=CRID; + FieldByName('BCID').Value:=Trim(MaxCkNo); + FieldByName('XJID').Value:=Trim(maxno); + FieldByName('KCKGQty').Value:=StrToFloat(FFXJMaoZ); + FieldByName('KCMQty').Value:=StrToFloat(FFXJLen); + Post; + end; + //////////////////////////////////////////////////////////////浽Ʒֿ//////////////////////////////////////////////// + end; + + ADOQueryCmd.Connection.CommitTrans; + if Trim(LenCut.Text)<>'' then + TEdit(FindComponent('XJMaoZ'+Trim(inttostr(FXJInt)))).Hint:='2'; + + PrintData(Trim(maxno),''); + + {if Trim(LenCut.Text)<>'' then + begin + TEdit(FindComponent('XJMaoZ'+Trim(inttostr(FXJInt)))).Text:=''; + end;} + //Application.MessageBox('ɹ','ʾ',0); + //MJID.SelectAll; + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; + +end; +procedure TfrmZJManageNewFDMORE.PrintData(FXJID:string;CDFlag:String); +var + fPrintFile,LabInt,LabName:String; +begin + if Trim(FXJID)='' then exit; + DataLink_WFBProducttion.ADOLink.Connected:=False; + DataLink_WFBProducttion.ADOLink.Connected:=True; + if Trim(CDFlag)<>'' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_XJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+''''); + sql.Add(' where XJID='''+Trim(FXJID)+''''); + ExecSQL; + end; + end; + { with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add(' select C.LbXInt,C.LbXName from WFB_XJJY A'); + sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID'); + sql.Add(' inner join WFBOrder_Main C on B.MainId=C.MainId'); + sql.Add(' where A.XJID='''+Trim(FXJID)+''''); + Open; + end; } + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add(' select C.SLbXInt,C.SLbXName from WFB_XJJY A'); + sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID'); + sql.Add(' inner join WFBOrder_Sub C on B.SubId=C.SubId'); + sql.Add(' where A.XJID='''+Trim(FXJID)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + LabInt:=ADOQueryTemp.fieldbyname('SLbXInt').AsString; + LabName:=ADOQueryTemp.fieldbyname('SLbXName').AsString; + end ; + if Trim(LabName)='' then + begin + if Trim(Cds_Main.fieldbyname('SubType').AsString)<>'' then + begin + Application.MessageBox('Сǩδã','ʾ',0); + Exit; + end else + begin + Exit; + end; + + end; + { try + frmLabelPrint:=TfrmLabelPrint.Create(Application); + with frmLabelPrint do + begin + fLabelId:=LabInt; + FFCDFlag:=Trim(CDFlag); + fKeyNo:=Trim(FXJID); + fIsPreviewPrint:=True; + frmLabelPrint.Button1.Click; + // if ShowModal=1 then + //begin + + // end; + end; + finally + frmLabelPrint.Free; + end; } + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select RTrim(AA.XJID) XJID,RTrim(Cast(AA.XJSJKZ as varchar(20))) XJSJKZ,RTrim(cast(Cast(AA.XJFK*10 as int) as varchar(20))) XJFK,RTrim(B.OrderNo)+'''+Trim(CDFlag)+''' OrderNo'); + sql.Add(',Rtrim(C.SWFBColor) SWFBColor, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + SQL.Add(',EngColor=(select Top 1 note from KH_Zdy where ZdyName=C.SWFBColor)'); + sql.Add(',Rtrim(Cast(AA.XJlen as varchar(20))) XJlen,Rtrim(Cast(AA.XJMaoZ as varchar(20))) XJMaoZ'); + sql.Add(',Rtrim(Cast(AA.XJFree as varchar(20))) XJFree,Rtrim(Cast( Cast(AA.XJlen*AA.XJFK/100 as int) as varchar(20))) XJPFM'); + sql.Add(',Rtrim(Cast(Cast(C.SWFBKZ as int) as varchar(20))) SWFBKZ'); + sql.Add(',Rtrim(Cast(Cast(AA.XJJt as int) as varchar(20))) XJJt'); + sql.Add(',RTrim(B.LbEngName) LbEngName'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_XJJY AA '); + sql.add(' inner join WFB_MJJY A on AA.MJID=A.MJID') ; + sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where AA.XJID='''+Trim(FXJID)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + Rm2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf'),'ʾ',0); + end; + DataLink_WFBProducttion.ADOLink.Connected:=False; +end; + +procedure TfrmZJManageNewFDMORE.Button6Click(Sender: TObject); +var + i,j,FXJInt:Integer; +begin + if Cds_Main.IsEmpty then Exit; + j:=0; + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + if j=0 then + begin + Application.MessageBox('ûѡС','ʾ',0); + Exit; + end else + if j>9 then + begin + Application.MessageBox('ѡС','ʾ',0); + Exit; + end; + + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJId').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=True then + begin + Application.MessageBox('δ룬´ӡ','ʾ',0); + Exit; + end; + MovePanel3.Visible:=True; + // PrintData(Trim(ADOQueryTemp.fieldbyname('XJID').AsString),'ش'); + //MJID.SelectAll; +end; + +procedure TfrmZJManageNewFDMORE.Tv3CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +var + FXJXH:String; +begin + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); + if Trim(LenCut.Text)<>'' then + begin + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Hint:='2'; + end; +end; + +procedure TfrmZJManageNewFDMORE.Button1Click(Sender: TObject); +begin + MovePanel2.Visible:=True; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId,C.SWFBKZ '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB'')'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryTemp,CDS_HJ); + SInitCDSData20(ADOQueryTemp,CDS_HJ); +end; + +procedure TfrmZJManageNewFDMORE.Button8Click(Sender: TObject); +begin + MovePanel2.Visible:=False; +end; + +procedure TfrmZJManageNewFDMORE.Button7Click(Sender: TObject); +var + maxno,fPrintFile,maxnosub:String; + i:Double; +begin + if CDS_HJ.IsEmpty then Exit; + if Application.MessageBox('ȷҪϾ𣿺Ͼݽ޸ģ','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,maxno,'','WFB_MJJY',2,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_MJJY where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MainId').Value:=Trim(CDS_HJ.fieldbyname('MainId').AsString); + FieldByName('SubId').Value:=Trim(CDS_HJ.fieldbyname('SubId').AsString); + FieldByName('APId').Value:=Trim(CDS_HJ.fieldbyname('APId').AsString); + FieldByName('MJId').Value:=Trim(maxno); + FieldByName('MJMaoZ').Value:=TvHJ.DataController.Summary.FooterSummaryValues[1]; + FieldByName('MJLen').Value:=TvHJ.DataController.Summary.FooterSummaryValues[2]; + FieldByName('MJFK').Value:=TvHJ.DataController.Summary.FooterSummaryValues[5]; + FieldByName('MJSJKZ').Value:=TvHJ.DataController.Summary.FooterSummaryValues[4]; + FieldByName('MJType').Value:='Ͼ'; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + + Post; + end; + i:=0; + with CDS_HJ do + begin + First; + while not Eof do + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set HJMJID='''+Trim(maxno)+''''); + SQL.Add(',MJType=''Ͼ'',Valie=''N'' '); + SQL.Add(' where MJID='''+Trim(CDS_HJ.fieldbyname('MJID').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_HJ.fieldbyname('MJID').AsString)+''''); + Open; + end; + with ADOQueryTemp do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxnosub,'','WFB_MJJY_CD',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡСʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY_CD where 1<>1'); + open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('MJID').Value:=Trim(maxno); + FieldByName('MCID').Value:=Trim(maxnosub); + FieldByName('CDBeg').Value:=ADOQueryTemp.fieldbyname('CDBeg').Value+i; + FieldByName('CDEnd').Value:=ADOQueryTemp.fieldbyname('CDEnd').Value+i; + FieldByName('CDQty').Value:=ADOQueryTemp.fieldbyname('CDQty').Value; + FieldByName('CDName').Value:=ADOQueryTemp.fieldbyname('CDName').Value; + Post; + end; + Next; + end; + end; + i:=i+CDS_HJ.FieldByName('MJLen').Value; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add(' select RTrim(A.MJID) MJID,RTrim(Cast(A.MJSJKZ As varchar(20))) MJSJKZ,RTrim(Cast(A.MJFK as varchar(20))) MJFK,RTrim(B.OrderNo) OrderNo,'); + sql.Add(' RTrim(Cast(A.MJMaoZ As varchar(20))) MJMaoZ,RTrim(Cast(A.MJLen As varchar(20))) MJLen,'); + sql.Add(' Rtrim(C.SWFBColor) SWFBColor,Rtrim(Cast(C.SWFBKZ as varchar(20))) SWFBKZ, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')'); + sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_MJJY A inner join WFBOrder_Main B on A.MainId=B.MainId'); + sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(maxno)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + RM2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ĸǩ.rmf'),'ʾ',0); + end; + Application.MessageBox('Ͼɹ','ʾ',0); + MovePanel2.Visible:=False; + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('Ͼ쳣','ʾ',0); + end; + +end; + +procedure TfrmZJManageNewFDMORE.HJMJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_MJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_XJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + HJMJID.Text:=''; + Application.MessageBox('˴ѷУ','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB''),C.SWFBKZ'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and A.valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if CDS_HJ.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + HJMJID.Text:=''; + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + if CDS_HJ.IsEmpty=False then + begin + if CDS_HJ.Locate('SubId',Trim(ADOQueryTemp.fieldbyname('SubId').AsString),[])=False then + begin + HJMJID.Text:=''; + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + {if CDS_HJ.Locate('YLPB',Trim(ADOQueryTemp.fieldbyname('YLPB').AsString),[])=False then + begin + Application.MessageBox('ԭȲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBCode',Trim(ADOQueryTemp.fieldbyname('SWFBCode').AsString),[])=False then + begin + Application.MessageBox('ƷŲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBColor',Trim(ADOQueryTemp.fieldbyname('SWFBColor').AsString),[])=False then + begin + Application.MessageBox('ɫͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBHW',Trim(ADOQueryTemp.fieldbyname('SWFBHW').AsString),[])=False then + begin + Application.MessageBox('ͲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('WKMS',Trim(ADOQueryTemp.fieldbyname('WKMS').AsString),[])=False then + begin + Application.MessageBox('ĿͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('XJFK',Trim(ADOQueryTemp.fieldbyname('XJFK').AsString),[])=False then + begin + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBKZ',Trim(ADOQueryTemp.fieldbyname('SWFBKZ').AsString),[])=False then + begin + Application.MessageBox('زͬܺϾ','ʾ',0); + Exit; + end; } + end; + with CDS_HJ do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('SubId').Value:=ADOQueryTemp.fieldbyname('SubId').Value; + FieldByName('APId').Value:=ADOQueryTemp.fieldbyname('APId').Value; + FieldByName('MainId').Value:=ADOQueryTemp.fieldbyname('MainId').Value; + FieldByName('YLPB').Value:=ADOQueryTemp.fieldbyname('YLPB').Value; + FieldByName('SWFBCode').Value:=ADOQueryTemp.fieldbyname('SWFBCode').Value; + FieldByName('SWFBCodeName').Value:=ADOQueryTemp.fieldbyname('SWFBCodeName').Value; + FieldByName('SWFBColor').Value:=ADOQueryTemp.fieldbyname('SWFBColor').Value; + FieldByName('WKMS').Value:=ADOQueryTemp.fieldbyname('WKMS').Value; + FieldByName('SWFBHW').Value:=ADOQueryTemp.fieldbyname('SWFBHW').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + FieldByName('SWFBKZ').Value:=ADOQueryTemp.fieldbyname('SWFBKZ').Value; + FieldByName('MJMaoZ').Value:=ADOQueryTemp.fieldbyname('MJMaoZ').Value; + FieldByName('MJLen').Value:=ADOQueryTemp.fieldbyname('MJLen').Value; + FieldByName('MJFK').Value:=ADOQueryTemp.fieldbyname('MJFK').Value; + FieldByName('MJSJKZ').Value:=ADOQueryTemp.fieldbyname('MJSJKZ').Value; + Post; + end; + end else + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + HJMJID.Text:=''; + end; + +end; + +procedure TfrmZJManageNewFDMORE.TvHJCellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + CDS_HJ.Delete; +end; + +procedure TfrmZJManageNewFDMORE.Button9Click(Sender: TObject); +var + i,j,FXJInt:Integer; + mm,mm2:String; +begin + with ADOQueryTemp do + begin + sql.Clear; + sql.add('SELECT userid,username,password FROM SY_User WHERE userid='+''''+trim(DCode)+''''); + Open; + mm:=Trim(Fields[2].AsString); + if Trim(mm)<>'' then + mm2:=Trim(DecryptString(Trim(mm),'ljb^0122!@#*&^%$',kb128)) + else + begin + Application.MessageBox('벻Ϊգ','ʾ',0); + Exit; + end; + close; + end; + + if ( mm2=trim(Password.text) ) then + begin + with Panel4 do + begin + for i:=0 to Cds_Main.fieldbyname('SmalCount').AsInteger-1 do + begin + if Controls[i].Visible=True then + begin + if TEdit(Controls[i]).Text='' then + begin + if j=0 then + begin + j:=9; + FXJInt:=i+1; + end + else + j:=j+1; + end; + end; + end; + end; + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from WFB_XJJY where MJID='''+Trim(Cds_Main.fieldbyname('MJId').AsString)+''''); + SQL.Add(' and XJInt='+Inttostr(FXJInt)); + Open; + end; + if ADOQueryTemp.IsEmpty=True then + begin + Application.MessageBox('δ룬´ӡ','ʾ',0); + Exit; + end; + if ADOQueryTemp.RecordCount>1 then + begin + PrintData(Trim(CDS_XJID.fieldbyname('XJID').AsString),'ش') + end else + PrintData(Trim(ADOQueryTemp.fieldbyname('XJID').AsString),'ش'); + MovePanel3.Visible:=False; + end else + Application.MessageBox('', 'Ϣʾ', MB_OK or MB_ICONinformation); + + //MJID.SelectAll; +end; + +procedure TfrmZJManageNewFDMORE.Button10Click(Sender: TObject); +begin + MovePanel3.Visible:=False; +end; + +procedure TfrmZJManageNewFDMORE.PasswordClick(Sender: TObject); +begin + Panel5.Visible:=True; +end; + +procedure TfrmZJManageNewFDMORE.LenCutClick(Sender: TObject); +begin + if Trim(TcxTextEdit(Sender).Text)='' then + begin + TcxTextEdit(Sender).Text:=''; + end else + begin + TcxTextEdit(Sender).Text:=''; + end; +end; + +procedure TfrmZJManageNewFDMORE.Button11Click(Sender: TObject); +var + FCount,i:Integer; + FXJXH:String; +begin + //if Key=#13 then + begin + MJID.SelectAll; + ClearControl(Panel1,'',Panel1.ControlCount); + ClearControl(Panel2,'',Panel2.ControlCount); + ClearControl(Panel3,'',Panel3.ControlCount); + Label12.Visible:=True; + Label12.Caption:=Trim(MJID.Text); + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + sql.Clear; + sql.add('select MJCDHZ=dbo.F_Get_WFBOrder_SubStr(A.MJID,''MJCDHZ''), D.*,'); + SQL.Add('A.*,C.OrderNo,B.SWFBColor,B.SWFBHW,B.WKMS,B.SWFBCode,B.SWFBCodeName '); + sql.add('from WFB_MJJY A inner join WFBOrder_Sub_AnPai D on A.APId=D.APId'); + sql.Add('inner join WFBOrder_Sub B on A.SubId=B.SubId'); + sql.Add('inner join WFBOrder_Main C on A.MainId=C.MainId'); + sql.Add('where A.MJID='''+Trim(MJID.Text)+''''); + sql.Add(' and A.Valie=''Y'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,Cds_Main); + SInitCDSData20(ADOQueryMain,Cds_Main); + if Cds_Main.IsEmpty then + begin + MJCDHZ.Text:=''; + InitGridCDID(); + InitGridCD(); + Label12.Visible:=False; + MJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + MJCDHZ.Visible:=True; + MJCDHZ.Text:=Trim(Cds_Main.fieldbyname('MJCDHZ').AsString); + SmalNote.Text:=Trim(Cds_Main.fieldbyname('SmalNote').AsString); + if Cds_Main.FieldByName('SmalCount').Value<1 then + begin + Application.MessageBox('иС1','ʾ',0); + Exit; + end else + begin + FCount:=Cds_Main.FieldByName('SmalCount').Value; + VisbleControl(Panel1,False,Panel1.ControlCount); + VisbleControl(Panel2,False,Panel2.ControlCount); + VisbleControl(Panel3,False,Panel3.ControlCount); + VisbleControl(Panel4,False,Panel4.ControlCount); + VisbleControl(Panel1,True,FCount); + VisbleControl(Panel2,True,FCount); + VisbleControl(Panel3,True,FCount); + VisbleControl(Panel4,True,FCount); + VisbleControl(Panel7,True,FCount); + VisbleControl(Panel8,True,FCount); + SCSHDataCDS(Cds_Main,Panel1,0); + end; + InitGridCDID(); + InitGridCD(); + finally + ADOQueryMain.EnableControls; + end; + MJID.Text:=''; + {if CDS_XJID.IsEmpty=False then + begin + with CDS_XJID do + begin + First; + while not Eof do + begin + + FXJXH:=Trim(CDS_XJID.fieldbyname('XJInt').AsString); + (FindComponent('XJLen'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJLen').AsString); + (FindComponent('XJMaoZ'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJMaoZ').AsString); + (FindComponent('XJFree'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJFree').AsString); + (FindComponent('XJJt'+FXJXH) as TEdit).Text:=Trim(CDS_XJID.fieldbyname('XJJt').AsString); + Next; + end; + end; + end; } + end; +end; + +procedure TfrmZJManageNewFDMORE.Button12Click(Sender: TObject); +begin + //if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_MJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from WFB_XJJY A '); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + HJMJID.Text:=''; + Application.MessageBox('˴ѷУ','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,C.SWFBCode,C.SWFBCodeName,C.SWFBColor,C.WKMS,C.SWFBHW,C.SubId,C.MainId '); + sql.Add(',YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPB''),C.SWFBKZ'); + sql.add('from WFB_MJJY A '); + Sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join WFBOrder_Sub C on A.SubId=C.SubId'); + sql.add('where A.MJID='''+Trim(HJMJID.Text)+''''); + sql.Add(' and A.valie=''Y'' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if CDS_HJ.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + HJMJID.Text:=''; + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + if CDS_HJ.IsEmpty=False then + begin + if CDS_HJ.Locate('SubId',Trim(ADOQueryTemp.fieldbyname('SubId').AsString),[])=False then + begin + HJMJID.Text:=''; + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + {if CDS_HJ.Locate('YLPB',Trim(ADOQueryTemp.fieldbyname('YLPB').AsString),[])=False then + begin + Application.MessageBox('ԭȲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBCode',Trim(ADOQueryTemp.fieldbyname('SWFBCode').AsString),[])=False then + begin + Application.MessageBox('ƷŲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBColor',Trim(ADOQueryTemp.fieldbyname('SWFBColor').AsString),[])=False then + begin + Application.MessageBox('ɫͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBHW',Trim(ADOQueryTemp.fieldbyname('SWFBHW').AsString),[])=False then + begin + Application.MessageBox('ͲͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('WKMS',Trim(ADOQueryTemp.fieldbyname('WKMS').AsString),[])=False then + begin + Application.MessageBox('ĿͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('XJFK',Trim(ADOQueryTemp.fieldbyname('XJFK').AsString),[])=False then + begin + Application.MessageBox('ͬܺϾ','ʾ',0); + Exit; + end; + if CDS_HJ.Locate('SWFBKZ',Trim(ADOQueryTemp.fieldbyname('SWFBKZ').AsString),[])=False then + begin + Application.MessageBox('زͬܺϾ','ʾ',0); + Exit; + end; } + end; + with CDS_HJ do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('SubId').Value:=ADOQueryTemp.fieldbyname('SubId').Value; + FieldByName('APId').Value:=ADOQueryTemp.fieldbyname('APId').Value; + FieldByName('MainId').Value:=ADOQueryTemp.fieldbyname('MainId').Value; + FieldByName('YLPB').Value:=ADOQueryTemp.fieldbyname('YLPB').Value; + FieldByName('SWFBCode').Value:=ADOQueryTemp.fieldbyname('SWFBCode').Value; + FieldByName('SWFBCodeName').Value:=ADOQueryTemp.fieldbyname('SWFBCodeName').Value; + FieldByName('SWFBColor').Value:=ADOQueryTemp.fieldbyname('SWFBColor').Value; + FieldByName('WKMS').Value:=ADOQueryTemp.fieldbyname('WKMS').Value; + FieldByName('SWFBHW').Value:=ADOQueryTemp.fieldbyname('SWFBHW').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + FieldByName('SWFBKZ').Value:=ADOQueryTemp.fieldbyname('SWFBKZ').Value; + FieldByName('MJMaoZ').Value:=ADOQueryTemp.fieldbyname('MJMaoZ').Value; + FieldByName('MJLen').Value:=ADOQueryTemp.fieldbyname('MJLen').Value; + FieldByName('MJFK').Value:=ADOQueryTemp.fieldbyname('MJFK').Value; + FieldByName('MJSJKZ').Value:=ADOQueryTemp.fieldbyname('MJSJKZ').Value; + Post; + end; + end else + begin + HJMJID.Text:=''; + Application.MessageBox('','ʾ',0); + Exit; + end; + HJMJID.Text:=''; + end; +end; + +procedure TfrmZJManageNewFDMORE.SpeedButton29Click(Sender: TObject); +var + i:Integer; +begin + if Trim(FPanname)='XJLen' then + begin + { with Panel2 do + begin + for i:=0 to Panel2.ControlCount-1 do + begin + TEdit(Controls[i]).Text:=''; + end; + end; } + + end else + if Trim(FPanname)='XJFree' then + begin + with Panel7 do + begin + for i:=0 to Panel7.ControlCount-1 do + begin + TEdit(Controls[i]).Text:=''; + end; + end; + + end else + if Trim(FPanname)='XjJt' then + begin + with Panel8 do + begin + for i:=0 to Panel8.ControlCount-1 do + begin + TEdit(Controls[i]).Text:=''; + end; + end; + + end else + if Trim(FPanname)='XJMaoZ' then + begin + with Panel3 do + begin + for i:=0 to Panel3.ControlCount-1 do + begin + TEdit(Controls[i]).Text:=''; + TEdit(Controls[i]).Hint:=''; + end; + end; + + end; +end; + +procedure TfrmZJManageNewFDMORE.KWSelClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='KW'; + flagname:='λ'; + fnote:=True; + fZdyFlag:=True; + V1Note.Caption:=''; + V1ZdyFlag.Caption:='λ־'; + TBAdd.Visible:=False; + TBEdit.Visible:=False; + TBDel.Visible:=False; + + if ShowModal=1 then + begin + KWName.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); + KWName.Hint:=Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString); + ZdyFlag.Text:=Trim(ClientDataSet1.fieldbyname('ZdyFlag').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_ZdyAttachGYS.dfm b/盛纺贸易管理/U_ZdyAttachGYS.dfm new file mode 100644 index 0000000..1cdd759 --- /dev/null +++ b/盛纺贸易管理/U_ZdyAttachGYS.dfm @@ -0,0 +1,380 @@ +object frmZdyAttachGYS: TfrmZdyAttachGYS + Left = 137 + Top = 229 + Width = 1014 + Height = 618 + Caption = #20379#24212#21830#36164#26009#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 998 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 189 + Top = 0 + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = ToolButton4Click + end + object TBDel: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object ToolButton1: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 374 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 998 + Height = 39 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 203 + Top = 13 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#21517#31216 + end + object Label1: TLabel + Left = 22 + Top = 13 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#32534#21495 + end + object Label2: TLabel + Left = 395 + Top = 13 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object Label4: TLabel + Left = 534 + Top = 13 + Width = 24 + Height = 12 + Caption = #22320#21306 + end + object ZdyName: TEdit + Tag = 2 + Left = 267 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = ZdyNameChange + end + object ZdyCode: TEdit + Tag = 2 + Left = 83 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = ZdyNameChange + end + object DEFstr5: TComboBox + Tag = 1 + Left = 424 + Top = 8 + Width = 81 + Height = 20 + ItemHeight = 12 + TabOrder = 2 + OnChange = ZdyNameChange + Items.Strings = ( + '' + #22383#24067#21378 + #32433#32447#21378 + #21360#26579#21378 + #21152#24037#21378 + #37197#26009#21378) + end + object DEFStr7: TEdit + Tag = 2 + Left = 564 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 3 + OnChange = ZdyNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 70 + Width = 998 + Height = 509 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + DataController.DataSource = DS_HZ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.handBlack + object v2Column2: TcxGridDBColumn + Caption = #20379#24212#21830#32534#21495 + DataBinding.FieldName = 'ZdyCode' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v2Column6: TcxGridDBColumn + Caption = #20379#24212#21830#21517#31216 + DataBinding.FieldName = 'ZdyName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 124 + end + object v2Column14: TcxGridDBColumn + Caption = #32479#35745#21333#20301#21517#31216 + DataBinding.FieldName = 'ZDYNameTj' + HeaderAlignmentHorz = taCenter + Width = 147 + end + object v2Column8: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'DEFstr5' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v2Column10: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'DEFStr6' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column11: TcxGridDBColumn + Caption = #22320#21306 + DataBinding.FieldName = 'DEFStr7' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column3: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'DEFstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v2Column4: TcxGridDBColumn + Caption = #25163#26426 + DataBinding.FieldName = 'DEFstr2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'DEFstr3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2Column7: TcxGridDBColumn + Caption = #20844#21496#22320#22336 + DataBinding.FieldName = 'DEFNote1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v2Column9: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'DEFstr4' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 114 + end + object v2Column12: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column13: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/盛纺贸易管理/U_ZdyAttachGYS.pas b/盛纺贸易管理/U_ZdyAttachGYS.pas new file mode 100644 index 0000000..d9adc14 --- /dev/null +++ b/盛纺贸易管理/U_ZdyAttachGYS.pas @@ -0,0 +1,222 @@ +unit U_ZdyAttachGYS; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit; + +type + TfrmZdyAttachGYS = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + ZdyName: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + ToolButton3: TToolButton; + v2Column6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + Label1: TLabel; + ZdyCode: TEdit; + ToolButton4: TToolButton; + v2Column8: TcxGridDBColumn; + Label2: TLabel; + DEFstr5: TComboBox; + v2Column10: TcxGridDBColumn; + v2Column11: TcxGridDBColumn; + v2Column12: TcxGridDBColumn; + v2Column13: TcxGridDBColumn; + DEFStr7: TEdit; + Label4: TLabel; + v2Column14: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ZdyNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + + public + fDEFstr5:string; + end; + +var + frmZdyAttachGYS: TfrmZdyAttachGYS; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + + + +procedure TfrmZdyAttachGYS.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from KH_Zdy_Attachment where Type=''GYS'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachGYS.FormDestroy(Sender: TObject); +begin + frmZdyAttachGYS:=nil; +end; + +procedure TfrmZdyAttachGYS.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZdyAttachGYS.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('Ӧ',Tv2,'ͻԶ'); + Close; +end; +procedure TfrmZdyAttachGYS.TBDelClick(Sender: TObject); +begin + if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete; +end; + +procedure TfrmZdyAttachGYS.FormShow(Sender: TObject); +begin + ReadCxGrid('Ӧ',Tv2,'ͻԶ'); + {IF trim(fDEFstr5)<>'' then + begin + DEFstr5.Text:=trim(fDEFstr5); + DEFstr5.Enabled:=false; + end; } + InitGrid(); +end; + +procedure TfrmZdyAttachGYS.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmZdyAttachGYS.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmZdyAttachGYS.ZdyNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachGYS.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid2); +// SelExportData(Tv2,ADOQueryMain,'Ӧб'); +end; + +procedure TfrmZdyAttachGYS.ToolButton4Click(Sender: TObject); +begin + { try + frmZdyAttInputGYS:=TfrmZdyAttInputGYS.Create(Application); + with frmZdyAttInputGYS do + begin + FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString); + fDEFstr5:=self.fDEFstr5; + if ShowModal=1 then + begin + TBRafresh.Click; + end; + end; + finally + frmZdyAttInputGYS.Free; + end; } +end; + +procedure TfrmZdyAttachGYS.ToolButton3Click(Sender: TObject); +begin + { try + frmZdyAttInputGYS:=TfrmZdyAttInputGYS.Create(Application); + with frmZdyAttInputGYS do + begin + FCYID:=''; + fDEFstr5:=self.fDEFstr5; + if ShowModal=1 then + begin + TBRafresh.Click; + end; + end; + finally + frmZdyAttInputGYS.Free; + end; } +end; + +end. + + diff --git a/盛纺贸易管理/U_ZdyAttachment.dfm b/盛纺贸易管理/U_ZdyAttachment.dfm new file mode 100644 index 0000000..02bec58 --- /dev/null +++ b/盛纺贸易管理/U_ZdyAttachment.dfm @@ -0,0 +1,359 @@ +object frmZdyAttachment: TfrmZdyAttachment + Left = 193 + Top = 136 + Width = 1118 + Height = 652 + Caption = #23458#25143#36164#26009#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + WindowState = wsMaximized + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 107 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1102 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 61 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = DataLink_TradeManage.ThreeImgList + Flat = True + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TSsel: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + OnClick = TSselClick + end + object TBRafresh: TToolButton + Left = 65 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 130 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton1: TToolButton + Left = 195 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 260 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1102 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 206 + Top = 14 + Width = 52 + Height = 13 + Caption = #23458#25143#21517#31216 + end + object Label1: TLabel + Left = 24 + Top = 14 + Width = 52 + Height = 13 + Caption = #23458#25143#32534#21495 + end + object Label2: TLabel + Left = 379 + Top = 14 + Width = 39 + Height = 13 + Caption = #19994#21153#21592 + end + object ZdyName: TEdit + Tag = 2 + Left = 258 + Top = 10 + Width = 96 + Height = 20 + TabOrder = 0 + OnChange = ZdyNameChange + end + object ZdyCode: TEdit + Tag = 2 + Left = 76 + Top = 10 + Width = 96 + Height = 20 + TabOrder = 1 + OnChange = ZdyNameChange + end + object DEFstr5: TEdit + Tag = 2 + Left = 420 + Top = 10 + Width = 97 + Height = 20 + TabOrder = 2 + OnChange = ZdyNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 73 + Width = 1102 + Height = 539 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DS_HZ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v2Column2: TcxGridDBColumn + Caption = #23458#25143#32534#21495 + DataBinding.FieldName = 'ZdyCode' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 86 + end + object v2Column6: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'ZdyName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 72 + end + object v2Column15: TcxGridDBColumn + Caption = #23458#25143#20013#25991#31616#31216 + DataBinding.FieldName = 'zdyNameZ' + HeaderAlignmentHorz = taCenter + Width = 84 + end + object v2ZdyNameYW: TcxGridDBColumn + Caption = #23458#25143#33521#25991#31616#31216 + DataBinding.FieldName = 'ZdyNameYW' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 84 + end + object v2Column10: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'DEFstr5' + HeaderAlignmentHorz = taCenter + Width = 63 + end + object v2SNo: TcxGridDBColumn + Caption = #31246#21495 + DataBinding.FieldName = 'SNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 70 + end + object v2Column16: TcxGridDBColumn + Caption = #23458#26381 + DataBinding.FieldName = 'KeFu' + HeaderAlignmentHorz = taCenter + Width = 79 + end + object v2Column11: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'DEFStr6' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2DEFStr7: TcxGridDBColumn + Caption = #22320#21306 + DataBinding.FieldName = 'DEFStr7' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column3: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'DEFstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v2Column4: TcxGridDBColumn + Caption = #25163#26426 + DataBinding.FieldName = 'DEFstr2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'DEFstr3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2Column7: TcxGridDBColumn + Caption = #20844#21496#22320#22336 + DataBinding.FieldName = 'DEFNote1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v2Column8: TcxGridDBColumn + Caption = #21457#36135#22320#22336 + DataBinding.FieldName = 'DEFNote2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v2Column9: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'DEFstr4' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v2Column12: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v2Column13: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 165 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/盛纺贸易管理/U_ZdyAttachment.pas b/盛纺贸易管理/U_ZdyAttachment.pas new file mode 100644 index 0000000..6b938e2 --- /dev/null +++ b/盛纺贸易管理/U_ZdyAttachment.pas @@ -0,0 +1,180 @@ +unit U_ZdyAttachment; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit; + +type + TfrmZdyAttachment = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + ZdyName: TEdit; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + Label1: TLabel; + ZdyCode: TEdit; + Label2: TLabel; + DEFstr5: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + v2Column2: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + v2Column15: TcxGridDBColumn; + v2Column10: TcxGridDBColumn; + v2Column11: TcxGridDBColumn; + v2DEFStr7: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column12: TcxGridDBColumn; + v2Column13: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + v2Column16: TcxGridDBColumn; + TSsel: TToolButton; + v2ZdyNameYW: TcxGridDBColumn; + v2SNo: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ZdyNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure TSselClick(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + + public + fkhType:string; + end; + +var + frmZdyAttachment: TfrmZdyAttachment; + +implementation +uses + U_DataLink,U_Fun,U_ZDYHelp; + +{$R *.dfm} + +procedure TfrmZdyAttachment.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from KH_Zdy_Attachment where Type=''KHName'' '); + sql.Add(' and isnull(khType,'''')='+quotedstr(trim(fkhType))); + if Trim(DParameters1)<>'Ȩ' then + begin + SQL.Add(' and (RTrim(DEFstr5)='''+Trim(DName)+''''); + sql.add(' or RTrim(Filler)='''+Trim(DName)+''')'); + end; + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmZdyAttachment.FormDestroy(Sender: TObject); +begin + frmZdyAttachment:=nil; +end; + +procedure TfrmZdyAttachment.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZdyAttachment.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ͻ',Tv2,'ͻԶ'); + Close; +end; +procedure TfrmZdyAttachment.FormShow(Sender: TObject); +begin + ReadCxGrid('ͻ',Tv2,'ͻԶ'); + InitGrid(); +end; + +procedure TfrmZdyAttachment.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmZdyAttachment.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmZdyAttachment.ZdyNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachment.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + SelExportData(Tv2,ADOQueryMain,'ͻб'); +end; + +procedure TfrmZdyAttachment.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_HZ.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmZdyAttachment.TSselClick(Sender: TObject); +begin + if CDS_HZ.IsEmpty then exit; + Modalresult:=1; +end; + +end. + + diff --git a/盛纺贸易管理/U_iniParam.pas b/盛纺贸易管理/U_iniParam.pas new file mode 100644 index 0000000..516196d --- /dev/null +++ b/盛纺贸易管理/U_iniParam.pas @@ -0,0 +1,73 @@ + +unit U_iniParam; + +interface +uses + IniFiles,SysUtils; +var + Filename:string; //ļ + iParam2:integer; + bParam1:Boolean; + bParam2:Boolean; + SCXFlag:String; // ݴ˱־ȡǰ׺ ܰĸ 1,2 + SCXCount:String; //̨ + PortNoStr:string;//˿ں + DllName:string;//˿Dllļ + ISJCX:string; + JCYPORT:string; + JCYDLL:string; + Function IsINIFile():Boolean; //жInIļǷ + procedure ReadINIFile(); + procedure WriteINIFile(); +implementation +/////////////////////////////////////////////////////////////////// + //ȡiniļò + // +//////////////////////////////////////////////////////////////////// +procedure ReadINIFile(); +var + programIni:Tinifile; //ļ +begin + FileName:=ExtractFilePath(Paramstr(0))+'File.INI'; + programIni:=Tinifile.create(FileName); + SCXFlag:=programIni.ReadString('','̨־','1'); + SCXCount:=programIni.ReadString('','̨','1'); + PortNoStr:=programIni.ReadString('','˿ں','com7'); + DllName:=programIni.ReadString('','˿Dllļ','JZCRS323D.DLL'); + ISJCX:= programIni.ReadString('','Ƿ','0'); + JCYDLL:=programIni.ReadString('','Dllļ','JCYData10.DLL'); + programIni.Free; +end; +////////////////////////////////////////////////////////////////// + //дϢINIļ + // +////////////////////////////////////////////////////////////////// +procedure WriteINIFile(); +var + programIni:Tinifile; //ļ +begin + FileName:=ExtractFilePath(Paramstr(0))+'File.INI'; + JCYDLL:='JCYData10.DLL'; + programIni:=Tinifile.create(FileName); + programIni.WriteString('','̨־',SCXFlag); + programIni.WriteString('','̨',SCXCount); + programIni.WriteString('','˿ں',PortNoStr); + programIni.WriteString('','˿Dllļ',DllName); + programIni.WriteString('','Ƿ',ISJCX); + // programIni.WriteString('','˿ں',JCYPORT); + programIni.WriteString('','Dllļ',JCYDLL); + programIni.Free; +end; +////////////////////////////////////////////////////////////////// + //жInIļǷ +////////////////////////////////////////////////////////////////// + Function IsINIFile():Boolean; + begin + FileName:=ExtractFilePath(Paramstr(0))+'File.INI'; + if FileExists(FileName) then + Result:=true + else + Result:=false; + end; + +end. diff --git a/盛纺贸易管理/U_orderInPut_HYWT_Sub.dfm b/盛纺贸易管理/U_orderInPut_HYWT_Sub.dfm new file mode 100644 index 0000000..c5b51a0 --- /dev/null +++ b/盛纺贸易管理/U_orderInPut_HYWT_Sub.dfm @@ -0,0 +1,906 @@ +object FrmOrderInPut_HYWT_Sub: TFrmOrderInPut_HYWT_Sub + Left = 187 + Top = 101 + Width = 1145 + Height = 640 + Caption = #36135#36816#22996#25176#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1137 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1137 + Height = 271 + Align = alTop + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 32 + Top = 20 + Width = 65 + Height = 12 + Caption = #22996#25176#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 441 + Top = 45 + Width = 65 + Height = 12 + Caption = #32463#33829#21333#20301#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 32 + Top = 45 + Width = 66 + Height = 12 + Caption = #21457' '#36135' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 32 + Top = 70 + Width = 66 + Height = 12 + Caption = #25910' '#36135' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 32 + Top = 96 + Width = 66 + Height = 12 + Caption = #36890' '#30693' '#20154#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 646 + Top = 20 + Width = 66 + Height = 12 + Caption = #21512' '#21516' '#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 240 + Top = 45 + Width = 62 + Height = 12 + Caption = 'PO# '#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 238 + Top = 70 + Width = 65 + Height = 12 + Caption = #20449#29992#35777#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 238 + Top = 96 + Width = 65 + Height = 12 + Caption = #25552#21333#20221#25968#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 441 + Top = 96 + Width = 67 + Height = 12 + Caption = #27491' '#26412#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 645 + Top = 96 + Width = 67 + Height = 12 + Caption = #38468' '#26412#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 32 + Top = 123 + Width = 65 + Height = 12 + Caption = #36816#36153#20184#33267#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 645 + Top = 45 + Width = 67 + Height = 12 + Caption = #33337' '#21517#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label14: TLabel + Left = 238 + Top = 177 + Width = 65 + Height = 12 + Caption = #35013#36816#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label15: TLabel + Left = 441 + Top = 123 + Width = 66 + Height = 12 + Caption = #30446' '#30340' '#28207#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label16: TLabel + Left = 647 + Top = 123 + Width = 65 + Height = 12 + Caption = #20986#21475#21475#23736#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label17: TLabel + Left = 645 + Top = 70 + Width = 67 + Height = 12 + Caption = #33322' '#27425#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label18: TLabel + Left = 443 + Top = 70 + Width = 62 + Height = 12 + Caption = 'B/L No '#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label19: TLabel + Left = 239 + Top = 150 + Width = 65 + Height = 12 + Caption = #26377#25928#26399#38480#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label20: TLabel + Left = 32 + Top = 177 + Width = 91 + Height = 12 + Caption = #36135#29289#22791#22949#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label21: TLabel + Left = 32 + Top = 150 + Width = 65 + Height = 12 + Caption = #35013#31665#26085#26399#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label22: TLabel + Left = 441 + Top = 150 + Width = 65 + Height = 12 + Caption = #35013#31665#22320#28857#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label23: TLabel + Left = 441 + Top = 177 + Width = 65 + Height = 12 + Caption = #25910#36135#22320#22336#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label24: TLabel + Left = 32 + Top = 200 + Width = 65 + Height = 12 + Caption = #27880#24847#20107#39033#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 441 + Top = 20 + Width = 65 + Height = 12 + Caption = #25351#31034#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label26: TLabel + Left = 237 + Top = 20 + Width = 65 + Height = 12 + Caption = #20986#36816#21333#21495#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object goodsdate: TDateTimePicker + Tag = 2 + Left = 121 + Top = 173 + Width = 96 + Height = 20 + Date = 41962.666178923610000000 + Time = 41962.666178923610000000 + TabOrder = 16 + end + object WTNo: TEdit + Tag = 2 + Left = 97 + Top = 16 + Width = 121 + Height = 20 + TabOrder = 0 + end + object conNo: TEdit + Tag = 2 + Left = 712 + Top = 16 + Width = 120 + Height = 20 + TabOrder = 1 + end + object original: TEdit + Tag = 2 + Left = 506 + Top = 92 + Width = 121 + Height = 20 + TabOrder = 2 + end + object Attached: TEdit + Tag = 2 + Left = 714 + Top = 92 + Width = 120 + Height = 20 + TabOrder = 3 + end + object TDNum: TEdit + Tag = 2 + Left = 303 + Top = 92 + Width = 121 + Height = 20 + TabOrder = 4 + end + object Payaddress: TBtnEditA + Tag = 2 + Left = 97 + Top = 119 + Width = 327 + Height = 20 + TabOrder = 5 + OnBtnClick = PayaddressBtnClick + end + object CustomerNoName: TBtnEditA + Tag = 2 + Left = 506 + Top = 41 + Width = 122 + Height = 20 + TabOrder = 6 + OnBtnClick = CustomerNoNameBtnClick + end + object Export: TBtnEditA + Tag = 2 + Left = 713 + Top = 119 + Width = 121 + Height = 20 + TabOrder = 7 + OnBtnClick = ExportBtnClick + end + object POD: TBtnEditA + Tag = 2 + Left = 506 + Top = 119 + Width = 123 + Height = 20 + TabOrder = 8 + OnBtnClick = PODBtnClick + end + object shiptime: TDateTimePicker + Tag = 2 + Left = 304 + Top = 173 + Width = 121 + Height = 20 + Date = 41962.666178923610000000 + Time = 41962.666178923610000000 + TabOrder = 9 + end + object voy: TBtnEditA + Tag = 2 + Left = 713 + Top = 66 + Width = 121 + Height = 20 + TabOrder = 10 + OnBtnClick = voyBtnClick + end + object vessel: TBtnEditA + Tag = 2 + Left = 713 + Top = 41 + Width = 121 + Height = 20 + TabOrder = 11 + OnBtnClick = vesselBtnClick + end + object BLNo: TEdit + Tag = 2 + Left = 506 + Top = 66 + Width = 121 + Height = 20 + TabOrder = 12 + end + object Validtime: TDateTimePicker + Tag = 2 + Left = 305 + Top = 146 + Width = 121 + Height = 20 + Date = 41962.666178923610000000 + Time = 41962.666178923610000000 + TabOrder = 13 + end + object ifFP: TCheckBox + Left = 848 + Top = 16 + Width = 97 + Height = 17 + Caption = #26159#21542#20998#25209 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 14 + end + object ifZY: TCheckBox + Left = 848 + Top = 42 + Width = 97 + Height = 17 + Caption = #26159#21542#36716#36816 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 15 + end + object DLYDate: TDateTimePicker + Tag = 2 + Left = 97 + Top = 146 + Width = 121 + Height = 20 + Date = 41962.666178923610000000 + Time = 41962.666178923610000000 + TabOrder = 17 + end + object conDefstr1: TBtnEditA + Tag = 2 + Left = 508 + Top = 173 + Width = 326 + Height = 20 + TabOrder = 18 + OnBtnClick = conDefstr1BtnClick + end + object XYNO: TEdit + Tag = 2 + Left = 303 + Top = 66 + Width = 121 + Height = 20 + TabOrder = 19 + end + object DLYaddress: TBtnEditA + Tag = 2 + Left = 508 + Top = 146 + Width = 326 + Height = 20 + TabOrder = 20 + OnBtnClick = DLYaddressBtnClick + end + object MPRTBZNote: TMemo + Tag = 2 + Left = 97 + Top = 200 + Width = 737 + Height = 60 + ScrollBars = ssVertical + TabOrder = 21 + OnDblClick = MPRTBZNoteDblClick + end + object orddefstr1: TEdit + Tag = 2 + Left = 97 + Top = 41 + Width = 121 + Height = 20 + TabOrder = 22 + end + object ConPerson2: TEdit + Tag = 2 + Left = 97 + Top = 92 + Width = 121 + Height = 20 + TabOrder = 23 + end + object ConPerson1: TEdit + Tag = 2 + Left = 97 + Top = 66 + Width = 121 + Height = 20 + TabOrder = 24 + end + object orderNo: TBtnEditA + Tag = 2 + Left = 506 + Top = 16 + Width = 122 + Height = 20 + TabOrder = 25 + OnBtnClick = orderNoBtnClick + end + object KHConNo: TEdit + Tag = 2 + Left = 303 + Top = 41 + Width = 120 + Height = 20 + TabOrder = 26 + end + object CYNO: TBtnEditA + Left = 303 + Top = 16 + Width = 122 + Height = 20 + TabOrder = 27 + OnBtnClick = CYNOBtnClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 333 + Width = 1137 + Height = 252 + Align = alTop + TabOrder = 2 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V1SordQty3 + end + item + Kind = skSum + Column = V1SordQty1 + end + item + Kind = skSum + Column = V1SordQty4 + end + item + Kind = skSum + Column = V1SordQty2 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object V1XHNO: TcxGridDBColumn + Caption = #24207#21495 + DataBinding.FieldName = 'XHNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 60 + end + object V1PRTCode: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'PRTCode' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object V1PRTCodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object V1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object V1PRTspec: TcxGridDBColumn + Caption = #20135#21697#35268#26684 + DataBinding.FieldName = 'PRTspec' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1SordQty3: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'SordQty3' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 68 + end + object V1OrderUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'OrderUnit' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 68 + end + object V1PRTprice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTprice' + HeaderAlignmentHorz = taCenter + Styles.Content = DataLink_TradeManage.FontBlue + Styles.Footer = DataLink_TradeManage.FontBlue + Styles.Header = DataLink_TradeManage.FontBlue + Width = 60 + end + object V1BJNO: TcxGridDBColumn + Caption = #26631#35760#21495#30721 + DataBinding.FieldName = 'BJNO' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1SordQty1: TcxGridDBColumn + Caption = #20214#25968 + DataBinding.FieldName = 'SordQty1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1BGType: TcxGridDBColumn + Caption = #21253#35013#24335#26679 + DataBinding.FieldName = 'BGType' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V1BGTypePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1GoodsNo: TcxGridDBColumn + Caption = #36135#21495 + DataBinding.FieldName = 'GoodsNo' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1SordQty2: TcxGridDBColumn + Caption = #23610#30721 + DataBinding.FieldName = 'SordQty2' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object V1SordQty4: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'SordQty4' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FontBlue + Width = 70 + end + object V1SOrdDefNote3: TcxGridDBColumn + Caption = #25104#20132#26465#20214 + DataBinding.FieldName = 'SOrdDefNote3' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = V1SordQty1PropertiesButtonClick + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 70 + end + object V1SOrdDefNote1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'SOrdDefNote1' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.Default + Width = 100 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 302 + Width = 1137 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clBtnFace + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object Tadd: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = TaddClick + end + object TDEL: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = TDELClick + end + end + object ADOQueryTmp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 348 + Top = 364 + end + object order_Sub: TClientDataSet + Aggregates = <> + Params = <> + Left = 388 + Top = 364 + end + object DataSource1: TDataSource + DataSet = order_Sub + Left = 424 + Top = 364 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 464 + Top = 364 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 508 + Top = 364 + end +end diff --git a/盛纺贸易管理/U_orderInPut_HYWT_Sub.pas b/盛纺贸易管理/U_orderInPut_HYWT_Sub.pas new file mode 100644 index 0000000..4906f25 --- /dev/null +++ b/盛纺贸易管理/U_orderInPut_HYWT_Sub.pas @@ -0,0 +1,714 @@ +unit U_orderInPut_HYWT_Sub; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ToolWin, ComCtrls, ExtCtrls, StdCtrls, BtnEdit, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, + cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, + DBClient, ADODB, cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu; + +type + TFrmOrderInPut_HYWT_Sub = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + conNo: TEdit; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + original: TEdit; + Label11: TLabel; + Attached: TEdit; + Label12: TLabel; + TDNum: TEdit; + Payaddress: TBtnEditA; + CustomerNoName: TBtnEditA; + Export: TBtnEditA; + Label13: TLabel; + Label14: TLabel; + Label15: TLabel; + Label16: TLabel; + POD: TBtnEditA; + shiptime: TDateTimePicker; + Label17: TLabel; + voy: TBtnEditA; + vessel: TBtnEditA; + Label18: TLabel; + BLNo: TEdit; + Label19: TLabel; + Validtime: TDateTimePicker; + ifFP: TCheckBox; + ifZY: TCheckBox; + Label20: TLabel; + goodsdate: TDateTimePicker; + Label21: TLabel; + DLYDate: TDateTimePicker; + Label22: TLabel; + cxGrid1: TcxGrid; + TV1: TcxGridDBTableView; + V1BJNO: TcxGridDBColumn; + V1SordQty1: TcxGridDBColumn; + V1BGType: TcxGridDBColumn; + V1PRTspec: TcxGridDBColumn; + V1GoodsNo: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ToolBar2: TToolBar; + Tadd: TToolButton; + TDEL: TToolButton; + WTNo: TEdit; + Label23: TLabel; + conDefstr1: TBtnEditA; + V1SordQty2: TcxGridDBColumn; + V1SordQty4: TcxGridDBColumn; + V1SOrdDefNote3: TcxGridDBColumn; + V1SOrdDefNote1: TcxGridDBColumn; + ADOQueryTmp: TADOQuery; + order_Sub: TClientDataSet; + DataSource1: TDataSource; + ADOQueryCmd: TADOQuery; + XYNO: TEdit; + DLYaddress: TBtnEditA; + Label24: TLabel; + MPRTBZNote: TMemo; + orddefstr1: TEdit; + ConPerson2: TEdit; + ConPerson1: TEdit; + Label25: TLabel; + orderNo: TBtnEditA; + KHConNo: TEdit; + V1PRTCode: TcxGridDBColumn; + V1PRTCodeName: TcxGridDBColumn; + V1PRTColor: TcxGridDBColumn; + V1OrderUnit: TcxGridDBColumn; + V1SordQty3: TcxGridDBColumn; + V1XHNO: TcxGridDBColumn; + V1PRTprice: TcxGridDBColumn; + cxGridPopupMenu1: TcxGridPopupMenu; + Label26: TLabel; + CYNO: TBtnEditA; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TaddClick(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure CustomerNoNameBtnClick(Sender: TObject); + procedure V1BGTypePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure V1SordQty1PropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure PayaddressBtnClick(Sender: TObject); + procedure vesselBtnClick(Sender: TObject); + procedure DLYaddressBtnClick(Sender: TObject); + procedure conDefstr1BtnClick(Sender: TObject); + procedure voyBtnClick(Sender: TObject); + procedure ExportBtnClick(Sender: TObject); + procedure PODBtnClick(Sender: TObject); + procedure MPRTBZNoteDblClick(Sender: TObject); + procedure TDELClick(Sender: TObject); + procedure CYNOBtnClick(Sender: TObject); + procedure orderNoBtnClick(Sender: TObject); + private + procedure initdata(); + procedure savedata(); + { Private declarations } + public + FMainId: string; + { Public declarations } + end; + +var + FrmOrderInPut_HYWT_Sub: TFrmOrderInPut_HYWT_Sub; + +implementation + +Uses U_DataLink,U_Fun, U_ZDYHelp, U_ZDYHelpSel, U_ProductOrderListSel, + U_ProductOrderNewList_CY_Sel; + +{$R *.dfm} + +procedure TFrmOrderInPut_HYWT_Sub.savedata(); +var FSubid: string; +begin + try + ADOQueryCmd.Connection.BeginTrans; + if Trim(FMainId)='' then + begin + if GetLSNo(ADOQueryCmd,FMainid,'HY','JYOrderWT_Main',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('select * from JYOrderWT_Main where MainId='''+Trim(FMainId)+''''); + Open; + if IsEmpty then + begin + Append; + FieldByName('filler').AsString:=Trim(DName); + FieldByName('filltime').AsDateTime:=SGetServerDateTime(ADOQueryTmp); + end + else + begin + Edit; + end; + FieldByName('MainId').Value:=Trim(FMainid); + SSetsaveSqlNew(ADOQueryCmd,'JYOrderWT_Main',Panel1,2); + FieldByName('status').AsString:=''; + if ifFP.Checked=True then + begin + FieldByName('ifFp').AsString:='T'; + end + else + begin + FieldByName('ifFp').AsString:='F'; + end; + if ifzy.Checked=True then + begin + FieldByName('ifzy').AsString:='T'; + end + else + begin + FieldByName('ifzy').AsString:='F'; + end; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrderWT_Main where WTNO='''+Trim(WTNO.Text)+''''); + Open; + end; + if ADOQueryCmd.RecordCount>1 then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ίеظ!','ʾ'); + Exit; + end; + with Order_Sub do + begin + First; + while not Eof do + begin + if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then + begin + if GetLSNo(ADOQueryCmd,FSubid,'HY','JYOrderWT_Sub',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡˮʧܣ','ʾ',0); + Exit; + end; + end else + begin + FSubid:=Trim(Order_Sub.fieldbyname('SubId').AsString); + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderWT_Sub where MainId='''+Trim(FMainId)+''''); + sql.Add(' and SubId='''+Trim(FSubid)+''''); + Open; + if IsEmpty then + Append + else + Edit; + FieldByName('MainId').Value:=Trim(FMainId); + FieldByName('SubId').Value:=Trim(FSubid); + RTSetSaveDataCDS(ADOQueryCmd,Tv1,Order_Sub,'JYOrderWT_Sub',0); + fieldbyname('SordQty1').Value:=Order_Sub.fieldbyname('SordQty1').AsFloat; + fieldbyname('SordQty2').Value:=Order_Sub.fieldbyname('SordQty2').AsFloat; + fieldbyname('SordQty3').Value:=Order_Sub.fieldbyname('SordQty3').AsFloat; + fieldbyname('SordQty4').Value:=Order_Sub.fieldbyname('SordQty4').AsFloat; + fieldbyname('PRTprice').Value:=Order_Sub.fieldbyname('PRTprice').AsFloat; + fieldbyname('Money').Value:=Order_Sub.fieldbyname('Money').AsFloat; + Post; + end; + Order_Sub.Edit; + Order_Sub.FieldByName('SubId').Value:=Trim(FSubid); + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Application.MessageBox('ɹ','ʾ',0); + ModalResult:=1; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ʧܣ','ʾ',0); + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.initdata(); +begin + with ADOQueryTmp do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrderwt_Main'); + sql.Add('where Mainid='''+trim(FMainid)+''''); + Open; + if not IsEmpty then + begin + SCSHDataNew(ADOQueryTmp,Panel1,2); + MPRTBZNote.Text:=Trim(fieldbyname('MPRTBZNote').AsString); + if FieldByName('iffp').AsString='T' then + iffp.Checked:=True + else + iffp.Checked:=False; + if FieldByName('ifzy').AsString='T' then + ifzy.Checked:=True + else + ifzy.Checked:=False; + end + else + begin + shiptime.DateTime:=SGetServerDateTime(ADOQueryCmd); + DLYDate.DateTime:=SGetServerDateTime(ADOQueryCmd); + goodsdate.DateTime:=SGetServerDateTime(ADOQueryCmd); + Validtime.DateTime:=SGetServerDateTime(ADOQueryCmd); + end; + end; + with ADOQueryTmp do + begin + Close; + SQL.Clear; + SQL.Add('select * from JYOrderWT_Sub '); + sql.Add('where Mainid='''+trim(FMainid)+''''); + open; + end; + SCreateCDS20(ADOQueryTmp,Order_Sub); + SInitCDSData20(ADOQueryTmp,Order_Sub); +end; +procedure TFrmOrderInPut_HYWT_Sub.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TFrmOrderInPut_HYWT_Sub.FormCreate(Sender: TObject); +begin + cxGrid1.Align:=alclient; +end; + +procedure TFrmOrderInPut_HYWT_Sub.FormDestroy(Sender: TObject); +begin + FrmOrderInPut_HYWT_Sub:=nil; +end; + +procedure TFrmOrderInPut_HYWT_Sub.FormShow(Sender: TObject); +begin + ReadCxGrid(self.Caption+tv1.Name,Tv1); + InitData(); +end; + +procedure TFrmOrderInPut_HYWT_Sub.TBCloseClick(Sender: TObject); +begin + close; + WriteCxGrid(Self.Caption+Tv1.Name,Tv1); +end; + +procedure TFrmOrderInPut_HYWT_Sub.TaddClick(Sender: TObject); +begin + with order_Sub do + begin + Append; + + Post; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.TBSaveClick(Sender: TObject); +begin + if WTNo.Text='' then + begin + Application.MessageBox('ίеŲΪ','ʾ'); + exit; + end; + if Order_Sub.IsEmpty then + begin + Application.MessageBox('ϸΪ!','ʾ',0); + Exit; + end; + SaveData(); +end; + +procedure TFrmOrderInPut_HYWT_Sub.CustomerNoNameBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='CustomerNoName'; + flagname:='Ӫλ'; + if ShowModal=1 then + begin + CustomerNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.V1BGTypePropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BGTYPE'; + flagname:='װʽ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('BGTYPE').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.V1SordQty1PropertiesButtonClick( + Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='SordQty1'; + flagname:='ɽ'; + if ShowModal=1 then + begin + Self.Order_Sub.Edit; + Self.Order_Sub.FieldByName('SordQty1').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.PayaddressBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Payaddress'; + flagname:='˷Ѹ'; + if ShowModal=1 then + begin + Payaddress.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.vesselBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='vessel'; + flagname:=''; + if ShowModal=1 then + begin + vessel.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.DLYaddressBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Payaddress'; + flagname:='װص'; + if ShowModal=1 then + begin + DLYaddress.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.conDefstr1BtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Payaddress'; + flagname:='ַ'; + if ShowModal=1 then + begin + conDefstr1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.voyBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='voy'; + flagname:=''; + if ShowModal=1 then + begin + voy.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.ExportBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Export'; + flagname:='ڿڰ'; + if ShowModal=1 then + begin + Export.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.PODBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Export'; + flagname:='Ŀĸ'; + if ShowModal=1 then + begin + POD.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.MPRTBZNoteDblClick(Sender: TObject); +var i: Integer; +begin + i:=0; + try + frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); + with frmZDYHelpSel do + begin + flag:='MPRTBZNote'; + flagname:='ע'; + if ShowModal=1 then + begin + MPRTBZNote.Lines.Clear; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if FieldByName('SSel').AsBoolean=True then + begin + i:=i+1; + MPRTBZNote.Lines.Add(inttostr(i)+'.'+FieldByName('ZDYName').AsString) + end; + Next; + end; + end; + end; + end; + finally + frmZDYHelpSel.Free; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.TDELClick(Sender: TObject); +begin + if Order_Sub.IsEmpty then Exit; + if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then + begin + if Application.MessageBox('ȷҪɾ','ʾ',1)=2 then Exit; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrderWT_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + end; + Order_Sub.Delete; +end; + +procedure TFrmOrderInPut_HYWT_Sub.CYNOBtnClick(Sender: TObject); +var + ConMainId:string; +begin + ConMainId:=''; + frmProductOrderNewList_CY_SEL:=TfrmProductOrderNewList_CY_SEL.create(self); + with frmProductOrderNewList_CY_SEL do + begin + FFInt:=1; + if showmodal=1 then + begin + ConMainId:=trim(Order_Main.fieldbyname('mainID').asstring); + end; + free; + end; + iF ConMainId='' then exit; + with ADOQueryTmp do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6,C.condefstr10,C.priceNote,C.Payment,C.ShippMent, '); + sql.Add('PriceUnit1=(select top 1 PriceUnit from JYordercon_sub X where X.mainID=C.mainid)'); + sql.Add('from JYOrderCY_sub A '); + sql.Add('inner join JYOrderCY_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where B.mainID like '''+'%'+Trim(ConMainId)+'%'+''''); + Open; + end; + IF not ADOQueryTmp.IsEmpty then + begin + ConNo.Text:=Trim(ADOQueryTmp.fieldbyname('ConNo').AsString); + WTNO.Text:='WT_'+Trim(ADOQueryTmp.fieldbyname('ConNo').AsString); + orderNo.Text:=Trim(ADOQueryTmp.fieldbyname('orderNo').AsString); + CYNO.Text:=Trim(ADOQueryTmp.fieldbyname('CYNO').AsString); + DLYDate.DateTime:=ADOQueryTmp.fieldbyname('DLYDate').AsDateTime; + CustomerNoName.Text:=Trim(ADOQueryTmp.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOQueryTmp.fieldbyname('CustomerNo').AsString); + KHCONNO.Text:=Trim(ADOQueryTmp.fieldbyname('KHCONNO').AsString); + ConPerson1.Text:=Trim(ADOQueryTmp.fieldbyname('ConPerson2').AsString); + conDefstr1.Text:=Trim(ADOQueryTmp.fieldbyname('conDefstr1').AsString); + BLNo.Text:=Trim(ADOQueryTmp.fieldbyname('orddefstr3').AsString); + end; + Order_Sub.EmptyDataSet; + with ADOQueryTmp do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Trim(ADOQueryTmp.fieldbyname('XHNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOQueryTmp.fieldbyname('PRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOQueryTmp.fieldbyname('PRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOQueryTmp.fieldbyname('PRTspec').AsString); + FieldByName('SordQty3').Value:=Trim(ADOQueryTmp.fieldbyname('PRTOrderQty').AsString); + FieldByName('PRTColor').Value:=Trim(ADOQueryTmp.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOQueryTmp.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=Trim(ADOQueryTmp.fieldbyname('PRTPrice').AsString); + FieldByName('PriceUnit').Value:=Trim(ADOQueryTmp.fieldbyname('PriceUnit1').AsString); + FieldByName('SOrdDefNote4').Value:=Trim(ADOQueryTmp.fieldbyname('subID').AsString); + Post; + end; + Next; + end; + end; +end; + +procedure TFrmOrderInPut_HYWT_Sub.orderNoBtnClick(Sender: TObject); +begin + frmProductOrderListSel:=TfrmProductOrderListSel.create(self); + with frmProductOrderListSel do + begin + if showmodal=1 then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select B.*,A.*,c.KhconNo,C.ConPerson2,C.ConPerson3,C.conDefstr2,C.conDefstr6 from JYOrder_sub A '); + sql.Add('inner join JYOrder_Main B on B.mainID=A.mainID '); + sql.Add('left join JYOrderCon_Main C on C.conNO=B.conNO '); + sql.Add('where B.mainID like '''+'%'+Trim(Order_Main.fieldbyname('mainID').asstring)+'%'+''''); + Open; + IF not IsEmpty then + begin + ConNo.Text:=Trim(ADOQueryCmd.fieldbyname('ConNo').AsString); + orderNo.Text:=Trim(ADOQueryCmd.fieldbyname('orderNo').AsString); + WTNO.Text:='WT_'+Trim(ADOQueryCmd.fieldbyname('ConNo').AsString); + CustomerNoName.Text:=Trim(ADOQueryCmd.fieldbyname('CustomerNoName').AsString); + CustomerNoName.TxtCode:=Trim(ADOQueryCmd.fieldbyname('CustomerNo').AsString); + DLYDate.DateTime:=ADOQueryCmd.fieldbyname('DLYDate').AsDateTime; + ConPerson1.Text:=Trim(ADOQueryCmd.fieldbyname('ConPerson2').AsString); + KHCONNO.Text:=Trim(ADOQueryCmd.fieldbyname('KHCONNO').AsString); + ConPerson2.Text:=Trim(ADOQueryCmd.fieldbyname('ConPerson3').AsString); + conDefstr1.Text:=Trim(ADOQueryCmd.fieldbyname('conDefstr2').AsString); + end; + Order_Sub.EmptyDataSet; + with ADOQueryCmd do + begin + First; + while not Eof do + begin + with Order_Sub do + begin + Append; + FieldByName('XHNO').Value:=Trim(ADOQueryCmd.fieldbyname('XHNO').AsString); + FieldByName('PRTCode').Value:=Trim(ADOQueryCmd.fieldbyname('MPRTCode').AsString); + FieldByName('PRTCodeName').Value:=Trim(ADOQueryCmd.fieldbyname('MPRTCodeName').AsString); + FieldByName('PRTspec').Value:=Trim(ADOQueryCmd.fieldbyname('MPRTspec').AsString); + FieldByName('PRTColor').Value:=Trim(ADOQueryCmd.fieldbyname('PRTColor').AsString); + FieldByName('OrderUnit').Value:=Trim(ADOQueryCmd.fieldbyname('OrderUnit').AsString); + FieldByName('PRTPrice').Value:=ADOQueryCmd.fieldbyname('PRTPrice').AsFloat; + FieldByName('PriceUnit').Value:=Trim(ADOQueryCmd.fieldbyname('PriceUnit').AsString); + FieldByName('SordQty3').Value:=ADOQueryCmd.fieldbyname('PRTOrderQty').AsFloat; + FieldByName('SOrdDefNote4').Value:=Trim(ADOQueryCmd.fieldbyname('subID').AsString); + Post; + end; + Next; + end; + end; + end; + end; + Free; + end; +end; + +end. diff --git a/盛纺贸易管理/U_testdll.dfm b/盛纺贸易管理/U_testdll.dfm new file mode 100644 index 0000000..b1d8f4c --- /dev/null +++ b/盛纺贸易管理/U_testdll.dfm @@ -0,0 +1,221 @@ +object Form1: TForm1 + Left = 153 + Top = 124 + Width = 791 + Height = 554 + Caption = 'Form1' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + FormStyle = fsMDIForm + Menu = MainMenu1 + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnResize = FormResize + PixelsPerInch = 96 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 783 + Height = 25 + ButtonWidth = 57 + Caption = 'ToolBar1' + Flat = True + Images = ImageList1 + TabOrder = 0 + object Edit1: TEdit + Left = 0 + Top = 0 + Width = 81 + Height = 22 + TabOrder = 0 + Text = '1' + end + object ToolButton1: TToolButton + Left = 81 + Top = 0 + Caption = #20851#38381 + ImageIndex = 0 + OnClick = ToolButton1Click + end + object Label1: TLabel + Left = 138 + Top = 0 + Width = 79 + Height = 22 + Caption = ' DllName'#65306 + end + object DllName: TEdit + Left = 217 + Top = 0 + Width = 135 + Height = 22 + TabOrder = 1 + end + end + object MainMenu1: TMainMenu + Left = 232 + Top = 40 + object test1: TMenuItem + Caption = 'test' + OnClick = test1Click + end + end + object ImageList1: TImageList + Left = 320 + Top = 56 + Bitmap = { + 494C010101000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000EFEFEF000000 + 0000EFEFEF00EFEFEF000000000000000000EFEFEF0000000000000000000000 + 0000EFEFEF00EFEFEF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000EFEFEF0000000000EFEFEF00EFEFEF0000000000EFEFEF00000000008080 + 00008080000000000000C0C0C000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EFEFEF00EFEFEF000000 + 0000EFEFEF00EFEFEF000000000000000000C0C0C00000000000000000008080 + 00008080000080800000EFEFEF00EFEFEF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF0000000000000000000000000000000000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF0000000000808080008080800080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008080000000000000808080008080800080808000000000008080 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000EFEFEF00EFEF + EF0000000000FFFF000080800000000000008080800080808000000000000000 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF0000FFFF0000808000000000000080808000000000008080 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000808000008080 + 000080800000FFFF0000FFFF0000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFF0000FFFF + 0000FFFF0000FFFF000000000000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF0000FFFF0000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000808000000000000080808000808080008080800080808000FFFF + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080008080800080808000808080000000 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFF000000000000D343000000000000 + F4810000000000009340000000000000F801000000000000F001000000000000 + F001000000000000C001000000000000C001000000000000C001000000000000 + C201000000000000C001000000000000F001000000000000F001000000000000 + FC03000000000000FFFF00000000000000000000000000000000000000000000 + 000000000000} + end + object ADOConnection1: TADOConnection + ConnectionString = + 'Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ' + + 'ID=sa;Initial Catalog=rzdata;Data Source=6GMFFMYKYMJDZW7' + LoginPrompt = False + Provider = 'SQLOLEDB.1' + Left = 408 + Top = 64 + end +end diff --git a/盛纺贸易管理/U_testdll.pas b/盛纺贸易管理/U_testdll.pas new file mode 100644 index 0000000..e602573 --- /dev/null +++ b/盛纺贸易管理/U_testdll.pas @@ -0,0 +1,106 @@ +unit U_testdll; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, StdCtrls, Menus, ToolWin, ComCtrls, ImgList, DB, ADODB; + +type + TForm1 = class(TForm) + MainMenu1: TMainMenu; + test1: TMenuItem; + ToolBar1: TToolBar; + Edit1: TEdit; + ToolButton1: TToolButton; + ImageList1: TImageList; + ADOConnection1: TADOConnection; + DllName: TEdit; + Label1: TLabel; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure test1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormResize(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + newh:hwnd; + +implementation + +{$R *.dfm} + +procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); +begin + sendmessage(newh,1034,4,0); + action:=cafree; +end; + +procedure TForm1.test1Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; +begin + //̬ + //newh:=getForm(Application,1,ADOConnection1,PChar('sa'),PChar('dsa')); + + //̬ + // showMessage(intTostr(application.Handle)); + Th := LoadLibrary('TradeManage.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,strToint(edit1.text),0,0, + PChar('sa'), + PChar('dsa'), + PChar('bsa'), + PChar('tsa'), + PChar('d1sa'), + PChar('d2sa'), + '','','','','','','','','' + ); + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim(DllName.Text)); + end; + +end; + +procedure TForm1.ToolButton1Click(Sender: TObject); +begin + close; +end; + +procedure TForm1.FormResize(Sender: TObject); +begin + sendmessage(newh,1034,1,0); +end; + +end. + diff --git a/盛纺贸易管理/WFBOrder.cfg b/盛纺贸易管理/WFBOrder.cfg new file mode 100644 index 0000000..08e3903 --- /dev/null +++ b/盛纺贸易管理/WFBOrder.cfg @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-U"D:\ͨERP" +-O"D:\ͨERP" +-I"D:\ͨERP" +-R"D:\ͨERP" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/盛纺贸易管理/WFBOrder.dof b/盛纺贸易管理/WFBOrder.dof new file mode 100644 index 0000000..1b7a527 --- /dev/null +++ b/盛纺贸易管理/WFBOrder.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=D:\ͨERP +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\޷IJ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/盛纺贸易管理/WFBOrder.res b/盛纺贸易管理/WFBOrder.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/WFBProduction.cfg b/盛纺贸易管理/WFBProduction.cfg new file mode 100644 index 0000000..6c57635 --- /dev/null +++ b/盛纺贸易管理/WFBProduction.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/盛纺贸易管理/WFBProduction.dof b/盛纺贸易管理/WFBProduction.dof new file mode 100644 index 0000000..7640062 --- /dev/null +++ b/盛纺贸易管理/WFBProduction.dof @@ -0,0 +1,141 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\޷IJ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; diff --git a/盛纺贸易管理/WFBProduction.res b/盛纺贸易管理/WFBProduction.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/superobject.pas b/盛纺贸易管理/superobject.pas new file mode 100644 index 0000000..0d41d4b --- /dev/null +++ b/盛纺贸易管理/superobject.pas @@ -0,0 +1,7502 @@ +(* + * Super Object Toolkit + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest + * Web site : http://www.progdigy.com + * + * This unit is inspired from the json c lib: + * Michael Clark + * http://oss.metaparadigm.com/json-c/ + * + * CHANGES: + * v1.2 + * + support of currency data type + * + right trim unquoted string + * + read Unicode Files and streams (Litle Endian with BOM) + * + Fix bug on javadate functions + windows nt compatibility + * + Now you can force to parse only the canonical syntax of JSON using the stric parameter + * + Delphi 2010 RTTI marshalling + * v1.1 + * + Double licence MPL or LGPL. + * + Delphi 2009 compatibility & Unicode support. + * + AsString return a string instead of PChar. + * + Escaped and Unascaped JSON serialiser. + * + Missed FormFeed added \f + * - Removed @ trick, uses forcepath() method instead. + * + Fixed parse error with uppercase E symbol in numbers. + * + Fixed possible buffer overflow when enlarging array. + * + Added "delete", "pack", "insert" methods for arrays and/or objects + * + Multi parametters when calling methods + * + Delphi Enumerator (for obj1 in obj2 do ...) + * + Format method ex: obj.format('<%name%>%tab[1]%') + * + ParseFile and ParseStream methods + * + Parser now understand hexdecimal c syntax ex: \xFF + * + Null Object Design Patern (ex: for obj in values.N['path'] do ...) + * v1.0 + * + renamed class + * + interfaced object + * + added a new data type: the method + * + parser can now evaluate properties and call methods + * - removed obselet rpc class + * - removed "find" method, now you can use "parse" method instead + * v0.6 + * + refactoring + * v0.5 + * + new find method to get or set value using a path syntax + * ex: obj.s['obj.prop[1]'] := 'string value'; + * obj.a['@obj.array'].b[n] := true; // @ -> create property if necessary + * v0.4 + * + bug corrected: AVL tree badly balanced. + * v0.3 + * + New validator partially based on the Kwalify syntax. + * + extended syntax to parse unquoted fields. + * + Freepascal compatibility win32/64 Linux32/64. + * + JavaToDelphiDateTime and DelphiToJavaDateTime improved for UTC. + * + new TJsonObject.Compare function. + * v0.2 + * + Hashed string list replaced with a faster AVL tree + * + JsonInt data type can be changed to int64 + * + JavaToDelphiDateTime and DelphiToJavaDateTime helper fonctions + * + from json-c v0.7 + * + Add escaping of backslash to json output + * + Add escaping of foward slash on tokenizing and output + * + Changes to internal tokenizer from using recursion to + * using a depth state structure to allow incremental parsing + * v0.1 + * + first release + *) + +{$IFDEF FPC} + {$MODE OBJFPC}{$H+} +{$ENDIF} + +{$DEFINE SUPER_METHOD} +{$DEFINE WINDOWSNT_COMPATIBILITY} +{.$DEFINE DEBUG} // track memory leack + + +{$if defined(FPC) or defined(VER170) or defined(VER180) or defined(VER190) or defined(VER200) or defined(VER210)} + {$DEFINE HAVE_INLINE} +{$ifend} + +{$if defined(VER210) or defined(VER220) or defined(VER230)} + {$define HAVE_RTTI} +{$ifend} + +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} + +unit superobject; + +interface +uses + Classes +{$IFDEF HAVE_RTTI} + ,Generics.Collections, RTTI, TypInfo +{$ENDIF} + ; + +type +{$IFNDEF FPC} +{$IFDEF CPUX64} + PtrInt = Int64; + PtrUInt = UInt64; +{$ELSE} + PtrInt = longint; + PtrUInt = Longword; +{$ENDIF} +{$ENDIF} + SuperInt = Int64; + +{$if (sizeof(Char) = 1)} + SOChar = WideChar; + SOIChar = Word; + PSOChar = PWideChar; +{$IFDEF FPC} + SOString = UnicodeString; +{$ELSE} + SOString = WideString; +{$ENDIF} +{$else} + SOChar = Char; + SOIChar = Word; + PSOChar = PChar; + SOString = string; +{$ifend} + +const + SUPER_ARRAY_LIST_DEFAULT_SIZE = 32; + SUPER_TOKENER_MAX_DEPTH = 32; + + SUPER_AVL_MAX_DEPTH = sizeof(longint) * 8; + SUPER_AVL_MASK_HIGH_BIT = not ((not longword(0)) shr 1); + +type + // forward declarations + TSuperObject = class; + ISuperObject = interface; + TSuperArray = class; + +(* AVL Tree + * This is a "special" autobalanced AVL tree + * It use a hash value for fast compare + *) + +{$IFDEF SUPER_METHOD} + TSuperMethod = procedure(const This, Params: ISuperObject; var Result: ISuperObject); +{$ENDIF} + + + TSuperAvlBitArray = set of 0..SUPER_AVL_MAX_DEPTH - 1; + + TSuperAvlSearchType = (stEQual, stLess, stGreater); + TSuperAvlSearchTypes = set of TSuperAvlSearchType; + TSuperAvlIterator = class; + + TSuperAvlEntry = class + private + FGt, FLt: TSuperAvlEntry; + FBf: integer; + FHash: Cardinal; + FName: SOString; + FPtr: Pointer; + function GetValue: ISuperObject; + procedure SetValue(const val: ISuperObject); + public + class function Hash(const k: SOString): Cardinal; virtual; + constructor Create(const AName: SOString; Obj: Pointer); virtual; + property Name: SOString read FName; + property Ptr: Pointer read FPtr; + property Value: ISuperObject read GetValue write SetValue; + end; + + TSuperAvlTree = class + private + FRoot: TSuperAvlEntry; + FCount: Integer; + function balance(bal: TSuperAvlEntry): TSuperAvlEntry; + protected + procedure doDeleteEntry(Entry: TSuperAvlEntry; all: boolean); virtual; + function CompareNodeNode(node1, node2: TSuperAvlEntry): integer; virtual; + function CompareKeyNode(const k: SOString; h: TSuperAvlEntry): integer; virtual; + function Insert(h: TSuperAvlEntry): TSuperAvlEntry; virtual; + function Search(const k: SOString; st: TSuperAvlSearchTypes = [stEqual]): TSuperAvlEntry; virtual; + public + constructor Create; virtual; + destructor Destroy; override; + function IsEmpty: boolean; + procedure Clear(all: boolean = false); virtual; + procedure Pack(all: boolean); + function Delete(const k: SOString): ISuperObject; + function GetEnumerator: TSuperAvlIterator; + property count: Integer read FCount; + end; + + TSuperTableString = class(TSuperAvlTree) + protected + procedure doDeleteEntry(Entry: TSuperAvlEntry; all: boolean); override; + procedure PutO(const k: SOString; const value: ISuperObject); + function GetO(const k: SOString): ISuperObject; + procedure PutS(const k: SOString; const value: SOString); + function GetS(const k: SOString): SOString; + procedure PutI(const k: SOString; value: SuperInt); + function GetI(const k: SOString): SuperInt; + procedure PutD(const k: SOString; value: Double); + function GetD(const k: SOString): Double; + procedure PutB(const k: SOString; value: Boolean); + function GetB(const k: SOString): Boolean; +{$IFDEF SUPER_METHOD} + procedure PutM(const k: SOString; value: TSuperMethod); + function GetM(const k: SOString): TSuperMethod; +{$ENDIF} + procedure PutN(const k: SOString; const value: ISuperObject); + function GetN(const k: SOString): ISuperObject; + procedure PutC(const k: SOString; value: Currency); + function GetC(const k: SOString): Currency; + public + property O[const k: SOString]: ISuperObject read GetO write PutO; default; + property S[const k: SOString]: SOString read GetS write PutS; + property I[const k: SOString]: SuperInt read GetI write PutI; + property D[const k: SOString]: Double read GetD write PutD; + property B[const k: SOString]: Boolean read GetB write PutB; +{$IFDEF SUPER_METHOD} + property M[const k: SOString]: TSuperMethod read GetM write PutM; +{$ENDIF} + property N[const k: SOString]: ISuperObject read GetN write PutN; + property C[const k: SOString]: Currency read GetC write PutC; + + function GetValues: ISuperObject; + function GetNames: ISuperObject; + function Find(const k: SOString; var value: ISuperObject): Boolean; + end; + + TSuperAvlIterator = class + private + FTree: TSuperAvlTree; + FBranch: TSuperAvlBitArray; + FDepth: LongInt; + FPath: array[0..SUPER_AVL_MAX_DEPTH - 2] of TSuperAvlEntry; + public + constructor Create(tree: TSuperAvlTree); virtual; + procedure Search(const k: SOString; st: TSuperAvlSearchTypes = [stEQual]); + procedure First; + procedure Last; + function GetIter: TSuperAvlEntry; + procedure Next; + procedure Prior; + // delphi enumerator + function MoveNext: Boolean; + property Current: TSuperAvlEntry read GetIter; + end; + + TSuperObjectArray = array[0..(high(Integer) div sizeof(TSuperObject))-1] of ISuperObject; + PSuperObjectArray = ^TSuperObjectArray; + + TSuperArray = class + private + FArray: PSuperObjectArray; + FLength: Integer; + FSize: Integer; + procedure Expand(max: Integer); + protected + function GetO(const index: integer): ISuperObject; + procedure PutO(const index: integer; const Value: ISuperObject); + function GetB(const index: integer): Boolean; + procedure PutB(const index: integer; Value: Boolean); + function GetI(const index: integer): SuperInt; + procedure PutI(const index: integer; Value: SuperInt); + function GetD(const index: integer): Double; + procedure PutD(const index: integer; Value: Double); + function GetC(const index: integer): Currency; + procedure PutC(const index: integer; Value: Currency); + function GetS(const index: integer): SOString; + procedure PutS(const index: integer; const Value: SOString); +{$IFDEF SUPER_METHOD} + function GetM(const index: integer): TSuperMethod; + procedure PutM(const index: integer; Value: TSuperMethod); +{$ENDIF} + function GetN(const index: integer): ISuperObject; + procedure PutN(const index: integer; const Value: ISuperObject); + public + constructor Create; virtual; + destructor Destroy; override; + function Add(const Data: ISuperObject): Integer; + function Delete(index: Integer): ISuperObject; + procedure Insert(index: Integer; const value: ISuperObject); + procedure Clear(all: boolean = false); + procedure Pack(all: boolean); + property Length: Integer read FLength; + + property N[const index: integer]: ISuperObject read GetN write PutN; + property O[const index: integer]: ISuperObject read GetO write PutO; default; + property B[const index: integer]: boolean read GetB write PutB; + property I[const index: integer]: SuperInt read GetI write PutI; + property D[const index: integer]: Double read GetD write PutD; + property C[const index: integer]: Currency read GetC write PutC; + property S[const index: integer]: SOString read GetS write PutS; +{$IFDEF SUPER_METHOD} + property M[const index: integer]: TSuperMethod read GetM write PutM; +{$ENDIF} + end; + + TSuperWriter = class + public + // abstact methods to overide + function Append(buf: PSOChar; Size: Integer): Integer; overload; virtual; abstract; + function Append(buf: PSOChar): Integer; overload; virtual; abstract; + procedure Reset; virtual; abstract; + end; + + TSuperWriterString = class(TSuperWriter) + private + FBuf: PSOChar; + FBPos: integer; + FSize: integer; + public + function Append(buf: PSOChar; Size: Integer): Integer; overload; override; + function Append(buf: PSOChar): Integer; overload; override; + procedure Reset; override; + procedure TrimRight; + constructor Create; virtual; + destructor Destroy; override; + function GetString: SOString; + property Data: PSOChar read FBuf; + property Size: Integer read FSize; + property Position: integer read FBPos; + end; + + TSuperWriterStream = class(TSuperWriter) + private + FStream: TStream; + public + function Append(buf: PSOChar): Integer; override; + procedure Reset; override; + constructor Create(AStream: TStream); reintroduce; virtual; + end; + + TSuperAnsiWriterStream = class(TSuperWriterStream) + public + function Append(buf: PSOChar; Size: Integer): Integer; override; + end; + + TSuperUnicodeWriterStream = class(TSuperWriterStream) + public + function Append(buf: PSOChar; Size: Integer): Integer; override; + end; + + TSuperWriterFake = class(TSuperWriter) + private + FSize: Integer; + public + function Append(buf: PSOChar; Size: Integer): Integer; override; + function Append(buf: PSOChar): Integer; override; + procedure Reset; override; + constructor Create; reintroduce; virtual; + property size: integer read FSize; + end; + + TSuperWriterSock = class(TSuperWriter) + private + FSocket: longint; + FSize: Integer; + public + function Append(buf: PSOChar; Size: Integer): Integer; override; + function Append(buf: PSOChar): Integer; override; + procedure Reset; override; + constructor Create(ASocket: longint); reintroduce; virtual; + property Socket: longint read FSocket; + property Size: Integer read FSize; + end; + + TSuperTokenizerError = ( + teSuccess, + teContinue, + teDepth, + teParseEof, + teParseUnexpected, + teParseNull, + teParseBoolean, + teParseNumber, + teParseArray, + teParseObjectKeyName, + teParseObjectKeySep, + teParseObjectValueSep, + teParseString, + teParseComment, + teEvalObject, + teEvalArray, + teEvalMethod, + teEvalInt + ); + + TSuperTokenerState = ( + tsEatws, + tsStart, + tsFinish, + tsNull, + tsCommentStart, + tsComment, + tsCommentEol, + tsCommentEnd, + tsString, + tsStringEscape, + tsIdentifier, + tsEscapeUnicode, + tsEscapeHexadecimal, + tsBoolean, + tsNumber, + tsArray, + tsArrayAdd, + tsArraySep, + tsObjectFieldStart, + tsObjectField, + tsObjectUnquotedField, + tsObjectFieldEnd, + tsObjectValue, + tsObjectValueAdd, + tsObjectSep, + tsEvalProperty, + tsEvalArray, + tsEvalMethod, + tsParamValue, + tsParamPut, + tsMethodValue, + tsMethodPut + ); + + PSuperTokenerSrec = ^TSuperTokenerSrec; + TSuperTokenerSrec = record + state, saved_state: TSuperTokenerState; + obj: ISuperObject; + current: ISuperObject; + field_name: SOString; + parent: ISuperObject; + gparent: ISuperObject; + end; + + TSuperTokenizer = class + public + str: PSOChar; + pb: TSuperWriterString; + depth, is_double, floatcount, st_pos, char_offset: Integer; + err: TSuperTokenizerError; + ucs_char: Word; + quote_char: SOChar; + stack: array[0..SUPER_TOKENER_MAX_DEPTH-1] of TSuperTokenerSrec; + line, col: Integer; + public + constructor Create; virtual; + destructor Destroy; override; + procedure ResetLevel(adepth: integer); + procedure Reset; + end; + + // supported object types + TSuperType = ( + stNull, + stBoolean, + stDouble, + stCurrency, + stInt, + stObject, + stArray, + stString +{$IFDEF SUPER_METHOD} + ,stMethod +{$ENDIF} + ); + + TSuperValidateError = ( + veRuleMalformated, + veFieldIsRequired, + veInvalidDataType, + veFieldNotFound, + veUnexpectedField, + veDuplicateEntry, + veValueNotInEnum, + veInvalidLength, + veInvalidRange + ); + + TSuperFindOption = ( + foCreatePath, + foPutValue, + foDelete +{$IFDEF SUPER_METHOD} + ,foCallMethod +{$ENDIF} + ); + + TSuperFindOptions = set of TSuperFindOption; + TSuperCompareResult = (cpLess, cpEqu, cpGreat, cpError); + TSuperOnValidateError = procedure(sender: Pointer; error: TSuperValidateError; const objpath: SOString); + + TSuperEnumerator = class + private + FObj: ISuperObject; + FObjEnum: TSuperAvlIterator; + FCount: Integer; + public + constructor Create(const obj: ISuperObject); virtual; + destructor Destroy; override; + function MoveNext: Boolean; + function GetCurrent: ISuperObject; + property Current: ISuperObject read GetCurrent; + end; + + ISuperObject = interface + ['{4B86A9E3-E094-4E5A-954A-69048B7B6327}'] + function GetEnumerator: TSuperEnumerator; + function GetDataType: TSuperType; + function GetProcessing: boolean; + procedure SetProcessing(value: boolean); + function ForcePath(const path: SOString; dataType: TSuperType = stObject): ISuperObject; + function Format(const str: SOString; BeginSep: SOChar = '%'; EndSep: SOChar = '%'): SOString; + + function GetO(const path: SOString): ISuperObject; + procedure PutO(const path: SOString; const Value: ISuperObject); + function GetB(const path: SOString): Boolean; + procedure PutB(const path: SOString; Value: Boolean); + function GetI(const path: SOString): SuperInt; + procedure PutI(const path: SOString; Value: SuperInt); + function GetD(const path: SOString): Double; + procedure PutC(const path: SOString; Value: Currency); + function GetC(const path: SOString): Currency; + procedure PutD(const path: SOString; Value: Double); + function GetS(const path: SOString): SOString; + procedure PutS(const path: SOString; const Value: SOString); +{$IFDEF SUPER_METHOD} + function GetM(const path: SOString): TSuperMethod; + procedure PutM(const path: SOString; Value: TSuperMethod); +{$ENDIF} + function GetA(const path: SOString): TSuperArray; + + // Null Object Design patern + function GetN(const path: SOString): ISuperObject; + procedure PutN(const path: SOString; const Value: ISuperObject); + + // Writers + function Write(writer: TSuperWriter; indent: boolean; escape: boolean; level: integer): Integer; + function SaveTo(stream: TStream; indent: boolean = false; escape: boolean = true): integer; overload; + function SaveTo(const FileName: string; indent: boolean = false; escape: boolean = true): integer; overload; + function SaveTo(socket: longint; indent: boolean = false; escape: boolean = true): integer; overload; + function CalcSize(indent: boolean = false; escape: boolean = true): integer; + + // convert + function AsBoolean: Boolean; + function AsInteger: SuperInt; + function AsDouble: Double; + function AsCurrency: Currency; + function AsString: SOString; + function AsArray: TSuperArray; + function AsObject: TSuperTableString; +{$IFDEF SUPER_METHOD} + function AsMethod: TSuperMethod; +{$ENDIF} + function AsJSon(indent: boolean = false; escape: boolean = true): SOString; + + procedure Clear(all: boolean = false); + procedure Pack(all: boolean = false); + + property N[const path: SOString]: ISuperObject read GetN write PutN; + property O[const path: SOString]: ISuperObject read GetO write PutO; default; + property B[const path: SOString]: boolean read GetB write PutB; + property I[const path: SOString]: SuperInt read GetI write PutI; + property D[const path: SOString]: Double read GetD write PutD; + property C[const path: SOString]: Currency read GetC write PutC; + property S[const path: SOString]: SOString read GetS write PutS; +{$IFDEF SUPER_METHOD} + property M[const path: SOString]: TSuperMethod read GetM write PutM; +{$ENDIF} + property A[const path: SOString]: TSuperArray read GetA; + +{$IFDEF SUPER_METHOD} + function call(const path: SOString; const param: ISuperObject = nil): ISuperObject; overload; + function call(const path, param: SOString): ISuperObject; overload; +{$ENDIF} + // clone a node + function Clone: ISuperObject; + function Delete(const path: SOString): ISuperObject; + // merges tow objects of same type, if reference is true then nodes are not cloned + procedure Merge(const obj: ISuperObject; reference: boolean = false); overload; + procedure Merge(const str: SOString); overload; + + // validate methods + function Validate(const rules: SOString; const defs: SOString = ''; callback: TSuperOnValidateError = nil; sender: Pointer = nil): boolean; overload; + function Validate(const rules: ISuperObject; const defs: ISuperObject = nil; callback: TSuperOnValidateError = nil; sender: Pointer = nil): boolean; overload; + + // compare + function Compare(const obj: ISuperObject): TSuperCompareResult; overload; + function Compare(const str: SOString): TSuperCompareResult; overload; + + // the data type + function IsType(AType: TSuperType): boolean; + property DataType: TSuperType read GetDataType; + property Processing: boolean read GetProcessing write SetProcessing; + + function GetDataPtr: Pointer; + procedure SetDataPtr(const Value: Pointer); + property DataPtr: Pointer read GetDataPtr write SetDataPtr; + end; + + TSuperObject = class(TObject, ISuperObject) + private + FRefCount: Integer; + FProcessing: boolean; + FDataType: TSuperType; + FDataPtr: Pointer; +{.$if true} + FO: record + case TSuperType of + stBoolean: (c_boolean: boolean); + stDouble: (c_double: double); + stCurrency: (c_currency: Currency); + stInt: (c_int: SuperInt); + stObject: (c_object: TSuperTableString); + stArray: (c_array: TSuperArray); +{$IFDEF SUPER_METHOD} + stMethod: (c_method: TSuperMethod); +{$ENDIF} + end; +{.$ifend} + FOString: SOString; + function GetDataType: TSuperType; + function GetDataPtr: Pointer; + procedure SetDataPtr(const Value: Pointer); + protected + function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall; + function _AddRef: Integer; virtual; stdcall; + function _Release: Integer; virtual; stdcall; + + function GetO(const path: SOString): ISuperObject; + procedure PutO(const path: SOString; const Value: ISuperObject); + function GetB(const path: SOString): Boolean; + procedure PutB(const path: SOString; Value: Boolean); + function GetI(const path: SOString): SuperInt; + procedure PutI(const path: SOString; Value: SuperInt); + function GetD(const path: SOString): Double; + procedure PutD(const path: SOString; Value: Double); + procedure PutC(const path: SOString; Value: Currency); + function GetC(const path: SOString): Currency; + function GetS(const path: SOString): SOString; + procedure PutS(const path: SOString; const Value: SOString); +{$IFDEF SUPER_METHOD} + function GetM(const path: SOString): TSuperMethod; + procedure PutM(const path: SOString; Value: TSuperMethod); +{$ENDIF} + function GetA(const path: SOString): TSuperArray; + function Write(writer: TSuperWriter; indent: boolean; escape: boolean; level: integer): Integer; virtual; + public + function GetEnumerator: TSuperEnumerator; + procedure AfterConstruction; override; + procedure BeforeDestruction; override; + class function NewInstance: TObject; override; + property RefCount: Integer read FRefCount; + + function GetProcessing: boolean; + procedure SetProcessing(value: boolean); + + // Writers + function SaveTo(stream: TStream; indent: boolean = false; escape: boolean = true): integer; overload; + function SaveTo(const FileName: string; indent: boolean = false; escape: boolean = true): integer; overload; + function SaveTo(socket: longint; indent: boolean = false; escape: boolean = true): integer; overload; + function CalcSize(indent: boolean = false; escape: boolean = true): integer; + function AsJSon(indent: boolean = false; escape: boolean = true): SOString; + + // parser ... owned! + class function ParseString(s: PSOChar; strict: Boolean; partial: boolean = true; const this: ISuperObject = nil; options: TSuperFindOptions = []; + const put: ISuperObject = nil; dt: TSuperType = stNull): ISuperObject; + class function ParseStream(stream: TStream; strict: Boolean; partial: boolean = true; const this: ISuperObject = nil; options: TSuperFindOptions = []; + const put: ISuperObject = nil; dt: TSuperType = stNull): ISuperObject; + class function ParseFile(const FileName: string; strict: Boolean; partial: boolean = true; const this: ISuperObject = nil; options: TSuperFindOptions = []; + const put: ISuperObject = nil; dt: TSuperType = stNull): ISuperObject; + class function ParseEx(tok: TSuperTokenizer; str: PSOChar; len: integer; strict: Boolean; const this: ISuperObject = nil; + options: TSuperFindOptions = []; const put: ISuperObject = nil; dt: TSuperType = stNull): ISuperObject; + + // constructors / destructor + constructor Create(jt: TSuperType = stObject); overload; virtual; + constructor Create(b: boolean); overload; virtual; + constructor Create(i: SuperInt); overload; virtual; + constructor Create(d: double); overload; virtual; + constructor CreateCurrency(c: Currency); overload; virtual; + constructor Create(const s: SOString); overload; virtual; +{$IFDEF SUPER_METHOD} + constructor Create(m: TSuperMethod); overload; virtual; +{$ENDIF} + destructor Destroy; override; + + // convert + function AsBoolean: Boolean; virtual; + function AsInteger: SuperInt; virtual; + function AsDouble: Double; virtual; + function AsCurrency: Currency; virtual; + function AsString: SOString; virtual; + function AsArray: TSuperArray; virtual; + function AsObject: TSuperTableString; virtual; +{$IFDEF SUPER_METHOD} + function AsMethod: TSuperMethod; virtual; +{$ENDIF} + procedure Clear(all: boolean = false); virtual; + procedure Pack(all: boolean = false); virtual; + function GetN(const path: SOString): ISuperObject; + procedure PutN(const path: SOString; const Value: ISuperObject); + function ForcePath(const path: SOString; dataType: TSuperType = stObject): ISuperObject; + function Format(const str: SOString; BeginSep: SOChar = '%'; EndSep: SOChar = '%'): SOString; + + property N[const path: SOString]: ISuperObject read GetN write PutN; + property O[const path: SOString]: ISuperObject read GetO write PutO; default; + property B[const path: SOString]: boolean read GetB write PutB; + property I[const path: SOString]: SuperInt read GetI write PutI; + property D[const path: SOString]: Double read GetD write PutD; + property C[const path: SOString]: Currency read GetC write PutC; + property S[const path: SOString]: SOString read GetS write PutS; +{$IFDEF SUPER_METHOD} + property M[const path: SOString]: TSuperMethod read GetM write PutM; +{$ENDIF} + property A[const path: SOString]: TSuperArray read GetA; + +{$IFDEF SUPER_METHOD} + function call(const path: SOString; const param: ISuperObject = nil): ISuperObject; overload; virtual; + function call(const path, param: SOString): ISuperObject; overload; virtual; +{$ENDIF} + // clone a node + function Clone: ISuperObject; virtual; + function Delete(const path: SOString): ISuperObject; + // merges tow objects of same type, if reference is true then nodes are not cloned + procedure Merge(const obj: ISuperObject; reference: boolean = false); overload; + procedure Merge(const str: SOString); overload; + + // validate methods + function Validate(const rules: SOString; const defs: SOString = ''; callback: TSuperOnValidateError = nil; sender: Pointer = nil): boolean; overload; + function Validate(const rules: ISuperObject; const defs: ISuperObject = nil; callback: TSuperOnValidateError = nil; sender: Pointer = nil): boolean; overload; + + // compare + function Compare(const obj: ISuperObject): TSuperCompareResult; overload; + function Compare(const str: SOString): TSuperCompareResult; overload; + + // the data type + function IsType(AType: TSuperType): boolean; + property DataType: TSuperType read GetDataType; + // a data pointer to link to something ele, a treeview for example + property DataPtr: Pointer read GetDataPtr write SetDataPtr; + property Processing: boolean read GetProcessing; + end; + +{$IFDEF HAVE_RTTI} + TSuperRttiContext = class; + + TSerialFromJson = function(ctx: TSuperRttiContext; const obj: ISuperObject; var Value: TValue): Boolean; + TSerialToJson = function(ctx: TSuperRttiContext; var value: TValue; const index: ISuperObject): ISuperObject; + + TSuperAttribute = class(TCustomAttribute) + private + FName: string; + public + constructor Create(const AName: string); + property Name: string read FName; + end; + + SOName = class(TSuperAttribute); + SODefault = class(TSuperAttribute); + + + TSuperRttiContext = class + private + class function GetFieldName(r: TRttiField): string; + class function GetFieldDefault(r: TRttiField; const obj: ISuperObject): ISuperObject; + public + Context: TRttiContext; + SerialFromJson: TDictionary; + SerialToJson: TDictionary; + constructor Create; virtual; + destructor Destroy; override; + function FromJson(TypeInfo: PTypeInfo; const obj: ISuperObject; var Value: TValue): Boolean; virtual; + function ToJson(var value: TValue; const index: ISuperObject): ISuperObject; virtual; + function AsType(const obj: ISuperObject): T; + function AsJson(const obj: T; const index: ISuperObject = nil): ISuperObject; + end; + + TSuperObjectHelper = class helper for TObject + public + function ToJson(ctx: TSuperRttiContext = nil): ISuperObject; + constructor FromJson(const obj: ISuperObject; ctx: TSuperRttiContext = nil); overload; + constructor FromJson(const str: string; ctx: TSuperRttiContext = nil); overload; + end; +{$ENDIF} + + TSuperObjectIter = record + key: SOString; + val: ISuperObject; + Ite: TSuperAvlIterator; + end; + +function ObjectIsError(obj: TSuperObject): boolean; +function ObjectIsType(const obj: ISuperObject; typ: TSuperType): boolean; +function ObjectGetType(const obj: ISuperObject): TSuperType; + +function ObjectFindFirst(const obj: ISuperObject; var F: TSuperObjectIter): boolean; +function ObjectFindNext(var F: TSuperObjectIter): boolean; +procedure ObjectFindClose(var F: TSuperObjectIter); + +function SO(const s: SOString = '{}'): ISuperObject; overload; +function SO(const value: Variant): ISuperObject; overload; +function SO(const Args: array of const): ISuperObject; overload; + +function SA(const Args: array of const): ISuperObject; overload; + +function JavaToDelphiDateTime(const dt: int64): TDateTime; +function DelphiToJavaDateTime(const dt: TDateTime): int64; +function TryObjectToDate(const obj: ISuperObject; var dt: TDateTime): Boolean; +function ISO8601DateToJavaDateTime(const str: SOString; var ms: Int64): Boolean; +function ISO8601DateToDelphiDateTime(const str: SOString; var dt: TDateTime): Boolean; +function DelphiDateTimeToISO8601Date(dt: TDateTime): SOString; +{$IFDEF HAVE_RTTI} +function UUIDToString(const g: TGUID): string; +function StringToUUID(const str: string; var g: TGUID): Boolean; + + +type + TSuperInvokeResult = ( + irSuccess, + irMethothodError, // method don't exist + irParamError, // invalid parametters + irError // other error + ); + +function TrySOInvoke(var ctx: TSuperRttiContext; const obj: TValue; const method: string; const params: ISuperObject; var Return: ISuperObject): TSuperInvokeResult; overload; +function SOInvoke(const obj: TValue; const method: string; const params: ISuperObject; ctx: TSuperRttiContext = nil): ISuperObject; overload; +function SOInvoke(const obj: TValue; const method: string; const params: string; ctx: TSuperRttiContext = nil): ISuperObject; overload; +{$ENDIF} + +implementation +uses sysutils, +{$IFDEF UNIX} + baseunix, unix, DateUtils +{$ELSE} + Windows +{$ENDIF} +{$IFDEF FPC} + ,sockets +{$ELSE} + ,WinSock +{$ENDIF}; + +{$IFDEF DEBUG} +var + debugcount: integer = 0; +{$ENDIF} + +const + super_number_chars_set = ['0'..'9','.','+','-','e','E']; + super_hex_chars: PSOChar = '0123456789abcdef'; + super_hex_chars_set = ['0'..'9','a'..'f','A'..'F']; + + ESC_BS: PSOChar = '\b'; + ESC_LF: PSOChar = '\n'; + ESC_CR: PSOChar = '\r'; + ESC_TAB: PSOChar = '\t'; + ESC_FF: PSOChar = '\f'; + ESC_QUOT: PSOChar = '\"'; + ESC_SL: PSOChar = '\\'; + ESC_SR: PSOChar = '\/'; + ESC_ZERO: PSOChar = '\u0000'; + + TOK_CRLF: PSOChar = #13#10; + TOK_SP: PSOChar = #32; + TOK_BS: PSOChar = #8; + TOK_TAB: PSOChar = #9; + TOK_LF: PSOChar = #10; + TOK_FF: PSOChar = #12; + TOK_CR: PSOChar = #13; +// TOK_SL: PSOChar = '\'; +// TOK_SR: PSOChar = '/'; + TOK_NULL: PSOChar = 'null'; + TOK_CBL: PSOChar = '{'; // curly bracket left + TOK_CBR: PSOChar = '}'; // curly bracket right + TOK_ARL: PSOChar = '['; + TOK_ARR: PSOChar = ']'; + TOK_ARRAY: PSOChar = '[]'; + TOK_OBJ: PSOChar = '{}'; // empty object + TOK_COM: PSOChar = ','; // Comma + TOK_DQT: PSOChar = '"'; // Double Quote + TOK_TRUE: PSOChar = 'true'; + TOK_FALSE: PSOChar = 'false'; + +{$if (sizeof(Char) = 1)} +function StrLComp(const Str1, Str2: PSOChar; MaxLen: Cardinal): Integer; +var + P1, P2: PWideChar; + I: Cardinal; + C1, C2: WideChar; +begin + P1 := Str1; + P2 := Str2; + I := 0; + while I < MaxLen do + begin + C1 := P1^; + C2 := P2^; + + if (C1 <> C2) or (C1 = #0) then + begin + Result := Ord(C1) - Ord(C2); + Exit; + end; + + Inc(P1); + Inc(P2); + Inc(I); + end; + Result := 0; +end; + +function StrComp(const Str1, Str2: PSOChar): Integer; +var + P1, P2: PWideChar; + C1, C2: WideChar; +begin + P1 := Str1; + P2 := Str2; + while True do + begin + C1 := P1^; + C2 := P2^; + + if (C1 <> C2) or (C1 = #0) then + begin + Result := Ord(C1) - Ord(C2); + Exit; + end; + + Inc(P1); + Inc(P2); + end; +end; + +function StrLen(const Str: PSOChar): Cardinal; +var + p: PSOChar; +begin + Result := 0; + if Str <> nil then + begin + p := Str; + while p^ <> #0 do inc(p); + Result := (p - Str); + end; +end; +{$ifend} + +function FloatToJson(const value: Double): SOString; +var + p: PSOChar; +begin + Result := FloatToStr(value); + if DecimalSeparator <> '.' then + begin + p := PSOChar(Result); + while p^ <> #0 do + if p^ <> SOChar(DecimalSeparator) then + inc(p) else + begin + p^ := '.'; + Exit; + end; + end; +end; + +function CurrToJson(const value: Currency): SOString; +var + p: PSOChar; +begin + Result := CurrToStr(value); + if DecimalSeparator <> '.' then + begin + p := PSOChar(Result); + while p^ <> #0 do + if p^ <> SOChar(DecimalSeparator) then + inc(p) else + begin + p^ := '.'; + Exit; + end; + end; +end; + +{$IFDEF UNIX} +function GetTimeBias: integer; +var + TimeVal: TTimeVal; + TimeZone: TTimeZone; +begin + fpGetTimeOfDay(@TimeVal, @TimeZone); + Result := TimeZone.tz_minuteswest; +end; +{$ELSE} +function GetTimeBias: integer; +var + tzi : TTimeZoneInformation; +begin + case GetTimeZoneInformation(tzi) of + TIME_ZONE_ID_UNKNOWN : Result := tzi.Bias; + TIME_ZONE_ID_STANDARD: Result := tzi.Bias + tzi.StandardBias; + TIME_ZONE_ID_DAYLIGHT: Result := tzi.Bias + tzi.DaylightBias; + else + Result := 0; + end; +end; +{$ENDIF} + +{$IFDEF UNIX} +type + ptm = ^tm; + tm = record + tm_sec: Integer; (* Seconds: 0-59 (K&R says 0-61?) *) + tm_min: Integer; (* Minutes: 0-59 *) + tm_hour: Integer; (* Hours since midnight: 0-23 *) + tm_mday: Integer; (* Day of the month: 1-31 *) + tm_mon: Integer; (* Months *since* january: 0-11 *) + tm_year: Integer; (* Years since 1900 *) + tm_wday: Integer; (* Days since Sunday (0-6) *) + tm_yday: Integer; (* Days since Jan. 1: 0-365 *) + tm_isdst: Integer; (* +1 Daylight Savings Time, 0 No DST, -1 don't know *) + end; + +function mktime(p: ptm): LongInt; cdecl; external; +function gmtime(const t: PLongint): ptm; cdecl; external; +function localtime (const t: PLongint): ptm; cdecl; external; + +function DelphiToJavaDateTime(const dt: TDateTime): Int64; +var + p: ptm; + l, ms: Integer; + v: Int64; +begin + v := Round((dt - 25569) * 86400000); + ms := v mod 1000; + l := v div 1000; + p := localtime(@l); + Result := Int64(mktime(p)) * 1000 + ms; +end; + +function JavaToDelphiDateTime(const dt: int64): TDateTime; +var + p: ptm; + l, ms: Integer; +begin + l := dt div 1000; + ms := dt mod 1000; + p := gmtime(@l); + Result := EncodeDateTime(p^.tm_year+1900, p^.tm_mon+1, p^.tm_mday, p^.tm_hour, p^.tm_min, p^.tm_sec, ms); +end; +{$ELSE} + +{$IFDEF WINDOWSNT_COMPATIBILITY} +function DayLightCompareDate(const date: PSystemTime; + const compareDate: PSystemTime): Integer; +var + limit_day, dayinsecs, weekofmonth: Integer; + First: Word; +begin + if (date^.wMonth < compareDate^.wMonth) then + begin + Result := -1; (* We are in a month before the date limit. *) + Exit; + end; + + if (date^.wMonth > compareDate^.wMonth) then + begin + Result := 1; (* We are in a month after the date limit. *) + Exit; + end; + + (* if year is 0 then date is in day-of-week format, otherwise + * it's absolute date. + *) + if (compareDate^.wYear = 0) then + begin + (* compareDate.wDay is interpreted as number of the week in the month + * 5 means: the last week in the month *) + weekofmonth := compareDate^.wDay; + (* calculate the day of the first DayOfWeek in the month *) + First := (6 + compareDate^.wDayOfWeek - date^.wDayOfWeek + date^.wDay) mod 7 + 1; + limit_day := First + 7 * (weekofmonth - 1); + (* check needed for the 5th weekday of the month *) + if (limit_day > MonthDays[(date^.wMonth=2) and IsLeapYear(date^.wYear)][date^.wMonth]) then + dec(limit_day, 7); + end + else + limit_day := compareDate^.wDay; + + (* convert to seconds *) + limit_day := ((limit_day * 24 + compareDate^.wHour) * 60 + compareDate^.wMinute ) * 60; + dayinsecs := ((date^.wDay * 24 + date^.wHour) * 60 + date^.wMinute ) * 60 + date^.wSecond; + (* and compare *) + + if dayinsecs < limit_day then + Result := -1 else + if dayinsecs > limit_day then + Result := 1 else + Result := 0; (* date is equal to the date limit. *) +end; + +function CompTimeZoneID(const pTZinfo: PTimeZoneInformation; + lpFileTime: PFileTime; islocal: Boolean): LongWord; +var + ret: Integer; + beforeStandardDate, afterDaylightDate: Boolean; + llTime: Int64; + SysTime: TSystemTime; + ftTemp: TFileTime; +begin + llTime := 0; + + if (pTZinfo^.DaylightDate.wMonth <> 0) then + begin + (* if year is 0 then date is in day-of-week format, otherwise + * it's absolute date. + *) + if ((pTZinfo^.StandardDate.wMonth = 0) or + ((pTZinfo^.StandardDate.wYear = 0) and + ((pTZinfo^.StandardDate.wDay < 1) or + (pTZinfo^.StandardDate.wDay > 5) or + (pTZinfo^.DaylightDate.wDay < 1) or + (pTZinfo^.DaylightDate.wDay > 5)))) then + begin + SetLastError(ERROR_INVALID_PARAMETER); + Result := TIME_ZONE_ID_INVALID; + Exit; + end; + + if (not islocal) then + begin + llTime := PInt64(lpFileTime)^; + dec(llTime, Int64(pTZinfo^.Bias + pTZinfo^.DaylightBias) * 600000000); + PInt64(@ftTemp)^ := llTime; + lpFileTime := @ftTemp; + end; + + FileTimeToSystemTime(lpFileTime^, SysTime); + + (* check for daylight savings *) + ret := DayLightCompareDate(@SysTime, @pTZinfo^.StandardDate); + if (ret = -2) then + begin + Result := TIME_ZONE_ID_INVALID; + Exit; + end; + + beforeStandardDate := ret < 0; + + if (not islocal) then + begin + dec(llTime, Int64(pTZinfo^.StandardBias - pTZinfo^.DaylightBias) * 600000000); + PInt64(@ftTemp)^ := llTime; + FileTimeToSystemTime(lpFileTime^, SysTime); + end; + + ret := DayLightCompareDate(@SysTime, @pTZinfo^.DaylightDate); + if (ret = -2) then + begin + Result := TIME_ZONE_ID_INVALID; + Exit; + end; + + afterDaylightDate := ret >= 0; + + Result := TIME_ZONE_ID_STANDARD; + if( pTZinfo^.DaylightDate.wMonth < pTZinfo^.StandardDate.wMonth ) then + begin + (* Northern hemisphere *) + if( beforeStandardDate and afterDaylightDate) then + Result := TIME_ZONE_ID_DAYLIGHT; + end else (* Down south *) + if( beforeStandardDate or afterDaylightDate) then + Result := TIME_ZONE_ID_DAYLIGHT; + end else + (* No transition date *) + Result := TIME_ZONE_ID_UNKNOWN; +end; + +function GetTimezoneBias(const pTZinfo: PTimeZoneInformation; + lpFileTime: PFileTime; islocal: Boolean; pBias: PLongint): Boolean; +var + bias: LongInt; + tzid: LongWord; +begin + bias := pTZinfo^.Bias; + tzid := CompTimeZoneID(pTZinfo, lpFileTime, islocal); + + if( tzid = TIME_ZONE_ID_INVALID) then + begin + Result := False; + Exit; + end; + if (tzid = TIME_ZONE_ID_DAYLIGHT) then + inc(bias, pTZinfo^.DaylightBias) + else if (tzid = TIME_ZONE_ID_STANDARD) then + inc(bias, pTZinfo^.StandardBias); + pBias^ := bias; + Result := True; +end; + +function SystemTimeToTzSpecificLocalTime( + lpTimeZoneInformation: PTimeZoneInformation; + lpUniversalTime, lpLocalTime: PSystemTime): BOOL; +var + ft: TFileTime; + lBias: LongInt; + llTime: Int64; + tzinfo: TTimeZoneInformation; +begin + if (lpTimeZoneInformation <> nil) then + tzinfo := lpTimeZoneInformation^ else + if (GetTimeZoneInformation(tzinfo) = TIME_ZONE_ID_INVALID) then + begin + Result := False; + Exit; + end; + + if (not SystemTimeToFileTime(lpUniversalTime^, ft)) then + begin + Result := False; + Exit; + end; + llTime := PInt64(@ft)^; + if (not GetTimezoneBias(@tzinfo, @ft, False, @lBias)) then + begin + Result := False; + Exit; + end; + (* convert minutes to 100-nanoseconds-ticks *) + dec(llTime, Int64(lBias) * 600000000); + PInt64(@ft)^ := llTime; + Result := FileTimeToSystemTime(ft, lpLocalTime^); +end; + +function TzSpecificLocalTimeToSystemTime( + const lpTimeZoneInformation: PTimeZoneInformation; + const lpLocalTime: PSystemTime; lpUniversalTime: PSystemTime): BOOL; +var + ft: TFileTime; + lBias: LongInt; + t: Int64; + tzinfo: TTimeZoneInformation; +begin + if (lpTimeZoneInformation <> nil) then + tzinfo := lpTimeZoneInformation^ + else + if (GetTimeZoneInformation(tzinfo) = TIME_ZONE_ID_INVALID) then + begin + Result := False; + Exit; + end; + + if (not SystemTimeToFileTime(lpLocalTime^, ft)) then + begin + Result := False; + Exit; + end; + t := PInt64(@ft)^; + if (not GetTimezoneBias(@tzinfo, @ft, True, @lBias)) then + begin + Result := False; + Exit; + end; + (* convert minutes to 100-nanoseconds-ticks *) + inc(t, Int64(lBias) * 600000000); + PInt64(@ft)^ := t; + Result := FileTimeToSystemTime(ft, lpUniversalTime^); +end; +{$ELSE} +function TzSpecificLocalTimeToSystemTime( + lpTimeZoneInformation: PTimeZoneInformation; + lpLocalTime, lpUniversalTime: PSystemTime): BOOL; stdcall; external 'kernel32.dll'; + +function SystemTimeToTzSpecificLocalTime( + lpTimeZoneInformation: PTimeZoneInformation; + lpUniversalTime, lpLocalTime: PSystemTime): BOOL; stdcall; external 'kernel32.dll'; +{$ENDIF} + +function JavaToDelphiDateTime(const dt: int64): TDateTime; +var + t: TSystemTime; +begin + DateTimeToSystemTime(25569 + (dt / 86400000), t); + SystemTimeToTzSpecificLocalTime(nil, @t, @t); + Result := SystemTimeToDateTime(t); +end; + +function DelphiToJavaDateTime(const dt: TDateTime): int64; +var + t: TSystemTime; +begin + DateTimeToSystemTime(dt, t); + TzSpecificLocalTimeToSystemTime(nil, @t, @t); + Result := Round((SystemTimeToDateTime(t) - 25569) * 86400000) +end; +{$ENDIF} + +function ISO8601DateToJavaDateTime(const str: SOString; var ms: Int64): Boolean; +type + TState = ( + stStart, stYear, stMonth, stWeek, stWeekDay, stDay, stDayOfYear, + stHour, stMin, stSec, stMs, stUTC, stGMTH, stGMTM, + stGMTend, stEnd); + + TPerhaps = (yes, no, perhaps); + TDateTimeInfo = record + year: Word; + month: Word; + week: Word; + weekday: Word; + day: Word; + dayofyear: Integer; + hour: Word; + minute: Word; + second: Word; + ms: Word; + bias: Integer; + end; + +var + p: PSOChar; + state: TState; + pos, v: Word; + sep: TPerhaps; + inctz, havetz, havedate: Boolean; + st: TDateTimeInfo; + DayTable: PDayTable; + + function get(var v: Word; c: SOChar): Boolean; {$IFDEF HAVE_INLINE} inline;{$ENDIF} + begin + if (c < #256) and (AnsiChar(c) in ['0'..'9']) then + begin + Result := True; + v := v * 10 + Ord(c) - Ord('0'); + end else + Result := False; + end; + +label + error; +begin + p := PSOChar(str); + sep := perhaps; + state := stStart; + pos := 0; + FillChar(st, SizeOf(st), 0); + havedate := True; + inctz := False; + havetz := False; + + while true do + case state of + stStart: + case p^ of + '0'..'9': state := stYear; + 'T', 't': + begin + state := stHour; + pos := 0; + inc(p); + havedate := False; + end; + else + goto error; + end; + stYear: + case pos of + 0..1,3: + if get(st.year, p^) then + begin + Inc(pos); + Inc(p); + end else + goto error; + 2: case p^ of + '0'..'9': + begin + st.year := st.year * 10 + ord(p^) - ord('0'); + Inc(pos); + Inc(p); + end; + ':': + begin + havedate := false; + st.hour := st.year; + st.year := 0; + inc(p); + pos := 0; + state := stMin; + sep := yes; + end; + else + goto error; + end; + 4: case p^ of + '-': begin + pos := 0; + Inc(p); + sep := yes; + state := stMonth; + end; + '0'..'9': + begin + sep := no; + pos := 0; + state := stMonth; + end; + 'W', 'w' : + begin + pos := 0; + Inc(p); + state := stWeek; + end; + 'T', 't', ' ': + begin + state := stHour; + pos := 0; + inc(p); + st.month := 1; + st.day := 1; + end; + #0: + begin + st.month := 1; + st.day := 1; + state := stEnd; + end; + else + goto error; + end; + end; + stMonth: + case pos of + 0: case p^ of + '0'..'9': + begin + st.month := ord(p^) - ord('0'); + Inc(pos); + Inc(p); + end; + 'W', 'w': + begin + pos := 0; + Inc(p); + state := stWeek; + end; + else + goto error; + end; + 1: if get(st.month, p^) then + begin + Inc(pos); + Inc(p); + end else + goto error; + 2: case p^ of + '-': + if (sep in [yes, perhaps]) then + begin + pos := 0; + Inc(p); + state := stDay; + sep := yes; + end else + goto error; + '0'..'9': + if sep in [no, perhaps] then + begin + pos := 0; + state := stDay; + sep := no; + end else + begin + st.dayofyear := st.month * 10 + Ord(p^) - Ord('0'); + st.month := 0; + inc(p); + pos := 3; + state := stDayOfYear; + end; + 'T', 't', ' ': + begin + state := stHour; + pos := 0; + inc(p); + st.day := 1; + end; + #0: + begin + st.day := 1; + state := stEnd; + end; + else + goto error; + end; + end; + stDay: + case pos of + 0: if get(st.day, p^) then + begin + Inc(pos); + Inc(p); + end else + goto error; + 1: if get(st.day, p^) then + begin + Inc(pos); + Inc(p); + end else + if sep in [no, perhaps] then + begin + st.dayofyear := st.month * 10 + st.day; + st.day := 0; + st.month := 0; + state := stDayOfYear; + end else + goto error; + + 2: case p^ of + 'T', 't', ' ': + begin + pos := 0; + Inc(p); + state := stHour; + end; + #0: state := stEnd; + else + goto error; + end; + end; + stDayOfYear: + begin + if (st.dayofyear <= 0) then goto error; + case p^ of + 'T', 't', ' ': + begin + pos := 0; + Inc(p); + state := stHour; + end; + #0: state := stEnd; + else + goto error; + end; + end; + stWeek: + begin + case pos of + 0..1: if get(st.week, p^) then + begin + inc(pos); + inc(p); + end else + goto error; + 2: case p^ of + '-': if (sep in [yes, perhaps]) then + begin + Inc(p); + state := stWeekDay; + sep := yes; + end else + goto error; + '1'..'7': + if sep in [no, perhaps] then + begin + state := stWeekDay; + sep := no; + end else + goto error; + else + goto error; + end; + end; + end; + stWeekDay: + begin + if (st.week > 0) and get(st.weekday, p^) then + begin + inc(p); + v := st.year - 1; + v := ((v * 365) + (v div 4) - (v div 100) + (v div 400)) mod 7 + 1; + st.dayofyear := (st.weekday - v) + ((st.week) * 7) + 1; + if v <= 4 then dec(st.dayofyear, 7); + case p^ of + 'T', 't', ' ': + begin + pos := 0; + Inc(p); + state := stHour; + end; + #0: state := stEnd; + else + goto error; + end; + end else + goto error; + end; + stHour: + case pos of + 0: case p^ of + '0'..'9': + if get(st.hour, p^) then + begin + inc(pos); + inc(p); + end else + goto error; + '-': + begin + inc(p); + state := stMin; + end; + else + goto error; + end; + 1: if get(st.hour, p^) then + begin + inc(pos); + inc(p); + end else + goto error; + 2: case p^ of + ':': if sep in [yes, perhaps] then + begin + sep := yes; + pos := 0; + Inc(p); + state := stMin; + end else + goto error; + ',': + begin + Inc(p); + state := stMs; + end; + '+': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + end else + goto error; + '-': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + inctz := True; + end else + goto error; + 'Z', 'z': + if havedate then + state := stUTC else + goto error; + '0'..'9': + if sep in [no, perhaps] then + begin + pos := 0; + state := stMin; + sep := no; + end else + goto error; + #0: state := stEnd; + else + goto error; + end; + end; + stMin: + case pos of + 0: case p^ of + '0'..'9': + if get(st.minute, p^) then + begin + inc(pos); + inc(p); + end else + goto error; + '-': + begin + inc(p); + state := stSec; + end; + else + goto error; + end; + 1: if get(st.minute, p^) then + begin + inc(pos); + inc(p); + end else + goto error; + 2: case p^ of + ':': if sep in [yes, perhaps] then + begin + pos := 0; + Inc(p); + state := stSec; + sep := yes; + end else + goto error; + ',': + begin + Inc(p); + state := stMs; + end; + '+': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + end else + goto error; + '-': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + inctz := True; + end else + goto error; + 'Z', 'z': + if havedate then + state := stUTC else + goto error; + '0'..'9': + if sep in [no, perhaps] then + begin + pos := 0; + state := stSec; + end else + goto error; + #0: state := stEnd; + else + goto error; + end; + end; + stSec: + case pos of + 0..1: if get(st.second, p^) then + begin + inc(pos); + inc(p); + end else + goto error; + 2: case p^ of + ',': + begin + Inc(p); + state := stMs; + end; + '+': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + end else + goto error; + '-': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + inctz := True; + end else + goto error; + 'Z', 'z': + if havedate then + state := stUTC else + goto error; + #0: state := stEnd; + else + goto error; + end; + end; + stMs: + case p^ of + '0'..'9': + begin + st.ms := st.ms * 10 + ord(p^) - ord('0'); + inc(p); + end; + '+': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + end else + goto error; + '-': + if havedate then + begin + state := stGMTH; + pos := 0; + v := 0; + inc(p); + inctz := True; + end else + goto error; + 'Z', 'z': + if havedate then + state := stUTC else + goto error; + #0: state := stEnd; + else + goto error; + end; + stUTC: // = GMT 0 + begin + havetz := True; + inc(p); + if p^ = #0 then + Break else + goto error; + end; + stGMTH: + begin + havetz := True; + case pos of + 0..1: if get(v, p^) then + begin + inc(p); + inc(pos); + end else + goto error; + 2: + begin + st.bias := v * 60; + case p^ of + ':': if sep in [yes, perhaps] then + begin + state := stGMTM; + inc(p); + pos := 0; + v := 0; + sep := yes; + end else + goto error; + '0'..'9': + if sep in [no, perhaps] then + begin + state := stGMTM; + pos := 1; + sep := no; + inc(p); + v := ord(p^) - ord('0'); + end else + goto error; + #0: state := stGMTend; + else + goto error; + end; + + end; + end; + end; + stGMTM: + case pos of + 0..1: if get(v, p^) then + begin + inc(p); + inc(pos); + end else + goto error; + 2: case p^ of + #0: + begin + state := stGMTend; + inc(st.Bias, v); + end; + else + goto error; + end; + end; + stGMTend: + begin + if not inctz then + st.Bias := -st.bias; + Break; + end; + stEnd: + begin + + Break; + end; + end; + + if (st.hour >= 24) or (st.minute >= 60) or (st.second >= 60) or (st.ms >= 1000) or (st.week > 53) + then goto error; + + if not havetz then + st.bias := GetTimeBias; + + ms := st.ms + st.second * 1000 + (st.minute + st.bias) * 60000 + st.hour * 3600000; + if havedate then + begin + DayTable := @MonthDays[IsLeapYear(st.year)]; + if st.month <> 0 then + begin + if not (st.month in [1..12]) or (DayTable^[st.month] < st.day) then + goto error; + + for v := 1 to st.month - 1 do + Inc(ms, DayTable^[v] * 86400000); + end; + dec(st.year); + ms := ms + (int64((st.year * 365) + (st.year div 4) - (st.year div 100) + + (st.year div 400) + st.day + st.dayofyear - 719163) * 86400000); + end; + + Result := True; + Exit; +error: + Result := False; +end; + +function ISO8601DateToDelphiDateTime(const str: SOString; var dt: TDateTime): Boolean; +var + ms: Int64; +begin + Result := ISO8601DateToJavaDateTime(str, ms); + if Result then + dt := JavaToDelphiDateTime(ms) +end; + +function DelphiDateTimeToISO8601Date(dt: TDateTime): SOString; +var + year, month, day, hour, min, sec, msec: Word; + tzh: SmallInt; + tzm: Word; + sign: SOChar; + bias: Integer; +begin + DecodeDate(dt, year, month, day); + DecodeTime(dt, hour, min, sec, msec); + bias := GetTimeBias; + tzh := Abs(bias) div 60; + tzm := Abs(bias) - tzh * 60; + if Bias > 0 then + sign := '-' else + sign := '+'; + Result := Format('%.4d-%.2d-%.2dT%.2d:%.2d:%.2d,%d%s%.2d:%.2d', + [year, month, day, hour, min, sec, msec, sign, tzh, tzm]); +end; + +function TryObjectToDate(const obj: ISuperObject; var dt: TDateTime): Boolean; +var + i: Int64; +begin + case ObjectGetType(obj) of + stInt: + begin + dt := JavaToDelphiDateTime(obj.AsInteger); + Result := True; + end; + stString: + begin + if ISO8601DateToJavaDateTime(obj.AsString, i) then + begin + dt := JavaToDelphiDateTime(i); + Result := True; + end else + Result := TryStrToDateTime(obj.AsString, dt); + end; + else + Result := False; + end; +end; + +function SO(const s: SOString): ISuperObject; overload; +begin + Result := TSuperObject.ParseString(PSOChar(s), False); +end; + +function SA(const Args: array of const): ISuperObject; overload; +type + TByteArray = array[0..sizeof(integer) - 1] of byte; + PByteArray = ^TByteArray; +var + j: Integer; + intf: IInterface; +begin + Result := TSuperObject.Create(stArray); + for j := 0 to length(Args) - 1 do + with Result.AsArray do + case TVarRec(Args[j]).VType of + vtInteger : Add(TSuperObject.Create(TVarRec(Args[j]).VInteger)); + vtInt64 : Add(TSuperObject.Create(TVarRec(Args[j]).VInt64^)); + vtBoolean : Add(TSuperObject.Create(TVarRec(Args[j]).VBoolean)); + vtChar : Add(TSuperObject.Create(SOString(TVarRec(Args[j]).VChar))); + vtWideChar: Add(TSuperObject.Create(SOChar(TVarRec(Args[j]).VWideChar))); + vtExtended: Add(TSuperObject.Create(TVarRec(Args[j]).VExtended^)); + vtCurrency: Add(TSuperObject.CreateCurrency(TVarRec(Args[j]).VCurrency^)); + vtString : Add(TSuperObject.Create(SOString(TVarRec(Args[j]).VString^))); + vtPChar : Add(TSuperObject.Create(SOString(TVarRec(Args[j]).VPChar^))); + vtAnsiString: Add(TSuperObject.Create(SOString(AnsiString(TVarRec(Args[j]).VAnsiString)))); + vtWideString: Add(TSuperObject.Create(SOString(PWideChar(TVarRec(Args[j]).VWideString)))); + vtInterface: + if TVarRec(Args[j]).VInterface = nil then + Add(nil) else + if IInterface(TVarRec(Args[j]).VInterface).QueryInterface(ISuperObject, intf) = 0 then + Add(ISuperObject(intf)) else + Add(nil); + vtPointer : + if TVarRec(Args[j]).VPointer = nil then + Add(nil) else + Add(TSuperObject.Create(PtrInt(TVarRec(Args[j]).VPointer))); + vtVariant: + Add(SO(TVarRec(Args[j]).VVariant^)); + vtObject: + if TVarRec(Args[j]).VPointer = nil then + Add(nil) else + Add(TSuperObject.Create(PtrInt(TVarRec(Args[j]).VPointer))); + vtClass: + if TVarRec(Args[j]).VPointer = nil then + Add(nil) else + Add(TSuperObject.Create(PtrInt(TVarRec(Args[j]).VPointer))); +{$if declared(vtUnicodeString)} + vtUnicodeString: + Add(TSuperObject.Create(SOString(string(TVarRec(Args[j]).VUnicodeString)))); +{$ifend} + else + assert(false); + end; +end; + +function SO(const Args: array of const): ISuperObject; overload; +var + j: Integer; + arr: ISuperObject; +begin + Result := TSuperObject.Create(stObject); + arr := SA(Args); + with arr.AsArray do + for j := 0 to (Length div 2) - 1 do + Result.AsObject.PutO(O[j*2].AsString, O[(j*2) + 1]); +end; + +function SO(const value: Variant): ISuperObject; overload; +begin + with TVarData(value) do + case VType of + varNull: Result := nil; + varEmpty: Result := nil; + varSmallInt: Result := TSuperObject.Create(VSmallInt); + varInteger: Result := TSuperObject.Create(VInteger); + varSingle: Result := TSuperObject.Create(VSingle); + varDouble: Result := TSuperObject.Create(VDouble); + varCurrency: Result := TSuperObject.CreateCurrency(VCurrency); + varDate: Result := TSuperObject.Create(DelphiToJavaDateTime(vDate)); + varOleStr: Result := TSuperObject.Create(SOString(VOleStr)); + varBoolean: Result := TSuperObject.Create(VBoolean); + varShortInt: Result := TSuperObject.Create(VShortInt); + varByte: Result := TSuperObject.Create(VByte); + varWord: Result := TSuperObject.Create(VWord); + varLongWord: Result := TSuperObject.Create(VLongWord); + varInt64: Result := TSuperObject.Create(VInt64); + varString: Result := TSuperObject.Create(SOString(AnsiString(VString))); +{$if declared(varUString)} + varUString: Result := TSuperObject.Create(SOString(string(VUString))); +{$ifend} + else + raise Exception.CreateFmt('Unsuported variant data type: %d', [VType]); + end; +end; + +function ObjectIsError(obj: TSuperObject): boolean; +begin + Result := PtrUInt(obj) > PtrUInt(-4000); +end; + +function ObjectIsType(const obj: ISuperObject; typ: TSuperType): boolean; +begin + if obj <> nil then + Result := typ = obj.DataType else + Result := typ = stNull; +end; + +function ObjectGetType(const obj: ISuperObject): TSuperType; +begin + if obj <> nil then + Result := obj.DataType else + Result := stNull; +end; + +function ObjectFindFirst(const obj: ISuperObject; var F: TSuperObjectIter): boolean; +var + i: TSuperAvlEntry; +begin + if ObjectIsType(obj, stObject) then + begin + F.Ite := TSuperAvlIterator.Create(obj.AsObject); + F.Ite.First; + i := F.Ite.GetIter; + if i <> nil then + begin + f.key := i.Name; + f.val := i.Value; + Result := true; + end else + Result := False; + end else + Result := False; +end; + +function ObjectFindNext(var F: TSuperObjectIter): boolean; +var + i: TSuperAvlEntry; +begin + F.Ite.Next; + i := F.Ite.GetIter; + if i <> nil then + begin + f.key := i.FName; + f.val := i.Value; + Result := true; + end else + Result := False; +end; + +procedure ObjectFindClose(var F: TSuperObjectIter); +begin + F.Ite.Free; + F.val := nil; +end; + +{$IFDEF HAVE_RTTI} + +function serialtoboolean(ctx: TSuperRttiContext; var value: TValue; const index: ISuperObject): ISuperObject; +begin + Result := TSuperObject.Create(TValueData(value).FAsSLong <> 0); +end; + +function serialtodatetime(ctx: TSuperRttiContext; var value: TValue; const index: ISuperObject): ISuperObject; +begin + Result := TSuperObject.Create(DelphiToJavaDateTime(TValueData(value).FAsDouble)); +end; + +function serialtoguid(ctx: TSuperRttiContext; var value: TValue; const index: ISuperObject): ISuperObject; +var + g: TGUID; +begin + value.ExtractRawData(@g); + Result := TSuperObject.Create( + format('%.8x-%.4x-%.4x-%.2x%.2x-%.2x%.2x%.2x%.2x%.2x%.2x', + [g.D1, g.D2, g.D3, + g.D4[0], g.D4[1], g.D4[2], + g.D4[3], g.D4[4], g.D4[5], + g.D4[6], g.D4[7]]) + ); +end; + +function serialfromboolean(ctx: TSuperRttiContext; const obj: ISuperObject; var Value: TValue): Boolean; +var + o: ISuperObject; +begin + case ObjectGetType(obj) of + stBoolean: + begin + TValueData(Value).FAsSLong := obj.AsInteger; + Result := True; + end; + stInt: + begin + TValueData(Value).FAsSLong := ord(obj.AsInteger <> 0); + Result := True; + end; + stString: + begin + o := SO(obj.AsString); + if not ObjectIsType(o, stString) then + Result := serialfromboolean(ctx, SO(obj.AsString), Value) else + Result := False; + end; + else + Result := False; + end; +end; + +function serialfromdatetime(ctx: TSuperRttiContext; const obj: ISuperObject; var Value: TValue): Boolean; +var + dt: TDateTime; + i: Int64; +begin + case ObjectGetType(obj) of + stInt: + begin + TValueData(Value).FAsDouble := JavaToDelphiDateTime(obj.AsInteger); + Result := True; + end; + stString: + begin + if ISO8601DateToJavaDateTime(obj.AsString, i) then + begin + TValueData(Value).FAsDouble := JavaToDelphiDateTime(i); + Result := True; + end else + if TryStrToDateTime(obj.AsString, dt) then + begin + TValueData(Value).FAsDouble := dt; + Result := True; + end else + Result := False; + end; + else + Result := False; + end; +end; + +function UuidFromString(p: PSOChar; Uuid: PGUID): Boolean; +const + hex2bin: array[#48..#102] of Byte = ( + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, + 0,10,11,12,13,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,10,11,12,13,14,15); +type + TState = (stEatSpaces, stStart, stHEX, stBracket, stEnd); + TUUID = record + case byte of + 0: (guid: TGUID); + 1: (bytes: array[0..15] of Byte); + 2: (words: array[0..7] of Word); + 3: (ints: array[0..3] of Cardinal); + 4: (i64s: array[0..1] of UInt64); + end; + + function ishex(const c: Char): Boolean; {$IFDEF HAVE_INLINE} inline;{$ENDIF} + begin + result := (c < #256) and (AnsiChar(c) in ['0'..'9', 'a'..'z', 'A'..'Z']) + end; +var + pos: Byte; + state, saved: TState; + bracket, separator: Boolean; +label + redo; +begin + FillChar(Uuid^, SizeOf(TGUID), 0); + saved := stStart; + state := stEatSpaces; + bracket := false; + separator := false; + pos := 0; + while true do +redo: + case state of + stEatSpaces: + begin + while true do + case p^ of + ' ', #13, #10, #9: inc(p); + else + state := saved; + goto redo; + end; + end; + stStart: + case p^ of + '{': + begin + bracket := true; + inc(p); + state := stEatSpaces; + saved := stHEX; + pos := 0; + end; + else + state := stHEX; + end; + stHEX: + case pos of + 0..7: + if ishex(p^) then + begin + Uuid.D1 := (Uuid.D1 * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 8: + if (p^ = '-') then + begin + separator := true; + inc(p); + inc(pos) + end else + inc(pos); + 13,18,23: + if separator then + begin + if p^ <> '-' then + Exit(False); + inc(p); + inc(pos); + end else + inc(pos); + 9..12: + if ishex(p^) then + begin + TUUID(Uuid^).words[2] := (TUUID(Uuid^).words[2] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 14..17: + if ishex(p^) then + begin + TUUID(Uuid^).words[3] := (TUUID(Uuid^).words[3] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 19..20: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[8] := (TUUID(Uuid^).bytes[8] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 21..22: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[9] := (TUUID(Uuid^).bytes[9] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 24..25: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[10] := (TUUID(Uuid^).bytes[10] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 26..27: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[11] := (TUUID(Uuid^).bytes[11] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 28..29: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[12] := (TUUID(Uuid^).bytes[12] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 30..31: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[13] := (TUUID(Uuid^).bytes[13] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 32..33: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[14] := (TUUID(Uuid^).bytes[14] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 34..35: + if ishex(p^) then + begin + TUUID(Uuid^).bytes[15] := (TUUID(Uuid^).bytes[15] * 16) + hex2bin[p^]; + inc(p); + inc(pos); + end else + Exit(False); + 36: if bracket then + begin + state := stEatSpaces; + saved := stBracket; + end else + begin + state := stEatSpaces; + saved := stEnd; + end; + end; + stBracket: + begin + if p^ <> '}' then + Exit(False); + inc(p); + state := stEatSpaces; + saved := stEnd; + end; + stEnd: + begin + if p^ <> #0 then + Exit(False); + Break; + end; + end; + Result := True; +end; + +function UUIDToString(const g: TGUID): string; +begin + Result := format('%.8x%.4x%.4x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x', + [g.D1, g.D2, g.D3, + g.D4[0], g.D4[1], g.D4[2], + g.D4[3], g.D4[4], g.D4[5], + g.D4[6], g.D4[7]]); +end; + +function StringToUUID(const str: string; var g: TGUID): Boolean; +begin + Result := UuidFromString(PSOChar(str), @g); +end; + + +function serialfromguid(ctx: TSuperRttiContext; const obj: ISuperObject; var Value: TValue): Boolean; +begin + case ObjectGetType(obj) of + stNull: + begin + FillChar(Value.GetReferenceToRawData^, SizeOf(TGUID), 0); + Result := True; + end; + stString: Result := UuidFromString(PSOChar(obj.AsString), Value.GetReferenceToRawData); + else + Result := False; + end; +end; + +function SOInvoke(const obj: TValue; const method: string; const params: ISuperObject; ctx: TSuperRttiContext): ISuperObject; overload; +var + owned: Boolean; +begin + if ctx = nil then + begin + ctx := TSuperRttiContext.Create; + owned := True; + end else + owned := False; + try + if TrySOInvoke(ctx, obj, method, params, Result) <> irSuccess then + raise Exception.Create('Invalid method call'); + finally + if owned then + ctx.Free; + end; +end; + +function SOInvoke(const obj: TValue; const method: string; const params: string; ctx: TSuperRttiContext): ISuperObject; overload; +begin + Result := SOInvoke(obj, method, so(params), ctx) +end; + +function TrySOInvoke(var ctx: TSuperRttiContext; const obj: TValue; + const method: string; const params: ISuperObject; + var Return: ISuperObject): TSuperInvokeResult; +var + t: TRttiInstanceType; + m: TRttiMethod; + a: TArray; + ps: TArray; + v: TValue; + index: ISuperObject; + + function GetParams: Boolean; + var + i: Integer; + begin + case ObjectGetType(params) of + stArray: + for i := 0 to Length(ps) - 1 do + if (pfOut in ps[i].Flags) then + TValue.Make(nil, ps[i].ParamType.Handle, a[i]) else + if not ctx.FromJson(ps[i].ParamType.Handle, params.AsArray[i], a[i]) then + Exit(False); + stObject: + for i := 0 to Length(ps) - 1 do + if (pfOut in ps[i].Flags) then + TValue.Make(nil, ps[i].ParamType.Handle, a[i]) else + if not ctx.FromJson(ps[i].ParamType.Handle, params.AsObject[ps[i].Name], a[i]) then + Exit(False); + stNull: ; + else + Exit(False); + end; + Result := True; + end; + + procedure SetParams; + var + i: Integer; + begin + case ObjectGetType(params) of + stArray: + for i := 0 to Length(ps) - 1 do + if (ps[i].Flags * [pfVar, pfOut]) <> [] then + params.AsArray[i] := ctx.ToJson(a[i], index); + stObject: + for i := 0 to Length(ps) - 1 do + if (ps[i].Flags * [pfVar, pfOut]) <> [] then + params.AsObject[ps[i].Name] := ctx.ToJson(a[i], index); + end; + end; + +begin + Result := irSuccess; + index := SO; + case obj.Kind of + tkClass: + begin + t := TRttiInstanceType(ctx.Context.GetType(obj.AsObject.ClassType)); + m := t.GetMethod(method); + if m = nil then Exit(irMethothodError); + ps := m.GetParameters; + SetLength(a, Length(ps)); + if not GetParams then Exit(irParamError); + if m.IsClassMethod then + begin + v := m.Invoke(obj.AsObject.ClassType, a); + Return := ctx.ToJson(v, index); + SetParams; + end else + begin + v := m.Invoke(obj, a); + Return := ctx.ToJson(v, index); + SetParams; + end; + end; + tkClassRef: + begin + t := TRttiInstanceType(ctx.Context.GetType(obj.AsClass)); + m := t.GetMethod(method); + if m = nil then Exit(irMethothodError); + ps := m.GetParameters; + SetLength(a, Length(ps)); + + if not GetParams then Exit(irParamError); + if m.IsClassMethod then + begin + v := m.Invoke(obj, a); + Return := ctx.ToJson(v, index); + SetParams; + end else + Exit(irError); + end; + else + Exit(irError); + end; +end; + +{$ENDIF} + +{ TSuperEnumerator } + +constructor TSuperEnumerator.Create(const obj: ISuperObject); +begin + FObj := obj; + FCount := -1; + if ObjectIsType(FObj, stObject) then + FObjEnum := FObj.AsObject.GetEnumerator else + FObjEnum := nil; +end; + +destructor TSuperEnumerator.Destroy; +begin + if FObjEnum <> nil then + FObjEnum.Free; +end; + +function TSuperEnumerator.MoveNext: Boolean; +begin + case ObjectGetType(FObj) of + stObject: Result := FObjEnum.MoveNext; + stArray: + begin + inc(FCount); + if FCount < FObj.AsArray.Length then + Result := True else + Result := False; + end; + else + Result := false; + end; +end; + +function TSuperEnumerator.GetCurrent: ISuperObject; +begin + case ObjectGetType(FObj) of + stObject: Result := FObjEnum.Current.Value; + stArray: Result := FObj.AsArray.GetO(FCount); + else + Result := FObj; + end; +end; + +{ TSuperObject } + +constructor TSuperObject.Create(jt: TSuperType); +begin + inherited Create; +{$IFDEF DEBUG} + InterlockedIncrement(debugcount); +{$ENDIF} + + FProcessing := false; + FDataPtr := nil; + FDataType := jt; + case FDataType of + stObject: FO.c_object := TSuperTableString.Create; + stArray: FO.c_array := TSuperArray.Create; + stString: FOString := ''; + else + FO.c_object := nil; + end; +end; + +constructor TSuperObject.Create(b: boolean); +begin + Create(stBoolean); + FO.c_boolean := b; +end; + +constructor TSuperObject.Create(i: SuperInt); +begin + Create(stInt); + FO.c_int := i; +end; + +constructor TSuperObject.Create(d: double); +begin + Create(stDouble); + FO.c_double := d; +end; + +constructor TSuperObject.CreateCurrency(c: Currency); +begin + Create(stCurrency); + FO.c_currency := c; +end; + +destructor TSuperObject.Destroy; +begin +{$IFDEF DEBUG} + InterlockedDecrement(debugcount); +{$ENDIF} + case FDataType of + stObject: FO.c_object.Free; + stArray: FO.c_array.Free; + end; + inherited; +end; + +function TSuperObject.Write(writer: TSuperWriter; indent: boolean; escape: boolean; level: integer): Integer; +function DoEscape(str: PSOChar; len: Integer): Integer; +var + pos, start_offset: Integer; + c: SOChar; + buf: array[0..5] of SOChar; +type + TByteChar = record + case integer of + 0: (a, b: Byte); + 1: (c: WideChar); + end; + begin + if str = nil then + begin + Result := 0; + exit; + end; + pos := 0; start_offset := 0; + with writer do + while pos < len do + begin + c := str[pos]; + case c of + #8,#9,#10,#12,#13,'"','\','/': + begin + if(pos - start_offset > 0) then + Append(str + start_offset, pos - start_offset); + + if(c = #8) then Append(ESC_BS, 2) + else if (c = #9) then Append(ESC_TAB, 2) + else if (c = #10) then Append(ESC_LF, 2) + else if (c = #12) then Append(ESC_FF, 2) + else if (c = #13) then Append(ESC_CR, 2) + else if (c = '"') then Append(ESC_QUOT, 2) + else if (c = '\') then Append(ESC_SL, 2) + else if (c = '/') then Append(ESC_SR, 2); + inc(pos); + start_offset := pos; + end; + else + if (SOIChar(c) > 255) then + begin + if(pos - start_offset > 0) then + Append(str + start_offset, pos - start_offset); + buf[0] := '\'; + buf[1] := 'u'; + buf[2] := super_hex_chars[TByteChar(c).b shr 4]; + buf[3] := super_hex_chars[TByteChar(c).b and $f]; + buf[4] := super_hex_chars[TByteChar(c).a shr 4]; + buf[5] := super_hex_chars[TByteChar(c).a and $f]; + Append(@buf, 6); + inc(pos); + start_offset := pos; + end else + if (c < #32) or (c > #127) then + begin + if(pos - start_offset > 0) then + Append(str + start_offset, pos - start_offset); + buf[0] := '\'; + buf[1] := 'u'; + buf[2] := '0'; + buf[3] := '0'; + buf[4] := super_hex_chars[ord(c) shr 4]; + buf[5] := super_hex_chars[ord(c) and $f]; + Append(buf, 6); + inc(pos); + start_offset := pos; + end else + inc(pos); + end; + end; + if(pos - start_offset > 0) then + writer.Append(str + start_offset, pos - start_offset); + Result := 0; + end; + +function DoMinimalEscape(str: PSOChar; len: Integer): Integer; +var + pos, start_offset: Integer; + c: SOChar; +type + TByteChar = record + case integer of + 0: (a, b: Byte); + 1: (c: WideChar); + end; + begin + if str = nil then + begin + Result := 0; + exit; + end; + pos := 0; start_offset := 0; + with writer do + while pos < len do + begin + c := str[pos]; + case c of + #0: + begin + if(pos - start_offset > 0) then + Append(str + start_offset, pos - start_offset); + Append(ESC_ZERO, 6); + inc(pos); + start_offset := pos; + end; + '"': + begin + if(pos - start_offset > 0) then + Append(str + start_offset, pos - start_offset); + Append(ESC_QUOT, 2); + inc(pos); + start_offset := pos; + end; + '\': + begin + if(pos - start_offset > 0) then + Append(str + start_offset, pos - start_offset); + Append(ESC_SL, 2); + inc(pos); + start_offset := pos; + end; + else + inc(pos); + end; + end; + if(pos - start_offset > 0) then + writer.Append(str + start_offset, pos - start_offset); + Result := 0; + end; + + + procedure _indent(i: shortint; r: boolean); + begin + inc(level, i); + if r then + with writer do + begin +{$IFDEF MSWINDOWS} + Append(TOK_CRLF, 2); +{$ELSE} + Append(TOK_LF, 1); +{$ENDIF} + for i := 0 to level - 1 do + Append(TOK_SP, 1); + end; + end; +var + k,j: Integer; + iter: TSuperObjectIter; + st: AnsiString; + val: ISuperObject; +const + ENDSTR_A: PSOChar = '": '; + ENDSTR_B: PSOChar = '":'; +begin + + if FProcessing then + begin + Result := writer.Append(TOK_NULL, 4); + Exit; + end; + + FProcessing := true; + with writer do + try + case FDataType of + stObject: + if FO.c_object.FCount > 0 then + begin + k := 0; + Append(TOK_CBL, 1); + if indent then _indent(1, false); + if ObjectFindFirst(Self, iter) then + repeat + {$IFDEF SUPER_METHOD} + if (iter.val = nil) or not ObjectIsType(iter.val, stMethod) then + begin + {$ENDIF} + if (iter.val = nil) or (not iter.val.Processing) then + begin + if(k <> 0) then + Append(TOK_COM, 1); + if indent then _indent(0, true); + Append(TOK_DQT, 1); + if escape then + doEscape(PSOChar(iter.key), Length(iter.key)) else + DoMinimalEscape(PSOChar(iter.key), Length(iter.key)); + if indent then + Append(ENDSTR_A, 3) else + Append(ENDSTR_B, 2); + if(iter.val = nil) then + Append(TOK_NULL, 4) else + iter.val.write(writer, indent, escape, level); + inc(k); + end; + {$IFDEF SUPER_METHOD} + end; + {$ENDIF} + until not ObjectFindNext(iter); + ObjectFindClose(iter); + if indent then _indent(-1, true); + Result := Append(TOK_CBR, 1); + end else + Result := Append(TOK_OBJ, 2); + stBoolean: + begin + if (FO.c_boolean) then + Result := Append(TOK_TRUE, 4) else + Result := Append(TOK_FALSE, 5); + end; + stInt: + begin + str(FO.c_int, st); + Result := Append(PSOChar(SOString(st))); + end; + stDouble: + Result := Append(PSOChar(FloatToJson(FO.c_double))); + stCurrency: + begin + Result := Append(PSOChar(CurrToJson(FO.c_currency))); + end; + stString: + begin + Append(TOK_DQT, 1); + if escape then + doEscape(PSOChar(FOString), Length(FOString)) else + DoMinimalEscape(PSOChar(FOString), Length(FOString)); + Append(TOK_DQT, 1); + Result := 0; + end; + stArray: + if FO.c_array.FLength > 0 then + begin + Append(TOK_ARL, 1); + if indent then _indent(1, true); + k := 0; + j := 0; + while k < FO.c_array.FLength do + begin + + val := FO.c_array.GetO(k); + {$IFDEF SUPER_METHOD} + if not ObjectIsType(val, stMethod) then + begin + {$ENDIF} + if (val = nil) or (not val.Processing) then + begin + if (j <> 0) then + Append(TOK_COM, 1); + if(val = nil) then + Append(TOK_NULL, 4) else + val.write(writer, indent, escape, level); + inc(j); + end; + {$IFDEF SUPER_METHOD} + end; + {$ENDIF} + inc(k); + end; + if indent then _indent(-1, false); + Result := Append(TOK_ARR, 1); + end else + Result := Append(TOK_ARRAY, 2); + stNull: + Result := Append(TOK_NULL, 4); + else + Result := 0; + end; + finally + FProcessing := false; + end; +end; + +function TSuperObject.IsType(AType: TSuperType): boolean; +begin + Result := AType = FDataType; +end; + +function TSuperObject.AsBoolean: boolean; +begin + case FDataType of + stBoolean: Result := FO.c_boolean; + stInt: Result := (FO.c_int <> 0); + stDouble: Result := (FO.c_double <> 0); + stCurrency: Result := (FO.c_currency <> 0); + stString: Result := (Length(FOString) <> 0); + stNull: Result := False; + else + Result := True; + end; +end; + +function TSuperObject.AsInteger: SuperInt; +var + code: integer; + cint: SuperInt; +begin + case FDataType of + stInt: Result := FO.c_int; + stDouble: Result := round(FO.c_double); + stCurrency: Result := round(FO.c_currency); + stBoolean: Result := ord(FO.c_boolean); + stString: + begin + Val(FOString, cint, code); + if code = 0 then + Result := cint else + Result := 0; + end; + else + Result := 0; + end; +end; + +function TSuperObject.AsDouble: Double; +var + code: integer; + cdouble: double; +begin + case FDataType of + stDouble: Result := FO.c_double; + stCurrency: Result := FO.c_currency; + stInt: Result := FO.c_int; + stBoolean: Result := ord(FO.c_boolean); + stString: + begin + Val(FOString, cdouble, code); + if code = 0 then + Result := cdouble else + Result := 0.0; + end; + else + Result := 0.0; + end; +end; + +function TSuperObject.AsCurrency: Currency; +var + code: integer; + cdouble: double; +begin + case FDataType of + stDouble: Result := FO.c_double; + stCurrency: Result := FO.c_currency; + stInt: Result := FO.c_int; + stBoolean: Result := ord(FO.c_boolean); + stString: + begin + Val(FOString, cdouble, code); + if code = 0 then + Result := cdouble else + Result := 0.0; + end; + else + Result := 0.0; + end; +end; + +function TSuperObject.AsString: SOString; +begin + if FDataType = stString then + Result := FOString else + Result := AsJSon(false, false); +end; + +function TSuperObject.GetEnumerator: TSuperEnumerator; +begin + Result := TSuperEnumerator.Create(Self); +end; + +procedure TSuperObject.AfterConstruction; +begin + InterlockedDecrement(FRefCount); +end; + +procedure TSuperObject.BeforeDestruction; +begin + if RefCount <> 0 then + raise Exception.Create('Invalid pointer'); +end; + +function TSuperObject.AsArray: TSuperArray; +begin + if FDataType = stArray then + Result := FO.c_array else + Result := nil; +end; + +function TSuperObject.AsObject: TSuperTableString; +begin + if FDataType = stObject then + Result := FO.c_object else + Result := nil; +end; + +function TSuperObject.AsJSon(indent, escape: boolean): SOString; +var + pb: TSuperWriterString; +begin + pb := TSuperWriterString.Create; + try + if(Write(pb, indent, escape, 0) < 0) then + begin + Result := ''; + Exit; + end; + if pb.FBPos > 0 then + Result := pb.FBuf else + Result := ''; + finally + pb.Free; + end; +end; + +class function TSuperObject.ParseString(s: PSOChar; strict: Boolean; partial: boolean; const this: ISuperObject; + options: TSuperFindOptions; const put: ISuperObject; dt: TSuperType): ISuperObject; +var + tok: TSuperTokenizer; + obj: ISuperObject; +begin + tok := TSuperTokenizer.Create; + obj := ParseEx(tok, s, -1, strict, this, options, put, dt); + if(tok.err <> teSuccess) or (not partial and (s[tok.char_offset] <> #0)) then + Result := nil else + Result := obj; + tok.Free; +end; + +class function TSuperObject.ParseStream(stream: TStream; strict: Boolean; + partial: boolean; const this: ISuperObject; options: TSuperFindOptions; + const put: ISuperObject; dt: TSuperType): ISuperObject; +const + BUFFER_SIZE = 1024; +var + tok: TSuperTokenizer; + buffera: array[0..BUFFER_SIZE-1] of AnsiChar; + bufferw: array[0..BUFFER_SIZE-1] of SOChar; + bom: array[0..1] of byte; + unicode: boolean; + j, size: Integer; + st: string; +begin + st := ''; + tok := TSuperTokenizer.Create; + + if (stream.Read(bom, sizeof(bom)) = 2) and (bom[0] = $FF) and (bom[1] = $FE) then + begin + unicode := true; + size := stream.Read(bufferw, BUFFER_SIZE * SizeOf(SoChar)) div SizeOf(SoChar); + end else + begin + unicode := false; + stream.Seek(0, soFromBeginning); + size := stream.Read(buffera, BUFFER_SIZE); + end; + + while size > 0 do + begin + if not unicode then + for j := 0 to size - 1 do + bufferw[j] := SOChar(buffera[j]); + ParseEx(tok, bufferw, size, strict, this, options, put, dt); + + if tok.err = teContinue then + begin + if not unicode then + size := stream.Read(buffera, BUFFER_SIZE) else + size := stream.Read(bufferw, BUFFER_SIZE * SizeOf(SoChar)) div SizeOf(SoChar); + end else + Break; + end; + if(tok.err <> teSuccess) or (not partial and (st[tok.char_offset] <> #0)) then + Result := nil else + Result := tok.stack[tok.depth].current; + tok.Free; +end; + +class function TSuperObject.ParseFile(const FileName: string; strict: Boolean; + partial: boolean; const this: ISuperObject; options: TSuperFindOptions; + const put: ISuperObject; dt: TSuperType): ISuperObject; +var + stream: TFileStream; +begin + stream := TFileStream.Create(FileName, fmOpenRead, fmShareDenyWrite); + try + Result := ParseStream(stream, strict, partial, this, options, put, dt); + finally + stream.Free; + end; +end; + +class function TSuperObject.ParseEx(tok: TSuperTokenizer; str: PSOChar; len: integer; + strict: Boolean; const this: ISuperObject; options: TSuperFindOptions; const put: ISuperObject; dt: TSuperType): ISuperObject; + +const + spaces = [#32,#8,#9,#10,#12,#13]; + delimiters = ['"', '.', '[', ']', '{', '}', '(', ')', ',', ':', #0]; + reserved = delimiters + spaces; + path = ['a'..'z', 'A'..'Z', '.', '_']; + + function hexdigit(x: SOChar): byte; {$IFDEF HAVE_INLINE} inline;{$ENDIF} + begin + if x <= '9' then + Result := byte(x) - byte('0') else + Result := (byte(x) and 7) + 9; + end; + function min(v1, v2: integer): integer;{$IFDEF HAVE_INLINE} inline;{$ENDIF} + begin if v1 < v2 then result := v1 else result := v2 end; + +var + obj: ISuperObject; + v: SOChar; +{$IFDEF SUPER_METHOD} + sm: TSuperMethod; +{$ENDIF} + numi: SuperInt; + numd: Double; + code: integer; + TokRec: PSuperTokenerSrec; + evalstack: integer; + p: PSOChar; + + function IsEndDelimiter(v: AnsiChar): Boolean; + begin + if tok.depth > 0 then + case tok.stack[tok.depth - 1].state of + tsArrayAdd: Result := v in [',', ']', #0]; + tsObjectValueAdd: Result := v in [',', '}', #0]; + else + Result := v = #0; + end else + Result := v = #0; + end; + +label out, redo_char; +begin + evalstack := 0; + obj := nil; + Result := nil; + TokRec := @tok.stack[tok.depth]; + + tok.char_offset := 0; + tok.err := teSuccess; + + repeat + if (tok.char_offset = len) then + begin + if (tok.depth = 0) and (TokRec^.state = tsEatws) and + (TokRec^.saved_state = tsFinish) then + tok.err := teSuccess else + tok.err := teContinue; + goto out; + end; + + v := str^; + + case v of + #10: + begin + inc(tok.line); + tok.col := 0; + end; + #9: inc(tok.col, 4); + else + inc(tok.col); + end; + +redo_char: + case TokRec^.state of + tsEatws: + begin + if (SOIChar(v) < 256) and (AnsiChar(v) in spaces) then {nop} else + if (v = '/') then + begin + tok.pb.Reset; + tok.pb.Append(@v, 1); + TokRec^.state := tsCommentStart; + end else begin + TokRec^.state := TokRec^.saved_state; + goto redo_char; + end + end; + + tsStart: + case v of + '"', + '''': + begin + TokRec^.state := tsString; + tok.pb.Reset; + tok.quote_char := v; + end; + '-': + begin + TokRec^.state := tsNumber; + tok.pb.Reset; + tok.is_double := 0; + tok.floatcount := -1; + goto redo_char; + end; + + '0'..'9': + begin + if (tok.depth = 0) then + case ObjectGetType(this) of + stObject: + begin + TokRec^.state := tsIdentifier; + TokRec^.current := this; + goto redo_char; + end; + end; + TokRec^.state := tsNumber; + tok.pb.Reset; + tok.is_double := 0; + tok.floatcount := -1; + goto redo_char; + end; + '{': + begin + TokRec^.state := tsEatws; + TokRec^.saved_state := tsObjectFieldStart; + TokRec^.current := TSuperObject.Create(stObject); + end; + '[': + begin + TokRec^.state := tsEatws; + TokRec^.saved_state := tsArray; + TokRec^.current := TSuperObject.Create(stArray); + end; +{$IFDEF SUPER_METHOD} + '(': + begin + if (tok.depth = 0) and ObjectIsType(this, stMethod) then + begin + TokRec^.current := this; + TokRec^.state := tsParamValue; + end; + end; +{$ENDIF} + 'N', + 'n': + begin + TokRec^.state := tsNull; + tok.pb.Reset; + tok.st_pos := 0; + goto redo_char; + end; + 'T', + 't', + 'F', + 'f': + begin + TokRec^.state := tsBoolean; + tok.pb.Reset; + tok.st_pos := 0; + goto redo_char; + end; + else + TokRec^.state := tsIdentifier; + tok.pb.Reset; + goto redo_char; + end; + + tsFinish: + begin + if(tok.depth = 0) then goto out; + obj := TokRec^.current; + tok.ResetLevel(tok.depth); + dec(tok.depth); + TokRec := @tok.stack[tok.depth]; + goto redo_char; + end; + + tsNull: + begin + tok.pb.Append(@v, 1); + if (StrLComp(TOK_NULL, PSOChar(tok.pb.FBuf), min(tok.st_pos + 1, 4)) = 0) then + begin + if (tok.st_pos = 4) then + if (((SOIChar(v) < 256) and (AnsiChar(v) in path)) or (SOIChar(v) >= 256)) then + TokRec^.state := tsIdentifier else + begin + TokRec^.current := TSuperObject.Create(stNull); + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + goto redo_char; + end; + end else + begin + TokRec^.state := tsIdentifier; + tok.pb.FBuf[tok.st_pos] := #0; + dec(tok.pb.FBPos); + goto redo_char; + end; + inc(tok.st_pos); + end; + + tsCommentStart: + begin + if(v = '*') then + begin + TokRec^.state := tsComment; + end else + if (v = '/') then + begin + TokRec^.state := tsCommentEol; + end else + begin + tok.err := teParseComment; + goto out; + end; + tok.pb.Append(@v, 1); + end; + + tsComment: + begin + if(v = '*') then + TokRec^.state := tsCommentEnd; + tok.pb.Append(@v, 1); + end; + + tsCommentEol: + begin + if (v = #10) then + TokRec^.state := tsEatws else + tok.pb.Append(@v, 1); + end; + + tsCommentEnd: + begin + tok.pb.Append(@v, 1); + if (v = '/') then + TokRec^.state := tsEatws else + TokRec^.state := tsComment; + end; + + tsString: + begin + if (v = tok.quote_char) then + begin + TokRec^.current := TSuperObject.Create(SOString(tok.pb.GetString)); + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + end else + if (v = '\') then + begin + TokRec^.saved_state := tsString; + TokRec^.state := tsStringEscape; + end else + begin + tok.pb.Append(@v, 1); + end + end; + + tsEvalProperty: + begin + if (TokRec^.current = nil) and (foCreatePath in options) then + begin + TokRec^.current := TSuperObject.Create(stObject); + TokRec^.parent.AsObject.PutO(tok.pb.Fbuf, TokRec^.current) + end else + if not ObjectIsType(TokRec^.current, stObject) then + begin + tok.err := teEvalObject; + goto out; + end; + tok.pb.Reset; + TokRec^.state := tsIdentifier; + goto redo_char; + end; + + tsEvalArray: + begin + if (TokRec^.current = nil) and (foCreatePath in options) then + begin + TokRec^.current := TSuperObject.Create(stArray); + TokRec^.parent.AsObject.PutO(tok.pb.Fbuf, TokRec^.current) + end else + if not ObjectIsType(TokRec^.current, stArray) then + begin + tok.err := teEvalArray; + goto out; + end; + tok.pb.Reset; + TokRec^.state := tsParamValue; + goto redo_char; + end; +{$IFDEF SUPER_METHOD} + tsEvalMethod: + begin + if ObjectIsType(TokRec^.current, stMethod) and assigned(TokRec^.current.AsMethod) then + begin + tok.pb.Reset; + TokRec^.obj := TSuperObject.Create(stArray); + TokRec^.state := tsMethodValue; + goto redo_char; + end else + begin + tok.err := teEvalMethod; + goto out; + end; + end; + + tsMethodValue: + begin + case v of + ')': + TokRec^.state := tsIdentifier; + else + if (tok.depth >= SUPER_TOKENER_MAX_DEPTH-1) then + begin + tok.err := teDepth; + goto out; + end; + inc(evalstack); + TokRec^.state := tsMethodPut; + inc(tok.depth); + tok.ResetLevel(tok.depth); + TokRec := @tok.stack[tok.depth]; + goto redo_char; + end; + end; + + tsMethodPut: + begin + TokRec^.obj.AsArray.Add(obj); + case v of + ',': + begin + tok.pb.Reset; + TokRec^.saved_state := tsMethodValue; + TokRec^.state := tsEatws; + end; + ')': + begin + if TokRec^.obj.AsArray.Length = 1 then + TokRec^.obj := TokRec^.obj.AsArray.GetO(0); + dec(evalstack); + tok.pb.Reset; + TokRec^.saved_state := tsIdentifier; + TokRec^.state := tsEatws; + end; + else + tok.err := teEvalMethod; + goto out; + end; + end; +{$ENDIF} + tsParamValue: + begin + case v of + ']': + TokRec^.state := tsIdentifier; + else + if (tok.depth >= SUPER_TOKENER_MAX_DEPTH-1) then + begin + tok.err := teDepth; + goto out; + end; + inc(evalstack); + TokRec^.state := tsParamPut; + inc(tok.depth); + tok.ResetLevel(tok.depth); + TokRec := @tok.stack[tok.depth]; + goto redo_char; + end; + end; + + tsParamPut: + begin + dec(evalstack); + TokRec^.obj := obj; + tok.pb.Reset; + TokRec^.saved_state := tsIdentifier; + TokRec^.state := tsEatws; + if v <> ']' then + begin + tok.err := teEvalArray; + goto out; + end; + end; + + tsIdentifier: + begin + if (this = nil) then + begin + if (SOIChar(v) < 256) and IsEndDelimiter(AnsiChar(v)) then + begin + if not strict then + begin + tok.pb.TrimRight; + TokRec^.current := TSuperObject.Create(tok.pb.Fbuf); + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + goto redo_char; + end else + begin + tok.err := teParseString; + goto out; + end; + end else + if (v = '\') then + begin + TokRec^.saved_state := tsIdentifier; + TokRec^.state := tsStringEscape; + end else + tok.pb.Append(@v, 1); + end else + begin + if (SOIChar(v) < 256) and (AnsiChar(v) in reserved) then + begin + TokRec^.gparent := TokRec^.parent; + if TokRec^.current = nil then + TokRec^.parent := this else + TokRec^.parent := TokRec^.current; + + case ObjectGetType(TokRec^.parent) of + stObject: + case v of + '.': + begin + TokRec^.state := tsEvalProperty; + if tok.pb.FBPos > 0 then + TokRec^.current := TokRec^.parent.AsObject.GetO(tok.pb.Fbuf); + end; + '[': + begin + TokRec^.state := tsEvalArray; + if tok.pb.FBPos > 0 then + TokRec^.current := TokRec^.parent.AsObject.GetO(tok.pb.Fbuf); + end; + '(': + begin + TokRec^.state := tsEvalMethod; + if tok.pb.FBPos > 0 then + TokRec^.current := TokRec^.parent.AsObject.GetO(tok.pb.Fbuf); + end; + else + if tok.pb.FBPos > 0 then + TokRec^.current := TokRec^.parent.AsObject.GetO(tok.pb.Fbuf); + if (foPutValue in options) and (evalstack = 0) then + begin + TokRec^.parent.AsObject.PutO(tok.pb.Fbuf, put); + TokRec^.current := put + end else + if (foDelete in options) and (evalstack = 0) then + begin + TokRec^.current := TokRec^.parent.AsObject.Delete(tok.pb.Fbuf); + end else + if (TokRec^.current = nil) and (foCreatePath in options) then + begin + TokRec^.current := TSuperObject.Create(dt); + TokRec^.parent.AsObject.PutO(tok.pb.Fbuf, TokRec^.current); + end; + TokRec^.current := TokRec^.parent.AsObject.GetO(tok.pb.Fbuf); + TokRec^.state := tsFinish; + goto redo_char; + end; + stArray: + begin + if TokRec^.obj <> nil then + begin + if not ObjectIsType(TokRec^.obj, stInt) or (TokRec^.obj.AsInteger < 0) then + begin + tok.err := teEvalInt; + TokRec^.obj := nil; + goto out; + end; + numi := TokRec^.obj.AsInteger; + TokRec^.obj := nil; + + TokRec^.current := TokRec^.parent.AsArray.GetO(numi); + case v of + '.': + if (TokRec^.current = nil) and (foCreatePath in options) then + begin + TokRec^.current := TSuperObject.Create(stObject); + TokRec^.parent.AsArray.PutO(numi, TokRec^.current); + end else + if (TokRec^.current = nil) then + begin + tok.err := teEvalObject; + goto out; + end; + '[': + begin + if (TokRec^.current = nil) and (foCreatePath in options) then + begin + TokRec^.current := TSuperObject.Create(stArray); + TokRec^.parent.AsArray.Add(TokRec^.current); + end else + if (TokRec^.current = nil) then + begin + tok.err := teEvalArray; + goto out; + end; + TokRec^.state := tsEvalArray; + end; + '(': TokRec^.state := tsEvalMethod; + else + if (foPutValue in options) and (evalstack = 0) then + begin + TokRec^.parent.AsArray.PutO(numi, put); + TokRec^.current := put; + end else + if (foDelete in options) and (evalstack = 0) then + begin + TokRec^.current := TokRec^.parent.AsArray.Delete(numi); + end else + TokRec^.current := TokRec^.parent.AsArray.GetO(numi); + TokRec^.state := tsFinish; + goto redo_char + end; + end else + begin + case v of + '.': + begin + if (foPutValue in options) then + begin + TokRec^.current := TSuperObject.Create(stObject); + TokRec^.parent.AsArray.Add(TokRec^.current); + end else + TokRec^.current := TokRec^.parent.AsArray.GetO(TokRec^.parent.AsArray.FLength - 1); + end; + '[': + begin + if (foPutValue in options) then + begin + TokRec^.current := TSuperObject.Create(stArray); + TokRec^.parent.AsArray.Add(TokRec^.current); + end else + TokRec^.current := TokRec^.parent.AsArray.GetO(TokRec^.parent.AsArray.FLength - 1); + TokRec^.state := tsEvalArray; + end; + '(': + begin + if not (foPutValue in options) then + TokRec^.current := TokRec^.parent.AsArray.GetO(TokRec^.parent.AsArray.FLength - 1) else + TokRec^.current := nil; + + TokRec^.state := tsEvalMethod; + end; + else + if (foPutValue in options) and (evalstack = 0) then + begin + TokRec^.parent.AsArray.Add(put); + TokRec^.current := put; + end else + if tok.pb.FBPos = 0 then + TokRec^.current := TokRec^.parent.AsArray.GetO(TokRec^.parent.AsArray.FLength - 1); + TokRec^.state := tsFinish; + goto redo_char + end; + end; + end; +{$IFDEF SUPER_METHOD} + stMethod: + case v of + '.': + begin + TokRec^.current := nil; + sm := TokRec^.parent.AsMethod; + sm(TokRec^.gparent, TokRec^.obj, TokRec^.current); + TokRec^.obj := nil; + end; + '[': + begin + TokRec^.current := nil; + sm := TokRec^.parent.AsMethod; + sm(TokRec^.gparent, TokRec^.obj, TokRec^.current); + TokRec^.state := tsEvalArray; + TokRec^.obj := nil; + end; + '(': + begin + TokRec^.current := nil; + sm := TokRec^.parent.AsMethod; + sm(TokRec^.gparent, TokRec^.obj, TokRec^.current); + TokRec^.state := tsEvalMethod; + TokRec^.obj := nil; + end; + else + if not (foPutValue in options) or (evalstack > 0) then + begin + TokRec^.current := nil; + sm := TokRec^.parent.AsMethod; + sm(TokRec^.gparent, TokRec^.obj, TokRec^.current); + TokRec^.obj := nil; + TokRec^.state := tsFinish; + goto redo_char + end else + begin + tok.err := teEvalMethod; + TokRec^.obj := nil; + goto out; + end; + end; +{$ENDIF} + end; + end else + tok.pb.Append(@v, 1); + end; + end; + + tsStringEscape: + case v of + 'b', + 'n', + 'r', + 't', + 'f': + begin + if(v = 'b') then tok.pb.Append(TOK_BS, 1) + else if(v = 'n') then tok.pb.Append(TOK_LF, 1) + else if(v = 'r') then tok.pb.Append(TOK_CR, 1) + else if(v = 't') then tok.pb.Append(TOK_TAB, 1) + else if(v = 'f') then tok.pb.Append(TOK_FF, 1); + TokRec^.state := TokRec^.saved_state; + end; + 'u': + begin + tok.ucs_char := 0; + tok.st_pos := 0; + TokRec^.state := tsEscapeUnicode; + end; + 'x': + begin + tok.ucs_char := 0; + tok.st_pos := 0; + TokRec^.state := tsEscapeHexadecimal; + end + else + tok.pb.Append(@v, 1); + TokRec^.state := TokRec^.saved_state; + end; + + tsEscapeUnicode: + begin + if ((SOIChar(v) < 256) and (AnsiChar(v) in super_hex_chars_set)) then + begin + inc(tok.ucs_char, (Word(hexdigit(v)) shl ((3-tok.st_pos)*4))); + inc(tok.st_pos); + if (tok.st_pos = 4) then + begin + tok.pb.Append(@tok.ucs_char, 1); + TokRec^.state := TokRec^.saved_state; + end + end else + begin + tok.err := teParseString; + goto out; + end + end; + tsEscapeHexadecimal: + begin + if ((SOIChar(v) < 256) and (AnsiChar(v) in super_hex_chars_set)) then + begin + inc(tok.ucs_char, (Word(hexdigit(v)) shl ((1-tok.st_pos)*4))); + inc(tok.st_pos); + if (tok.st_pos = 2) then + begin + tok.pb.Append(@tok.ucs_char, 1); + TokRec^.state := TokRec^.saved_state; + end + end else + begin + tok.err := teParseString; + goto out; + end + end; + tsBoolean: + begin + tok.pb.Append(@v, 1); + if (StrLComp('true', PSOChar(tok.pb.FBuf), min(tok.st_pos + 1, 4)) = 0) then + begin + if (tok.st_pos = 4) then + if (((SOIChar(v) < 256) and (AnsiChar(v) in path)) or (SOIChar(v) >= 256)) then + TokRec^.state := tsIdentifier else + begin + TokRec^.current := TSuperObject.Create(true); + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + goto redo_char; + end + end else + if (StrLComp('false', PSOChar(tok.pb.FBuf), min(tok.st_pos + 1, 5)) = 0) then + begin + if (tok.st_pos = 5) then + if (((SOIChar(v) < 256) and (AnsiChar(v) in path)) or (SOIChar(v) >= 256)) then + TokRec^.state := tsIdentifier else + begin + TokRec^.current := TSuperObject.Create(false); + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + goto redo_char; + end + end else + begin + TokRec^.state := tsIdentifier; + tok.pb.FBuf[tok.st_pos] := #0; + dec(tok.pb.FBPos); + goto redo_char; + end; + inc(tok.st_pos); + end; + + tsNumber: + begin + if (SOIChar(v) < 256) and (AnsiChar(v) in super_number_chars_set) then + begin + tok.pb.Append(@v, 1); + if (SOIChar(v) < 256) then + case v of + '.': begin + tok.is_double := 1; + tok.floatcount := 0; + end; + 'e','E': + begin + tok.is_double := 1; + tok.floatcount := -1; + end; + '0'..'9': + begin + + if (tok.is_double = 1) and (tok.floatcount >= 0) then + begin + inc(tok.floatcount); + if tok.floatcount > 4 then + tok.floatcount := -1; + end; + end; + end; + end else + begin + if (tok.is_double = 0) then + begin + val(tok.pb.FBuf, numi, code); + if ObjectIsType(this, stArray) then + begin + if (foPutValue in options) and (evalstack = 0) then + begin + this.AsArray.PutO(numi, put); + TokRec^.current := put; + end else + if (foDelete in options) and (evalstack = 0) then + TokRec^.current := this.AsArray.Delete(numi) else + TokRec^.current := this.AsArray.GetO(numi); + end else + TokRec^.current := TSuperObject.Create(numi); + + end else + if (tok.is_double <> 0) then + begin + if tok.floatcount >= 0 then + begin + p := tok.pb.FBuf; + while p^ <> '.' do inc(p); + for code := 0 to tok.floatcount - 1 do + begin + p^ := p[1]; + inc(p); + end; + p^ := #0; + val(tok.pb.FBuf, numi, code); + case tok.floatcount of + 0: numi := numi * 10000; + 1: numi := numi * 1000; + 2: numi := numi * 100; + 3: numi := numi * 10; + end; + TokRec^.current := TSuperObject.CreateCurrency(PCurrency(@numi)^); + end else + begin + val(tok.pb.FBuf, numd, code); + TokRec^.current := TSuperObject.Create(numd); + end; + end else + begin + tok.err := teParseNumber; + goto out; + end; + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + goto redo_char; + end + end; + + tsArray: + begin + if (v = ']') then + begin + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + end else + begin + if(tok.depth >= SUPER_TOKENER_MAX_DEPTH-1) then + begin + tok.err := teDepth; + goto out; + end; + TokRec^.state := tsArrayAdd; + inc(tok.depth); + tok.ResetLevel(tok.depth); + TokRec := @tok.stack[tok.depth]; + goto redo_char; + end + end; + + tsArrayAdd: + begin + TokRec^.current.AsArray.Add(obj); + TokRec^.saved_state := tsArraySep; + TokRec^.state := tsEatws; + goto redo_char; + end; + + tsArraySep: + begin + if (v = ']') then + begin + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + end else + if (v = ',') then + begin + TokRec^.saved_state := tsArray; + TokRec^.state := tsEatws; + end else + begin + tok.err := teParseArray; + goto out; + end + end; + + tsObjectFieldStart: + begin + if (v = '}') then + begin + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + end else + if (SOIChar(v) < 256) and (AnsiChar(v) in ['"', '''']) then + begin + tok.quote_char := v; + tok.pb.Reset; + TokRec^.state := tsObjectField; + end else + if not((SOIChar(v) < 256) and ((AnsiChar(v) in reserved) or strict)) then + begin + TokRec^.state := tsObjectUnquotedField; + tok.pb.Reset; + goto redo_char; + end else + begin + tok.err := teParseObjectKeyName; + goto out; + end + end; + + tsObjectField: + begin + if (v = tok.quote_char) then + begin + TokRec^.field_name := tok.pb.FBuf; + TokRec^.saved_state := tsObjectFieldEnd; + TokRec^.state := tsEatws; + end else + if (v = '\') then + begin + TokRec^.saved_state := tsObjectField; + TokRec^.state := tsStringEscape; + end else + begin + tok.pb.Append(@v, 1); + end + end; + + tsObjectUnquotedField: + begin + if (SOIChar(v) < 256) and (AnsiChar(v) in [':', #0]) then + begin + TokRec^.field_name := tok.pb.FBuf; + TokRec^.saved_state := tsObjectFieldEnd; + TokRec^.state := tsEatws; + goto redo_char; + end else + if (v = '\') then + begin + TokRec^.saved_state := tsObjectUnquotedField; + TokRec^.state := tsStringEscape; + end else + tok.pb.Append(@v, 1); + end; + + tsObjectFieldEnd: + begin + if (v = ':') then + begin + TokRec^.saved_state := tsObjectValue; + TokRec^.state := tsEatws; + end else + begin + tok.err := teParseObjectKeySep; + goto out; + end + end; + + tsObjectValue: + begin + if (tok.depth >= SUPER_TOKENER_MAX_DEPTH-1) then + begin + tok.err := teDepth; + goto out; + end; + TokRec^.state := tsObjectValueAdd; + inc(tok.depth); + tok.ResetLevel(tok.depth); + TokRec := @tok.stack[tok.depth]; + goto redo_char; + end; + + tsObjectValueAdd: + begin + TokRec^.current.AsObject.PutO(TokRec^.field_name, obj); + TokRec^.field_name := ''; + TokRec^.saved_state := tsObjectSep; + TokRec^.state := tsEatws; + goto redo_char; + end; + + tsObjectSep: + begin + if (v = '}') then + begin + TokRec^.saved_state := tsFinish; + TokRec^.state := tsEatws; + end else + if (v = ',') then + begin + TokRec^.saved_state := tsObjectFieldStart; + TokRec^.state := tsEatws; + end else + begin + tok.err := teParseObjectValueSep; + goto out; + end + end; + end; + inc(str); + inc(tok.char_offset); + until v = #0; + + if(TokRec^.state <> tsFinish) and + (TokRec^.saved_state <> tsFinish) then + tok.err := teParseEof; + + out: + if(tok.err in [teSuccess]) then + begin +{$IFDEF SUPER_METHOD} + if (foCallMethod in options) and ObjectIsType(TokRec^.current, stMethod) and assigned(TokRec^.current.AsMethod) then + begin + sm := TokRec^.current.AsMethod; + sm(TokRec^.parent, put, Result); + end else +{$ENDIF} + Result := TokRec^.current; + end else + Result := nil; +end; + +procedure TSuperObject.PutO(const path: SOString; const Value: ISuperObject); +begin + ParseString(PSOChar(path), true, False, self, [foCreatePath, foPutValue], Value); +end; + +procedure TSuperObject.PutB(const path: SOString; Value: Boolean); +begin + ParseString(PSOChar(path), true, False, self, [foCreatePath, foPutValue], TSuperObject.Create(Value)); +end; + +procedure TSuperObject.PutD(const path: SOString; Value: Double); +begin + ParseString(PSOChar(path), true, False, self, [foCreatePath, foPutValue], TSuperObject.Create(Value)); +end; + +procedure TSuperObject.PutC(const path: SOString; Value: Currency); +begin + ParseString(PSOChar(path), true, False, self, [foCreatePath, foPutValue], TSuperObject.CreateCurrency(Value)); +end; + +procedure TSuperObject.PutI(const path: SOString; Value: SuperInt); +begin + ParseString(PSOChar(path), true, False, self, [foCreatePath, foPutValue], TSuperObject.Create(Value)); +end; + +procedure TSuperObject.PutS(const path: SOString; const Value: SOString); +begin + ParseString(PSOChar(path), true, False, self, [foCreatePath, foPutValue], TSuperObject.Create(Value)); +end; + +function TSuperObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; +begin + if GetInterface(IID, Obj) then + Result := 0 + else + Result := E_NOINTERFACE; +end; + +function TSuperObject.SaveTo(stream: TStream; indent, escape: boolean): integer; +var + pb: TSuperWriterStream; +begin + if escape then + pb := TSuperAnsiWriterStream.Create(stream) else + pb := TSuperUnicodeWriterStream.Create(stream); + + if(Write(pb, indent, escape, 0) < 0) then + begin + pb.Reset; + pb.Free; + Result := 0; + Exit; + end; + Result := stream.Size; + pb.Free; +end; + +function TSuperObject.CalcSize(indent, escape: boolean): integer; +var + pb: TSuperWriterFake; +begin + pb := TSuperWriterFake.Create; + if(Write(pb, indent, escape, 0) < 0) then + begin + pb.Free; + Result := 0; + Exit; + end; + Result := pb.FSize; + pb.Free; +end; + +function TSuperObject.SaveTo(socket: Integer; indent, escape: boolean): integer; +var + pb: TSuperWriterSock; +begin + pb := TSuperWriterSock.Create(socket); + if(Write(pb, indent, escape, 0) < 0) then + begin + pb.Free; + Result := 0; + Exit; + end; + Result := pb.FSize; + pb.Free; +end; + +constructor TSuperObject.Create(const s: SOString); +begin + Create(stString); + FOString := s; +end; + +procedure TSuperObject.Clear(all: boolean); +begin + if FProcessing then exit; + FProcessing := true; + try + case FDataType of + stBoolean: FO.c_boolean := false; + stDouble: FO.c_double := 0.0; + stCurrency: FO.c_currency := 0.0; + stInt: FO.c_int := 0; + stObject: FO.c_object.Clear(all); + stArray: FO.c_array.Clear(all); + stString: FOString := ''; +{$IFDEF SUPER_METHOD} + stMethod: FO.c_method := nil; +{$ENDIF} + end; + finally + FProcessing := false; + end; +end; + +procedure TSuperObject.Pack(all: boolean = false); +begin + if FProcessing then exit; + FProcessing := true; + try + case FDataType of + stObject: FO.c_object.Pack(all); + stArray: FO.c_array.Pack(all); + end; + finally + FProcessing := false; + end; +end; + +function TSuperObject.GetN(const path: SOString): ISuperObject; +begin + Result := ParseString(PSOChar(path), False, true, self); + if Result = nil then + Result := TSuperObject.Create(stNull); +end; + +procedure TSuperObject.PutN(const path: SOString; const Value: ISuperObject); +begin + if Value = nil then + ParseString(PSOChar(path), False, True, self, [foCreatePath, foPutValue], TSuperObject.Create(stNull)) else + ParseString(PSOChar(path), False, True, self, [foCreatePath, foPutValue], Value); +end; + +function TSuperObject.Delete(const path: SOString): ISuperObject; +begin + Result := ParseString(PSOChar(path), False, true, self, [foDelete]); +end; + +function TSuperObject.Clone: ISuperObject; +var + ite: TSuperObjectIter; + arr: TSuperArray; + j: integer; +begin + case FDataType of + stBoolean: Result := TSuperObject.Create(FO.c_boolean); + stDouble: Result := TSuperObject.Create(FO.c_double); + stCurrency: Result := TSuperObject.CreateCurrency(FO.c_currency); + stInt: Result := TSuperObject.Create(FO.c_int); + stString: Result := TSuperObject.Create(FOString); +{$IFDEF SUPER_METHOD} + stMethod: Result := TSuperObject.Create(FO.c_method); +{$ENDIF} + stObject: + begin + Result := TSuperObject.Create(stObject); + if ObjectFindFirst(self, ite) then + with Result.AsObject do + repeat + PutO(ite.key, ite.val.Clone); + until not ObjectFindNext(ite); + ObjectFindClose(ite); + end; + stArray: + begin + Result := TSuperObject.Create(stArray); + arr := AsArray; + with Result.AsArray do + for j := 0 to arr.Length - 1 do + Add(arr.GetO(j).Clone); + end; + else + Result := nil; + end; +end; + +procedure TSuperObject.Merge(const obj: ISuperObject; reference: boolean); +var + prop1, prop2: ISuperObject; + ite: TSuperObjectIter; + arr: TSuperArray; + j: integer; +begin + if ObjectIsType(obj, FDataType) then + case FDataType of + stBoolean: FO.c_boolean := obj.AsBoolean; + stDouble: FO.c_double := obj.AsDouble; + stCurrency: FO.c_currency := obj.AsCurrency; + stInt: FO.c_int := obj.AsInteger; + stString: FOString := obj.AsString; +{$IFDEF SUPER_METHOD} + stMethod: FO.c_method := obj.AsMethod; +{$ENDIF} + stObject: + begin + if ObjectFindFirst(obj, ite) then + with FO.c_object do + repeat + prop1 := FO.c_object.GetO(ite.key); + if (prop1 <> nil) and (ite.val <> nil) and (prop1.DataType = ite.val.DataType) then + prop1.Merge(ite.val) else + if reference then + PutO(ite.key, ite.val) else + if ite.val <> nil then + PutO(ite.key, ite.val.Clone) else + PutO(ite.key, nil) + + until not ObjectFindNext(ite); + ObjectFindClose(ite); + end; + stArray: + begin + arr := obj.AsArray; + with FO.c_array do + for j := 0 to arr.Length - 1 do + begin + prop1 := GetO(j); + prop2 := arr.GetO(j); + if (prop1 <> nil) and (prop2 <> nil) and (prop1.DataType = prop2.DataType) then + prop1.Merge(prop2) else + if reference then + PutO(j, prop2) else + if prop2 <> nil then + PutO(j, prop2.Clone) else + PutO(j, nil); + end; + end; + end; +end; + +procedure TSuperObject.Merge(const str: SOString); +begin + Merge(TSuperObject.ParseString(PSOChar(str), False), true); +end; + +class function TSuperObject.NewInstance: TObject; +begin + Result := inherited NewInstance; + TSuperObject(Result).FRefCount := 1; +end; + +function TSuperObject.ForcePath(const path: SOString; dataType: TSuperType = stObject): ISuperObject; +begin + Result := ParseString(PSOChar(path), False, True, Self, [foCreatePath], nil, dataType); +end; + +function TSuperObject.Format(const str: SOString; BeginSep: SOChar; EndSep: SOChar): SOString; +var + p1, p2: PSOChar; +begin + Result := ''; + p2 := PSOChar(str); + p1 := p2; + while true do + if p2^ = BeginSep then + begin + if p2 > p1 then + Result := Result + Copy(p1, 0, p2-p1); + inc(p2); + p1 := p2; + while true do + if p2^ = EndSep then Break else + if p2^ = #0 then Exit else + inc(p2); + Result := Result + GetS(copy(p1, 0, p2-p1)); + inc(p2); + p1 := p2; + end + else if p2^ = #0 then + begin + if p2 > p1 then + Result := Result + Copy(p1, 0, p2-p1); + Break; + end else + inc(p2); +end; + +function TSuperObject.GetO(const path: SOString): ISuperObject; +begin + Result := ParseString(PSOChar(path), False, True, Self); +end; + +function TSuperObject.GetA(const path: SOString): TSuperArray; +var + obj: ISuperObject; +begin + obj := ParseString(PSOChar(path), False, True, Self); + if obj <> nil then + Result := obj.AsArray else + Result := nil; +end; + +function TSuperObject.GetB(const path: SOString): Boolean; +var + obj: ISuperObject; +begin + obj := GetO(path); + if obj <> nil then + Result := obj.AsBoolean else + Result := false; +end; + +function TSuperObject.GetD(const path: SOString): Double; +var + obj: ISuperObject; +begin + obj := GetO(path); + if obj <> nil then + Result := obj.AsDouble else + Result := 0.0; +end; + +function TSuperObject.GetC(const path: SOString): Currency; +var + obj: ISuperObject; +begin + obj := GetO(path); + if obj <> nil then + Result := obj.AsCurrency else + Result := 0.0; +end; + +function TSuperObject.GetI(const path: SOString): SuperInt; +var + obj: ISuperObject; +begin + obj := GetO(path); + if obj <> nil then + Result := obj.AsInteger else + Result := 0; +end; + +function TSuperObject.GetDataPtr: Pointer; +begin + Result := FDataPtr; +end; + +function TSuperObject.GetDataType: TSuperType; +begin + Result := FDataType +end; + +function TSuperObject.GetS(const path: SOString): SOString; +var + obj: ISuperObject; +begin + obj := GetO(path); + if obj <> nil then + Result := obj.AsString else + Result := ''; +end; + +function TSuperObject.SaveTo(const FileName: string; indent, escape: boolean): integer; +var + stream: TFileStream; +begin + stream := TFileStream.Create(FileName, fmCreate); + try + Result := SaveTo(stream, indent, escape); + finally + stream.Free; + end; +end; + +function TSuperObject.Validate(const rules: SOString; const defs: SOString = ''; callback: TSuperOnValidateError = nil; sender: Pointer = nil): boolean; +begin + Result := Validate(TSuperObject.ParseString(PSOChar(rules), False), TSuperObject.ParseString(PSOChar(defs), False), callback, sender); +end; + +function TSuperObject.Validate(const rules: ISuperObject; const defs: ISuperObject = nil; callback: TSuperOnValidateError = nil; sender: Pointer = nil): boolean; +type + TDataType = (dtUnknown, dtStr, dtInt, dtFloat, dtNumber, dtText, dtBool, + dtMap, dtSeq, dtScalar, dtAny); +var + datatypes: ISuperObject; + names: ISuperObject; + + function FindInheritedProperty(const prop: PSOChar; p: ISuperObject): ISuperObject; + var + o: ISuperObject; + e: TSuperAvlEntry; + begin + o := p[prop]; + if o <> nil then + result := o else + begin + o := p['inherit']; + if (o <> nil) and ObjectIsType(o, stString) then + begin + e := names.AsObject.Search(o.AsString); + if (e <> nil) then + Result := FindInheritedProperty(prop, e.Value) else + Result := nil; + end else + Result := nil; + end; + end; + + function FindDataType(o: ISuperObject): TDataType; + var + e: TSuperAvlEntry; + obj: ISuperObject; + begin + obj := FindInheritedProperty('type', o); + if obj <> nil then + begin + e := datatypes.AsObject.Search(obj.AsString); + if e <> nil then + Result := TDataType(e.Value.AsInteger) else + Result := dtUnknown; + end else + Result := dtUnknown; + end; + + procedure GetNames(o: ISuperObject); + var + obj: ISuperObject; + f: TSuperObjectIter; + begin + obj := o['name']; + if ObjectIsType(obj, stString) then + names[obj.AsString] := o; + + case FindDataType(o) of + dtMap: + begin + obj := o['mapping']; + if ObjectIsType(obj, stObject) then + begin + if ObjectFindFirst(obj, f) then + repeat + if ObjectIsType(f.val, stObject) then + GetNames(f.val); + until not ObjectFindNext(f); + ObjectFindClose(f); + end; + end; + dtSeq: + begin + obj := o['sequence']; + if ObjectIsType(obj, stObject) then + GetNames(obj); + end; + end; + end; + + function FindInheritedField(const prop: SOString; p: ISuperObject): ISuperObject; + var + o: ISuperObject; + e: TSuperAvlEntry; + begin + o := p['mapping']; + if ObjectIsType(o, stObject) then + begin + o := o.AsObject.GetO(prop); + if o <> nil then + begin + Result := o; + Exit; + end; + end; + + o := p['inherit']; + if ObjectIsType(o, stString) then + begin + e := names.AsObject.Search(o.AsString); + if (e <> nil) then + Result := FindInheritedField(prop, e.Value) else + Result := nil; + end else + Result := nil; + end; + + function InheritedFieldExist(const obj: ISuperObject; p: ISuperObject; const name: SOString = ''): boolean; + var + o: ISuperObject; + e: TSuperAvlEntry; + j: TSuperAvlIterator; + begin + Result := true; + o := p['mapping']; + if ObjectIsType(o, stObject) then + begin + j := TSuperAvlIterator.Create(o.AsObject); + try + j.First; + e := j.GetIter; + while e <> nil do + begin + if obj.AsObject.Search(e.Name) = nil then + begin + Result := False; + if assigned(callback) then + callback(sender, veFieldNotFound, name + '.' + e.Name); + end; + j.Next; + e := j.GetIter; + end; + + finally + j.Free; + end; + end; + + o := p['inherit']; + if ObjectIsType(o, stString) then + begin + e := names.AsObject.Search(o.AsString); + if (e <> nil) then + Result := InheritedFieldExist(obj, e.Value, name) and Result; + end; + end; + + function getInheritedBool(f: PSOChar; p: ISuperObject; default: boolean = false): boolean; + var + o: ISuperObject; + begin + o := FindInheritedProperty(f, p); + case ObjectGetType(o) of + stBoolean: Result := o.AsBoolean; + stNull: Result := Default; + else + Result := default; + if assigned(callback) then + callback(sender, veRuleMalformated, f); + end; + end; + + procedure GetInheritedFieldList(list: ISuperObject; p: ISuperObject); + var + o: ISuperObject; + e: TSuperAvlEntry; + i: TSuperAvlIterator; + begin + Result := true; + o := p['mapping']; + if ObjectIsType(o, stObject) then + begin + i := TSuperAvlIterator.Create(o.AsObject); + try + i.First; + e := i.GetIter; + while e <> nil do + begin + if list.AsObject.Search(e.Name) = nil then + list[e.Name] := e.Value; + i.Next; + e := i.GetIter; + end; + + finally + i.Free; + end; + end; + + o := p['inherit']; + if ObjectIsType(o, stString) then + begin + e := names.AsObject.Search(o.AsString); + if (e <> nil) then + GetInheritedFieldList(list, e.Value); + end; + end; + + function CheckEnum(o: ISuperObject; p: ISuperObject; name: SOString = ''): boolean; + var + enum: ISuperObject; + i: integer; + begin + Result := false; + enum := FindInheritedProperty('enum', p); + case ObjectGetType(enum) of + stArray: + for i := 0 to enum.AsArray.Length - 1 do + if (o.AsString = enum.AsArray[i].AsString) then + begin + Result := true; + exit; + end; + stNull: Result := true; + else + Result := false; + if assigned(callback) then + callback(sender, veRuleMalformated, ''); + Exit; + end; + + if (not Result) and assigned(callback) then + callback(sender, veValueNotInEnum, name); + end; + + function CheckLength(len: integer; p: ISuperObject; const objpath: SOString): boolean; + var + length, o: ISuperObject; + begin + result := true; + length := FindInheritedProperty('length', p); + case ObjectGetType(length) of + stObject: + begin + o := length.AsObject.GetO('min'); + if (o <> nil) and (o.AsInteger > len) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidLength, objpath); + end; + o := length.AsObject.GetO('max'); + if (o <> nil) and (o.AsInteger < len) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidLength, objpath); + end; + o := length.AsObject.GetO('minex'); + if (o <> nil) and (o.AsInteger >= len) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidLength, objpath); + end; + o := length.AsObject.GetO('maxex'); + if (o <> nil) and (o.AsInteger <= len) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidLength, objpath); + end; + end; + stNull: ; + else + Result := false; + if assigned(callback) then + callback(sender, veRuleMalformated, ''); + end; + end; + + function CheckRange(obj: ISuperObject; p: ISuperObject; const objpath: SOString): boolean; + var + length, o: ISuperObject; + begin + result := true; + length := FindInheritedProperty('range', p); + case ObjectGetType(length) of + stObject: + begin + o := length.AsObject.GetO('min'); + if (o <> nil) and (o.Compare(obj) = cpGreat) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidRange, objpath); + end; + o := length.AsObject.GetO('max'); + if (o <> nil) and (o.Compare(obj) = cpLess) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidRange, objpath); + end; + o := length.AsObject.GetO('minex'); + if (o <> nil) and (o.Compare(obj) in [cpGreat, cpEqu]) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidRange, objpath); + end; + o := length.AsObject.GetO('maxex'); + if (o <> nil) and (o.Compare(obj) in [cpLess, cpEqu]) then + begin + Result := false; + if assigned(callback) then + callback(sender, veInvalidRange, objpath); + end; + end; + stNull: ; + else + Result := false; + if assigned(callback) then + callback(sender, veRuleMalformated, ''); + end; + end; + + + function process(o: ISuperObject; p: ISuperObject; objpath: SOString = ''): boolean; + var + ite: TSuperAvlIterator; + ent: TSuperAvlEntry; + p2, o2, sequence: ISuperObject; + s: SOString; + i: integer; + uniquelist, fieldlist: ISuperObject; + begin + Result := true; + if (o = nil) then + begin + if getInheritedBool('required', p) then + begin + if assigned(callback) then + callback(sender, veFieldIsRequired, objpath); + result := false; + end; + end else + case FindDataType(p) of + dtStr: + case ObjectGetType(o) of + stString: + begin + Result := Result and CheckLength(Length(o.AsString), p, objpath); + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtBool: + case ObjectGetType(o) of + stBoolean: + begin + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtInt: + case ObjectGetType(o) of + stInt: + begin + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtFloat: + case ObjectGetType(o) of + stDouble, stCurrency: + begin + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtMap: + case ObjectGetType(o) of + stObject: + begin + // all objects have and match a rule ? + ite := TSuperAvlIterator.Create(o.AsObject); + try + ite.First; + ent := ite.GetIter; + while ent <> nil do + begin + p2 := FindInheritedField(ent.Name, p); + if ObjectIsType(p2, stObject) then + result := process(ent.Value, p2, objpath + '.' + ent.Name) and result else + begin + if assigned(callback) then + callback(sender, veUnexpectedField, objpath + '.' + ent.Name); + result := false; // field have no rule + end; + ite.Next; + ent := ite.GetIter; + end; + finally + ite.Free; + end; + + // all expected field exists ? + Result := InheritedFieldExist(o, p, objpath) and Result; + end; + stNull: {nop}; + else + result := false; + if assigned(callback) then + callback(sender, veRuleMalformated, objpath); + end; + dtSeq: + case ObjectGetType(o) of + stArray: + begin + sequence := FindInheritedProperty('sequence', p); + if sequence <> nil then + case ObjectGetType(sequence) of + stObject: + begin + for i := 0 to o.AsArray.Length - 1 do + result := process(o.AsArray.GetO(i), sequence, objpath + '[' + IntToStr(i) + ']') and result; + if getInheritedBool('unique', sequence) then + begin + // type is unique ? + uniquelist := TSuperObject.Create(stObject); + try + for i := 0 to o.AsArray.Length - 1 do + begin + s := o.AsArray.GetO(i).AsString; + if (s <> '') then + begin + if uniquelist.AsObject.Search(s) = nil then + uniquelist[s] := nil else + begin + Result := False; + if Assigned(callback) then + callback(sender, veDuplicateEntry, objpath + '[' + IntToStr(i) + ']'); + end; + end; + end; + finally + uniquelist := nil; + end; + end; + + // field is unique ? + if (FindDataType(sequence) = dtMap) then + begin + fieldlist := TSuperObject.Create(stObject); + try + GetInheritedFieldList(fieldlist, sequence); + ite := TSuperAvlIterator.Create(fieldlist.AsObject); + try + ite.First; + ent := ite.GetIter; + while ent <> nil do + begin + if getInheritedBool('unique', ent.Value) then + begin + uniquelist := TSuperObject.Create(stObject); + try + for i := 0 to o.AsArray.Length - 1 do + begin + o2 := o.AsArray.GetO(i); + if o2 <> nil then + begin + s := o2.AsObject.GetO(ent.Name).AsString; + if (s <> '') then + if uniquelist.AsObject.Search(s) = nil then + uniquelist[s] := nil else + begin + Result := False; + if Assigned(callback) then + callback(sender, veDuplicateEntry, objpath + '[' + IntToStr(i) + '].' + ent.name); + end; + end; + end; + finally + uniquelist := nil; + end; + end; + ite.Next; + ent := ite.GetIter; + end; + finally + ite.Free; + end; + finally + fieldlist := nil; + end; + end; + + + end; + stNull: {nop}; + else + result := false; + if assigned(callback) then + callback(sender, veRuleMalformated, objpath); + end; + Result := Result and CheckLength(o.AsArray.Length, p, objpath); + + end; + else + result := false; + if assigned(callback) then + callback(sender, veRuleMalformated, objpath); + end; + dtNumber: + case ObjectGetType(o) of + stInt, + stDouble, stCurrency: + begin + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtText: + case ObjectGetType(o) of + stInt, + stDouble, + stCurrency, + stString: + begin + result := result and CheckLength(Length(o.AsString), p, objpath); + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtScalar: + case ObjectGetType(o) of + stBoolean, + stDouble, + stCurrency, + stInt, + stString: + begin + result := result and CheckLength(Length(o.AsString), p, objpath); + Result := Result and CheckRange(o, p, objpath); + end; + else + if assigned(callback) then + callback(sender, veInvalidDataType, objpath); + result := false; + end; + dtAny:; + else + if assigned(callback) then + callback(sender, veRuleMalformated, objpath); + result := false; + end; + Result := Result and CheckEnum(o, p, objpath) + + end; +var + j: integer; + +begin + Result := False; + datatypes := TSuperObject.Create(stObject); + names := TSuperObject.Create; + try + datatypes.I['str'] := ord(dtStr); + datatypes.I['int'] := ord(dtInt); + datatypes.I['float'] := ord(dtFloat); + datatypes.I['number'] := ord(dtNumber); + datatypes.I['text'] := ord(dtText); + datatypes.I['bool'] := ord(dtBool); + datatypes.I['map'] := ord(dtMap); + datatypes.I['seq'] := ord(dtSeq); + datatypes.I['scalar'] := ord(dtScalar); + datatypes.I['any'] := ord(dtAny); + + if ObjectIsType(defs, stArray) then + for j := 0 to defs.AsArray.Length - 1 do + if ObjectIsType(defs.AsArray[j], stObject) then + GetNames(defs.AsArray[j]) else + begin + if assigned(callback) then + callback(sender, veRuleMalformated, ''); + Exit; + end; + + + if ObjectIsType(rules, stObject) then + GetNames(rules) else + begin + if assigned(callback) then + callback(sender, veRuleMalformated, ''); + Exit; + end; + + Result := process(self, rules); + + finally + datatypes := nil; + names := nil; + end; +end; + +function TSuperObject._AddRef: Integer; stdcall; +begin + Result := InterlockedIncrement(FRefCount); +end; + +function TSuperObject._Release: Integer; stdcall; +begin + Result := InterlockedDecrement(FRefCount); + if Result = 0 then + Destroy; +end; + +function TSuperObject.Compare(const str: SOString): TSuperCompareResult; +begin + Result := Compare(TSuperObject.ParseString(PSOChar(str), False)); +end; + +function TSuperObject.Compare(const obj: ISuperObject): TSuperCompareResult; + function GetIntCompResult(const i: int64): TSuperCompareResult; + begin + if i < 0 then result := cpLess else + if i = 0 then result := cpEqu else + Result := cpGreat; + end; + + function GetDblCompResult(const d: double): TSuperCompareResult; + begin + if d < 0 then result := cpLess else + if d = 0 then result := cpEqu else + Result := cpGreat; + end; + +begin + case DataType of + stBoolean: + case ObjectGetType(obj) of + stBoolean: Result := GetIntCompResult(ord(FO.c_boolean) - ord(obj.AsBoolean)); + stDouble: Result := GetDblCompResult(ord(FO.c_boolean) - obj.AsDouble); + stCurrency:Result := GetDblCompResult(ord(FO.c_boolean) - obj.AsCurrency); + stInt: Result := GetIntCompResult(ord(FO.c_boolean) - obj.AsInteger); + stString: Result := GetIntCompResult(StrComp(PSOChar(AsString), PSOChar(obj.AsString))); + else + Result := cpError; + end; + stDouble: + case ObjectGetType(obj) of + stBoolean: Result := GetDblCompResult(FO.c_double - ord(obj.AsBoolean)); + stDouble: Result := GetDblCompResult(FO.c_double - obj.AsDouble); + stCurrency:Result := GetDblCompResult(FO.c_double - obj.AsCurrency); + stInt: Result := GetDblCompResult(FO.c_double - obj.AsInteger); + stString: Result := GetIntCompResult(StrComp(PSOChar(AsString), PSOChar(obj.AsString))); + else + Result := cpError; + end; + stCurrency: + case ObjectGetType(obj) of + stBoolean: Result := GetDblCompResult(FO.c_currency - ord(obj.AsBoolean)); + stDouble: Result := GetDblCompResult(FO.c_currency - obj.AsDouble); + stCurrency:Result := GetDblCompResult(FO.c_currency - obj.AsCurrency); + stInt: Result := GetDblCompResult(FO.c_currency - obj.AsInteger); + stString: Result := GetIntCompResult(StrComp(PSOChar(AsString), PSOChar(obj.AsString))); + else + Result := cpError; + end; + stInt: + case ObjectGetType(obj) of + stBoolean: Result := GetIntCompResult(FO.c_int - ord(obj.AsBoolean)); + stDouble: Result := GetDblCompResult(FO.c_int - obj.AsDouble); + stCurrency:Result := GetDblCompResult(FO.c_int - obj.AsCurrency); + stInt: Result := GetIntCompResult(FO.c_int - obj.AsInteger); + stString: Result := GetIntCompResult(StrComp(PSOChar(AsString), PSOChar(obj.AsString))); + else + Result := cpError; + end; + stString: + case ObjectGetType(obj) of + stBoolean, + stDouble, + stCurrency, + stInt, + stString: Result := GetIntCompResult(StrComp(PSOChar(AsString), PSOChar(obj.AsString))); + else + Result := cpError; + end; + else + Result := cpError; + end; +end; + +{$IFDEF SUPER_METHOD} +function TSuperObject.AsMethod: TSuperMethod; +begin + if FDataType = stMethod then + Result := FO.c_method else + Result := nil; +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +constructor TSuperObject.Create(m: TSuperMethod); +begin + Create(stMethod); + FO.c_method := m; +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +function TSuperObject.GetM(const path: SOString): TSuperMethod; +var + v: ISuperObject; +begin + v := ParseString(PSOChar(path), False, True, Self); + if (v <> nil) and (ObjectGetType(v) = stMethod) then + Result := v.AsMethod else + Result := nil; +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +procedure TSuperObject.PutM(const path: SOString; Value: TSuperMethod); +begin + ParseString(PSOChar(path), False, True, Self, [foCreatePath, foPutValue], TSuperObject.Create(Value)); +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +function TSuperObject.call(const path: SOString; const param: ISuperObject): ISuperObject; +begin + Result := ParseString(PSOChar(path), False, True, Self, [foCallMethod], param); +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +function TSuperObject.call(const path, param: SOString): ISuperObject; +begin + Result := ParseString(PSOChar(path), False, True, Self, [foCallMethod], TSuperObject.ParseString(PSOChar(param), False)); +end; +{$ENDIF} + +function TSuperObject.GetProcessing: boolean; +begin + Result := FProcessing; +end; + +procedure TSuperObject.SetDataPtr(const Value: Pointer); +begin + FDataPtr := Value; +end; + +procedure TSuperObject.SetProcessing(value: boolean); +begin + FProcessing := value; +end; + +{ TSuperArray } + +function TSuperArray.Add(const Data: ISuperObject): Integer; +begin + Result := FLength; + PutO(Result, data); +end; + +function TSuperArray.Delete(index: Integer): ISuperObject; +begin + if (Index >= 0) and (Index < FLength) then + begin + Result := FArray^[index]; + FArray^[index] := nil; + Dec(FLength); + if Index < FLength then + begin + Move(FArray^[index + 1], FArray^[index], + (FLength - index) * SizeOf(Pointer)); + Pointer(FArray^[FLength]) := nil; + end; + end; +end; + +procedure TSuperArray.Insert(index: Integer; const value: ISuperObject); +begin + if (Index >= 0) then + if (index < FLength) then + begin + if FLength = FSize then + Expand(index); + if Index < FLength then + Move(FArray^[index], FArray^[index + 1], + (FLength - index) * SizeOf(Pointer)); + Pointer(FArray^[index]) := nil; + FArray^[index] := value; + Inc(FLength); + end else + PutO(index, value); +end; + +procedure TSuperArray.Clear(all: boolean); +var + j: Integer; +begin + for j := 0 to FLength - 1 do + if FArray^[j] <> nil then + begin + if all then + FArray^[j].Clear(all); + FArray^[j] := nil; + end; + FLength := 0; +end; + +procedure TSuperArray.Pack(all: boolean); +var + PackedCount, StartIndex, EndIndex, j: Integer; +begin + if FLength > 0 then + begin + PackedCount := 0; + StartIndex := 0; + repeat + while (StartIndex < FLength) and (FArray^[StartIndex] = nil) do + Inc(StartIndex); + if StartIndex < FLength then + begin + EndIndex := StartIndex; + while (EndIndex < FLength) and (FArray^[EndIndex] <> nil) do + Inc(EndIndex); + + Dec(EndIndex); + + if StartIndex > PackedCount then + Move(FArray^[StartIndex], FArray^[PackedCount], (EndIndex - StartIndex + 1) * SizeOf(Pointer)); + + Inc(PackedCount, EndIndex - StartIndex + 1); + StartIndex := EndIndex + 1; + end; + until StartIndex >= FLength; + FillChar(FArray^[PackedCount], (FLength - PackedCount) * sizeof(Pointer), 0); + FLength := PackedCount; + if all then + for j := 0 to FLength - 1 do + FArray^[j].Pack(all); + end; +end; + +constructor TSuperArray.Create; +begin + inherited Create; + FSize := SUPER_ARRAY_LIST_DEFAULT_SIZE; + FLength := 0; + GetMem(FArray, sizeof(Pointer) * FSize); + FillChar(FArray^, sizeof(Pointer) * FSize, 0); +end; + +destructor TSuperArray.Destroy; +begin + Clear; + FreeMem(FArray); + inherited; +end; + +procedure TSuperArray.Expand(max: Integer); +var + new_size: Integer; +begin + if (max < FSize) then + Exit; + if max < (FSize shl 1) then + new_size := (FSize shl 1) else + new_size := max + 1; + ReallocMem(FArray, new_size * sizeof(Pointer)); + FillChar(FArray^[FSize], (new_size - FSize) * sizeof(Pointer), 0); + FSize := new_size; +end; + +function TSuperArray.GetO(const index: Integer): ISuperObject; +begin + if(index >= FLength) then + Result := nil else + Result := FArray^[index]; +end; + +function TSuperArray.GetB(const index: integer): Boolean; +var + obj: ISuperObject; +begin + obj := GetO(index); + if obj <> nil then + Result := obj.AsBoolean else + Result := false; +end; + +function TSuperArray.GetD(const index: integer): Double; +var + obj: ISuperObject; +begin + obj := GetO(index); + if obj <> nil then + Result := obj.AsDouble else + Result := 0.0; +end; + +function TSuperArray.GetI(const index: integer): SuperInt; +var + obj: ISuperObject; +begin + obj := GetO(index); + if obj <> nil then + Result := obj.AsInteger else + Result := 0; +end; + +function TSuperArray.GetS(const index: integer): SOString; +var + obj: ISuperObject; +begin + obj := GetO(index); + if obj <> nil then + Result := obj.AsString else + Result := ''; +end; + +procedure TSuperArray.PutO(const index: Integer; const Value: ISuperObject); +begin + Expand(index); + FArray^[index] := value; + if(FLength <= index) then FLength := index + 1; +end; + +function TSuperArray.GetN(const index: integer): ISuperObject; +begin + Result := GetO(index); + if Result = nil then + Result := TSuperObject.Create(stNull); +end; + +procedure TSuperArray.PutN(const index: integer; const Value: ISuperObject); +begin + if Value <> nil then + PutO(index, Value) else + PutO(index, TSuperObject.Create(stNull)); +end; + +procedure TSuperArray.PutB(const index: integer; Value: Boolean); +begin + PutO(index, TSuperObject.Create(Value)); +end; + +procedure TSuperArray.PutD(const index: integer; Value: Double); +begin + PutO(index, TSuperObject.Create(Value)); +end; + +function TSuperArray.GetC(const index: integer): Currency; +var + obj: ISuperObject; +begin + obj := GetO(index); + if obj <> nil then + Result := obj.AsCurrency else + Result := 0.0; +end; + +procedure TSuperArray.PutC(const index: integer; Value: Currency); +begin + PutO(index, TSuperObject.CreateCurrency(Value)); +end; + +procedure TSuperArray.PutI(const index: integer; Value: SuperInt); +begin + PutO(index, TSuperObject.Create(Value)); +end; + +procedure TSuperArray.PutS(const index: integer; const Value: SOString); +begin + PutO(index, TSuperObject.Create(Value)); +end; + +{$IFDEF SUPER_METHOD} +function TSuperArray.GetM(const index: integer): TSuperMethod; +var + v: ISuperObject; +begin + v := GetO(index); + if (ObjectGetType(v) = stMethod) then + Result := v.AsMethod else + Result := nil; +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +procedure TSuperArray.PutM(const index: integer; Value: TSuperMethod); +begin + PutO(index, TSuperObject.Create(Value)); +end; +{$ENDIF} + +{ TSuperWriterString } + +function TSuperWriterString.Append(buf: PSOChar; Size: Integer): Integer; + function max(a, b: Integer): integer; begin if a > b then Result := a else Result := b end; +begin + Result := size; + if Size > 0 then + begin + if (FSize - FBPos <= size) then + begin + FSize := max(FSize * 2, FBPos + size + 8); + ReallocMem(FBuf, FSize * SizeOf(SOChar)); + end; + // fast move + case size of + 1: FBuf[FBPos] := buf^; + 2: PInteger(@FBuf[FBPos])^ := PInteger(buf)^; + 4: PInt64(@FBuf[FBPos])^ := PInt64(buf)^; + else + move(buf^, FBuf[FBPos], size * SizeOf(SOChar)); + end; + inc(FBPos, size); + FBuf[FBPos] := #0; + end; +end; + +function TSuperWriterString.Append(buf: PSOChar): Integer; +begin + Result := Append(buf, strlen(buf)); +end; + +constructor TSuperWriterString.Create; +begin + inherited; + FSize := 32; + FBPos := 0; + GetMem(FBuf, FSize * SizeOf(SOChar)); +end; + +destructor TSuperWriterString.Destroy; +begin + inherited; + if FBuf <> nil then + FreeMem(FBuf) +end; + +function TSuperWriterString.GetString: SOString; +begin + SetString(Result, FBuf, FBPos); +end; + +procedure TSuperWriterString.Reset; +begin + FBuf[0] := #0; + FBPos := 0; +end; + +procedure TSuperWriterString.TrimRight; +begin + while (FBPos > 0) and (FBuf[FBPos-1] < #256) and (AnsiChar(FBuf[FBPos-1]) in [#32, #13, #10]) do + begin + dec(FBPos); + FBuf[FBPos] := #0; + end; +end; + +{ TSuperWriterStream } + +function TSuperWriterStream.Append(buf: PSOChar): Integer; +begin + Result := Append(buf, StrLen(buf)); +end; + +constructor TSuperWriterStream.Create(AStream: TStream); +begin + inherited Create; + FStream := AStream; +end; + +procedure TSuperWriterStream.Reset; +begin + FStream.Size := 0; +end; + +{ TSuperWriterStream } + +function TSuperAnsiWriterStream.Append(buf: PSOChar; Size: Integer): Integer; +var + Buffer: array[0..1023] of AnsiChar; + pBuffer: PAnsiChar; + i: Integer; +begin + if Size = 1 then + Result := FStream.Write(buf^, Size) else + begin + if Size > SizeOf(Buffer) then + GetMem(pBuffer, Size) else + pBuffer := @Buffer; + try + for i := 0 to Size - 1 do + pBuffer[i] := AnsiChar(buf[i]); + Result := FStream.Write(pBuffer^, Size); + finally + if pBuffer <> @Buffer then + FreeMem(pBuffer); + end; + end; +end; + +{ TSuperUnicodeWriterStream } + +function TSuperUnicodeWriterStream.Append(buf: PSOChar; Size: Integer): Integer; +begin + Result := FStream.Write(buf^, Size * 2); +end; + +{ TSuperWriterFake } + +function TSuperWriterFake.Append(buf: PSOChar; Size: Integer): Integer; +begin + inc(FSize, Size); + Result := FSize; +end; + +function TSuperWriterFake.Append(buf: PSOChar): Integer; +begin + inc(FSize, Strlen(buf)); + Result := FSize; +end; + +constructor TSuperWriterFake.Create; +begin + inherited Create; + FSize := 0; +end; + +procedure TSuperWriterFake.Reset; +begin + FSize := 0; +end; + +{ TSuperWriterSock } + +function TSuperWriterSock.Append(buf: PSOChar; Size: Integer): Integer; +var + Buffer: array[0..1023] of AnsiChar; + pBuffer: PAnsiChar; + i: Integer; +begin + if Size = 1 then +{$IFDEF FPC} + Result := fpsend(FSocket, buf, size, 0) else +{$ELSE} + Result := send(FSocket, buf^, size, 0) else +{$ENDIF} + begin + if Size > SizeOf(Buffer) then + GetMem(pBuffer, Size) else + pBuffer := @Buffer; + try + for i := 0 to Size - 1 do + pBuffer[i] := AnsiChar(buf[i]); +{$IFDEF FPC} + Result := fpsend(FSocket, pBuffer, size, 0); +{$ELSE} + Result := send(FSocket, pBuffer^, size, 0); +{$ENDIF} + finally + if pBuffer <> @Buffer then + FreeMem(pBuffer); + end; + end; + inc(FSize, Result); +end; + +function TSuperWriterSock.Append(buf: PSOChar): Integer; +begin + Result := Append(buf, StrLen(buf)); +end; + +constructor TSuperWriterSock.Create(ASocket: Integer); +begin + inherited Create; + FSocket := ASocket; + FSize := 0; +end; + +procedure TSuperWriterSock.Reset; +begin + FSize := 0; +end; + +{ TSuperTokenizer } + +constructor TSuperTokenizer.Create; +begin + pb := TSuperWriterString.Create; + line := 1; + col := 0; + Reset; +end; + +destructor TSuperTokenizer.Destroy; +begin + Reset; + pb.Free; + inherited; +end; + +procedure TSuperTokenizer.Reset; +var + i: integer; +begin + for i := depth downto 0 do + ResetLevel(i); + depth := 0; + err := teSuccess; +end; + +procedure TSuperTokenizer.ResetLevel(adepth: integer); +begin + stack[adepth].state := tsEatws; + stack[adepth].saved_state := tsStart; + stack[adepth].current := nil; + stack[adepth].field_name := ''; + stack[adepth].obj := nil; + stack[adepth].parent := nil; + stack[adepth].gparent := nil; +end; + +{ TSuperAvlTree } + +constructor TSuperAvlTree.Create; +begin + FRoot := nil; + FCount := 0; +end; + +destructor TSuperAvlTree.Destroy; +begin + Clear; + inherited; +end; + +function TSuperAvlTree.IsEmpty: boolean; +begin + result := FRoot = nil; +end; + +function TSuperAvlTree.balance(bal: TSuperAvlEntry): TSuperAvlEntry; +var + deep, old: TSuperAvlEntry; + bf: integer; +begin + if (bal.FBf > 0) then + begin + deep := bal.FGt; + if (deep.FBf < 0) then + begin + old := bal; + bal := deep.FLt; + old.FGt := bal.FLt; + deep.FLt := bal.FGt; + bal.FLt := old; + bal.FGt := deep; + bf := bal.FBf; + if (bf <> 0) then + begin + if (bf > 0) then + begin + old.FBf := -1; + deep.FBf := 0; + end else + begin + deep.FBf := 1; + old.FBf := 0; + end; + bal.FBf := 0; + end else + begin + old.FBf := 0; + deep.FBf := 0; + end; + end else + begin + bal.FGt := deep.FLt; + deep.FLt := bal; + if (deep.FBf = 0) then + begin + deep.FBf := -1; + bal.FBf := 1; + end else + begin + deep.FBf := 0; + bal.FBf := 0; + end; + bal := deep; + end; + end else + begin + (* "Less than" subtree is deeper. *) + + deep := bal.FLt; + if (deep.FBf > 0) then + begin + old := bal; + bal := deep.FGt; + old.FLt := bal.FGt; + deep.FGt := bal.FLt; + bal.FGt := old; + bal.FLt := deep; + + bf := bal.FBf; + if (bf <> 0) then + begin + if (bf < 0) then + begin + old.FBf := 1; + deep.FBf := 0; + end else + begin + deep.FBf := -1; + old.FBf := 0; + end; + bal.FBf := 0; + end else + begin + old.FBf := 0; + deep.FBf := 0; + end; + end else + begin + bal.FLt := deep.FGt; + deep.FGt := bal; + if (deep.FBf = 0) then + begin + deep.FBf := 1; + bal.FBf := -1; + end else + begin + deep.FBf := 0; + bal.FBf := 0; + end; + bal := deep; + end; + end; + Result := bal; +end; + +function TSuperAvlTree.Insert(h: TSuperAvlEntry): TSuperAvlEntry; +var + unbal, parentunbal, hh, parent: TSuperAvlEntry; + depth, unbaldepth: longint; + cmp: integer; + unbalbf: integer; + branch: TSuperAvlBitArray; + p: Pointer; +begin + inc(FCount); + h.FLt := nil; + h.FGt := nil; + h.FBf := 0; + branch := []; + + if (FRoot = nil) then + FRoot := h + else + begin + unbal := nil; + parentunbal := nil; + depth := 0; + unbaldepth := 0; + hh := FRoot; + parent := nil; + repeat + if (hh.FBf <> 0) then + begin + unbal := hh; + parentunbal := parent; + unbaldepth := depth; + end; + if hh.FHash <> h.FHash then + begin + if hh.FHash < h.FHash then cmp := -1 else + if hh.FHash > h.FHash then cmp := 1 else + cmp := 0; + end else + cmp := CompareNodeNode(h, hh); + if (cmp = 0) then + begin + Result := hh; + //exchange data + p := hh.Ptr; + hh.FPtr := h.Ptr; + h.FPtr := p; + doDeleteEntry(h, false); + dec(FCount); + exit; + end; + parent := hh; + if (cmp > 0) then + begin + hh := hh.FGt; + include(branch, depth); + end else + begin + hh := hh.FLt; + exclude(branch, depth); + end; + inc(depth); + until (hh = nil); + + if (cmp < 0) then + parent.FLt := h else + parent.FGt := h; + + depth := unbaldepth; + + if (unbal = nil) then + hh := FRoot + else + begin + if depth in branch then + cmp := 1 else + cmp := -1; + inc(depth); + unbalbf := unbal.FBf; + if (cmp < 0) then + dec(unbalbf) else + inc(unbalbf); + if cmp < 0 then + hh := unbal.FLt else + hh := unbal.FGt; + if ((unbalbf <> -2) and (unbalbf <> 2)) then + begin + unbal.FBf := unbalbf; + unbal := nil; + end; + end; + + if (hh <> nil) then + while (h <> hh) do + begin + if depth in branch then + cmp := 1 else + cmp := -1; + inc(depth); + if (cmp < 0) then + begin + hh.FBf := -1; + hh := hh.FLt; + end else (* cmp > 0 *) + begin + hh.FBf := 1; + hh := hh.FGt; + end; + end; + + if (unbal <> nil) then + begin + unbal := balance(unbal); + if (parentunbal = nil) then + FRoot := unbal + else + begin + depth := unbaldepth - 1; + if depth in branch then + cmp := 1 else + cmp := -1; + if (cmp < 0) then + parentunbal.FLt := unbal else + parentunbal.FGt := unbal; + end; + end; + end; + result := h; +end; + +function TSuperAvlTree.Search(const k: SOString; st: TSuperAvlSearchTypes): TSuperAvlEntry; +var + cmp, target_cmp: integer; + match_h, h: TSuperAvlEntry; + ha: Cardinal; +begin + ha := TSuperAvlEntry.Hash(k); + + match_h := nil; + h := FRoot; + + if (stLess in st) then + target_cmp := 1 else + if (stGreater in st) then + target_cmp := -1 else + target_cmp := 0; + + while (h <> nil) do + begin + if h.FHash < ha then cmp := -1 else + if h.FHash > ha then cmp := 1 else + cmp := 0; + + if cmp = 0 then + cmp := CompareKeyNode(PSOChar(k), h); + if (cmp = 0) then + begin + if (stEqual in st) then + begin + match_h := h; + break; + end; + cmp := -target_cmp; + end + else + if (target_cmp <> 0) then + if ((cmp xor target_cmp) and SUPER_AVL_MASK_HIGH_BIT) = 0 then + match_h := h; + if cmp < 0 then + h := h.FLt else + h := h.FGt; + end; + result := match_h; +end; + +function TSuperAvlTree.Delete(const k: SOString): ISuperObject; +var + depth, rm_depth: longint; + branch: TSuperAvlBitArray; + h, parent, child, path, rm, parent_rm: TSuperAvlEntry; + cmp, cmp_shortened_sub_with_path, reduced_depth, bf: integer; + ha: Cardinal; +begin + ha := TSuperAvlEntry.Hash(k); + cmp_shortened_sub_with_path := 0; + branch := []; + + depth := 0; + h := FRoot; + parent := nil; + while true do + begin + if (h = nil) then + exit; + if h.FHash < ha then cmp := -1 else + if h.FHash > ha then cmp := 1 else + cmp := 0; + + if cmp = 0 then + cmp := CompareKeyNode(k, h); + if (cmp = 0) then + break; + parent := h; + if (cmp > 0) then + begin + h := h.FGt; + include(branch, depth) + end else + begin + h := h.FLt; + exclude(branch, depth) + end; + inc(depth); + cmp_shortened_sub_with_path := cmp; + end; + rm := h; + parent_rm := parent; + rm_depth := depth; + + if (h.FBf < 0) then + begin + child := h.FLt; + exclude(branch, depth); + cmp := -1; + end else + begin + child := h.FGt; + include(branch, depth); + cmp := 1; + end; + inc(depth); + + if (child <> nil) then + begin + cmp := -cmp; + repeat + parent := h; + h := child; + if (cmp < 0) then + begin + child := h.FLt; + exclude(branch, depth); + end else + begin + child := h.FGt; + include(branch, depth); + end; + inc(depth); + until (child = nil); + + if (parent = rm) then + cmp_shortened_sub_with_path := -cmp else + cmp_shortened_sub_with_path := cmp; + + if cmp > 0 then + child := h.FLt else + child := h.FGt; + end; + + if (parent = nil) then + FRoot := child else + if (cmp_shortened_sub_with_path < 0) then + parent.FLt := child else + parent.FGt := child; + + if parent = rm then + path := h else + path := parent; + + if (h <> rm) then + begin + h.FLt := rm.FLt; + h.FGt := rm.FGt; + h.FBf := rm.FBf; + if (parent_rm = nil) then + FRoot := h + else + begin + depth := rm_depth - 1; + if (depth in branch) then + parent_rm.FGt := h else + parent_rm.FLt := h; + end; + end; + + if (path <> nil) then + begin + h := FRoot; + parent := nil; + depth := 0; + while (h <> path) do + begin + if (depth in branch) then + begin + child := h.FGt; + h.FGt := parent; + end else + begin + child := h.FLt; + h.FLt := parent; + end; + inc(depth); + parent := h; + h := child; + end; + + reduced_depth := 1; + cmp := cmp_shortened_sub_with_path; + while true do + begin + if (reduced_depth <> 0) then + begin + bf := h.FBf; + if (cmp < 0) then + inc(bf) else + dec(bf); + if ((bf = -2) or (bf = 2)) then + begin + h := balance(h); + bf := h.FBf; + end else + h.FBf := bf; + reduced_depth := integer(bf = 0); + end; + if (parent = nil) then + break; + child := h; + h := parent; + dec(depth); + if depth in branch then + cmp := 1 else + cmp := -1; + if (cmp < 0) then + begin + parent := h.FLt; + h.FLt := child; + end else + begin + parent := h.FGt; + h.FGt := child; + end; + end; + FRoot := h; + end; + if rm <> nil then + begin + Result := rm.GetValue; + doDeleteEntry(rm, false); + dec(FCount); + end; +end; + +procedure TSuperAvlTree.Pack(all: boolean); +var + node1, node2: TSuperAvlEntry; + list: TList; + i: Integer; +begin + node1 := FRoot; + list := TList.Create; + while node1 <> nil do + begin + if (node1.FLt = nil) then + begin + node2 := node1.FGt; + if (node1.FPtr = nil) then + list.Add(node1) else + if all then + node1.Value.Pack(all); + end + else + begin + node2 := node1.FLt; + node1.FLt := node2.FGt; + node2.FGt := node1; + end; + node1 := node2; + end; + for i := 0 to list.Count - 1 do + Delete(TSuperAvlEntry(list[i]).FName); + list.Free; +end; + +procedure TSuperAvlTree.Clear(all: boolean); +var + node1, node2: TSuperAvlEntry; +begin + node1 := FRoot; + while node1 <> nil do + begin + if (node1.FLt = nil) then + begin + node2 := node1.FGt; + doDeleteEntry(node1, all); + end + else + begin + node2 := node1.FLt; + node1.FLt := node2.FGt; + node2.FGt := node1; + end; + node1 := node2; + end; + FRoot := nil; + FCount := 0; +end; + +function TSuperAvlTree.CompareKeyNode(const k: SOString; h: TSuperAvlEntry): integer; +begin + Result := StrComp(PSOChar(k), PSOChar(h.FName)); +end; + +function TSuperAvlTree.CompareNodeNode(node1, node2: TSuperAvlEntry): integer; +begin + Result := StrComp(PSOChar(node1.FName), PSOChar(node2.FName)); +end; + +{ TSuperAvlIterator } + +(* Initialize depth to invalid value, to indicate iterator is +** invalid. (Depth is zero-base.) It's not necessary to initialize +** iterators prior to passing them to the "start" function. +*) + +constructor TSuperAvlIterator.Create(tree: TSuperAvlTree); +begin + FDepth := not 0; + FTree := tree; +end; + +procedure TSuperAvlIterator.Search(const k: SOString; st: TSuperAvlSearchTypes); +var + h: TSuperAvlEntry; + d: longint; + cmp, target_cmp: integer; + ha: Cardinal; +begin + ha := TSuperAvlEntry.Hash(k); + h := FTree.FRoot; + d := 0; + FDepth := not 0; + if (h = nil) then + exit; + + if (stLess in st) then + target_cmp := 1 else + if (stGreater in st) then + target_cmp := -1 else + target_cmp := 0; + + while true do + begin + if h.FHash < ha then cmp := -1 else + if h.FHash > ha then cmp := 1 else + cmp := 0; + + if cmp = 0 then + cmp := FTree.CompareKeyNode(k, h); + if (cmp = 0) then + begin + if (stEqual in st) then + begin + FDepth := d; + break; + end; + cmp := -target_cmp; + end + else + if (target_cmp <> 0) then + if ((cmp xor target_cmp) and SUPER_AVL_MASK_HIGH_BIT) = 0 then + FDepth := d; + if cmp < 0 then + h := h.FLt else + h := h.FGt; + if (h = nil) then + break; + if (cmp > 0) then + include(FBranch, d) else + exclude(FBranch, d); + FPath[d] := h; + inc(d); + end; +end; + +procedure TSuperAvlIterator.First; +var + h: TSuperAvlEntry; +begin + h := FTree.FRoot; + FDepth := not 0; + FBranch := []; + while (h <> nil) do + begin + if (FDepth <> not 0) then + FPath[FDepth] := h; + inc(FDepth); + h := h.FLt; + end; +end; + +procedure TSuperAvlIterator.Last; +var + h: TSuperAvlEntry; +begin + h := FTree.FRoot; + FDepth := not 0; + FBranch := [0..SUPER_AVL_MAX_DEPTH - 1]; + while (h <> nil) do + begin + if (FDepth <> not 0) then + FPath[FDepth] := h; + inc(FDepth); + h := h.FGt; + end; +end; + +function TSuperAvlIterator.MoveNext: boolean; +begin + if FDepth = not 0 then + First else + Next; + Result := GetIter <> nil; +end; + +function TSuperAvlIterator.GetIter: TSuperAvlEntry; +begin + if (FDepth = not 0) then + begin + result := nil; + exit; + end; + if FDepth = 0 then + Result := FTree.FRoot else + Result := FPath[FDepth - 1]; +end; + +procedure TSuperAvlIterator.Next; +var + h: TSuperAvlEntry; +begin + if (FDepth <> not 0) then + begin + if FDepth = 0 then + h := FTree.FRoot.FGt else + h := FPath[FDepth - 1].FGt; + + if (h = nil) then + repeat + if (FDepth = 0) then + begin + FDepth := not 0; + break; + end; + dec(FDepth); + until (not (FDepth in FBranch)) + else + begin + include(FBranch, FDepth); + FPath[FDepth] := h; + inc(FDepth); + while true do + begin + h := h.FLt; + if (h = nil) then + break; + exclude(FBranch, FDepth); + FPath[FDepth] := h; + inc(FDepth); + end; + end; + end; +end; + +procedure TSuperAvlIterator.Prior; +var + h: TSuperAvlEntry; +begin + if (FDepth <> not 0) then + begin + if FDepth = 0 then + h := FTree.FRoot.FLt else + h := FPath[FDepth - 1].FLt; + if (h = nil) then + repeat + if (FDepth = 0) then + begin + FDepth := not 0; + break; + end; + dec(FDepth); + until (FDepth in FBranch) + else + begin + exclude(FBranch, FDepth); + FPath[FDepth] := h; + inc(FDepth); + while true do + begin + h := h.FGt; + if (h = nil) then + break; + include(FBranch, FDepth); + FPath[FDepth] := h; + inc(FDepth); + end; + end; + end; +end; + +procedure TSuperAvlTree.doDeleteEntry(Entry: TSuperAvlEntry; all: boolean); +begin + Entry.Free; +end; + +function TSuperAvlTree.GetEnumerator: TSuperAvlIterator; +begin + Result := TSuperAvlIterator.Create(Self); +end; + +{ TSuperAvlEntry } + +constructor TSuperAvlEntry.Create(const AName: SOString; Obj: Pointer); +begin + FName := AName; + FPtr := Obj; + FHash := Hash(FName); +end; + +function TSuperAvlEntry.GetValue: ISuperObject; +begin + Result := ISuperObject(FPtr) +end; + +class function TSuperAvlEntry.Hash(const k: SOString): Cardinal; +var + h: cardinal; + i: Integer; +begin + h := 0; + for i := 1 to Length(k) do + h := h*129 + ord(k[i]) + $9e370001; + Result := h; +end; + +procedure TSuperAvlEntry.SetValue(const val: ISuperObject); +begin + ISuperObject(FPtr) := val; +end; + +{ TSuperTableString } + +function TSuperTableString.GetValues: ISuperObject; +var + ite: TSuperAvlIterator; + obj: TSuperAvlEntry; +begin + Result := TSuperObject.Create(stArray); + ite := TSuperAvlIterator.Create(Self); + try + ite.First; + obj := ite.GetIter; + while obj <> nil do + begin + Result.AsArray.Add(obj.Value); + ite.Next; + obj := ite.GetIter; + end; + finally + ite.Free; + end; +end; + +function TSuperTableString.GetNames: ISuperObject; +var + ite: TSuperAvlIterator; + obj: TSuperAvlEntry; +begin + Result := TSuperObject.Create(stArray); + ite := TSuperAvlIterator.Create(Self); + try + ite.First; + obj := ite.GetIter; + while obj <> nil do + begin + Result.AsArray.Add(TSuperObject.Create(obj.FName)); + ite.Next; + obj := ite.GetIter; + end; + finally + ite.Free; + end; +end; + +procedure TSuperTableString.doDeleteEntry(Entry: TSuperAvlEntry; all: boolean); +begin + if Entry.Ptr <> nil then + begin + if all then Entry.Value.Clear(true); + Entry.Value := nil; + end; + inherited; +end; + +function TSuperTableString.Find(const k: SOString; var value: ISuperObject): Boolean; +var + e: TSuperAvlEntry; +begin + e := Search(k); + if e <> nil then + begin + value := e.Value; + Result := True; + end else + Result := False; +end; + +function TSuperTableString.GetO(const k: SOString): ISuperObject; +var + e: TSuperAvlEntry; +begin + e := Search(k); + if e <> nil then + Result := e.Value else + Result := nil +end; + +procedure TSuperTableString.PutO(const k: SOString; const value: ISuperObject); +var + entry: TSuperAvlEntry; +begin + entry := Insert(TSuperAvlEntry.Create(k, Pointer(value))); + if entry.FPtr <> nil then + ISuperObject(entry.FPtr)._AddRef; +end; + +procedure TSuperTableString.PutS(const k: SOString; const value: SOString); +begin + PutO(k, TSuperObject.Create(Value)); +end; + +function TSuperTableString.GetS(const k: SOString): SOString; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj.AsString else + Result := ''; +end; + +procedure TSuperTableString.PutI(const k: SOString; value: SuperInt); +begin + PutO(k, TSuperObject.Create(Value)); +end; + +function TSuperTableString.GetI(const k: SOString): SuperInt; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj.AsInteger else + Result := 0; +end; + +procedure TSuperTableString.PutD(const k: SOString; value: Double); +begin + PutO(k, TSuperObject.Create(Value)); +end; + +procedure TSuperTableString.PutC(const k: SOString; value: Currency); +begin + PutO(k, TSuperObject.CreateCurrency(Value)); +end; + +function TSuperTableString.GetC(const k: SOString): Currency; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj.AsCurrency else + Result := 0.0; +end; + +function TSuperTableString.GetD(const k: SOString): Double; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj.AsDouble else + Result := 0.0; +end; + +procedure TSuperTableString.PutB(const k: SOString; value: Boolean); +begin + PutO(k, TSuperObject.Create(Value)); +end; + +function TSuperTableString.GetB(const k: SOString): Boolean; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj.AsBoolean else + Result := False; +end; + +{$IFDEF SUPER_METHOD} +procedure TSuperTableString.PutM(const k: SOString; value: TSuperMethod); +begin + PutO(k, TSuperObject.Create(Value)); +end; +{$ENDIF} + +{$IFDEF SUPER_METHOD} +function TSuperTableString.GetM(const k: SOString): TSuperMethod; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj.AsMethod else + Result := nil; +end; +{$ENDIF} + +procedure TSuperTableString.PutN(const k: SOString; const value: ISuperObject); +begin + if value <> nil then + PutO(k, TSuperObject.Create(stNull)) else + PutO(k, value); +end; + +function TSuperTableString.GetN(const k: SOString): ISuperObject; +var + obj: ISuperObject; +begin + obj := GetO(k); + if obj <> nil then + Result := obj else + Result := TSuperObject.Create(stNull); +end; + + +{$IFDEF HAVE_RTTI} + +{ TSuperAttribute } + +constructor TSuperAttribute.Create(const AName: string); +begin + FName := AName; +end; + +{ TSuperRttiContext } + +constructor TSuperRttiContext.Create; +begin + Context := TRttiContext.Create; + SerialFromJson := TDictionary.Create; + SerialToJson := TDictionary.Create; + + SerialFromJson.Add(TypeInfo(Boolean), serialfromboolean); + SerialFromJson.Add(TypeInfo(TDateTime), serialfromdatetime); + SerialFromJson.Add(TypeInfo(TGUID), serialfromguid); + SerialToJson.Add(TypeInfo(Boolean), serialtoboolean); + SerialToJson.Add(TypeInfo(TDateTime), serialtodatetime); + SerialToJson.Add(TypeInfo(TGUID), serialtoguid); +end; + +destructor TSuperRttiContext.Destroy; +begin + SerialFromJson.Free; + SerialToJson.Free; + Context.Free; +end; + +class function TSuperRttiContext.GetFieldName(r: TRttiField): string; +var + o: TCustomAttribute; +begin + for o in r.GetAttributes do + if o is SOName then + Exit(SOName(o).Name); + Result := r.Name; +end; + +class function TSuperRttiContext.GetFieldDefault(r: TRttiField; const obj: ISuperObject): ISuperObject; +var + o: TCustomAttribute; +begin + if not ObjectIsType(obj, stNull) then Exit(obj); + for o in r.GetAttributes do + if o is SODefault then + Exit(SO(SODefault(o).Name)); + Result := obj; +end; + +function TSuperRttiContext.AsType(const obj: ISuperObject): T; +var + ret: TValue; +begin + if FromJson(TypeInfo(T), obj, ret) then + Result := ret.AsType else + raise exception.Create('Marshalling error'); +end; + +function TSuperRttiContext.AsJson(const obj: T; const index: ISuperObject = nil): ISuperObject; +var + v: TValue; +begin + TValue.Make(@obj, TypeInfo(T), v); + if index <> nil then + Result := ToJson(v, index) else + Result := ToJson(v, so); +end; + +function TSuperRttiContext.FromJson(TypeInfo: PTypeInfo; const obj: ISuperObject; + var Value: TValue): Boolean; + + procedure FromChar; + begin + if ObjectIsType(obj, stString) and (Length(obj.AsString) = 1) then + begin + Value := string(AnsiString(obj.AsString)[1]); + Result := True; + end else + Result := False; + end; + + procedure FromWideChar; + begin + if ObjectIsType(obj, stString) and (Length(obj.AsString) = 1) then + begin + Value := obj.AsString[1]; + Result := True; + end else + Result := False; + end; + + procedure FromInt64; + var + i: Int64; + begin + case ObjectGetType(obj) of + stInt: + begin + TValue.Make(nil, TypeInfo, Value); + TValueData(Value).FAsSInt64 := obj.AsInteger; + Result := True; + end; + stString: + begin + if TryStrToInt64(obj.AsString, i) then + begin + TValue.Make(nil, TypeInfo, Value); + TValueData(Value).FAsSInt64 := i; + Result := True; + end else + Result := False; + end; + else + Result := False; + end; + end; + + procedure FromInt(const obj: ISuperObject); + var + TypeData: PTypeData; + i: Integer; + o: ISuperObject; + begin + case ObjectGetType(obj) of + stInt, stBoolean: + begin + i := obj.AsInteger; + TypeData := GetTypeData(TypeInfo); + if TypeData.MaxValue > TypeData.MinValue then + Result := (i >= TypeData.MinValue) and (i <= TypeData.MaxValue) else + Result := (i >= TypeData.MinValue) and (i <= Int64(PCardinal(@TypeData.MaxValue)^)); + if Result then + TValue.Make(@i, TypeInfo, Value); + end; + stString: + begin + o := SO(obj.AsString); + if not ObjectIsType(o, stString) then + FromInt(o) else + Result := False; + end; + else + Result := False; + end; + end; + + procedure fromSet; + var + i: Integer; + begin + case ObjectGetType(obj) of + stInt: + begin + TValue.Make(nil, TypeInfo, Value); + TValueData(Value).FAsSLong := obj.AsInteger; + Result := True; + end; + stString: + begin + if TryStrToInt(obj.AsString, i) then + begin + TValue.Make(nil, TypeInfo, Value); + TValueData(Value).FAsSLong := i; + Result := True; + end else + Result := False; + end; + else + Result := False; + end; + end; + + procedure FromFloat(const obj: ISuperObject); + var + o: ISuperObject; + begin + case ObjectGetType(obj) of + stInt, stDouble, stCurrency: + begin + TValue.Make(nil, TypeInfo, Value); + case GetTypeData(TypeInfo).FloatType of + ftSingle: TValueData(Value).FAsSingle := obj.AsDouble; + ftDouble: TValueData(Value).FAsDouble := obj.AsDouble; + ftExtended: TValueData(Value).FAsExtended := obj.AsDouble; + ftComp: TValueData(Value).FAsSInt64 := obj.AsInteger; + ftCurr: TValueData(Value).FAsCurr := obj.AsCurrency; + end; + Result := True; + end; + stString: + begin + o := SO(obj.AsString); + if not ObjectIsType(o, stString) then + FromFloat(o) else + Result := False; + end + else + Result := False; + end; + end; + + procedure FromString; + begin + case ObjectGetType(obj) of + stObject, stArray: + Result := False; + stnull: + begin + Value := ''; + Result := True; + end; + else + Value := obj.AsString; + Result := True; + end; + end; + + procedure FromClass; + var + f: TRttiField; + v: TValue; + begin + case ObjectGetType(obj) of + stObject: + begin + Result := True; + if Value.Kind <> tkClass then + Value := GetTypeData(TypeInfo).ClassType.Create; + for f in Context.GetType(Value.AsObject.ClassType).GetFields do + if f.FieldType <> nil then + begin + v := TValue.Empty; + Result := FromJson(f.FieldType.Handle, GetFieldDefault(f, obj.AsObject[GetFieldName(f)]), v); + if Result then + f.SetValue(Value.AsObject, v) else + Exit; + end; + end; + stNull: + begin + Value := nil; + Result := True; + end + else + // error + Value := nil; + Result := False; + end; + end; + + procedure FromRecord; + var + f: TRttiField; + p: Pointer; + v: TValue; + begin + Result := True; + TValue.Make(nil, TypeInfo, Value); + for f in Context.GetType(TypeInfo).GetFields do + begin + if ObjectIsType(obj, stObject) and (f.FieldType <> nil) then + begin +{$IFDEF VER210} + p := IValueData(TValueData(Value).FHeapData).GetReferenceToRawData; +{$ELSE} + p := TValueData(Value).FValueData.GetReferenceToRawData; +{$ENDIF} + Result := FromJson(f.FieldType.Handle, GetFieldDefault(f, obj.AsObject[GetFieldName(f)]), v); + if Result then + f.SetValue(p, v) else + begin + Writeln(f.Name); + Exit; + end; + end else + begin + Result := False; + Exit; + end; + end; + end; + + procedure FromDynArray; + var + i: Integer; + p: Pointer; + pb: PByte; + val: TValue; + typ: PTypeData; + el: PTypeInfo; + begin + case ObjectGetType(obj) of + stArray: + begin + i := obj.AsArray.Length; + p := nil; + DynArraySetLength(p, TypeInfo, 1, @i); + pb := p; + typ := GetTypeData(TypeInfo); + if typ.elType <> nil then + el := typ.elType^ else + el := typ.elType2^; + + Result := True; + for i := 0 to i - 1 do + begin + Result := FromJson(el, obj.AsArray[i], val); + if not Result then + Break; + val.ExtractRawData(pb); + val := TValue.Empty; + Inc(pb, typ.elSize); + end; + if Result then + TValue.MakeWithoutCopy(@p, TypeInfo, Value) else + DynArrayClear(p, TypeInfo); + end; + stNull: + begin + TValue.MakeWithoutCopy(nil, TypeInfo, Value); + Result := True; + end; + else + i := 1; + p := nil; + DynArraySetLength(p, TypeInfo, 1, @i); + pb := p; + typ := GetTypeData(TypeInfo); + if typ.elType <> nil then + el := typ.elType^ else + el := typ.elType2^; + + Result := FromJson(el, obj, val); + val.ExtractRawData(pb); + val := TValue.Empty; + + if Result then + TValue.MakeWithoutCopy(@p, TypeInfo, Value) else + DynArrayClear(p, TypeInfo); + end; + end; + + procedure FromArray; + var + ArrayData: PArrayTypeData; + idx: Integer; + function ProcessDim(dim: Byte; const o: ISuperobject): Boolean; + var + i: Integer; + v: TValue; + a: PTypeData; + begin + if ObjectIsType(o, stArray) and (ArrayData.Dims[dim-1] <> nil) then + begin + a := @GetTypeData(ArrayData.Dims[dim-1]^).ArrayData; + if (a.MaxValue - a.MinValue + 1) <> o.AsArray.Length then + begin + Result := False; + Exit; + end; + Result := True; + if dim = ArrayData.DimCount then + for i := a.MinValue to a.MaxValue do + begin + Result := FromJson(ArrayData.ElType^, o.AsArray[i], v); + if not Result then + Exit; + Value.SetArrayElement(idx, v); + inc(idx); + end + else + for i := a.MinValue to a.MaxValue do + begin + Result := ProcessDim(dim + 1, o.AsArray[i]); + if not Result then + Exit; + end; + end else + Result := False; + end; + var + i: Integer; + v: TValue; + begin + TValue.Make(nil, TypeInfo, Value); + ArrayData := @GetTypeData(TypeInfo).ArrayData; + idx := 0; + if ArrayData.DimCount = 1 then + begin + if ObjectIsType(obj, stArray) and (obj.AsArray.Length = ArrayData.ElCount) then + begin + Result := True; + for i := 0 to ArrayData.ElCount - 1 do + begin + Result := FromJson(ArrayData.ElType^, obj.AsArray[i], v); + if not Result then + Exit; + Value.SetArrayElement(idx, v); + v := TValue.Empty; + inc(idx); + end; + end else + Result := False; + end else + Result := ProcessDim(1, obj); + end; + + procedure FromClassRef; + var + r: TRttiType; + begin + if ObjectIsType(obj, stString) then + begin + r := Context.FindType(obj.AsString); + if r <> nil then + begin + Value := TRttiInstanceType(r).MetaclassType; + Result := True; + end else + Result := False; + end else + Result := False; + end; + + procedure FromUnknown; + begin + case ObjectGetType(obj) of + stBoolean: + begin + Value := obj.AsBoolean; + Result := True; + end; + stDouble: + begin + Value := obj.AsDouble; + Result := True; + end; + stCurrency: + begin + Value := obj.AsCurrency; + Result := True; + end; + stInt: + begin + Value := obj.AsInteger; + Result := True; + end; + stString: + begin + Value := obj.AsString; + Result := True; + end + else + Value := nil; + Result := False; + end; + end; + + procedure FromInterface; + const soguid: TGuid = '{4B86A9E3-E094-4E5A-954A-69048B7B6327}'; + var + o: ISuperObject; + begin + if CompareMem(@GetTypeData(TypeInfo).Guid, @soguid, SizeOf(TGUID)) then + begin + if obj <> nil then + TValue.Make(@obj, TypeInfo, Value) else + begin + o := TSuperObject.Create(stNull); + TValue.Make(@o, TypeInfo, Value); + end; + Result := True; + end else + Result := False; + end; +var + Serial: TSerialFromJson; +begin + if TypeInfo <> nil then + begin + if not SerialFromJson.TryGetValue(TypeInfo, Serial) then + case TypeInfo.Kind of + tkChar: FromChar; + tkInt64: FromInt64; + tkEnumeration, tkInteger: FromInt(obj); + tkSet: fromSet; + tkFloat: FromFloat(obj); + tkString, tkLString, tkUString, tkWString: FromString; + tkClass: FromClass; + tkMethod: ; + tkWChar: FromWideChar; + tkRecord: FromRecord; + tkPointer: ; + tkInterface: FromInterface; + tkArray: FromArray; + tkDynArray: FromDynArray; + tkClassRef: FromClassRef; + else + FromUnknown + end else + begin + TValue.Make(nil, TypeInfo, Value); + Result := Serial(Self, obj, Value); + end; + end else + Result := False; +end; + +function TSuperRttiContext.ToJson(var value: TValue; const index: ISuperObject): ISuperObject; + procedure ToInt64; + begin + Result := TSuperObject.Create(SuperInt(Value.AsInt64)); + end; + + procedure ToChar; + begin + Result := TSuperObject.Create(string(Value.AsType)); + end; + + procedure ToInteger; + begin + Result := TSuperObject.Create(TValueData(Value).FAsSLong); + end; + + procedure ToFloat; + begin + case Value.TypeData.FloatType of + ftSingle: Result := TSuperObject.Create(TValueData(Value).FAsSingle); + ftDouble: Result := TSuperObject.Create(TValueData(Value).FAsDouble); + ftExtended: Result := TSuperObject.Create(TValueData(Value).FAsExtended); + ftComp: Result := TSuperObject.Create(TValueData(Value).FAsSInt64); + ftCurr: Result := TSuperObject.CreateCurrency(TValueData(Value).FAsCurr); + end; + end; + + procedure ToString; + begin + Result := TSuperObject.Create(string(Value.AsType)); + end; + + procedure ToClass; + var + o: ISuperObject; + f: TRttiField; + v: TValue; + begin + if TValueData(Value).FAsObject <> nil then + begin + o := index[IntToStr(Integer(Value.AsObject))]; + if o = nil then + begin + Result := TSuperObject.Create(stObject); + index[IntToStr(Integer(Value.AsObject))] := Result; + for f in Context.GetType(Value.AsObject.ClassType).GetFields do + if f.FieldType <> nil then + begin + v := f.GetValue(Value.AsObject); + Result.AsObject[GetFieldName(f)] := ToJson(v, index); + end + end else + Result := o; + end else + Result := nil; + end; + + procedure ToWChar; + begin + Result := TSuperObject.Create(string(Value.AsType)); + end; + + procedure ToVariant; + begin + Result := SO(Value.AsVariant); + end; + + procedure ToRecord; + var + f: TRttiField; + v: TValue; + begin + Result := TSuperObject.Create(stObject); + for f in Context.GetType(Value.TypeInfo).GetFields do + begin +{$IFDEF VER210} + v := f.GetValue(IValueData(TValueData(Value).FHeapData).GetReferenceToRawData); +{$ELSE} + v := f.GetValue(TValueData(Value).FValueData.GetReferenceToRawData); +{$ENDIF} + Result.AsObject[GetFieldName(f)] := ToJson(v, index); + end; + end; + + procedure ToArray; + var + idx: Integer; + ArrayData: PArrayTypeData; + + procedure ProcessDim(dim: Byte; const o: ISuperObject); + var + dt: PTypeData; + i: Integer; + o2: ISuperObject; + v: TValue; + begin + if ArrayData.Dims[dim-1] = nil then Exit; + dt := GetTypeData(ArrayData.Dims[dim-1]^); + if Dim = ArrayData.DimCount then + for i := dt.MinValue to dt.MaxValue do + begin + v := Value.GetArrayElement(idx); + o.AsArray.Add(toJSon(v, index)); + inc(idx); + end + else + for i := dt.MinValue to dt.MaxValue do + begin + o2 := TSuperObject.Create(stArray); + o.AsArray.Add(o2); + ProcessDim(dim + 1, o2); + end; + end; + var + i: Integer; + v: TValue; + begin + Result := TSuperObject.Create(stArray); + ArrayData := @Value.TypeData.ArrayData; + idx := 0; + if ArrayData.DimCount = 1 then + for i := 0 to ArrayData.ElCount - 1 do + begin + v := Value.GetArrayElement(i); + Result.AsArray.Add(toJSon(v, index)) + end + else + ProcessDim(1, Result); + end; + + procedure ToDynArray; + var + i: Integer; + v: TValue; + begin + Result := TSuperObject.Create(stArray); + for i := 0 to Value.GetArrayLength - 1 do + begin + v := Value.GetArrayElement(i); + Result.AsArray.Add(toJSon(v, index)); + end; + end; + + procedure ToClassRef; + begin + if TValueData(Value).FAsClass <> nil then + Result := TSuperObject.Create(string( + TValueData(Value).FAsClass.UnitName + '.' + + TValueData(Value).FAsClass.ClassName)) else + Result := nil; + end; + + procedure ToInterface; +{$IFNDEF VER210} + var + intf: IInterface; +{$ENDIF} + begin +{$IFDEF VER210} + if TValueData(Value).FHeapData <> nil then + TValueData(Value).FHeapData.QueryInterface(ISuperObject, Result) else + Result := nil; +{$ELSE} + if TValueData(Value).FValueData <> nil then + begin + intf := IInterface(PPointer(TValueData(Value).FValueData.GetReferenceToRawData)^); + if intf <> nil then + intf.QueryInterface(ISuperObject, Result) else + Result := nil; + end else + Result := nil; +{$ENDIF} + end; + +var + Serial: TSerialToJson; +begin + if not SerialToJson.TryGetValue(value.TypeInfo, Serial) then + case Value.Kind of + tkInt64: ToInt64; + tkChar: ToChar; + tkSet, tkInteger, tkEnumeration: ToInteger; + tkFloat: ToFloat; + tkString, tkLString, tkUString, tkWString: ToString; + tkClass: ToClass; + tkWChar: ToWChar; + tkVariant: ToVariant; + tkRecord: ToRecord; + tkArray: ToArray; + tkDynArray: ToDynArray; + tkClassRef: ToClassRef; + tkInterface: ToInterface; + else + result := nil; + end else + Result := Serial(Self, value, index); +end; + +{ TSuperObjectHelper } + +constructor TSuperObjectHelper.FromJson(const obj: ISuperObject; ctx: TSuperRttiContext = nil); +var + v: TValue; + ctxowned: Boolean; +begin + if ctx = nil then + begin + ctx := TSuperRttiContext.Create; + ctxowned := True; + end else + ctxowned := False; + try + v := Self; + if not ctx.FromJson(v.TypeInfo, obj, v) then + raise Exception.Create('Invalid object'); + finally + if ctxowned then + ctx.Free; + end; +end; + +constructor TSuperObjectHelper.FromJson(const str: string; ctx: TSuperRttiContext = nil); +begin + FromJson(SO(str), ctx); +end; + +function TSuperObjectHelper.ToJson(ctx: TSuperRttiContext = nil): ISuperObject; +var + v: TValue; + ctxowned: boolean; +begin + if ctx = nil then + begin + ctx := TSuperRttiContext.Create; + ctxowned := True; + end else + ctxowned := False; + try + v := Self; + Result := ctx.ToJson(v, SO); + finally + if ctxowned then + ctx.Free; + end; +end; + +{$ENDIF} + +{$IFDEF DEBUG} +initialization + +finalization + Assert(debugcount = 0, 'Memory leak'); +{$ENDIF} +end. + diff --git a/盛纺贸易管理/testDll.cfg b/盛纺贸易管理/testDll.cfg new file mode 100644 index 0000000..6c57635 --- /dev/null +++ b/盛纺贸易管理/testDll.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/盛纺贸易管理/testDll.dof b/盛纺贸易管理/testDll.dof new file mode 100644 index 0000000..f452c6e --- /dev/null +++ b/盛纺贸易管理/testDll.dof @@ -0,0 +1,136 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages= +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\·չó׹\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= diff --git a/盛纺贸易管理/testDll.dpr b/盛纺贸易管理/testDll.dpr new file mode 100644 index 0000000..4be4b8a --- /dev/null +++ b/盛纺贸易管理/testDll.dpr @@ -0,0 +1,14 @@ +program testDll; + +uses + Forms, + U_testdll in 'U_testdll.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/盛纺贸易管理/testDll.res b/盛纺贸易管理/testDll.res new file mode 100644 index 0000000000000000000000000000000000000000..2d6f24c3d9a870364649288b1c0306b551768325 GIT binary patch literal 876 zcmaJ=Jx{|h5Pc?9%tTwkz(g}L7BMg|6oiDt01W(ruz1OWgw!H+AXAn~{FzE^Brlox z9gK_}J0Q&SIVr99IQ9AN-MzD~Rtx|M;amX24SU~e>Jc?cYMoANyAd5SNQg5+p~aQP zp5HA8_(Prt$CV+GqpB(v{1D!`;JAjld@@+K+i61a|MTdsd{~!%b1ms_KJEh}cpe(` z6jA?@e29>sU}iiwp;b>~TL@2U!O)h%Yr)7`8+a;b=@mD^tI-VbODr7!U{0?gh%d@~e3Ro)^HNMvvU1UHt)HYrq~&L`&fQ16Y1SeYiaObZ>3v kZ4W@7aBc_JIL8%khzs1(H@5yR{A*B1l9s#*|B4j80N@tIJOBUy literal 0 HcmV?d00001 diff --git a/盛纺贸易管理/uJSONDB.pas b/盛纺贸易管理/uJSONDB.pas new file mode 100644 index 0000000..960b449 --- /dev/null +++ b/盛纺贸易管理/uJSONDB.pas @@ -0,0 +1,236 @@ +unit uJSONDB; + +interface + +uses + SysUtils, Classes, Variants, DB, DBClient, SuperObject, Dialogs; + +type + TJSONDB = class + private + class function getJsonFieldNames(res: ISuperObject): TStringList; + class function getJsonFieldValues(res: ISuperObject): TStringList; + public + class procedure JsonToClientDataSet(jsonArr: TSuperArray; dstCDS: TClientDataSet); + class function ClientDataSetToJSON(srcCDS: TClientDataSet): UTF8String; + end; + +implementation + +function GetToken(var astring: string; const fmt: array of char): string; +var + i, j: integer; + Found: Boolean; +begin + Found := false; + result := ''; + astring := TrimLeft(astring); + + if length(astring) = 0 then + exit; + + i := 1; + while i <= length(astring) do + begin + Found := false; + if astring[i] <= #128 then + begin + for j := Low(fmt) to High(fmt) do + begin + if (astring[i] <> fmt[j]) then + continue; + Found := true; + break; + end; + if not Found then + i := i + 1; + end + else + i := i + 2; + + if Found then + break; + end; + + if Found then + begin + result := copy(astring, 1, i - 1); + delete(astring, 1, i); + end + else + begin + result := astring; + astring := ''; + end; +end; + +function GetFieldParams(PropName, Source: string): string; +var + S1, S2: string; + TmpParam: string; + AChar: string; + aValue, aPropName, aSource: string; +begin + Result := ''; + if Source = '' then + Exit; + aSource := Source; + while aSource <> '' do + begin + aValue := GetToken(aSource, [',']); + aPropName := GetToken(aValue, [':']); + if CompareText(PropName, aPropName) <> 0 then + continue; + Result := aValue; + break; + end; +end; +//jsonȡÙλQ + +class function TJSONDB.getJsonFieldNames(res: ISuperObject): TStringList; +var + i: Integer; + fieldList: TStringList; + fieldNames: string; +begin + try + fieldList := TStringList.Create; + fieldNames := res.AsObject.getNames.AsString; + fieldNames := StringReplace(fieldNames, '[', '', [rfReplaceAll, rfIgnoreCase]); + fieldNames := StringReplace(fieldNames, ']', '', [rfReplaceAll, rfIgnoreCase]); + fieldNames := StringReplace(fieldNames, '"', '', [rfReplaceAll, rfIgnoreCase]); + + fieldList.Delimiter := ','; + fieldList.DelimitedText := fieldNames; + Result := fieldList; + finally + //fieldList.Free; + end; +end; + +//jsonȡÙλֵ +class function TJSONDB.getJsonFieldValues(res: ISuperObject): TStringList; +var + i: Integer; + fieldList: TStringList; + fieldValues: string; +begin + try + fieldList := TStringList.Create; + fieldValues := res.AsObject.getValues.AsString; + fieldValues := StringReplace(fieldValues, '[', '', [rfReplaceAll, rfIgnoreCase]); + fieldValues := StringReplace(fieldValues, ']', '', [rfReplaceAll, rfIgnoreCase]); + fieldValues := StringReplace(fieldValues, '"', '', [rfReplaceAll, rfIgnoreCase]); + + fieldList.Delimiter := ','; + fieldList.DelimitedText := fieldValues; + Result := fieldList; + finally + //fieldList.Free; + end; +end; +//jsonDCDS + +class procedure TJSONDB.JsonToClientDataSet(jsonArr: TSuperArray; dstCDS: TClientDataSet); +var + fieldList: TStringList; + valuesList: TStringList; + jsonSrc: string; + i, j: Integer; +begin + fieldList := getJsonFieldNames(SO[jsonArr[0].AsJson(False, False)]); + if (dstCDS.FieldCount = 0) then + begin + for i := 0 to fieldList.Count - 1 do + begin + dstCDS.FieldDefs.Add(fieldList[i], ftString, 100, False); + end; + dstCDS.CreateDataSet; + dstCDS.Close; + dstCDS.Open; + end; + try + dstCDS.DisableControls; + for i := 0 to jsonArr.Length - 1 do + begin + jsonSrc := SO[jsonArr[i].AsJson(False, False)].AsString; + jsonSrc := StringReplace(jsonSrc, '[', '', [rfReplaceAll, rfIgnoreCase]); + jsonSrc := StringReplace(jsonSrc, ']', '', [rfReplaceAll, rfIgnoreCase]); + jsonSrc := StringReplace(jsonSrc, '"', '', [rfReplaceAll, rfIgnoreCase]); + jsonSrc := StringReplace(jsonSrc, '{', '', [rfReplaceAll, rfIgnoreCase]); + jsonSrc := StringReplace(jsonSrc, '}', '', [rfReplaceAll, rfIgnoreCase]); + dstCDS.Append; + for j := 0 to fieldList.Count - 1 do + begin + if fieldList[j] = 'status' then + begin + if GetFieldParams(fieldList[j], jsonSrc) = '01' then + begin + dstCDS.FieldByName(fieldList[j]).AsString := 'ѻ'; + end; + if GetFieldParams(fieldList[j], jsonSrc) = '02' then + begin + dstCDS.FieldByName(fieldList[j]).AsString := 'תת'; + end; + if GetFieldParams(fieldList[j], jsonSrc) = '03' then + begin + dstCDS.FieldByName(fieldList[j]).AsString := 'תд'; + end; + if GetFieldParams(fieldList[j], jsonSrc) = '04' then + begin + dstCDS.FieldByName(fieldList[j]).AsString := 'ת˻'; + end; + if GetFieldParams(fieldList[j], jsonSrc) = '06' then + begin + dstCDS.FieldByName(fieldList[j]).AsString := 'տ'; + end; + end + else + dstCDS.FieldByName(fieldList[j]).AsString := GetFieldParams(fieldList[j], jsonSrc); + end; + dstCDS.Post; + end; + finally + dstCDS.EnableControls; + end; +end; +//ClientDataSetDJSON + +class function TJSONDB.ClientDataSetToJSON(srcCDS: TClientDataSet): UTF8String; +var + i, j: Integer; + keyValue: string; + jsonList: TStringList; + jsonResult: string; +begin + if not srcCDS.Active then + srcCDS.Open; + + try + jsonList := TStringList.Create; + srcCDS.DisableControls; + srcCDS.First; + while not srcCDS.Eof do + begin + keyValue := ''; + for i := 0 to srcCDS.FieldDefs.Count - 1 do + begin + keyValue := keyValue + Format('"%s":"%s",', [srcCDS.Fields[i].FieldName, srcCDS.Fields[i].AsString]); + + end; + jsonList.Add(Format('{%s}', [Copy(keyValue, 0, Length(keyValue) - 1)])); + srcCDS.Next; + end; + for i := 0 to jsonList.Count - 1 do + begin + jsonResult := jsonResult + jsonList[i] + ','; + end; + Result := Utf8Encode(Format('[%s]', [Copy(jsonResult, 0, Length(jsonResult) - 1)])); + finally + srcCDS.EnableControls; + jsonList.Free; + end; +end; + +end. +

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%0DT{IsCf+2UJX1+}#~A8a$J48YCRjo} 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